Форум: "Основная";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];
ВнизВопрос по обработке события 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c