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

Вниз

Комбинация клавиш на компоненте   Найти похожие ветки 

 
Lakshmy ©   (2005-03-04 17:07) [0]

Подскажите, пожалуйста, каким образом можно отследить комбинацию клавиш. Например, Shift + LButton.


 
Anatoly Podgoretsky ©   (2005-03-04 17:09) [1]

На компоненте вообще нет клавиш ни их комбинаций.


 
Lakshmy ©   (2005-03-04 17:12) [2]

Ладно, выражусь точнее. Мне нужно, нажав в StrinGrid комбинацию клавиш Shift + LButton по конкретной строке (ячейке), отследить ее. Так понятнее?


 
olookin ©   (2005-03-04 17:12) [3]

Если у компонента есть событие OnKeyDown, то можно.


 
Anatoly Podgoretsky ©   (2005-03-04 17:14) [4]

olookin ©   (04.03.05 17:12) [3]
У TComponent вообще нет событий.


 
Lakshmy ©   (2005-03-04 17:14) [5]

Есть, конечно, но вот как? Я как только не пробовала. Там еще есть параметр Shift: TShiftState. Я думаю как-то с ним надо мутить. Или нет?


 
Lakshmy ©   (2005-03-04 17:15) [6]

Anatoly Podgoretsky, а у TStringGrid?


 
Lakshmy ©   (2005-03-04 17:16) [7]

А в чем тогда разница OnKeyDown и OnKeyPress?


 
Anatoly Podgoretsky ©   (2005-03-04 17:18) [8]

Вниз, нажато


 
Lakshmy ©   (2005-03-04 17:19) [9]

Anatoly Podgoretsky, очень понятно объясняете, спасибо


 
olookin ©   (2005-03-04 17:21) [10]

Странно вот что. Вот такой код работает:

 if (Key=VK_SHIFT) or (ssCtrl in Shift) then  showmessage("ok");

а такой - нет:

 if (Key=VK_SHIFT) or (ssLeft in Shift) then showmessage("ok");


 
olookin ©   (2005-03-04 17:22) [11]

Нет - работает. Надо только в опциях StringGrid отключить goThumbTracking


 
Lakshmy ©   (2005-03-04 17:22) [12]

Я пробовала так:

if (Key=VK_LBUTTON) and (ssLeft in Shift) then showmessage("ok");

Но так наверно не бывает...


 
olookin ©   (2005-03-04 17:24) [13]

[12] Lakshmy ©   (04.03.05 17:22)

В таком случае вы дважды проверяете одно и то же... Вам же надо Shift+LButton?


 
Lakshmy ©   (2005-03-04 17:24) [14]

olookin, но работает только на нажатие Shift, а мне нужно одновременное нажатие Shift и левой кнопки мыши


 
olookin ©   (2005-03-04 17:25) [15]

[14] Lakshmy ©   (04.03.05 17:24)

Да, вы правы, чего-то я не того посоветовал...


 
DesWind ©   (2005-03-04 17:27) [16]

А если попробовать MouseDown?


 
Lakshmy ©   (2005-03-04 17:27) [17]

Почему дважды? Я проверяю нажатие левой кнопки (Key=VK_LBUTTON) и одновременное нажатие Shift (ssShift in Shift), я просто ошиблась.


 
olookin ©   (2005-03-04 17:28) [18]

В коде if (Key=VK_LBUTTON) and (ssLeft in Shift) проверка идет дважды одного и того же. Опечатка значит у Вас, как и у меня ранее...

Действительно, важно, что нажато первым - кнопка мыши или клавиша? Может и в самом деле обрабатывать OnMouseDown?


 
Lakshmy ©   (2005-03-04 17:29) [19]

DesWind, спасибо! Заработало!



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

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

Наверх




Память: 0.5 MB
Время: 0.059 c
14-1109580259
Павел
2005-02-28 11:44
2005.03.20
Как перевести Add-In на русский


14-1109671285
stakan
2005-03-01 13:01
2005.03.20
Уроки Юрия Зотова


4-1107302590
Green_Templar
2005-02-02 03:03
2005.03.20
OpenPictureDialog


14-1109767969
snake_r
2005-03-02 15:52
2005.03.20
BSClient


4-1107501679
wal
2005-02-04 10:21
2005.03.20
Консольное приложение