Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизКак создать только один экземляр MDIChild Найти похожие ветки
← →
Dark Man © (2004-03-11 04:52) [0]За ранее благодарен!
← →
Defunct © (2004-03-11 05:41) [1]В модуле где описана MDIChild форма, храним ссылку на первый созданный экземпляр, в этом же модуде пишем функцию создания MDIChild формы:
TMDIChild = class(TForm)
...
End;
Function CreateAChild(AOwner:TComponent):TMDIChild;
implementation
{$R *.dfm}
Var Form : TMDIChild = Nil;
Function CreateAChild(AOwner:TComponent):TMDIChild;
Begin
If Not Assigned(Form) Then Form := TMDIChild.Create(AOwner);
Result := Form;
End;
Далее, в главной форме по событию OnActivate используем функцию CreateAChild для создания MDIChild.
procedure TMainForm.FormActivate(Sender: TObject);
begin
OnActivate := Nil; // И снимаем обработчик, или устанавливаем другой
CreateAChild(Application)
end;
← →
Defunct © (2004-03-11 05:48) [2]Для надежной работы перекройте Destructor MDIChild формы, так чтобы отчищалась лок переменная:
TMDIChild = class(TForm)
...
Destrcutor Destroy;Override;
End;
Function CreateAChild(AOwner:TComponent):TMDIChild;
implementation
{$R *.dfm}
Var Form : TMDIChild = Nil;
Function CreateAChild(AOwner:TComponent):TMDIChild;
Begin
If Not Assigned(Form) Then Form := TMDIChild.Create(AOwner);
Result := Form;
End;
Destrcutor TMDIChild.Destroy;
Begin
Form := Nil;
Inherited;
End;
← →
VMcL © (2004-03-11 07:10) [3]>>Dark Man © (11.03.04 04:52)
>За ранее благодарен!
А [1] и [2] - чисто сердечный ответ.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.034 c