摘要: 实现 TMyList.Add 函数. TList 中的 Add 函数用到了一个 Grow 方法, 它的原理是元素越多就为以后准备更多内存, 我们这里省略为预留 4 个元素的内存; TList 中的 Add 函数还同时触动了一个 Notify 方法, 这应该是为它们的子类准备的(估计是用它来激发一个事件的), 也不要了. function TMyList.Add(Item: Pointer): ... 阅读全文
posted @ 2008-03-28 15:54 万一 阅读(3754) 评论(14) 推荐(0)
摘要: 先来实现 TMyList.SetCapacity. 马上会想到下面代码: procedure TMyList.SetCapacity(const Value: Integer); begin if FCapacity Value then FCapacity := Value; end; 但这样是远远不够的, 关键是需要分配内存, 像这样: ReallocMem(数组的起点... 阅读全文
posted @ 2008-03-28 14:06 万一 阅读(3474) 评论(6) 推荐(1)
摘要: 现在准备一步步地模拟 TList 类, 建立一个自己的 TMyList. 首先, 这个类中应该包括前面提到的那个 Pointer 数组(TPointerList)的指针(PPointerList): TMyList = class(TObject) FList: PPointerList; end; 既然是一个列表, 应该有 Count 字段: TMyList = class(TO... 阅读全文
posted @ 2008-03-28 11:09 万一 阅读(4420) 评论(1) 推荐(0)