Текущий архив: 2003.02.17;
Скачать: CL | DM;
ВнизКак узнать класс несозданной переменной? Найти похожие ветки
← →
Igorek (2003-02-10 15:16) [0]
procedure CreateAll(var Objects: array of TObject);
var
I: Integer;
begin
for I := Low(Objects) to High(Objects) do
Objects[I].ClassType.Create;//Error - ClassType не классовый метод
//здесь надо узнать класс переменной, под которым она
//обьявлена где-то в другом месте
end;
procedure f1;
var
Tmp: TSomeType;
begin
f2(Tmp);
end;
Наверное нельзя, так как переменная равна nil и только это передается. Но все равно, может есть способ обойти?
Также надо наверно передавать массив ссылок, а это наверно не одно и то же, что ссылка на массив.
Спасибо.
← →
Igorek (2003-02-10 15:17) [1]Вызов конечно же:
procedure f1;
var
Tmp: TSomeType;
begin
f2([Tmp]);
end;
← →
REA (2003-02-10 16:28) [2]Передавай метаклассы: Array Of TClass, а объекты добавляй в списочек или массив.
← →
Igorek (2003-02-10 16:33) [3]
> REA © (10.02.03 16:28)
т.е.
procedure CreateAll(
Types: array of TClass;
Objects: array of TObject);
?
← →
Igorek (2003-02-10 16:40) [4]Пропадает весь прикол, который состоит в том, что бы можно было вызвать CreateAll([Var1, Var2 ... VarN])
FreeAll(array of TObject) нормально работает.
Страницы: 1 вся ветка
Текущий архив: 2003.02.17;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.008 c