![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TList, с автоматическим удалением данных, связанных с элементами [D7, WinXP]
DVM © (2006-05-29 11:06:00)Где то тут на форуме пробегал класс, не подскажите где взять, чтобы не писать с нуля.
Игорь Шевченко (2006-05-29 12:44:00) [1]DVM © (29.05.06 11:19) [2]
У меня объекты были
{
Модуль: HSObjectList
Описание: Класс списка объектов. Уничтожает содержащиеся объекты
при собственном разрушении,
имеет метод очистки без уничтожения содержимого.
Ограничения применения: Элементы списка должны быть наследниками TObject
Автор: Игорь Шевченко
Дата создания: 21.11.2001
История изменений:
10.12.2003 - В класс THSObjectList добавлено свойство Objects.
}
unit HSObjectList;
interface
uses
Classes;
type
THSObjectList = class(TList)
private
function GetObjects(I: Integer): TObject;
public
property Objects[I: Integer]: TObject read GetObjects;
procedure Clear; override;
{ Очистка списка без разрушения содержимого }
procedure RemoveAll;
end;
implementation
{ THSObjectList }
procedure THSObjectList.Clear;
var
I: Integer;
begin
for I:=0 to Pred(Count) do
Objects[I].Free;
inherited;
end;
function THSObjectList.GetObjects(I: Integer): TObject;
begin
Result := TObject(inherited Items[I]);
end;
procedure THSObjectList.RemoveAll;
var
I: Integer;
begin
for I:=Pred(Count) downto 0 do
Delete(I);
end;
end.
vl_chel (2006-05-29 12:32:00) [2]В классе TObjectList есть свойство OwnsObjects:Boolean которое отвечает за автоматическое удаление связанных с ним обьектов
Список хранит ссылки на TObject
DVM (2006-05-29 11:35:00) [3]
> Palladin © (29.05.06 11:30) [3]
удаление отдельных элементов забыл :) И еще кое-что.
А вообще, ладно, я уже сам написал.
Сергей М. (2006-05-29 11:34:00) [4]
> DVM © (29.05.06 11:19) [2]
Перекрой вирт.метод TList.Notify()
Palladin (2006-05-29 11:30:00) [5]Type
TAutoFreeList=Class(TList)
Public
Destructor Destroy; Override;
End;
Destructor TAutoFreeList.Destroy;
Var
i:Integer;
Begin
For i:=0 to Count-1 Do FreeMem(Items[i]);
Inherited;
End;
DVM (2006-05-29 11:19:00) [6]
> TObjectList
Не, не совсем, хотя приспособить можно, но не то. Список не объектов, а указателей на записи.
То был потомок TList (кажется, от Игоря Шевченко).
Dmitrij_K (2006-05-29 11:09:00) [7]Может TObjectList