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

Вниз

Как внутри класса динамически создавать обьекты?   Найти похожие ветки 

 
allucard   (2007-04-17 09:30) [0]

Доброго времени суток.

Есть класс:

TNewClass = class
StringList: TStringList;
FileStream: TFileStream;
P: Pointer;
Priv....end;

Я не знаю сколько мне понадобится экземпляров классов может быть от 0 до 10000.

Вопрос: как создать необходимое колличество экземпляров класса без их описания в разделе var?

Спасибо.


 
Сергей М. ©   (2007-04-17 09:34) [1]

TNewClass = class
..
 FObjList: TObjectList;
..
end;

FObjList.Add(TStringList.Create(..));
FObjList.Add(TFileStream.Create(..));
..
..
FObjList.Add(TMySuperPuperClass.Create(..));


 
allucard   (2007-04-17 09:38) [2]


> Сергей М. ©   (17.04.07 09:34) [1]

Спасибки, что супер класс то точно :)

А внутри Create писать self или родителя?

Да и как то же через указатели можно, или так уже не модно?


 
Сергей М. ©   (2007-04-17 09:43) [3]


> А внутри Create писать self или родителя?


Чьего Create ?


> и как то же через указатели можно


Предложенный выше вариант и есть "через указатели".


 
allucard   (2007-04-17 09:59) [4]

TObjectList и есть список на указатели?
Так можно ж и просто через TList?

>Чьего Create ?
вот этого например: TFileStream.Create(..)
или этого: TMySuperPuperClass.Create(..).


 
_Аноним   (2007-04-17 10:04) [5]


> Так можно ж и просто через TList?

Можно. Только разрушать их тебе придется руками, а так абсолютно то же самое.

> вот этого например: TFileStream.Create(..)
> или этого: TMySuperPuperClass.Create(..).


параметры конструктора определяет сам класс. Например в файлстрим надо передать имя файла и флаги. При чем тут self ?


 
Сергей М. ©   (2007-04-17 10:04) [6]


> TObjectList и есть список на указатели?


TObjectList - это список объектов,  а объекты в Делфи представлены указателями.


> можно ж и просто через TList?


Можно и через TList, но тогда за разрушение объектов в списке ты обязан отвечать сам. TObjectList же при уничтожении автоматически уничтожает объекты в контролируемом им списке.


> вот этого например: TFileStream.Create(..)


Открой справку и почитай про параметры конструктора этого класса.


> или этого: TMySuperPuperClass.Create(..).


Ну кому ж как не тебе самому знать, какие параметры у конструктора твоего собственного класса ?)


 
allucard   (2007-04-17 10:07) [7]


> Ну кому ж как не тебе самому знать, какие параметры у конструктора
> твоего собственного класса ?)

:)


 
allucard   (2007-04-17 10:11) [8]


> Сергей М. ©   (17.04.07 09:34) [1]

И их можно сколь угодно добавлять не описывая в var?


 
ЮЮ ©   (2007-04-17 10:11) [9]

>TObjectList же при уничтожении автоматически уничтожает объекты в контролируемом им списке.

Если он создан с соответсвующими параметрами :). Если так - TObjectList.Create(false) - то он равнодущен к жизни своих объектов,
А если так - TObjectList.Create(true) или  TObjectList.Create, то - да. И не только при уничтожении, но и при удалении элемента списка.


 
Сергей М. ©   (2007-04-17 10:15) [10]


> их можно сколь угодно добавлять не описывая в var?


Угу. В теор.пределе - до 2^31-1 штук)


 
ЮЮ ©   (2007-04-17 10:15) [11]

TObjectList всё же придется объявить где-то.
Только почему в var? Лучше в private секции того класса, которому твой класс потребуется.


 
Сергей М. ©   (2007-04-17 10:17) [12]


> TObjectList всё же придется объявить где-то


Можно и не объявлять, если сделать TNewClass наследником TObjectList.


 
allucard   (2007-04-17 10:22) [13]


> Сергей М. ©   (17.04.07 10:17) [12]

Слушай, ну поделись какие книги ты читал?
Где есть такое хорошее(понятное) описание?


 
Сергей М. ©   (2007-04-17 10:26) [14]


> allucard   (17.04.07 10:22) [13]


Стандартная справка в большинстве случаев достаточно информативна.
То что не найдено в справке, с легкостью находится анализом исходных текстов.
То что не найдено (или непонятно) среди исх.текстов, всегда найдется на просторах Гугля)


 
Сергей М. ©   (2007-04-17 10:32) [15]


> allucard   (17.04.07 10:22) [13]


Ну а что касается сторонней литературы, то загляни , скажем, сюда:

http://softoroom.net/topic18367s20.html
Пост от 21.03.2007 - 18:26



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

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

Наверх




Память: 0.5 MB
Время: 0.021 c
2-1176698011
Konus
2007-04-16 08:33
2007.05.06
работа с writeln и readln


15-1175809511
sv_sergik
2007-04-06 01:45
2007.05.06
Улучшеный IDE


4-1165379169
Mixal__
2006-12-06 07:26
2007.05.06
потоки


8-1156315403
Maxim new
2006-08-23 10:43
2007.05.06
Ассоциация файлов


1-1173285225
DevilDevil
2007-03-07 19:33
2007.05.06
компонент TScrollBox