Главная страница
    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.009 c
14-79148
Жук
2003-10-23 11:06
2003.11.24
Иваново !


1-78931
falkton
2003-11-12 12:05
2003.11.24
параметры командной строки


3-78857
Andrey000
2003-11-03 11:56
2003.11.24
Помогите с ADO не освобождается память


6-79100
Tommy
2003-09-26 11:17
2003.11.24
люди напишите где почитать как работать с Socketami в отдельном t


3-78779
Alex-kosmonavt
2003-11-05 14:07
2003.11.24
Excel





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