Главная страница
    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.005 c
1-65100
z_z
2002-06-06 22:30
2002.06.20
Вопросик про TTimer


1-65006
lipskiy
2002-06-08 03:32
2002.06.20
UBPFD - Бесплатная база готовых решений для Delphi


3-64961
victo73
2002-05-27 01:33
2002.06.20
Как вставить запись в середину таблицы?


1-65101
Демон
2002-06-07 01:17
2002.06.20
2 вопроса про Таймер!!!


1-65129
Вовчик
2002-06-06 02:17
2002.06.20
Перерисовка Canvas





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