Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Правильно ли написал наследника TList? [D7]


Страницы:   1 2

Ega23 ©   (2008-06-26 12:19:00) 

Всё с объектами да с объектами. А тут работу с рекордами и простыми указателями пришлось вспоминать. Короче, правильный ли код?


 TGUIDList = class (TList)
 private
   function GetItem(Index: Integer): TGUID;
 public
   function Add(Item : TGUID) : Integer;
   procedure Clear; override;
   property Items[Index : Integer] : TGUID read GetItem; default;
 end;

{ TGUIDList }

function TGUIDList.Add(Item: TGUID): Integer;
var
 p : PGUID;
begin
 New(p);
 p^ := Item;
 Result := inherited Add(p);
end;

procedure TGUIDList.Clear;
var
 i : Integer;
 p : Pointer;
begin
 for i:=0 to Count-1 do
 begin
   p := Get(i);
   Dispose(PGUID(p));
 end;
 inherited;
end;

function TGUIDList.GetItem(Index: Integer): TGUID;
begin
 Result := PGUID(Get(Index))^;
end;



Только не надо сейчас говорить, что дин.массив тут проще и т.п. Сам знаю. Я "технологию" обкатываю.


Ega23   (2008-06-26 12:31:00) [21]


> метод Notify не реализовал для реакции на удаление


А, это чтобы Dispose вызвать?
Спасибо, действительно не подумал...


Palladin   (2008-06-26 12:28:00) [22]

метод Notify не реализовал для реакции на удаление


Ega23   (2008-06-26 12:25:00) [23]


> а зачем приводить к PGUID?


Не надо? MM сам помнит, что какого типа?


clickmaker   (2008-06-26 12:24:00) [24]

> Dispose(PGUID(p));

а зачем приводить к PGUID?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо