Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];

Вниз

Клавиши   Найти похожие ветки 

 
HITMAN ©   (2006-01-31 21:23) [0]

Чем узнать какой у клавиши ключ, например enter = #13


 
Fay ©   (2006-01-31 21:28) [1]

2 HITMAN ©   (31.01.06 21:23)
"ключ" - это что? Например #13 - это Char


 
HITMAN ©   (2006-01-31 22:01) [2]

Так точно!
Мне вообще нужно узнать что под клавишей Delete ну и об остальных для жизни... не могу найти инфу негде.
давно у меня была программа - нажимаешь любую кнопку, а она в буфер сразу код кидает...


 
Zeqfreed ©   (2006-01-31 22:10) [3]

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:16) [4]

Очень смешно, ладно если это   $0D Enter то покажите как будет в переводе кнопка Delete ??? (не срабатывает)


 
Zeqfreed ©   (2006-01-31 22:34) [5]

HITMAN ©   (31.01.06 22:16) [4]
$08, должно срабатывать.
Format("$%2.2x", [Ord(c)]); замени на Format("#%d", [Ord(c)]); чтобы выводилось в формате Delphi.


 
Игорь Шевченко ©   (2006-01-31 23:19) [6]


> как будет в переводе кнопка 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.


 
Плохиш ©   (2006-02-01 00:33) [7]


> не могу найти инфу негде

Для начала не мешало бы в справку посмотреть.


 
Германн ©   (2006-02-01 01:44) [8]


> HITMAN ©   (31.01.06 22:16) [4]
>
> Очень смешно, ладно если это   $0D Enter то покажите как
> будет в переводе кнопка Delete ??? (не срабатывает)


Имхо, в OnKeyPress попадает только то, что было в печатной машинке. $0D  там был. Правда он был выполнен не виде клавиши, а в виде рычага! А вот $0A (LineFeed) как раз был клавишей. Там была даже клавиша Backspace, правда она сама не затирала символ слева, требовалось применение спецмазилки, чтобы "стереть", но возвращала каретку на один символ назад (но только на текущей строке!).
А вот Delete там точно не было, поскольку для этого не нужно было клавиш, достаточно только вышеупомянутой "спецмазилки". ИМХО.

Да. После небольшого перекура понял, что был не прав. Вышеупомянутый рычаг, на самом деле выполнял сразу два действия и CR и LF.


 
HITMAN ©   (2006-02-01 11:47) [9]

Вот, что я искал, полезная штучка...

http://www.rvsn2.narod.ru/download/code.zip



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.011 c
6-1132634383
hed
2005-11-22 07:39
2006.03.05
Передача файла на apache сервер


2-1140078068
VanDet
2006-02-16 11:21
2006.03.05
Здраствуйте помогите мне написать программу


4-1134521280
THandle
2005-12-14 03:48
2006.03.05
Как правильно вывести окно поверх остальных окон?


6-1132663160
XfroSt
2005-11-22 15:39
2006.03.05
Пингуем по длинному IP


2-1140182876
Newbee
2006-02-17 16:27
2006.03.05
Подскажите, почему не работает ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский