Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизНе обрабатываются VK_Up, Vk_Down и т.п. Найти похожие ветки
← →
TransparentGhost (2004-04-01 12:30) [0]Компонент
TADSheet = class(TCustomControl)
Procedure KeyDown(Var Key:Word;Shift:TShiftState); Override;
не реагирует на нажатия стрелок и таб, и при етом теряет фокус.
Что нужно сделать, чтобы определять нажатия етих клавиш и не теряля фокус?
С буквенными кнопками всё нормально.
← →
TUser © (2004-04-01 12:34) [1]А что проц-ра делать-то должна. Для создания свойства используется FOnKeyDown:TType, где TType = procedure (Var Key:Word;Shift:TShiftState) of object.
← →
MBo © (2004-04-01 12:47) [2]Если не ошибаюсь, обработчик CM_DialogKey попробуй
← →
TransparentGhost (2004-04-01 12:51) [3]Процедура внутри компонента. При нажатии стрелок изменяются некоторые переменные, в зависимости от которых идёт прорисовка Канвы.
Типа того
Procedure TADSheet.KeyDown(Var Key:Word;Shift:TShiftState);
Begin
Inherited KeyDown(Key,Shift);
Case Key of
VK_UP: Dec(Y);
VK_DOWN: Inc(Y);
End;
End;
← →
TransparentGhost (2004-04-01 16:10) [4]CM_DialogKey и KeyDown - реагирует на всё, кроме стрелок.
← →
TransparentGhost (2004-04-01 16:15) [5]Ничего не надо указать в CreateParams или ещё где?
← →
MBo © (2004-04-01 16:18) [6]Еще
CM_WANTSPECIALKEY
WM_GETDLGCODE
← →
MBo © (2004-04-01 16:19) [7]Точнее, обработчик CM_WANTSPECIALKEY нужен
procedure TMyComponent.CMWantSpecialKey(var Message: TCMWantSpecialKey);
begin
inherited;
if Message.CharCode = VK_LEFT then
Message.Result := 1;
end;
← →
TransparentGhost (2004-04-01 16:31) [8]Спасибо, заработало!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.032 c