onkeypress vk_down не работает в tcxdateedit - PullRequest
0 голосов
/ 27 сентября 2018

Я хотел написать код моего cxdateedit, чтобы он отображал календарь каждый раз, когда пользователь нажимал стрелку на клавиатуре, и искал данные каждый раз, когда пользователь нажимал ввод.Поэтому я кодировал события OnKeyPress:

if (key=chr(VK_RETURN)) then begin
zquery4.Close;
zquery4.SQL.Clear;
zquery4.SQL.Add(sql1);
zquery4.Open;
end;
if key=chr(VK_DOWN) then
cxdateedit1.DroppedDown:=true;

Хотя VK_RETURN (клавиша ввода) работает отлично, тот, что с VK_DOWN (клавиша со стрелкой вниз), вообще не работает!Есть идеи, почему и как это сделать?Спасибо!

1 Ответ

0 голосов
/ 27 сентября 2018

Клавиши со стрелками зарезервированы ОС для целей навигации.Элемент управления пользовательского интерфейса не получает события клавиш для стрелок, если только элемент управления явно не запрашивает их у ОС, что, как я предполагаю, cxDateEdit не делает.Поэтому попробуйте создать подкласс cxDateEdit, чтобы перехватить сообщение WM_GETDLGCODE и включить флаг DLGC_WANTARROWS в ответ элемента управления.

...