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

Вниз

MDI и Child   Найти похожие ветки 

 
Talla2k ©   (2003-11-15 12:29) [0]

Имеется следующий код (сам придумал) :

nn:integer; // хендл главного окна

...

begin
nn:=findwindowex(getactivewindow,0,"MDIClient",nil);
if findwindowex(nn,0,"TForm2",nil)=0 then
Application.CreateForm(TForm2, Form2) ;
end;

Вопрос : оптимизировать этот код как-то можно(а то что-то большой)?
и желательно без использования глобальной переменной nn.


 
Nikolay M. ©   (2003-11-15 12:31) [1]


> begin
> nn:=findwindowex(getactivewindow,0,"MDIClient",nil);
> if findwindowex(nn,0,"TForm2",nil)=0 then
> Application.CreateForm(TForm2, Form2) ;
> end;


if (not Assigned (Form2)) then
Application.CreateForm (TForm2, Form2);
?


 
Talla2k ©   (2003-11-15 13:07) [2]

to Nikolay M.
Да это работает(ТОЛЬКО ПРИ ПЕРВОМ ОТКРЫТИИ И ВСЕ) :

program Project1;

uses
Forms,
Unit1 in "Unit1.pas" {Form1},
Unit2 in "Unit2.pas" {Form2},
Unit3 in "Unit3.pas" {Form3};

{$R *.RES}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
// забыл сказать,что я её не закружаю это я про Form2
Application.Run;
end.

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if (not assigned (form2)) then Application.CreateForm(TForm2, Form2);
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;

и соответственно когда я после закрытия Form2 опять хочу её открыть ОНА НЕ ОТКРЫВАЕТСЯ.


 
Romkin ©   (2003-11-15 13:15) [3]

Форма сама закрывается, значит.
В TForm2.OnDestroy поставь Form2 := nil - там уже можно


 
Talla2k ©   (2003-11-15 13:25) [4]

Всем БОЛЬШОЕ СПАСИБО!!! РАБОТАЕТ!!!



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

Текущий архив: 2003.11.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.032 c
11-89803
alfromorel
2003-03-19 10:38
2003.11.27
Как отлавить сообщения ухода мышки с компонента


1-89976
Alexis
2003-11-15 00:46
2003.11.27
Активная ячейка StringGrid а. Какая?


3-89751
space
2003-11-08 00:06
2003.11.27
распространение базы данных на диске


14-90064
Гость
2003-11-05 16:17
2003.11.27
Как определить по номеру, какой это процессор


3-89712
AndrewCh
2003-11-06 12:16
2003.11.27
D5+Sybase SQL Any + W2Kru - error