Главная страница
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.018 c
1-80970
Jaxtor
2002-04-12 11:21
2002.04.25
Закрытие формы MDIChild программным методом


1-80979
Arhangel
2002-04-12 13:30
2002.04.25
Как конвертировать string в массив char?


3-80756
Timka
2002-04-02 08:59
2002.04.25
прошу подсказку


7-81098
star
2002-01-24 17:45
2002.04.25
О точных временных интервалах ...


14-81067
fishka
2002-03-20 14:29
2002.04.25
Переписать игрушку с компашки с защитой. Можно ли это сделать, чтобы работало корректно?