Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-94264
Konuhov Sergey
2002-04-02 18:07
2002.04.29
Как заблокировать несколько записей в InterBase


3-94305
Uncle SAM
2002-04-09 00:40
2002.04.29
A не работет такая схема......


6-94529
fixxxer
2002-02-14 18:28
2002.04.29
Как получить список компьютеров в локальной сети


4-94630
123212321
2002-02-26 09:18
2002.04.29
Изменение цвета


1-94432
Rammst
2002-04-11 07:36
2002.04.29
HELP!!!!!





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