![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическая коллекция объектов
begin © (2005-09-27 11:57:00)Добрый день.
Есть ли в Delphi динамическая коллекция объектов? Аналог Vector в Java.
То есть, что то типа:
collection.Add(newObject);
object:=MyObject(collection.GetN(n));
Digitman (2005-09-27 17:16:00) [1]
> Внук © (27.09.05 16:28) [4]
а говоришь при этом, что
> это будет работать совершенно корректно
))
Внук (2005-09-27 16:39:00) [2]При условии, что в самом конструкторе не создаются динамические объекты. Тогда, конечно, утечка памяти. В TMenu они создаются...
Внук (2005-09-27 16:28:00) [3]>>Digitman © (27.09.05 15:50) [3]
>> menu:=TMenu.Create.Create
Самое смешное, что это будет работать совершенно корректно. Насколько я знаю.
Digitman (2005-09-27 15:50:00) [4]
> menu:=TMenu.Create.Create
это что за галиматья ? Create.Create в смысле ? сам-то понял, что здесь сказал ?
> Потом достаю
из широких штанин ?)
нет, ну я понимаю конечно же мазохистское удовольствие : сначала организовать цикл от 1 до N, а в теле цикла индексировать элемент списка вычитая всякий раз из индекса единицу)
begin (2005-09-27 15:22:00) [5]Наверное я что-то делаю не правильно.
Сначала вставляю объекты в TObjectList:
while (not oldQ.Eof) do
begin
menu:=TMenu.Create.Create;
menu.name:=oldQ.FieldByName('name').AsString;
menu.description:=oldQ.FieldByName('description').AsString;
menu.author:=oldQ.FieldByName('author').AsString;
menuList.Add(menu);
oldQ.Next;
end;
Потом достаю:
for i:=1 to menuList.Count do
begin
menu:=Tmenu(menuList.Items[i-1]);
......
q.ExecSQL;
end;
Достается только все время последний вставленный объект. Как сделать правильно ?
alex_*** (2005-09-27 12:16:00) [6]TObjectList