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

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

Как вернуть фокус окну приложения?


Solver ©   (2002-06-06 06:38:00) 

Обрабатываю WM_KILLFOCUS ...

Application.Restore
Application.BringToFront
SetFocus
SetForegroundWindow(...)
SetActiveWindow(...)
SendMessage(...WM_SETFOCUS...)

Всё выше перечисленное не помогает!


Игорь Шевченко   (2002-06-06 16:18:00) [1]

А для главного окна надо не WM_KILLFOCUS, а WM_ACTIVATEAPP


Solver   (2002-06-06 16:14:00) [2]

Ноль реакции для главного окна...


Игорь Шевченко   (2002-06-06 15:44:00) [3]

procedure TForm2.WMKillFocus(var Message: TWMKillFocus);
begin
Message.Result := 0;
SetActiveWindow(Handle);
end;


Solver   (2002-06-06 15:34:00) [4]

Я даже в вершину очереди "вставлял" сообщение.
2Игорь Шевченко Не работает.


Игорь Шевченко   (2002-06-06 15:30:00) [5]

MSG.Result := 0


Solver   (2002-06-06 15:26:00) [6]

type
TForm1 = class(TForm)
private
Procedure DetKillFocus(var MSG : TMessage ) ; message WM_KillFocus ;

...

procedure TForm1.DetKillFocus(var MSG: TMessage);
begin
SetForegroundWindow(Form1.Handle) ;
// Application.Restore ;
// Application.BringToFront ;
PostMessage(Handle,Wm_SetFocus,0,0) ;
end;

end.


Игорь Шевченко   (2002-06-06 15:19:00) [7]

А код ваш поглядеть можно ?


Solver   (2002-06-06 15:17:00) [8]

тоже, я же писал!


Song   (2002-06-06 15:06:00) [9]

А Form1.SetFocus ?


Solver   (2002-06-06 14:59:00) [10]

2Song PostMessage(Form1.Handle,WM_SETFOCUS,0,0) - не работает, так понятней?


Song   (2002-06-06 14:56:00) [11]

Фокус может иметь форма или любой объект на ней. Так понятней ?
Вы думаете HWND имеет только Application ?


Solver   (2002-06-06 14:53:00) [12]

2Song своему

2esVer Так я тоже так думал. Но если с определённым интервалом посылать, не обрабатывая WM_KILLFOCUS - тоже нет эффекта!


esVer   (2002-06-06 14:50:00) [13]

Если не ошибаюсь, WM_KILLFOCUS посылается окну ДО того, как оно потеряет фокус. Т.е. как бы предупреждение, а потому и не работает.


Song   (2002-06-06 14:43:00) [14]

Дык чужому приложению что ли ?


Solver   (2002-06-06 14:40:00) [15]

Я и не посылаю на Application, посылаю на по HWND главной формы - не работает!


Song   (2002-06-06 08:41:00) [16]

Пошлите WM_SETFOCUS не на Application а на MainForm


Наверх

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