Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c