Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.024 c
3-1108971758
VAV
2005-02-21 10:42
2005.03.20
Базы данных формата Access (mdb)


4-1107446102
emo
2005-02-03 18:55
2005.03.20
Зная адрес памяти, изменить значение


11-1093266394
rlz
2004-08-23 17:06
2005.03.20
почему при работе с апи он ругается на handle ,perform и тд??


1-1109696271
Dyusha
2005-03-01 19:57
2005.03.20
Проблема при поиске в ADOQuery


1-1109833540
leonidus
2005-03-03 10:05
2005.03.20
Сотрировка массива - не детский вопрос




   Наверх