Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Комбинация клавиш на компоненте [D6]


Lakshmy ©   (2005-03-04 17:07:00) 

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


Lakshmy   (2005-03-04 17:29:00) [1]

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


olookin   (2005-03-04 17:28:00) [2]

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

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


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

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


DesWind   (2005-03-04 17:27:00) [4]

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


olookin   (2005-03-04 17:25:00) [5]

[14] Lakshmy ©   (04.03.05 17:24)

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


Lakshmy   (2005-03-04 17:24:00) [6]

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


olookin   (2005-03-04 17:24:00) [7]

[12] Lakshmy ©   (04.03.05 17:22)

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


Lakshmy   (2005-03-04 17:22:00) [8]

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

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

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


olookin   (2005-03-04 17:22:00) [9]

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


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

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

 if (Key=VK_SHIFT) or ( ssCtrlin Shift) then  showmessage('ok');

а такой - нет:

 if (Key=VK_SHIFT) or ( ssLeftin Shift) then showmessage('ok');


Lakshmy   (2005-03-04 17:19:00) [11]

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


Anatoly Podgoretsky   (2005-03-04 17:18:00) [12]

Вниз, нажато


Lakshmy   (2005-03-04 17:16:00) [13]

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


Lakshmy   (2005-03-04 17:15:00) [14]

Anatoly Podgoretsky, а у TStringGrid?


Lakshmy   (2005-03-04 17:14:00) [15]

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


Anatoly Podgoretsky   (2005-03-04 17:14:00) [16]

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


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

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


Lakshmy   (2005-03-04 17:12:00) [18]

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


Anatoly Podgoretsky   (2005-03-04 17:09:00) [19]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо