Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
ВнизКак в форме отловить нажатие VK_TAB ? Найти похожие ветки
← →
kserg@ukr.net (2002-04-17 12:04) [0]Прикол в том, что у меня есть 2 проги, в котр. на событие OnKeyDown в поле ред-ния прописаны обработчики нажатия TAB.
Так вот, в одной всё работает, а в др. проге - нет?
Уже просмотрел все зенки, но отличий в коде и формах не вижу...
Подскажите, где еще покопаться.
← →
Starkom (2002-04-17 12:07) [1]OnKeyDown у Edit"a?
может быть TabStop у Edit"a равен false, хотя не знаю, возникает ли тогда OnKeyDown
← →
kserg@ukr.net (2002-04-17 12:13) [2]>Starkom (17.04.02 12:07)
Уважаемый, св-во TabStop указывает, будет ли Control принимать фокус по нажатию ТАБа. А мне надо отловить само нажатие ТАБа в поле.
← →
Starkom (2002-04-17 12:17) [3]я в курсе, что такое TabStop.
сами спросили, где еще покопаться. Нужен код, хотя бы примерный.
можно перевешать обработку в FormShortCut, там проверять ActiveControl.
← →
Starkom (2002-04-17 12:20) [4]у меня, кстати, по VK_TAB и VK_ESC тоже ни возникает ни OnKeyDown, ни OnKeyPress. Все реализовано через FormShortCut.
← →
kserg@ukr.net (2002-04-17 12:28) [5]>Starkom (17.04.02 12:20)
Извини, насчет поучения ТАБ-ом - не хотел обидеть.
Ниже - работающий пример приложения БД.
А вот когда его перенес в новое приложение,
то он там не работает.
procedure TfmEdit_Invoice.Edit_NCOMPKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=VK_DOWN) then quTemp.Next;
if (Key=VK_UP) then quTemp.Prior;
if (Key=VK_TAB) then begin
Edit_NN_INV.SetFocus;
edit_NCOMP.text:= quTemp.Fieldbyname("NCOMP").AsString;
end;
end;
>Все реализовано через FormShortCut
примерчик можешь подкинуть для общего развития ?
← →
Starkom (2002-04-17 12:40) [6]procedure TForm.FormShortCut(var Msg: TWMKey;
var Handled: Boolean);
var Ctrl,Shift:boolean;
begin
if (Word(GetAsyncKeyState(VK_SHIFT)) and 32768)<>0 then Shift:=True else Shift:=False;
if (Word(GetAsyncKeyState(VK_CONTROL)) and 32768)<>0 then Ctrl:=True else Ctrl:=False;
case Msg.CharCode of
VK_ADD:begin end;
VK_SUBTRACT:begin end;
VK_INSERT: if Ctrl then begin end
else if Shift then begin end;
VK_UP:if Ctrl then
begin
Handled:=true;Msg.CharCode:=0;
end;
VK_DOWN:if Ctrl then
begin
Handled:=true;Msg.CharCode:=0;
end;
end;
end;
← →
Anatoly Podgoretsky (2002-04-17 13:50) [7]Надо обрабатывать сообщение WM_GETDLGCODE
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c