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

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

Клавиши


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


Наверх

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