Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1176804348
likenoother
2007-04-17 14:05
2007.05.06
обозначение углов


2-1176646018
Ezorcist
2007-04-15 18:06
2007.05.06
WinExec возвращает 33


10-1131697926
zothrf
2005-11-11 11:32
2007.05.06
Как в дельфе определить открыт ли файл в EXCEL по сети?


15-1176027749
ProgRAMmer Dimonych
2007-04-08 14:22
2007.05.06
Посоветуйте, пожалуйста...


2-1176530991
kyn66
2007-04-14 10:09
2007.05.06
Различие между двумя типами записей





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский