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

Вниз

Как узнать класс несозданной переменной?   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
3-52726
Darts
2003-01-30 10:25
2003.02.17
Halycon - хорош ли?


1-52959
Михаил
2003-02-09 22:24
2003.02.17
Обход фаервола!


4-53325
KPV-10k
2003-01-06 21:15
2003.02.17
Как программно можно разблокировать рабочую станцию в Win NT?


1-53117
Maxim2030
2003-02-07 10:37
2003.02.17
Передача параметров через com между Delphi и VC


14-53234
GebbelZ
2003-02-01 00:10
2003.02.17
Как реально повысить скорость модемного интернета





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