Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-80943
Semyon
2002-04-11 17:51
2002.04.25
system tray


14-81062
FELLINI
2002-03-20 07:24
2002.04.25
Заблокировать программу


3-80837
Андрей Брусов
2002-04-04 09:13
2002.04.25
Языковые драйверы в BDE


1-80915
Sparky
2002-04-15 13:08
2002.04.25
SendMessage


3-80818
Georg
2002-04-05 12:13
2002.04.25
Уважаемые, помогите чайнику с запросом, плз...





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