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

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

Динамическая коллекция объектов


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


Наверх

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