![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить что мое окно наверху?
leonidus © (2008-06-01 12:23:00)Необходимо понять, является ли окно моей программы активным в данный момент, т.е. работает ли с ним пользователь или оно перекрыто другими окнами, как это сделать?
Anatoly Podgoretsky (2008-06-01 14:49:00) [1]The GetForegroundWindow function returns the handle of the foreground window (the window with which the user is currently working).
engine (2008-06-01 14:07:00) [2]http://delphiworld.narod.ru/base/wm_activate.html
{RASkov} (2008-06-01 13:40:00) [3]> [4] leonidus (01.06.08 13:27)
> то FormActivate все равно не генерируется.
Оно генерируется только в пределах текущего приложения....
Тебе нужно смотреть на свойства OnActivate и OnDeactivate у TApplication'а...
{RASkov} (2008-06-01 13:40:00) [4]> Тебе нужно смотреть на свойства OnActivate и OnDeactivate
> у TApplication'а...
Стоп... мыж в винапи :) См [2]
leonidus (2008-06-01 13:27:00) [5]engine так не получается, FormActivate срабатывает только один раз при старте программы, и даже если я разворачиваю поверх моего окна окно другой программы и затем опять перехожу в окно моей, то FormActivate все равно не генерируется.
{RASkov} (2008-06-01 13:24:00) [6]> ShowMessage('Пользователь работает с программой');
Не факт.... ни [1] ни [2] не факт :)
{RASkov} (2008-06-01 13:22:00) [7]GetActiveWindow сравнивай с хэндлом своего окна. Равно - значит твое активно, нет... ну на нет и суда нет...
engine (2008-06-01 12:29:00) [8]
procedure TForm1.FormActivate(Sender: TObject);
begin
ShowMessage('Пользователь работает с программой');
end;