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

Вниз

Можно ли по имени класса получит ссылку на класс и его методы   Найти похожие ветки 

 
NewD   (2003-11-14 10:00) [0]

Можно ли по имени класса получит ссылку на класс и его методы.
Что-то вроде

если объявлен тип:

type
TForm1 = class(TForm)


далее в программе

procedure createForm(Sender: TObject);
var MyForm:variant;
begin
MyForm:=<функция возвращающая класс>("TForm1").create;
....


 
MBo   (2003-11-14 10:12) [1]

FindClass, GetClass, RegisterClass
посмотри реализацию Application.CreateForm


 
NewD   (2003-11-14 10:23) [2]

>MBo
уже пробовал так: вылезает ошибка ACCSESS VIOLATION и т.д.

var MyForm:tpersistent;

begin
try
MyForm:=getclass("TForm1").create; - здесь вылезает ошибка
tform(MyForm).ShowModal;
finally
MyForm.Free;
end
end;

что не так с кодом ?


 
NewD   (2003-11-14 10:31) [3]

а в каком модуле
"посмотри реализацию Application.CreateForm"


 
Zacho   (2003-11-14 10:38) [4]


> NewD (14.11.03 10:23) [2]

Вот тебе простейший пример:

var
f:TForm;
begin
RegisterClass(TForm2);
f:=TFormClass(GetClass("TForm2")).Create(Self);
f.Show;
end;


 
Юрий Зотов   (2003-11-14 10:38) [5]

> NewD (14.11.03 10:23) [2]

1. RegisterClass(es)
2. with TFormClass(FindClass("TForm1")).Create(...) do
try
ShowModal
finally
Free
end;


 
NewD   (2003-11-14 10:49) [6]

Спасибо за код -
только почему то при ShowModal вылетает ошибка
код абсолтно такой как указали


 
Юрий Зотов   (2003-11-14 11:49) [7]

Если ошибку дает не ShowModal, а FindClass, значит, Вы забыли вызвать RegisterClass(TForm1). Если же ее дает именно ShowModal, то ошибка в коде самой формы.


 
NewD   (2003-11-14 12:42) [8]

Не пойму в чем проблема - так просто форма запускается,
а когда TFormClass(GetClass("TForm2")).Create(Self)
- нет

создал путую форму - так все работает


 
Zacho   (2003-11-14 12:49) [9]


> NewD (14.11.03 12:42) [8]

Приведи свой код полностью. И укажи, на какой строке именно ошибка.


 
Юрий Зотов   (2003-11-14 13:46) [10]

И какое сообщение об ошибке вылетает. И желательно ТОЧНО, а не "что-то там типа ля-ля-ля."

Скорее всего, Вы не вызвали RegisterClass. И не использовали именно FindClass вместо GetClass (иначе бы получили точную диагностику).

Но гадать на кофейной гуще я, извините, больше не буду. Давайте точный код, точную строку ошибки и точный текст сообщения, тогда есть смысл разговаривать дальше.



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

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

Наверх





Память: 0.46 MB
Время: 0.01 c
6-79072
aj_ua
2003-09-30 15:17
2003.11.24
Разрыв Dial-up соединения под Windows 2000


1-79048
Condor
2003-11-13 14:33
2003.11.24
Текст с прозрачам фоном


14-79105
snake1977
2003-11-02 14:58
2003.11.24
Учиться, учиться и учиться.....


1-78920
Rradion
2003-11-12 14:33
2003.11.24
Алгоритм Бинарного Поиска - помогите плиз...


1-78880
Lapin
2003-11-13 10:11
2003.11.24
как получить HWND?





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