Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехват нажатия клафиш [D7, XP]


Sapos ©   (2007-05-04 16:15:00) 

Напомните, пожалуйста, как мне перехватить нажатие клафиши Enter и какие методы для этого используются?


DVM   (2007-05-05 16:11:00) [1]


> По крайней мере код
> if Key = VK_Return then Button1.Click;
> читается значительно лучше чем
> if Key=#13 then Button.Click;

Спорный вопрос.


{RASkov}   (2007-05-05 16:03:00) [2]

> [18] Leonid Troyanovsky ©   (05.05.07 10:07)

Не прокатит если на этой же форме есть Edit2 и Button2
И соответственно им нужно такое же действо.
:)


Leonid Troyanovsky   (2007-05-05 10:07:00) [3]


> Sapos ©   (04.05.07 16:28) [2]

> В общем мне нужно, чтобы после ввода текста в Edit после
> нажатия Enter выполнялось нажатие кнопки Button1

Button1.Default := True;

--
Regards, LVT.


{RASkov}   (2007-05-04 16:59:00) [4]

> Исходя из ваших соображений следует писать так ?
>
>
> case Key of
> 13: Button1.Click;
> 27: -----
> 125: ---
> 231: ----
> 8: ----
> end;

Нет. У меня был пример с одной "константой", поэтому так жестко, а вообще, конечно, лучше пользовать именованные константы.


Kostafey   (2007-05-04 16:58:00) [5]

> [12] DimaBr ©   (04.05.07 16:51)

Да некрасиво выглядит, не поспоришь.


Игорь Шевченко   (2007-05-04 16:57:00) [6]


> Саша, завтра 13 будет не туда куда сегодня


Не будет


{RASkov}   (2007-05-04 16:56:00) [7]

> [13] DimaBr ©   (04.05.07 16:53)

;) Ну это в другом обработчике.... не в "моем"...


DimaBr   (2007-05-04 16:53:00) [8]


> {RASkov} ©   (04.05.07 16:47) [11]

Не, не так.
if ord(Key) = VK_Return then Button.Click;


DimaBr   (2007-05-04 16:51:00) [9]


> У кого ж рука поднимется его менять?

Всё рано или поздно меняется, все проходит пройдёт и это....

По крайней мере код
if Key = VK_Return then Button1.Click;
читается значительно лучше чем
if Key=#13 then Button.Click;

Исходя из ваших соображений следует писать так ?


case Key of
 13: Button1.Click;
 27: -----
 125: ---
 231: ----
 8: ----
end;


{RASkov}   (2007-05-04 16:47:00) [10]

> [5] DimaBr ©   (04.05.07 16:33)

Тады:
procedure EditKeyPress();
begin
if Key=CHR(VK_Return) then Button.Click;
end;

;) шучу.


Kostafey   (2007-05-04 16:41:00) [11]

> И что ?

Так ведь стандарт есть.
У кого ж рука поднимется его менять?


{RASkov}   (2007-05-04 16:39:00) [12]

> [5] DimaBr ©   (04.05.07 16:33)
> завтра 13 будет не туда куда сегодня

С чего бы это? ;) Клаву менять?


DimaBr   (2007-05-04 16:38:00) [13]


> Так оно ведь не первый год 13.

И что ?


Kostafey   (2007-05-04 16:36:00) [14]

> завтра 13 будет не туда куда сегодня


Так оно ведь не первый год 13.


Sapos   (2007-05-04 16:35:00) [15]

Спасибо!


DimaBr   (2007-05-04 16:33:00) [16]

Саша, завтра 13 будет не туда куда сегодня


DimaBr   (2007-05-04 16:32:00) [17]


procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 if Key = VK_Return then Button1.Click;
end;


{RASkov}   (2007-05-04 16:31:00) [18]

> [2] Sapos ©   (04.05.07 16:28)

procedure EditKeyPress();
begin
 if Key=#13 then Button.Click;
end;


Sapos   (2007-05-04 16:28:00) [19]

В общем мне нужно, чтобы после ввода текста в Edit после нажатия Enter выполнялось нажатие кнопки Button1


DVM   (2007-05-04 16:20:00) [20]

где перехватить?


Наверх

Титульная страница Поиск, карта сайта Написать письмо