Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.25;
Скачать: CL | DM;

Вниз

Вопрос по обработке события OnKeyUp   Найти похожие ветки 

 
Ray_Parker   (2002-04-12 17:41) [0]

Привет.

Может кто-нибудь сможет подсказать, как определить через событие OnKeyUp сочетание "Ctrl+<". Пробовал уже:
-Ord(",")
-Ord("<")
-Ord("б")
-Ord("Б")
-даже через ASCII-число

ничего не получается. Если можно, присылайте ответ на мыльницу:
ray_parker@newmail.ru


 
Song ©   (2002-04-12 17:52) [1]

через onKeyPress унаёте код


 
Ray_Parker   (2002-04-12 19:18) [2]

Через OnKeyPress не получится, потому что там не обрабатывается кнопка Ctrl!


 
Song ©   (2002-04-13 10:29) [3]

Вам-то нужно не Ctrl, Ctrl+"<"


 
Александр С. ©   (2002-04-13 11:45) [4]

if not (ssCtrl in Shift)then exit;
if key = vk_Left then <собственно код>


 
Ray_Parker   (2002-04-13 19:00) [5]

Здравствуйте, Александр. Спасибо, что откликнулись.

Ваш код правильный, однако есть ньюансы:
1) Мне нужна кнопка "<" (знак меньше), а не стрелка влево ( VK_LEFT).
2) Насчет ssCtrl in Shift - это можно осуществить только в событии OnKeyUp или OnKeyDown, а в OnKeyPress нельзя, т.к. Shift отсутствует во входных параметрах.
3) Сочетание "Ctrl+<" нельзя поймать через события OnKeyUp или OnKeyDown, потому что для кнопки "<" нет виртуального значения (например, VK_<), а код Ord(",") не срабатывает - уже пробовал.

Может подумаем еще...


 
Ray_Parker   (2002-04-13 19:04) [6]

Для Song:

Мне именно нужно "Ctrl+<". Т.е. сначала необходимо вычеслить, что нажата Ctrl, а потом, что нажата "<". Ctrl через событие OnKeyPress вычислить не удается, поэтому единственный путь - через события OnKeyDown и OnKeyUp, а вот там-то и возникают проблемы с определением нажатия "<", в то же время с Ctrl проблем никаких нет.

Может еще что-нибудь придумаем...


 
Anatoly Podgoretsky ©   (2002-04-13 19:13) [7]

А ты не хочешь посмотреть значение отладчиком?


 
Ray_Parker   (2002-04-13 20:05) [8]

Хммм... действительно. Очень интересная мысль.


 
Anatoly Podgoretsky ©   (2002-04-13 20:13) [9]

Ну только вместо отладчика используй вывод в метку


 
Song ©   (2002-04-13 20:28) [10]

Действительно код Ctrl через onKeyPress посмотреть не удастся, а вот Ctrl+"<" легко... Я не стал уточнять, думал догадаетесь.


 
Ray_Parker   (2002-04-14 11:02) [11]

Для Anatoly Podgoretsky:

Что означает "Вывод в метку"?


 
Ray_Parker   (2002-04-14 11:05) [12]

Для Song:

Хорошо, кнопку "<" мы поймали, а как же определить тогда, что нажата Ctrl. Дело в том, что у меня предусмотрено два действия: первое на нажатие "<", а второе - на "Ctrl+<".


 
Song ©   (2002-04-14 11:32) [13]

2Ray_Parker (14.04.02 11:05)
Всё-таки, Вы меня заставили Дельфи загрузить :))

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
IF (ssCtrl in Shift) and (Key=188) then ShowMessage("Нажато Ctrl+<");
end;


 
Ray_Parker   (2002-04-14 14:32) [14]

Спасибо, Song, Ваш код работает на все 100!



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

Текущий архив: 2002.04.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
3-80831
bobr12
2002-04-05 16:28
2002.04.25
Создание отчетов


3-80746
RomanG
2002-04-02 13:16
2002.04.25
ODBC, MS SQL


3-80797
ПикулевЕвгений
2002-04-05 09:12
2002.04.25
Поиск по базе


1-80925
Fareader
2002-04-11 11:23
2002.04.25
Русский язык в F1Book


1-80922
shane54
2002-04-11 00:17
2002.04.25
Вопрос по таймеру