Форум: "Основная";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];
ВнизПереназначить функцию кнопки 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c