Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.20;
Скачать: CL | DM;

Вниз

Перехват нажатия клавиш внутри приложения   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
1-64179
psSnowman
2003-03-06 22:13
2003.03.20
Математические формулы на форме


1-64142
s.ts
2003-03-07 10:59
2003.03.20
TMemo.Lines.Count


6-64262
nemec
2003-01-31 16:42
2003.03.20
Конец загрузки страницы в tWebBrowser


3-64011
sammy
2003-02-28 17:09
2003.03.20
Помогите собрать базу!


1-64149
Leo^Sun
2003-02-26 15:38
2003.03.20
Руссификация MessageDlg