Главная страница
    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.043 c
3-1157093965
Delphi basic
2006-09-01 10:59
2006.11.05
Неправильный расчет выражений в SQL


2-1161261418
СержК
2006-10-19 16:36
2006.11.05
Событие наведения указателя мышки к кнопке на форме


15-1161093301
Почемучка
2006-10-17 17:55
2006.11.05
Помогите


15-1160636327
*Стажер*
2006-10-12 10:58
2006.11.05
Что использовать?


2-1161038070
Show
2006-10-17 02:34
2006.11.05
Как правильно соединить кнопку TToolBar с пуктом меню?





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