Форум: "Основная";
Текущий архив: 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.007 c