Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Значение по коду клавиши


Автор: maddoc 28.6.2005, 16:30
Как получить значение клавиши, то есть у меня есть Edit
в нем в функции KeyDown возвращает

Автор: szz 28.6.2005, 16:53
Смотри help билдера - там написано все.

Автор: maddoc 28.6.2005, 17:00
ну так если бы я там нашел, я бы не спрашивал

Автор: szz 28.6.2005, 17:03
В таком случае набиваешь таблицу сам - сначала ручками щелкаешь и смотришь что билдер возвращает - и в табличку по одному суешь. Кнопок на клавиатуре не много - быстро справишься.

Автор: Duster 28.6.2005, 18:04
Сделай событие OnKeyPress! Там есть значение клавиши... &Key

Автор: maddoc 28.6.2005, 19:25
так и есть но мне надо отсеить не буквенные (123 insert delete f1f2f3 и тд )

Автор: szz 29.6.2005, 10:22
нене, делай onDown, так больше контроля.
сделай сначала в публичной части класса формы массив
Код

AnsiString my_keys[102]; // кажется именно столько кнопок на клавиатуре. Или больше? не помню..., ну, посчитай и поставь тут нужное число. 


Потом в кончтрукторе формы пишешь

Код

my_keys[13] = "<enter>";
my_keys[123] = "<insert>";
my_keys[код клавиши F1] = "<F1>";
my_keys[код клавиши Shift] = "<Shift>";
my_keys[код клавиши A] = "A";
my_keys[код клавиши 1] = "1";
// и так далее пока все не перечислишь -  их немного.

Автор: Diablo 2.7.2005, 13:29
Если я правельно тебя понял, то тебе надо это
Код
Edit1->Text = Key;

Автор: MaximNR 2.7.2005, 14:35
обычно делают так:

Код

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    if ( Key == VK_INSERT ) Edit1->Text = "INSERT";
}

//---------------------------------------------------------------------------




Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)