Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.012 c
3-52740
VinRaider
2003-01-30 00:57
2003.02.17
Как програмно узнать установлен ли alias в BDE


1-52860
Zergling
2003-02-06 08:51
2003.02.17
Изменение размеров объектов в Run-Time (как в IDE Delphi)


3-52759
fool
2003-01-30 18:21
2003.02.17
Как с помощью T-SQL создать значение


1-53080
Yrtimd
2003-02-06 21:01
2003.02.17
Получение снимка экрана в


14-53196
Cyber Lyric
2003-01-29 19:03
2003.02.17
по поводу уровня этого сайта