![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Клавиши
HITMAN © (2006-01-31 21:23:00)Чем узнать какой у клавиши ключ, например enter = #13
HITMAN (2006-02-01 11:47:00) [1]Вот, что я искал, полезная штучка...
http://www.rvsn2.narod.ru/download/code.zip
Германн (2006-02-01 01:44:00) [2]
> HITMAN © (31.01.06 22:16) [4]
>
> Очень смешно, ладно если это $0D Enter то покажите как
> будет в переводе кнопка Delete ??? (не срабатывает)
Имхо, в OnKeyPress попадает только то, что было в печатной машинке. $0D там был. Правда он был выполнен не виде клавиши, а в виде рычага! А вот $0A (LineFeed) как раз был клавишей. Там была даже клавиша Backspace, правда она сама не затирала символ слева, требовалось применение спецмазилки, чтобы "стереть", но возвращала каретку на один символ назад (но только на текущей строке!).
А вот Delete там точно не было, поскольку для этого не нужно было клавиш, достаточно только вышеупомянутой "спецмазилки". ИМХО.
Да. После небольшого перекура понял, что был не прав. Вышеупомянутый рычаг, на самом деле выполнял сразу два действия и CR и LF.
Плохиш (2006-02-01 00:33:00) [3]
> не могу найти инфу негде
Для начала не мешало бы в справку посмотреть.
Игорь Шевченко (2006-01-31 23:19:00) [4]
> как будет в переводе кнопка Delete
127, но она форме не передается.
В OnKeyDown/OnKeyUp клавиша Delete передается как VK_DELETE ($2E)
object fMain: TfMain
Left = 192
Top = 114
Width = 548
Height = 350
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
KeyPreview = True
OldCreateOrder = False
OnKeyDown = FormKeyDown
PixelsPerInch = 96
TextHeight = 13
object lbKeys: TListBox
Left = 52
Top = 68
Width = 121
Height = 189
ItemHeight = 13
TabOrder = 0
end
object emKey: TEdit
Left = 52
Top = 40
Width = 121
Height = 21
TabOrder = 1
end
end
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TfMain = class(TForm)
lbKeys: TListBox;
emKey: TEdit;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
end;
var
fMain: TfMain;
implementation
{$R *.dfm}
procedure TfMain.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
emKey.Text := Format('VK_%.2x = %d', [Key, MapVirtualKey(Key, 2)]);
if emKey.Text <> '' then
lbkeys.Items.Add(emKey.Text);
end;
end.
Zeqfreed (2006-01-31 22:34:00) [5]HITMAN © (31.01.06 22:16) [4]
$08, должно срабатывать.
Format('$%2.2x', [Ord(c)]);замени наFormat('#%d', [Ord(c)]);чтобы выводилось в формате Delphi.
HITMAN (2006-01-31 22:16:00) [6]Очень смешно, ладно если это $0DEnter то покажите как будет в переводе кнопка Delete ??? (не срабатывает)
Zeqfreed (2006-01-31 22:10:00) [7]HITMAN © (31.01.06 22:01) [2]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
function CharToHex(const c : Char) : String;
begin
Result := Format('$%2.2x', [Ord(c)]);
end;
begin
with (Sender as TEdit) do
Text := Text + CharToHex(Key);
Key := #0;
end;
HITMAN (2006-01-31 22:01:00) [8]Так точно!
Мне вообще нужно узнать что под клавишей Delete ну и об остальных для жизни... не могу найти инфу негде.
давно у меня была программа - нажимаешь любую кнопку, а она в буфер сразу код кидает...
Fay (2006-01-31 21:28:00) [9]2 HITMAN © (31.01.06 21:23)
"ключ" - это что? Например #13 - это Char