Форум: "Компоненты";
Текущий архив: 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