Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск окна... [D6, Win95/98, Win2k]


OlegG ©   (2002-03-06 16:36:00) 

Здравствуйте, уважаемые мастера!
Подскажите пожалуйста, столкнулся со следующей проблемой: необходимо проверить в моем приложении открыта мне нужная форма или нет для того, чтобы не открывать несколько экземпляров. Для этого я ищу окно: FindWindow(nil, "заголовок окна") и если результат <> 0, то вызываю форму: Form:= TForm.Create(Application); Но дело в том, что если я уже взывал эту форму, а потом ее закрывал по Close(), то FindWindow все равно возвращает результат отличный от 0. Может быть нужно что-то добавить в OnDestroy формы?


OlegG   (2002-03-07 09:15:00) [1]

Большое спасибо всем ответившим...


Юрий Зотов   (2002-03-06 18:11:00) [2]

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree // Форма уничтожается при своем закрытии
end

procedure TForm1.FormDestroy(Sender: TObject);
begin
Form1 := nil // Ссылка на форму очищается при ее уничтожении
end;

И теперь создаем так:

if Form1 = nil then Form1 := TForm1.Create(Application);


VuDZ   (2002-03-06 17:40:00) [3]

ShowWindow(hwnd, SW_SHOW) или SW_RESTORE И ваши волосы будут мягкими и шеловистыми.


Виктор Щербаков   (2002-03-06 16:38:00) [4]

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо