Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
ВнизКак внутри класса динамически создавать обьекты? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.041 c