Форум: "Основная";
Текущий архив: 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