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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2008, 12:25   #1
chandrasecar
Форумчанин
 
Аватар для chandrasecar
 
Регистрация: 03.10.2008
Сообщений: 180
Вопрос Убрать фокус со всех компонентов ?

Здравствуйте.
Подскажите, пожалуйста, как снять фокус со всех компонентов находящихся на форме? Дело в том, что при запуске программы обязательно на каком-то компоненте установлен фокус (Edit, List...). Нужно нажимать кнопочку, а при ее нажатии происходят действия с выделенным компонентом, что не нужно... onKeyDown не помог. Следовательно нужно снимать фокус, но только со всех компонентов (такие особенности программы). Как это сделать?
Спасибо за ответы.
лучший подарок женщине-программисту
chandrasecar вне форума Ответить с цитированием
Старый 20.12.2008, 13:07   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

ShowWindow(Handle, SW_SHOWNOACTIVE);
mihali4 вне форума Ответить с цитированием
Старый 20.12.2008, 21:17   #3
chandrasecar
Форумчанин
 
Аватар для chandrasecar
 
Регистрация: 03.10.2008
Сообщений: 180
По умолчанию

Эта функция делает окно неактивным. Мне нужно другое: окно должно быть активным но со всех компонентов, имеющих фокус, его нужно снять. Как это сделать?
лучший подарок женщине-программисту
chandrasecar вне форума Ответить с цитированием
Старый 20.12.2008, 23:59   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

1. Сделать все компоненты временно (на время загрузки или до нажатия определенной клавиши) Enabled:=False;
Тогда будут обрабатываться события только формы.
2. Перекрыть все компоненты панелью по размеру формы.

Последний раз редактировалось mihali4; 21.12.2008 в 00:49.
mihali4 вне форума Ответить с цитированием
Старый 21.12.2008, 00:24   #5
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

для простоты можно пробежаться по всем компонентам через Components[]
Роман Радер вне форума Ответить с цитированием
Старый 21.12.2008, 00:56   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А вообще-то - чего мучаться?
Первой на нажатие клавиши реагирует форма и в ее обработчике можно устанавливать флаг, запрещающий обработку нажатия остальными компонентами...
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фокус формы ElenaA Общие вопросы Delphi 3 09.09.2008 11:38
Фокус на компонент Altera Компоненты Delphi 3 15.06.2008 10:51
Фокус окна Лёка Общие вопросы Delphi 11 28.01.2008 22:30
Фокус формы Stanislav Общие вопросы Delphi 4 15.11.2007 21:57
Фокус? AlexandrDel Помощь студентам 3 17.12.2006 01:54