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

Вниз

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

 
AlexeyT ©   (2006-03-13 00:11) [0]

Пишу компонент, наследник TPanel. Как добавить реакцию на клавиши (Up/Down/Home/etc), какой метод для этого написать или перекрыть? В основной программе это FormKeyDown, а для компонента как сделать?


 
AbrosimovA   (2006-03-13 09:06) [1]

 TMyPanel = class(TPanel)
 private
 protected
   procedure WMKeyUp(var Message: TWMKeyUp); message WM_KEYUP;
 end;

var
 Form1: TForm1;
 Panel: TMyPanel;

implementation

{$R *.dfm}

procedure TMyPanel.WMKeyUp(var Message: TWMKeyUp);
begin
if Message.CharCode=VK_UP then ShowMessage("UP");
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Panel:=TMyPanel.Create(Self);
Panel.Parent:=Self;
Panel.Caption:="123";
end;

procedure TForm1.FormShow(Sender: TObject);
begin
FocusControl(Panel);
end;


 
Юрий Зотов ©   (2006-03-13 11:17) [2]

Чтобы оконный контрол получал сообщения клавиатуры, он должен обработать WM_GETDLGCODE и вернуть системе нужный результат. Описание см. в справке WinAPI или в MSDN.


 
AlexeyT ©   (2006-03-14 00:30) [3]

>AbrosimovA   (13.03.06 09:06) [1]
Спасибо.
Еще вопрос:
Есть ли разница: написать WMKeyDown или перекрыть TWinControl.KeyDown?Оба способа работают, есть ли разница по скорости отклика на клавиатуру?

А то что-то сейчас реакция на клавиатуру замедленная (сделал через KeyDown).


 
AlexeyT ©   (2006-03-14 00:32) [4]


> Юрий Зотов ©   (13.03.06 11:17) [2]

Тоже спасибо.


 
AbrosimovA   (2006-03-14 08:38) [5]


> Есть ли разница: написать WMKeyDown или перекрыть TWinControl.
> KeyDown


Ты это можешь проверить поставив брекпойнты на WMKeyDown и KeyDown
и посмотреть, что раньше сработает.


 
AbrosimovA   (2006-03-14 08:54) [6]

Используй WMKeyDown.


 
AlexeyT ©   (2006-03-14 19:40) [7]


> AbrosimovA   (14.03.06 08:54) [6]
> Используй WMKeyDown.

Наверное, буду использовать KeyDown, т.к. я сделал с WMKeyDown, и перестал работать обработчик OnKeyDown основйо формы. По скорости вроде одно и то же...



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

Форум: "Компоненты";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.057 c
15-1160987668
MacroDenS
2006-10-16 12:34
2006.11.05
Поздравляю с первым снегом!!!!


15-1160580008
Ломброзо
2006-10-11 19:20
2006.11.05
Складской вопрос


2-1161313889
Officeman
2006-10-20 07:11
2006.11.05
Каким Образом можно убрать определенные части их текста.


15-1161012848
learner
2006-10-16 19:34
2006.11.05
Ошибка при закрытии Delphi 2006


2-1161086373
RebroFF
2006-10-17 15:59
2006.11.05
Разделение прав и компоненты Delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский