Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Вниз

Кодировка клавиш   Найти похожие ветки 

 
Patrick   (2003-05-07 10:42) [0]

Подскажите, please, код клавиши <Shift-TAB>, или может существует какой-либо виртуальный идентификатор (типа VK_....),
а то мне нужно симитировать нажатие <Shift-TAB>,
а ShortCut(VK_TAB,[ssShift]), почему то работает как обычный TAB.


 
Mikelson   (2003-05-07 10:48) [1]

Может тебе это нужно?
procedure TMainForm.SideBarKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Ctrl: TWinControl;
bDirection: boolean;
begin
if key = VK_TAB then
begin
if Shift = [ssShift] then bDirection := false
else if Shift = [] then bDirection := true;
Ctrl := FindNextControl(SideBar as TWinControl, bDirection, true, false);
Ctrl.SetFocus;
end;
end;


 
Patrick   (2003-05-07 11:16) [2]

Насколько я понял, SideBar это любой компонент способный получить фокус, в моём случае должны быть все компоненты формы, поэтому я использую Components[ComponentIndex] в цикле, а приведение типа Components[ComponentIndex] as TWinControl дает ошибку "invalid typecast". Может у Components[ComponentIndex] есть еще какое свойство относящееся к TWinControl.


 
Mikelson   (2003-05-07 11:19) [3]

Ты попадаешь на компоненты, которые не могут иметь фокус. Проверяй сначала Components[ComponentIndex] is ... А потом уже приводи к нужному типу - Components[ComponentIndex] as ...
А вообще, что за задача?


 
Patrick   (2003-05-07 11:28) [4]

Задача прикольная, обычная форма, но пользователь уж больно дотошный, хочет под Windows, работать как в DOSe, поэтому приходится писать обработку клавиш движения по объектам формы, как например - стрелками (вправо, влева и т.д.), а объектов на форме много и действия слищком разные, вот пытаюсь всё это как-то оптимизировать.


 
Mikelson   (2003-05-07 11:32) [5]

Хе-хе. Цените юзера, кормильца нашего!


 
WarLord   (2003-05-07 15:07) [6]

Попробуй типа такого:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
AcName: String;
begin
AcName := ActiveControl.Name;
if (Key = VK_RETURN) or (Key = VK_DOWN) then Perform(WM_NEXTDLGCTL, 0, 0);
if Key = VK_UP then Perform(WM_NEXTDLGCTL, 1, 0);
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.012 c
3-59537
snake1977
2003-04-25 16:07
2003.05.19
SQL запрос


3-59550
dtm
2003-04-25 13:49
2003.05.19
Переход из DBGrid по клавише


1-59664
IronHawk
2003-05-05 17:24
2003.05.19
Кк из большого текстового файла удалять символы по особым ...


14-59887
Bargan
2003-04-28 20:28
2003.05.19
Куда делась панель компонентов FastNet в Delphi 7?


1-59781
prodan_andry
2003-05-05 12:37
2003.05.19
Как написать свой компонент...





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