Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
2-1150523990
brus
2006-06-17 09:59
2006.07.09
базы данных


2-1150961084
delimiter
2006-06-22 11:24
2006.07.09
XML


2-1150822838
!_SM_!
2006-06-20 21:00
2006.07.09
Нетипизированные файлы


15-1150106759
Tirael
2006-06-12 14:05
2006.07.09
калькулятор


2-1150928102
й
2006-06-22 02:15
2006.07.09
Messages Windows





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский