Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.009 c
1-89984
adif
2003-11-17 14:10
2003.11.27
Как узнать занятость файла приложением?


3-89702
phan
2003-11-10 15:58
2003.11.27
Сохранить картинку в поле MEMO


14-90054
Е-Моё имя
2003-11-05 14:57
2003.11.27
Как сделать строку длиной больше мильярда?


14-90057
Denis_Ac
2003-10-31 08:58
2003.11.27
Вот Интересно стало


1-89814
TUser
2003-11-17 10:34
2003.11.27
FullScreen





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский