![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отловить нажатие на стрелки?
KIR © (2002-04-19 09:53:00)сабж
panov (2002-04-22 13:42:00) [1]>KIR © (22.04.02 13:31)
Создавай новый Topic для новых вопросов.
KIR (2002-04-22 13:31:00) [2]А зачем тогда нужно событие OnKeyPress?
Виктор Щербаков (2002-04-22 13:30:00) [3]KIR © (22.04.02 13:25)
По туму, что OnKeyPress Occurs when a user presses a single character key. А стрелки к ним не относятся.
Song (2002-04-22 13:28:00) [4]На оnKeyPress нужно обрабатывать не коды клавиш,а символы, например
IF Key=#13 then ShowMessage("нажата Enter");
KIR (2002-04-22 13:25:00) [5]Спасибо, народ! Еще вопрс (уже чисто из-за любознательности). А почему это все работает только по OnKeyDown, а по OnKeyPress нет?
Donal_Graeme (2002-04-19 11:06:00) [6]и Form.KeyPreview должно быть True.
и ещё, работать именно для стрелок это будет только если фокус ввода не находится на любом из контролов, так как в этом случае эти клавиши будут ими отрабатываться, и до формы дело не дойдёт.
handra (2002-04-19 11:01:00) [7]Cоздать ActionList, а в нем четыре Action с шот-катами Left, Right, Up и Down.
Donal_Graeme (2002-04-19 10:56:00) [8]и Form.KeyPreview должно быть True.
и ещё, работать именно для стрелок это будет только если фокус ввода не находится на любом из контролов, так как в этом случае эти клавиши будут ими отрабатываться, и до формы дело не дойдёт.
Ally (2002-04-19 10:09:00) [9]
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_LEFT: Label1.Caption := "Left arrow is pressed";
VK_RIGHT: Label1.Caption := "Right arrow is pressed";
VK_UP: Label1.Caption := "Up arrow is pressed";
VK_DOWN: Label1.Caption := "Down arrow is pressed";
else Exit;
end;
end;
Потянет?