Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Смена фокуса окна, Как перехватить событие? 
:(
    Опции темы
Competitor
Дата 30.1.2006, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: нет
Всего: -1



Когда запускается программа, форма Form1 становится активной. Как перехватить событие, когда какая-либо другая форма становится актиной, активной в смысле под фокусом. Т.е. на Form1 выполняются вычисления, если я активировал другое окно Windows (например, папку какую-нибудь), все вычисления на Form1 должны быть приостановлены.
Событие OnActiveFormChange не подходит. Оно не отслеживает те случаи, когда я не запускаю новую форму, а просто перекрываю Form1.


PM MAIL WWW   Вверх
Rennigth
Дата 30.1.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Competitor
CM_DEACTIVATE


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
_hunter
Дата 30.1.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



тогда WM_KILLFOCUS лови


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Competitor
Дата 30.1.2006, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: нет
Всего: -1



_hunter
WM_KILLFOCUS? Что это вообще такое?? Поподробнее, пожалуйста.

Rennigth
Цитата

CM_DEACTIVATE

Посмотрел в справке по Delphi есть макой метод DEACTIVATE. Как это использовать?
Например, когда другое окно активизирую, переменная A должна принять значение True.
PM MAIL WWW   Вверх
Fin
Дата 30.1.2006, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: нет
Всего: 10



Сообственно MSDN http://msdn.microsoft.com/library/default....m_killfocus.asp


Это сообщение отредактировал(а) Fin - 30.1.2006, 16:48


--------------------
Пролетал мимо.
PM MAIL   Вверх
_hunter
Дата 30.1.2006, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



сообщение это такое...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Competitor
Дата 30.1.2006, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: нет
Всего: -1



Сделал вот как:
Код

procedure WMKillFocus(var Message: TWMSetFocus); message WM_KILLFOCUS;
procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;

procedure TFrm_Knight.WMKillFocus(var Message: TWMSetFocus);
  begin
    Focus:=5;
  end;

procedure TFrm_Knight.WMSetFocus(var Message: TWMSetFocus);
  begin
  Focus:=0;
  end;
//////////////////////////////////////
if Form1.Focus=5 then 
while Form1.Focus=5 do ;

Типа WM_KILLFOCUS посылается окну, когда оно теряет фокус, переменная Focus:=5.
А сообщение WM_SETFOCUS посылается окну, когда оно получает фокус, переменная Focus:=0.
Если все верно, то когда окно не активно, Focus=5, выполняются пустые циклы, когда окно получит фокус while завершит свою работу, программа начнет работать далее.
Однако уже при загрузке программы Focus по всей видимости становится равен 5, окно вообще блокируется.
Где ошибка?
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0494 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.