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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2009, 22:33   #1
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию Запрет смены фокуса чекбокса.

Здраствуйте, господа. Возник такой вопрос: необходимо запретить смену фокуса элементов на форме, когда чекбокс "checked", то есть как только мы его выделили уже должно быть не возможно сменить фокус с этого компонента...Например, табом? Можно сделать это как то попроще?
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 25.02.2009, 22:49   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Сама по себе постановка задачи весьма противоречива - если мы каким-либо образом сделали CheckBox1.Checked:=True, то по вашему же условию мы с него уже не уйдем... В таком виде это реализуемо, например:
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if CheckBox1.Checked then
begin
CheckBox1.SetFocus;
exit;
end;
...
end;// эта же процедура назначается событию FormKeyUp

procedure TForm1.Edit1Enter(Sender: TObject);
begin
if CheckBox1.Checked then
begin
CheckBox1.SetFocus;
exit;
end;
...
end;// эта же процедура назначается событию OnEnter для всех остальных компонентов

Последний раз редактировалось mihali4; 25.02.2009 в 22:52.
mihali4 вне форума Ответить с цитированием
Старый 25.02.2009, 22:53   #3
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

ну, попробуй так
напиши в событии onmousemove формы :
Код:
checkbox1.SetFocus;
а, с клавишей tab щас я попробую...
Joe_Tribbiani вне форума Ответить с цитированием
Старый 25.02.2009, 23:02   #4
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

mihali4, насчет этого думал, только вот каждому компоненту лень прописывать)
Joe_Tribbiani, ну в принципе мышка у меня отключена и она не может изменить фокус компонентов, остается только там, да и вообще только клавиатура.
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 25.02.2009, 23:06   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Mixasik Посмотреть сообщение
mihali4, насчет этого думал, только вот каждому компоненту лень прописывать)
А я разве где-то говорил, что это надо прописывать каждому компоненту???
Делается очень просто - например, для листбокса какого-нибудь - в инспекторе объектов выбираем в его событии OnEnter из выпадающего списка "Edit1Enter" и все...
А прописывается это один раз - в Edit1Enter, как я привел в примере.
mihali4 вне форума Ответить с цитированием
Старый 25.02.2009, 23:12   #6
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

mihali4, спасибо об этом я что-то и не подумал - попробую)
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 25.02.2009, 23:42   #7
roach1967
Пользователь
 
Регистрация: 21.02.2009
Сообщений: 28
По умолчанию

В данном случае удобнее использовать обработку события по потери фокуса (onExit) самого чекбокса:
Код:
procedure TForm1.CheckBox1Exit(Sender: TObject);
begin
	if CheckBox1.Checked then CheckBox1.SetFocus;
end;
Тогда ни мышкой ни с клавиатуры с него не сдвинуться.
В споре рождается истина.
roach1967 вне форума Ответить с цитированием
Старый 25.02.2009, 23:43   #8
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Большое спасибо! Помог!
Страх это слабость и потому, кто испугался уже побежден.

Последний раз редактировалось mihali4; 26.02.2009 в 00:39.
Mixasik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход фокуса на контролах по Tab rumil Win Api 4 27.10.2012 18:46
Потеря фокуса окна в приложении Dr.Badnezz Общие вопросы Delphi 4 01.12.2008 23:18
перемещение фокуса в ДБГриде opel.omega Общие вопросы Delphi 2 26.11.2008 13:50
Алгоритм смены столбцов в массиве DeFace Общие вопросы C/C++ 23 21.11.2008 01:30
Окно без фокуса Олвин Общие вопросы Delphi 4 13.10.2008 23:36