Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.13;
Скачать: CL | DM;

Вниз

Много М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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
14-38527
Vit_Os2
2003-01-28 14:58
2003.02.13
Не подскажете, где можна взять какую литературу по СОМ портам!?


14-38505
CashDi
2003-01-28 12:28
2003.02.13
Editor


3-38146
sndanil
2003-01-24 14:39
2003.02.13
IBSQL или IBStorProc


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


1-38236
Sergeyy
2003-02-05 12:15
2003.02.13
всплывающая подсказка