![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Окно не становится активно при появлении [D5, Win95/98, WinME, NT4, Win2k, WinXP]
Great © (2002-02-17 09:09:00)Проблема следующая: есть программка, главное окно которой пропадает и появляется по горячей клавише.
Если при пропадании с экрана окошко было активно, то и при следующем появлении на экран оно показывается активным.
Но если при пропадании с экрана оно было неактивным то и появляется оно тоже неактивное и приходится
шелкать мышью чтобы его активировать.
В WinXP помогла следующая комбинация:
procedure TForm1.FormShow(Sender: TObject);
begin
SendMessage(GetForegroundWindow(),WM_ACTIVATE,WA_INACTIVE,0);
SendMessage(MainForm.Handle,WM_ACTIVATE,WA_ACTIVE,0);
end;
но в Win98 ничего не помогает, пробовал SetActiveWindow, SetForegroundWindow и прочие.
Ничего не помогло как будто Win98 их игнорирует :(
Помогите, как сделать чтобы в ЛЮБОМ Windows окно при появлении на экран было активным
и имело фокус ввода!
Sasha9 (2002-02-24 13:28:00) [1]Можно ещё
Form1.BringToFront;
Form1.SetFocus;
VuDZ (2002-02-24 12:36:00) [2]это старый прикол win9x - надо сделать окно поверх всех типа модального, потом снять этот флажок, если я правильно помню...
Song (2002-02-24 10:20:00) [3]procedure TForm23.FormShow(Sender: TObject);
Var Rect:TRect;
begin
GetWindowRect(Handle,Rect);
SetWindowPos(Handle,HWND_TOPMOST,Rect.Left,Rect.Top,Rect.Right-Rect.Left,Rect.Bottom-Rect.Top, SWP_SHOWWINDOW);
end;
Great (2002-02-24 09:38:00) [4]Пробовал, не помогает
Dimaond Cat (2002-02-22 01:39:00) [5]Попробуй ShowWindow