Форум: "Основная";
Текущий архив: 2003.03.20;
Скачать: [xml.tar.bz2];
Вниз
Перехват нажатия клавиш внутри приложения Найти похожие ветки
← →
Alex-21 (2003-03-05 21:59) [0]Как перехватить нажатия клавиш внутри приложения и передать всё в TMemo.
← →
[BAD]Angel (2003-03-05 22:01) [1]в своем приложении?
приложение активно?
← →
Alex-21 (2003-03-05 22:02) [2]Да. В своём приложении. И оно активно.
← →
[BAD]Angel (2003-03-05 22:05) [3]лови месагу WM_KEYDOWN
← →
[BAD]Angel (2003-03-05 22:09) [4]можно проще, но это через ж... ;)
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Memo1.Lines.Add(inttostr(Key));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.ReadOnly:=true;
end;
← →
Alex-21 (2003-03-05 22:17) [5]И это всё будет отображаться по букве в каждой новой строке?
А как мессагу ловить? Поподробней можно?
← →
[BAD]Angel (2003-03-05 22:24) [6]нет будет отображаться ASCII код нажатой клавиши!
например нажал на цифру "1" в Мемо напишется 49 и т.д.
Чтобы были символы естественно надо писать перекодировщик. :)
А пто мессаги рассказывать долго читай в справке, там все есть.
← →
Stvaffniy (2003-03-05 22:26) [7][BAD]Angel © pravilno tebe napisal polzuysya. Pomnitsya escho bilo sobitie takoe OnKeyPress (tak kajetsya, net u menya pod rukoy Delphey) obrabativay ego.
← →
[BAD]Angel (2003-03-05 22:26) [8]Вот почитай тут:
http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988619882&n=15
← →
[BAD]Angel (2003-03-05 22:28) [9]так же есть onKeyUp, onKeyPress
← →
Alex-21 (2003-03-05 22:28) [10]А перекодировщик как писать?
Про мессагу я например ничего не понял. Справка написана-то по-аглицки. С помощью переводчика и то непонятно что получается, лишь набор слов.
← →
Alex-21 (2003-03-05 22:31) [11]А под onKeyPress будут корректно отображаться буквы или нет?
← →
Stvaffniy (2003-03-05 22:35) [12]Sobitie KeyPress (kajetsya)
← →
Beglec (2003-03-05 23:21) [13]Удалено модератором
Примечание: Задай СВОЙ вопрос в отдельной своей ветке
← →
[BAD]Angel (2003-03-05 23:53) [14]Beglec © тогда только мессаги ловить
← →
[BAD]Angel (2003-03-06 00:00) [15]Кстати, насчет перекодировщика :)
добавь три строчки в процедуруprocedure TForm1.Memo1KeyDown
и все :)
может тебе еще сказать, что добавить надо??? :)
Ладно, держи! Ведь коллегам надо помогать! Я тоже начинал с этого!
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
c: char;
begin
c:=chr(Key); // chr(x) - возвращает символ по его коду
Memo1.Lines.add( c);
end;
С перекодировщиком я погорячился :) перепутал с DOS to WIN
← →
_Shade (2003-03-06 07:12) [16]>Angel
А если клавиша была нажата не над Memo1?
← →
[BAD]Angel (2003-03-06 22:21) [17]если приложение активно, то клавиша обязательно будет нажата над Мемо1 (при условии, что больше нету эллементов с фокусом! Если же таковые имеются, то надо убирать с них фокус и ставить его на мемо или саму форму.
← →
Alex-21 (2003-03-08 11:01) [18]Большое спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.03.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c