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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2015, 14:40   #1
Zis67
Пользователь
 
Аватар для Zis67
 
Регистрация: 06.04.2011
Сообщений: 80
По умолчанию Автофокус своего окна.

Собственно программа помещается в трей, при на жатии на иконку она всплывает, и вот тут нужно чтобы окно забирало фокус, и при запуске программы из иде так и получается (правда только один раз, хотя до этого вроде стабильно было), но если запускать отдельно то окно не берёт фокус. Как это можно сделать.
Zis67 вне форума Ответить с цитированием
Старый 03.03.2015, 14:59   #2
Konstantin_ua
Не судите строго
Форумчанин
 
Аватар для Konstantin_ua
 
Регистрация: 31.03.2011
Сообщений: 202
По умолчанию

Код:
function TWinControl.Focused: Boolean;
begin
  Result := (FHandle <> 0) and (GetFocus = FHandle);
end;
не оно?
Konstantin_ua вне форума Ответить с цитированием
Старый 03.03.2015, 18:16   #3
Zis67
Пользователь
 
Аватар для Zis67
 
Регистрация: 06.04.2011
Сообщений: 80
По умолчанию

Цитата:
Сообщение от Konstantin_ua Посмотреть сообщение
Код:
function TWinControl.Focused: Boolean;
begin
  Result := (FHandle <> 0) and (GetFocus = FHandle);
end;
не оно?
Никак недогоню как этим пользоваться).
Попробовал поместить в событие клика на трей и репаинт проверку:
Код:
if getfocus=form1.Handle then Form1.Canvas.TextOut(0,0,'ok') else Form1.Canvas.TextOut(0,0,'(');
Если из среды запускать первые два раза пишет ок, но уже со второго раза форма не отзываться на кейдаун\кейап, если отдельно от среды то один раз пишет ок но нереагирует.
Zis67 вне форума Ответить с цитированием
Старый 03.03.2015, 20:44   #4
Zis67
Пользователь
 
Аватар для Zis67
 
Регистрация: 06.04.2011
Сообщений: 80
По умолчанию

с помощью function TWinControl.Focused: Boolean; насколько я понял также можно проверить, но фокус этим не поставиш.
Zis67 вне форума Ответить с цитированием
Старый 04.03.2015, 02:06   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,896
По умолчанию

Цитата:
Сообщение от Zis67 Посмотреть сообщение
Собственно программа помещается в трей, при на жатии на иконку она всплывает, и вот тут нужно чтобы окно забирало фокус, и при запуске программы из иде так и получается (правда только один раз, хотя до этого вроде стабильно было), но если запускать отдельно то окно не берёт фокус. Как это можно сделать.
Ну прям детский сад.
"программа помещается в трей"
"при нажатии на иконку она всплывает"
"окно забирало фокус".
Программы никогда не помещаются в "трей". Программы никогда не "всплывают". Окна никогда не "забирают фокус".
northener вне форума Ответить с цитированием
Старый 04.03.2015, 06:10   #6
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

SetFocus, не подходит?
ZuBy вне форума Ответить с цитированием
Старый 04.03.2015, 08:11   #7
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Попробуй
Код:
procedure TForm1.TrayIcon1Click(Sender: TObject);
begin
  Application.Restore;
  SetForegroundWindow (Handle);
end;

Последний раз редактировалось Sibedir; 04.03.2015 в 08:36.
Sibedir вне форума Ответить с цитированием
Старый 04.03.2015, 17:08   #8
Zis67
Пользователь
 
Аватар для Zis67
 
Регистрация: 06.04.2011
Сообщений: 80
По умолчанию

ZuBy, пробовал, не подходит.
Sibedir, SetForegroundWindow (Handle); - спасибо, то что нужно.
Zis67 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить дескриптор своего окна ilich7 Win Api 5 29.07.2014 18:22
Периодический показ модального окна поверх основного окна приложения Curvelaker Windows Forms 0 01.05.2013 15:24
примагничевание главного окна своего приложения к окнам чюжих приложений beegl Общие вопросы Delphi 7 15.03.2013 13:35
Inno Setup - компоненты окна поверх фона окна инсталятора. Человек_Борща Общие вопросы по программированию, компьютерный форум 2 13.10.2012 00:22
Фокусировать окна из своего приложения MyLastHit Общие вопросы Delphi 3 16.12.2010 03:02