![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Коды клавиш [D7, WinXP]
Viktop © (2005-01-27 12:56:00)Подскажите пожалуйста, где можно взять коды клавиш (#13 - Enter, #8 - BackSpace и т.д.). Конкретно интересует Delete, Del и сочетания клавиш (Ctrl+C, Ctrl+V, Ctrl+X)
palva (2005-01-27 15:58:00) [1]В Windows это тоже работает. Установите следующий обработчик OnKeyPress
procedure TForm1.KeyPress(Sender: TObject; var Key: Char);
begin
ShowMessageFmt('%d', [Ord(Key)]);
end;
и нажимайте всякие Ctrl-C Ctrl-V
palva (2005-01-27 15:49:00) [2]Ctrl-A имеет код 1, Ctrl-B имеет код 2 и т. д. Правда некоторые коды могут перехватываться операционной системой и интерпретироваться по-своему.
{$APPTYPE CONSOLE}
uses Windows, Dialogs;
var
s: String;
i: Integer;
begin
s := '123';
readln(s); // Если введем здеь Ctrl-A Ctrl-B Ctrl-X Enter
for i:=1 to 3 do writeln(Ord(s[i]));
// то программа выдаст 1 2 24
end.
А если ввести Ctrl-C, то это вызовет завершение программы.
ssk (2005-01-27 13:10:00) [3]>сочетания клавиш (Ctrl+C, Ctrl+V, Ctrl+X)
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) and (Key = Ord('C')) then
Form1.Caption := 'CTRL+C'
end;
TUser (2005-01-27 13:04:00) [4]vk_delete типа Word. Обрабатывается не в OnKeyPress, а в OnKeyDown/Up. На сочетания клавишь поставь Action (см. TActionManager).
Smithson (2005-01-27 13:03:00) [5]Сочетания клавиш кодов не имеют.
Раз уж ты программируешь в Windows, то и пользуйся его услугами.
При нажатии на клавишу Windows присылает тебе сообщение, из которого видно - что нажали, какие служебные клавиши были нажаты в этот же момент.