<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/chenyq2008" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/chenyq2008" type="application/rss+xml"></fs:self_link><lastBuildDate>Tue, 13 Jan 2009 23:07:00 GMT</lastBuildDate><title>在水一方</title><description>炕上等你</description><link>http://blog.csdn.net/chenyq2008/</link><item><title>也谈VCL中DragDrop功能的底层实现</title><link>http://blog.csdn.net/chenyq2008/archive/2009/01/13/3771822.aspx</link><wfw:comment>http://blog.csdn.net/chenyq2008/comments/3771822.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/chenyq2008/comments/commentRss/3771822.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3771822</trackback:ping><description>前段时间在论坛里看了一篇关于剖析VCL结构的文件，其中不少高手的开怀畅谈让小辈们心里感觉非常的痛快！看完余又觉得不能光看，也该将自己的心得拿出来与大家分享，于是就边夜翻看VCL源码，终于将VCL如何实现DragDrop功能的过程弄个“基本明白”，其中可能会有不当之处，再加上小弟的文学水平也只是初中毕业，有些地方也许会表达不当，但其意思也基本上八九不离十了，故也请大家开怀畅言、批评指正，都是为了进步嘛！哈哈……&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; 虽然DragDock操作与DragDrop操作是密切相关，并且很大一部分操作是相同的，但本文暂且不讨论与DragDock有关的部分，留待下回分解或也给大家表现表现………………&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; 一、与DragDrop操作相关的属性、事件、函数&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; VCL的DragDrop功能是在TControl类中现的，因此所有从TControl类派生出来的控件类者继承了这些属性、事件和函数，包括：&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; 属性：DragCursor: Drag时的鼠&lt;img src =&quot;http://blog.csdn.net/chenyq2008/aggbug/3771822.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Wed, 14 Jan 2009 07:07:00 +0800</pubDate><author>chenyq2008</author><comments>http://blog.csdn.net/chenyq2008/archive/2009/01/13/3771822.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/chenyq2008/archive/2009/01/13/3771822.aspx</guid><dc:creator>chenyq2008</dc:creator></item><item><title>对象内存的分配及回收</title><link>http://blog.csdn.net/chenyq2008/archive/2008/12/21/3572081.aspx</link><wfw:comment>http://blog.csdn.net/chenyq2008/comments/3572081.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/chenyq2008/comments/commentRss/3572081.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3572081</trackback:ping><description>编译器在为对象分配内存时，所提供的支持就是在调用构造函数之前插入这几行汇编代码：&lt;br /&gt;&lt;br /&gt;test dl, dl&lt;br /&gt;jz +$08&lt;br /&gt;add esp, -$10&lt;br /&gt;call @ClassCreate // 注意这行代码&lt;br /&gt;&lt;br /&gt;以上代码的最后一行代码调用的是system.pas文件的第8949行的_ClassCreate函数（以Delphi 6为准），该函数具体为每个对象分配合适的内存。内存分配完成后是调用类的构造函数以初始化数据成员。之后，编译器会再插入以下几行汇编代码：&lt;br /&gt;&lt;br /&gt;test dl, dl&lt;br /&gt;jz +{logcontent}f&lt;br /&gt;call @AfterConstruction&lt;br /&gt;pop dword ptr fs:[{logcontent}]&lt;br /&gt;add esp, {logcontent}c&lt;br /&gt;&lt;br /&gt;其中主要工作是调用每个对象实例的AfterConstruction，这个调用在Delphi中没有用，它的存在是为C++Builder所保留的。&lt;br /&gt;同样，析构对&lt;img src =&quot;http://blog.csdn.net/chenyq2008/aggbug/3572081.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 21 Dec 2008 20:05:00 +0800</pubDate><author>chenyq2008</author><comments>http://blog.csdn.net/chenyq2008/archive/2008/12/21/3572081.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/chenyq2008/archive/2008/12/21/3572081.aspx</guid><dc:creator>chenyq2008</dc:creator></item><item><title>在 DELPHI 中 procedure 型变量与 method 型变量的区别</title><link>http://blog.csdn.net/chenyq2008/archive/2008/11/29/3408381.aspx</link><wfw:comment>http://blog.csdn.net/chenyq2008/comments/3408381.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/chenyq2008/comments/commentRss/3408381.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3408381</trackback:ping><description>Procedure型变量： &lt;br /&gt;在DELPHI中，函数、过程的地址可以赋给一个特殊类型的变量，变量可用如下方式声明： &lt;br /&gt;var p : procedure(num:integer); //过程 &lt;br /&gt;或： &lt;br /&gt;var f : function(num:integer):integer; //函数 &lt;br /&gt;也可定义一个过程（或函数）类型，再定义该类型的变量，如： &lt;br /&gt;type TMyProc = Procedure(num:integer); &lt;br /&gt;var p : TMyProc; &lt;br /&gt;&lt;br /&gt;example: &lt;br /&gt;type TMyProc= procedure (filename : string); //定义过程类型 &lt;br /&gt;procedure clearfile(filename : string); &lt;br /&gt;begin &lt;br /&gt;{….} &lt;br /&gt;end ; &lt;br /&gt;… &lt;br /&gt;var p:TMyProc; //定义过程变量 &lt;br /&gt;… &lt;br /&gt;p := clearfile; //&lt;img src =&quot;http://blog.csdn.net/chenyq2008/aggbug/3408381.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sat, 29 Nov 2008 19:21:00 +0800</pubDate><author>chenyq2008</author><comments>http://blog.csdn.net/chenyq2008/archive/2008/11/29/3408381.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/chenyq2008/archive/2008/11/29/3408381.aspx</guid><dc:creator>chenyq2008</dc:creator></item><item><title>关于继承的方式测试</title><link>http://blog.csdn.net/chenyq2008/archive/2008/10/06/3020217.aspx</link><wfw:comment>http://blog.csdn.net/chenyq2008/comments/3020217.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/chenyq2008/comments/commentRss/3020217.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3020217</trackback:ping><description>&lt;P&gt;unit Unit1;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;interface&lt;/P&gt;&lt;br /&gt;&lt;P&gt;uses&lt;BR&gt;&amp;nbsp; Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,&lt;BR&gt;&amp;nbsp; Dialogs, StdCtrls;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;type&lt;BR&gt;&amp;nbsp;TBase=class&lt;BR&gt;&amp;nbsp;public&lt;BR&gt;&amp;nbsp;&amp;nbsp; function AAA:string;&lt;BR&gt;&amp;nbsp;&amp;nbsp; function BBB:string;virtual;&lt;BR&gt;&amp;nbsp;&amp;nbsp; function CCC:string;&lt;BR&gt;&amp;nbsp;end;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp;TA=class(TBase)&lt;BR&gt;&amp;nbsp;public&lt;BR&gt;&amp;nbsp;&amp;nbsp; function AAA:string;&lt;BR&gt;&amp;nbsp;&amp;nbsp; function BBB:string;override;&lt;BR&gt;&amp;nbsp;&amp;nbsp; function CCC&lt;img src =&quot;http://blog.csdn.net/chenyq2008/aggbug/3020217.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Mon, 06 Oct 2008 17:59:00 +0800</pubDate><author>chenyq2008</author><comments>http://blog.csdn.net/chenyq2008/archive/2008/10/06/3020217.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/chenyq2008/archive/2008/10/06/3020217.aspx</guid><dc:creator>chenyq2008</dc:creator></item><item><title>delphi变量内存分配与释放</title><link>http://blog.csdn.net/chenyq2008/archive/2008/09/27/2990096.aspx</link><wfw:comment>http://blog.csdn.net/chenyq2008/comments/2990096.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/chenyq2008/comments/commentRss/2990096.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2990096</trackback:ping><description>变量内存分配&lt;img src =&quot;http://blog.csdn.net/chenyq2008/aggbug/2990096.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 28 Sep 2008 07:20:00 +0800</pubDate><author>chenyq2008</author><comments>http://blog.csdn.net/chenyq2008/archive/2008/09/27/2990096.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/chenyq2008/archive/2008/09/27/2990096.aspx</guid><dc:creator>chenyq2008</dc:creator></item><item><title>堆、栈及静态数据区详解</title><link>http://blog.csdn.net/chenyq2008/archive/2008/09/27/2990070.aspx</link><wfw:comment>http://blog.csdn.net/chenyq2008/comments/2990070.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/chenyq2008/comments/commentRss/2990070.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2990070</trackback:ping><description>&lt;P&gt;五大内存分区&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在C++中，内存分成5个区，他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 栈，就是那些由编译器在需要的时候分配，在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 堆，就是那些由new分配的内存块，他们的释放编译器不去管，由我们的应用程序去控制，一般一个new就要对应一个delete。如果程序员没有释放掉，那么在程序结束后，操作系统会自动回收。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 自由存储区，就是那些由malloc等分配的内存块，他和堆是十分相似的，不过它是用free来结束自己的生命的。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 全局/静态存储区，全局变量和静态变量被分配到同一块内存中，在以前的C语言中，全局变量又分为初始化的和未初始化的，在C++里面没有这个区分了，他们共同占用同一块内存区。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 常量存储区，这是一块比较特殊的存储区，他们里面存&lt;img src =&quot;http://blog.csdn.net/chenyq2008/aggbug/2990070.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 28 Sep 2008 06:57:00 +0800</pubDate><author>chenyq2008</author><comments>http://blog.csdn.net/chenyq2008/archive/2008/09/27/2990070.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/chenyq2008/archive/2008/09/27/2990070.aspx</guid><dc:creator>chenyq2008</dc:creator></item><item><title>关于Delphi中string的一些理解</title><link>http://blog.csdn.net/chenyq2008/archive/2008/09/27/2990003.aspx</link><wfw:comment>http://blog.csdn.net/chenyq2008/comments/2990003.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/chenyq2008/comments/commentRss/2990003.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2990003</trackback:ping><description>delphi使用的object&amp;nbsp;pascal对字符串类型提供了内建支持&lt;BR&gt;&lt;BR&gt;一种简单的shortstring是为兼容turbo&amp;nbsp;pascal等老版本&lt;BR&gt;而保留的，具体实现是一个最大256字节的数组，&lt;BR&gt;第0个字节保存字符串的长度，然后依次是1,2...n&lt;BR&gt;结尾没有#0标识，因此老一点讲pascal的书里面都是直接用&lt;BR&gt;str[0]访问字符串str的长度的……此类型已基本上被遗弃&lt;BR&gt;&lt;BR&gt;新的所谓longstring类型是从delphi2开始引入的，因为&lt;BR&gt;delphi2开始支持32位win,并加入了对pchar的内建支持&lt;BR&gt;具体实现是一块动态分配的内存块，内存块的前两个dword&lt;BR&gt;保存着此字符串的长度和引用计数器等等信息，&lt;BR&gt;因为是用一个dword保存长度，因此字符串长度可以非常大&lt;BR&gt;呵呵，具体多大其实根本没有意义，反正用不完了&amp;nbsp;:)&lt;BR&gt;然后字符串的末尾以#0结束，以兼容window用的sz字符串类型&lt;BR&gt;所谓pchar(str)转换，其实只是取字符串的头指针罢了&lt;BR&gt;（注意这里的头指针直接指&lt;img src =&quot;http://blog.csdn.net/chenyq2008/aggbug/2990003.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 28 Sep 2008 06:19:00 +0800</pubDate><author>chenyq2008</author><comments>http://blog.csdn.net/chenyq2008/archive/2008/09/27/2990003.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/chenyq2008/archive/2008/09/27/2990003.aspx</guid><dc:creator>chenyq2008</dc:creator></item><item><title>Delphi动态数组介绍</title><link>http://blog.csdn.net/chenyq2008/archive/2008/09/27/2986983.aspx</link><wfw:comment>http://blog.csdn.net/chenyq2008/comments/2986983.aspx</wfw:comment><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/chenyq2008/comments/commentRss/2986983.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2986983</trackback:ping><description>&lt;SPAN style=&quot;FONT-FAMILY: 宋体&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;从 Delphi4起，开始了内建各种类型的动态数组支持。但是，对我们来说动态数组支持似乎做的不够彻底，因为Delphi竟然连删除、插入、移动连续元素的函数都没有提供，让人使用起来总觉得不够爽！！！ &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Wingdings&quot;&gt;J&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 宋体&quot;&gt; 。作为一名程序员，我们当然要有自己解决问题的能力，下面就让我们简单介绍一下Delphi 下的动态数组。&lt;/SPAN&gt; &lt;br /&gt;&lt;P&gt;&lt;/P&gt;&lt;br /&gt;&lt;P style=&quot;MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 宋体&quot;&gt;&lt;FONT size=3&gt;在Delphi中，数组类型有静态数组（a : array[0..1024] of integer）、动态数组（var a : array of integer）、指&lt;img src =&quot;http://blog.csdn.net/chenyq2008/aggbug/2986983.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sat, 27 Sep 2008 19:40:00 +0800</pubDate><author>chenyq2008</author><comments>http://blog.csdn.net/chenyq2008/archive/2008/09/27/2986983.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/chenyq2008/archive/2008/09/27/2986983.aspx</guid><dc:creator>chenyq2008</dc:creator></item><item><title>ASCII</title><link>http://blog.csdn.net/chenyq2008/archive/2008/09/26/2985199.aspx</link><wfw:comment>http://blog.csdn.net/chenyq2008/comments/2985199.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/chenyq2008/comments/commentRss/2985199.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2985199</trackback:ping><description>美国标准信息交换标准码&lt;BR&gt;&lt;br /&gt;&lt;DIV class=spctrl&gt;&lt;/DIV&gt;　　( American Standard Code for Information Interchange, ASCII )&lt;BR&gt;&lt;br /&gt;&lt;DIV class=spctrl&gt;&lt;/DIV&gt;　　在计算机中，所有的数据在存储和运算时都要使用二进制数表示（因为计算机比较傻，只有0和1两位数的二进制比较适合于它使用），同样的，象a、b、c、d这样的52个字母（包括大写）、以及0、1、2等数字还有一些常用的符号（例如*、#、@等）在计算机中存储时也要使用二进制数来表示，而具体用哪个数字表示哪个符号，当然每个人都可以约定自己的一套（这就叫编码），而大家如果要想互相通讯而不造成混乱，那么大家就必须使用相同的编码规则，于是美国有关的标准化组织就出台了所谓的ASCII编码，统一规定了上述常用符号用哪个二进制数来表示。&lt;BR&gt;&lt;br /&gt;&lt;DIV class=spctrl&gt;&lt;/DIV&gt;　　美国标准信息交换代码是由美国国家标准学会(American National Standard Institute&lt;img src =&quot;http://blog.csdn.net/chenyq2008/aggbug/2985199.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sat, 27 Sep 2008 06:16:00 +0800</pubDate><author>chenyq2008</author><comments>http://blog.csdn.net/chenyq2008/archive/2008/09/26/2985199.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/chenyq2008/archive/2008/09/26/2985199.aspx</guid><dc:creator>chenyq2008</dc:creator></item><item><title>字符，字节和编码</title><link>http://blog.csdn.net/chenyq2008/archive/2008/09/26/2985136.aspx</link><wfw:comment>http://blog.csdn.net/chenyq2008/comments/2985136.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/chenyq2008/comments/commentRss/2985136.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2985136</trackback:ping><description>字符，字节和编码&lt;img src =&quot;http://blog.csdn.net/chenyq2008/aggbug/2985136.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sat, 27 Sep 2008 05:50:00 +0800</pubDate><author>chenyq2008</author><comments>http://blog.csdn.net/chenyq2008/archive/2008/09/26/2985136.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/chenyq2008/archive/2008/09/26/2985136.aspx</guid><dc:creator>chenyq2008</dc:creator></item></channel></rss>