Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.08;
Скачать: CL | DM;

Вниз

Переназначить функцию кнопки TAB на ENTER...   Найти похожие ветки 

 
lightix   (2003-04-23 17:13) [0]

Есть такая проблема - юзера привыкли ходить по полям кнопкой ENTER, а по умолчанию эту функцию выполняет TAB.
Как переназначить кнопки для всего приложения (формы) или может можно для всех форм сразу?
Прописывание SetFocus"a на каждом элементе по нажатию VK_RETURN не предлагать.
Пытался на уровне формы в OnKeyDown сделать
if (Key==VK_RETURN)
Key=VK_TAB;
Не работает почему-то :( Да и это не совсем то чего хотелось бы. Нужно именно назначить кнопке ENTER выполнение этой функции.
Помогите толковым советом.


 
Skier ©   (2003-04-23 17:26) [1]

Обработку TAB см. в
procedure TCustomForm.CMDialogKey(var Message: TCMDialogKey);
Надеюсь дальнейшие действия понятны...


 
AlexKr   (2003-04-23 17:29) [2]

Попробуй так:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (Key=#13) then Perform(WM_NEXTDLGCTL,integer(false),
integer(false));
end;


 
default ©   (2003-04-23 17:32) [3]

можем вообще ничего не предлагать


 
NickBat ©   (2003-04-23 17:39) [4]

Отучать надо пользователей-отучать. В конце концов работают в виндоус.


 
lightix   (2003-04-23 17:46) [5]

AlexKr ©, дело в том что Form1::OnKeyPress не срабатывает когда я нахожусь в TEdit ...... Так бы и Key=VK_TAB сработало ....

Skier ©, Что то я такого в хелпе найти не могу :((


NickBat ©, я бы с удовольствием, да нельзя ... Жалуются они ...



 
Skier ©   (2003-04-23 17:50) [6]

>lightix

> Что то я такого в хелпе найти не могу :((

VCL source code. Forms.pas


 
lightix   (2003-04-23 17:57) [7]

Ага, понял, нашел, разобрался ;)
Только на какое событие повесить SelectNext(...) ? В какой момент его вызывать? Например если в TForm::OnKetDown то не работает ...


 
Skier ©   (2003-04-23 18:07) [8]

1)
procedure TYourForm.CMDialogKey(var Message: TCMDialogKey);
begin
if Message.CharCode <> VK_TAB then inherited;
end;

2)TYourForm.KeyPreview := True;

3)TYourForm.OnKeyDown(...)
begin
if Key = VK_RETURN then SelectNext(ActiveControl, ssShift in Shift , True);
end;


 
Игорь Шевченко ©   (2003-04-23 18:09) [9]

А лучше через хук сделать...который WH_GETMESSAGE. И в сообщениях WM_KEYDOWN и WM_KEYUP транслировать Tab в Enter. Разумеется, не все подряд.


 
Viktor   (2003-04-24 02:12) [10]

KeyPreview := True

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
Perform(CM_DialogKey, VK_TAB, 0);
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2003.05.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
1-23112
Sour
2003-04-27 13:32
2003.05.08
Почему на канве Tbitmap ничего не рисуется?


1-23106
Demon_mhm
2003-04-25 19:51
2003.05.08
как организовать меню с галочками?


14-23354
Michael
2003-04-20 20:22
2003.05.08
Посовутйте хорошую книгу по Си


3-22961
Bill
2003-04-17 09:07
2003.05.08
Работа со значениями в DBGrid.


6-23251
BangoBango
2003-03-12 15:29
2003.05.08
Госпада!!! Возможно кто нибудь из Вас знает , как из TImage...