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

Вниз

Много МDI форм один обработчик их создания в RunTime!!!!   Найти похожие ветки 

 
Serghei   (2003-02-03 15:58) [0]

Привет всем!!! Вопрос такой - имеется МДИ приложение с 5-6 формами, которые создаются в рантайме fmParams, fmCopy etc. Для каждой формы написан свой евент Menu1.Click, Menu2.Click etc. Как бы сделать так чтобы все формы можго было создавать вместо отдельных функций fmParams:=TFmParams.Create(...)... одной функцией LaunchForm(frm : Txxx)? ? ?
Всем удачи!!!


 
Skier   (2003-02-03 16:02) [1]

>Serghei

1)TBaseFormClass = class of TBaseForm
2 TFmParams = class(TBaseForm)
TFmCopy = class(TBaseForm)
?


 
Serghei   (2003-02-03 16:15) [2]

> Skier
Я конечно извиняюсь но я не ахти какой спец - выдвигаю еще вопросик, TBaseForm - это какой конкретно класс ?
Мои формы (вернее классы)
TfmEdit, TfmCopy, TfmParams, TfmValute, TfmCalcul - и все пораждены от TForm.


 
Skier   (2003-02-03 16:27) [3]

>Serghei

TBaseForm - класс-предок для всех твоих форм.
1) TBaseForm = class(TForm)
2) TFmParams = class(TBaseForm)
TFmCopy = class(TBaseForm)
............................

TfmCalcul = class(TBaseForm)


 
Serghei   (2003-02-03 16:39) [4]

Хорошо, но ведь класс TForm и так является предком для всех этих форм.
Я написал примерно так:

procedure LaunchMDIForm(frm :TForm);
var ClsT : TClass;
begin
ClsT:=frm.ClassType;
if not Assigned(frm) then
begin
frm:=ClsT.Create(self);
frm.Show;
.....
end;
end;

но вновь создаваемая форма былф чмстой TForm. !!!


 
Serghei   (2003-02-03 17:11) [5]

???


 
Игорь Шевченко   (2003-02-03 17:13) [6]

Например:
procedure TfMain.showDictionary(FormClass: TFormClass; var Reference);
var Instance :TfAbstDictionary;
begin
if not Assigned(TComponent(Reference)) then begin
Instance:=TfAbstDictionary(FormClass.NewInstance);
TComponent(Reference):=Instance;
try
Instance.Create(Self);
except
on E :Exception do begin
TComponent(Reference):=nil;
ShowError(Format("Ошибка при открытии справочника "%s"",[FormClass.ClassName]));
end;
end;
end;
with TfAbstDictionary(Reference) do begin
Show;
if WindowState = wsMinimized then
WindowState := wsNormal;
end;
end;



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

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

Наверх




Память: 0.45 MB
Время: 0.008 c
4-38651
Igor__
2003-01-02 04:15
2003.02.13
Изменение Иконки


8-38399
phatom
2002-10-30 08:32
2003.02.13
Мерцание экрана при перерисовке.


6-38433
Andy78
2002-12-19 13:52
2003.02.13
Обход прокси


14-38486
Ketmar
2002-12-28 21:02
2003.02.13
ищу фанатов Speccy и Zynaps...


3-38093
able
2003-01-25 21:23
2003.02.13
Help!!!





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