Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.30;
Скачать: [xml.tar.bz2];

Вниз

Создание экземпляров класса   Найти похожие ветки 

 
Шурик Ш   (2002-09-18 17:14) [0]

Подскажите, пожалуйста новичку, как программно создать несколько экземпляров класса, а указатели сложить в массив.


 
MBo   (2002-09-18 17:21) [1]

for i:=1 to 5 do begin
a:=TmyClass.Create;
a.X:=1l
... устанавливаем, что нужно
List.Add(a);
end;

использование
TMyClass(List[i]).X:=2;



 
Шурик Ш   (2002-09-18 17:24) [2]

Спасибо! А вообще, что лучше использовать массив или List?


 
Шурик Ш   (2002-09-18 17:28) [3]

Кстати, не хочет работать...
TTable.Create; - Not enough actual parameters.


 
qube   (2002-09-18 17:33) [4]

TTable.Create(AOwner: TComponent).


> А вообще, что лучше использовать массив или List?

Это зависит от ситуации. А еще есть TObjectList, TInterfaceList


 
Шурик Ш   (2002-09-18 17:35) [5]

Так я прочитал тоже, а какой параметр там нужно указать?


 
Шурик Ш   (2002-09-18 17:40) [6]

А потом, это совсем не массив указателей, а массив, собственно, экземпляров получается.


 
qube   (2002-09-18 17:41) [7]

У любого компонента может быть владелец. Владелец прибивает всех, кем владеет, перед собственной смертью (во как драматично вышло). Application можешь указать, к примеру.


 
MBo   (2002-09-18 17:41) [8]

Естественно, параметры конструктора зависят от класса.
Для компонентов это Owner, для других классов - другие параметры или вообще их отсутствие.
хелп на TTable.Create не пробовал посмотреть?


 
MBo   (2002-09-18 17:43) [9]

указателей на экземпляры ;)


 
qube   (2002-09-18 17:44) [10]

В Object Pascal собственно экземпляров не бывает, все работа неявно происходит через указатели.


 
Юрий Зотов   (2002-09-18 17:44) [11]

> А потом, это совсем не массив указателей, а массив,
> собственно, экземпляров

В Delphi это одно и то же. Переменная - экземпляр класса всегда и есть указатель на этот экземпляр. И ничто другое.


 
Шурик Ш   (2002-09-18 17:46) [12]

Т.е. совсем не обязательно работать через ^?


 
Шурик Ш   (2002-09-18 17:49) [13]

Тогда получается, что весь массив указателей будет ссылаться на последний экземпляр для примера MBo © (18.09.02 17:21)


 
MBo   (2002-09-18 17:51) [14]

>Т.е. совсем не обязательно работать через ^?
Даже очень вредно, если речь идет об объектах



 
Юрий Зотов   (2002-09-18 19:29) [15]

> весь массив указателей будет ссылаться на последний экземпляр

А если немного подумать?

var
A: array[1..10] of TMyClass;

for i := 1 to 10 do
begin
A[i] := TMyClass.Create(...);
with A[i] do
begin
MyProp := ...;
// и т.д.
end
end;


 
MBo   (2002-09-18 23:04) [16]

>весь массив указателей будет ссылаться на последний экземпляр

???????????

for i:=1 to 5 do begin
//1-я итерация
a:=TmyClass.Create;//выделена память по адресу, например, 1000
a.X:=1l
... устанавливаем, что нужно
List.Add(a);//в List[0] положили 1000

//2-я итерация
a:=TmyClass.Create;//выделена память по НОВОМУ адресу, например, 2000
a.X:=12
... устанавливаем, что нужно
List.Add(a);//в List[1] положили 2000
и т.д.



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

Форум: "Основная";
Текущий архив: 2002.09.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.438 c
14-98338
?
2002-09-05 22:42
2002.09.30
IP


4-98418
Vaddya
2002-08-10 13:02
2002.09.30
Добавление флага стиля и обновление окна


1-98156
Poirot
2002-09-17 21:30
2002.09.30
Проход по всем полям Record????


1-98137
AndreyS
2002-09-17 14:26
2002.09.30
Какой инсталятор лучше?


14-98342
Format
2002-09-04 21:30
2002.09.30
Винда 98 не ставится!





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