Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.09;
Скачать: CL | DM;

Вниз

TList, с автоматическим удалением данных, связанных с элементами   Найти похожие ветки 

 
DVM ©   (2006-05-29 11:06) [0]

Где то тут на форуме пробегал класс, не подскажите где взять, чтобы не писать с нуля.


 
Dmitrij_K   (2006-05-29 11:09) [1]

Может TObjectList


 
DVM ©   (2006-05-29 11:19) [2]


> TObjectList

Не, не совсем, хотя приспособить можно, но не то. Список не объектов, а указателей на записи.
То был потомок TList (кажется, от Игоря Шевченко).


 
Palladin ©   (2006-05-29 11:30) [3]

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;


 
Сергей М. ©   (2006-05-29 11:34) [4]


> DVM ©   (29.05.06 11:19) [2]


Перекрой вирт.метод TList.Notify()


 
DVM ©   (2006-05-29 11:35) [5]


> Palladin ©   (29.05.06 11:30) [3]

удаление отдельных элементов забыл :) И еще кое-что.

А вообще, ладно, я уже сам написал.


 
vl_chel ©   (2006-05-29 12:32) [6]

В классе TObjectList есть свойство OwnsObjects:Boolean которое отвечает за автоматическое удаление связанных с ним обьектов
Список хранит ссылки на TObject


 
Игорь Шевченко ©   (2006-05-29 12:44) [7]

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.



Страницы: 1 вся ветка

Текущий архив: 2006.07.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.05 c
2-1151056340
parovoZZ
2006-06-23 13:52
2006.07.09
А как лучше загрузить из dll уже загруженную dll?


2-1150913706
mctarik
2006-06-21 22:15
2006.07.09
Кто сегодня за старшего?


2-1150721495
novill
2006-06-19 16:51
2006.07.09
Как узнать длину записи в пикселах написи в визуальном компоненте


15-1150036334
TUser
2006-06-11 18:32
2006.07.09
Perl, Apach, ect


1-1148965617
tany
2006-05-30 09:06
2006.07.09
импорт данных из Excel