Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.011 c
1-64117
mmmh
2003-03-11 00:02
2003.03.20
как сделать так чтобы комбо бох не закрывался пока не сделан выбо


14-64327
iZEN
2003-03-03 16:22
2003.03.20
Оцените сайт: http://izen.by.ru


3-63931
OlegM
2003-03-03 14:26
2003.03.20
Почему не работает прога с таблицами созданными на Sql


3-64052
Stenkz
2003-03-03 07:40
2003.03.20
Сравнение с nil??? Как узнать, что в поле вообще несодер. значие


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




   Наверх