Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.01.2008, 19:25   #1
Лёка
Пользователь
 
Регистрация: 09.01.2008
Сообщений: 42
По умолчанию Фокус окна

Как определить, окно имеет фокус или нет? Если окно приняло фокус делать то то, если потеряло, делать то то. Знаю что функция SetForegroundWindow(Handle) делает окно активным. Но как обратится как к своиству

Последний раз редактировалось Лёка; 28.01.2008 в 19:26. Причина: Забыл дописать
Лёка вне форума
Старый 28.01.2008, 19:41   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Вызвать GetFocus() и сравнить HWND который она вернет и данного окна. Кроме того, есть еще сообщения WM_SETFOCUS и WM_KILLFOCUS.
B_N вне форума
Старый 28.01.2008, 19:50   #3
Лёка
Пользователь
 
Регистрация: 09.01.2008
Сообщений: 42
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
Вызвать GetFocus() и сравнить HWND который она вернет и данного окна. Кроме того, есть еще сообщения WM_SETFOCUS и WM_KILLFOCUS.
ээээ, а попонятней можно, а? пасиб
Лёка вне форума
Старый 28.01.2008, 19:59   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Ну куда же понятнее-то... написать два обработчика, один для WM_SETFOCUS - вызывается, когда фокус пришел, один для WM_KILLFOCUS - фокус ушел. Надеюсь, Вы имеете в виду именно фокус, активацию окна отображают WM_ACTIVATE, WM_ACTIVATEAPP, WM_NCACTIVATE.
B_N вне форума
Старый 28.01.2008, 20:00   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
Вызвать GetFocus() и сравнить HWND который она вернет и данного окна.
пример с GetForegroundWindow:
Код:
function IsWindowInFocus(WND:HWND):boolean;
begin
  Result:=GetForegroundWindow=WND;
end;

.....//где-нибудь в коде ..........
  if IsWindowInFocus(FindWindow(nil,'Мой компьютер')) then ShowMessage('оно активно!!!');
rpy3uH вне форума
Старый 28.01.2008, 20:19   #6
Лёка
Пользователь
 
Регистрация: 09.01.2008
Сообщений: 42
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
Ну куда же понятнее-то... написать два обработчика, один для WM_SETFOCUS - вызывается, когда фокус пришел, один для WM_KILLFOCUS - фокус ушел. Надеюсь, Вы имеете в виду именно фокус, активацию окна отображают WM_ACTIVATE, WM_ACTIVATEAPP, WM_NCACTIVATE.
А в чем разница между фокусом и активацией?
Лёка вне форума
Старый 28.01.2008, 20:27   #7
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Окно с фокусом - это то окно, в которое идет ввод с клавиатуры, скажем один из множества Edit-контролов на форме, активное окно - это, приближенно говоря, окно с "ярким" заголовком, скажем, форма - владелец Edit-контрола, имеющего фокус. Подчеркиваю, все несколько упрощенно.
B_N вне форума
Старый 28.01.2008, 20:28   #8
Лёка
Пользователь
 
Регистрация: 09.01.2008
Сообщений: 42
По умолчанию

ну вот значит активно не активно, плиз. пару строчек черкануть)))
Лёка вне форума
Старый 28.01.2008, 21:18   #9
chingiz
Пользователь Подтвердите свой е-майл
 
Аватар для chingiz
 
Регистрация: 21.05.2007
Сообщений: 88
По умолчанию

Скажем если Edit в фокусе то Edit.Focused = True;
Уже Чему-то научился Но этого мало
chingiz вне форума
Старый 28.01.2008, 22:01   #10
Лёка
Пользователь
 
Регистрация: 09.01.2008
Сообщений: 42
По умолчанию

а вдруг не эдит, дргуие элементы? надо форму
Лёка вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фокус на компонент Altera Компоненты Delphi 3 15.06.2008 10:51
закрыть все дочерни окна, кроме главного окна Worms Общие вопросы Delphi 2 03.12.2007 22:18
Фокус формы Stanislav Общие вопросы Delphi 4 15.11.2007 21:57
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? dimonchuk Общие вопросы Delphi 1 11.08.2007 12:13
Фокус? AlexandrDel Помощь студентам 3 17.12.2006 01:54