摘要: 总结目前 TMyList 已具备的功能(3 个方法、3 个属性):Add: 添加; Delete: 删除; Clear: 清空;Count: 元素总数;Capacity: 已存在的所有元素位置数;List: 指向核心数组的指针(只读).举例测试如下:unit Unit1;interfaceuses ... 阅读全文
posted @ 2014-07-15 12:39 何石-博客 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 实现 TMyList.Add 函数.TList 中的 Add 函数用到了一个 Grow 方法, 它的原理是元素越多就为以后准备更多内存, 我们这里省略为预留 4 个元素的内存;TList 中的 Add 函数还同时触动了一个 Notify 方法, 这应该是为它们的子类准备的(估计是用它来激发一个事件的... 阅读全文
posted @ 2014-07-15 12:38 何石-博客 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 先来实现 TMyList.SetCapacity.马上会想到下面代码:procedure TMyList.SetCapacity(const Value: Integer);begin if FCapacity Value then FCapacity := Value;end;但这样是远远不够... 阅读全文
posted @ 2014-07-15 12:37 何石-博客 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 现在准备一步步地模拟 TList 类, 建立一个自己的 TMyList.首先, 这个类中应该包括前面提到的那个 Pointer 数组(TPointerList)的指针(PPointerList):TMyList = class(TObject) FList: PPointerList;end;既然是... 阅读全文
posted @ 2014-07-15 12:36 何石-博客 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 在 Delphi 中, 几乎所有的类型都有对应的指针类型, 譬如: Char PChar Word PWORD Double PDouble TPoint PPoint 甚至一种类型对应这着几种指针类型, 譬如: Integer PInteger PINT WideChar PWideChar PW... 阅读全文
posted @ 2014-07-15 12:34 何石-博客 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 我原来以为 TList 可能是一个链表, 其实只是一个数组而已.你知道它包含着多大一个数组吗? MaxListSize 个!MaxListSize 是 Delphi 在 Classes 单元定义的一个常量:MaxListSize = Maxint div 16; 也就是 134217727; 这也是... 阅读全文
posted @ 2014-07-15 12:23 何石-博客 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 最近整理了一些函数列表, 算是一个宏观的安排; 等以后再碰到一些函数时就可以放置的更有次序一些.我对函数与类的理解是:函数是一个功能模块, 类是一个更强大的功能模块; Delphi 已经提供了很多的函数与类, 但很多时候我们却视而不见, 重新"刀耕火种".曾记得网上有一个 Delphi 行家连续几年... 阅读全文
posted @ 2014-07-15 12:22 何石-博客 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 本例效果图:Dll 文件:library Lib;uses SysUtils, Classes;{$R *.res}procedure Test(p: PChar);const Title = 'Title ';var str: string;begin str := p; StrCopy(p, T... 阅读全文
posted @ 2014-07-15 11:47 何石-博客 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 本例将把一张 bmp 图片, 以资源文件的方式嵌入 dll, 然后再调用.第一步: 建一个 DLL 工程, 如图:然后保存, 我这里使用的名称都是默认的.第二步: 建一个资源原文件, 如图:编辑内容如下(路径中的文件一定要存在):img1 BITMAP "c:\temp\test.bmp"然后, 取... 阅读全文
posted @ 2014-07-15 11:46 何石-博客 阅读(281) 评论(0) 推荐(0) 编辑
摘要: //通过 DLL Wizard 建立:library TestDLL;uses SysUtils, Classes, Dialogs;{$R *.res}//建立过程procedure Test;begin ShowMessage('TestDLL.Test');end;//输出exports Te... 阅读全文
posted @ 2014-07-15 11:45 何石-博客 阅读(230) 评论(0) 推荐(0) 编辑