Главная страница
    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.031 c
1-1159164853
Nastina
2006-09-25 10:14
2006.11.05
DblClick по загловку TStringGrid


2-1161111936
DROWSY
2006-10-17 23:05
2006.11.05
Ретро вопрос. :)


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


15-1160080323
Cyrax
2006-10-06 00:32
2006.11.05
Итераторы в Delphi


2-1161096034
hom
2006-10-17 18:40
2006.11.05
вопрос по Excel





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