Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.03 c
3-1079726314
san
2004-03-19 22:58
2004.04.18
Помогоите вывести формулу на экран?


1-1080762135
h010d
2004-03-31 23:42
2004.04.18
Реакция на изменение системных метрих


1-1080549354
YT
2004-03-29 12:35
2004.04.18
Как проверить что окно было последним с которым работал


1-1080698784
igorio
2004-03-31 06:06
2004.04.18
Delphi 7


1-1080578017
tytus
2004-03-29 20:33
2004.04.18
Модальная форма из DLL.





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