Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
Solver   (2002-06-06 06:38) [0]

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

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

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


 
Song   (2002-06-06 08:41) [1]

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


 
Solver   (2002-06-06 14:40) [2]

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


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

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


 
esVer   (2002-06-06 14:50) [4]

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


 
Solver   (2002-06-06 14:53) [5]

2Song своему

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


 
Song   (2002-06-06 14:56) [6]

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


 
Solver   (2002-06-06 14:59) [7]

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


 
Song   (2002-06-06 15:06) [8]

А Form1.SetFocus ?


 
Solver   (2002-06-06 15:17) [9]

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


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

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


 
Solver   (2002-06-06 15:26) [11]

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:30) [12]

MSG.Result := 0


 
Solver   (2002-06-06 15:34) [13]

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


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

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


 
Solver   (2002-06-06 16:14) [15]

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


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

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
3-64923
oss
2002-05-24 10:53
2002.06.20
Midas,ADO


1-65162
Kostik_n
2002-06-06 15:37
2002.06.20
Цвет в ячейках StringGrid


3-64947
Creater
2002-05-27 17:32
2002.06.20
Работа с IBX


8-65179
Val
2002-02-04 18:31
2002.06.20
Прозрачность формы и TImage


1-65139
DenNNis
2002-06-07 10:01
2002.06.20
Мне не нужна системная кнопка закрытия формы !!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский