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

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

Заменить клик левой кнопки мыши на Ctrl+клик левой кнопки


АндрейК ©   (2007-11-19 08:58:00) 

Здравствуйте! Как можно заменить клик левой кнопки мыши на Ctrl+клик левой кнопки мыши?


{RASkov}   (2007-11-21 08:58:00) [1]

> [19] АндрейК   (21.11.07 05:11)
> Да-да! Вы правы! Никогда не делал этого!

А что здесь сложного...
Берешь:
type
 TMySuperDBGrid = class(TCustomDBGrid)
  procedure KeyDown(); override;
  procedure MouseDown(); override;
 end;

ну и реализуешь как тебе нужно.... т.е. просто копируешь "старый код" к себе и изменяешь как нужно....

Затем либо регистрируешь свой новый компонент, либо создаешь его в рантайм, либо используешь "подмену"....


АндрейК   (2007-11-21 05:11:00) [2]

Да-да! Вы правы! Никогда не делал этого!


{RASkov}   (2007-11-20 17:52:00) [3]

> [17] АндрейК   (20.11.07 13:52)

:)
Вот с переопределением кнопок клавиатуры мы обошлись без наследника, ну а здесь....
делай наследника TCustomDBGrid'а в котором и мышь обрабатывай как тебе нужно и клавиатуру заодно)

ЗЫ Мы боимся сделать наследника? Мы лучше кучу винапи задействуем.... хуки всякие.... а наследника делать не будем, так?


АндрейК   (2007-11-20 13:52:00) [4]

Кто-нибудь знает как можно заменить клик левой кнопки мыши на Ctrl+клик левой кнопки мыши?


АндрейК   (2007-11-20 10:04:00) [5]

Так всетаки как можно заменить клик левой кнопки мыши на Ctrl+клик левой кнопки мыши?


АндрейК   (2007-11-19 13:33:00) [6]

Спасибо Reindeer Moss Eater! А как теперь отключить мышь? Ведь при щелчке выделение снимается со всех записей!


Reindeer Moss Eater   (2007-11-19 13:04:00) [7]

Key := 0 и руками DataSet.Next
И не надо никакого наследника.


{RASkov}   (2007-11-19 12:58:00) [8]

> [12] АндрейК   (19.11.07 12:40)
> каким образом?

Посмотри на строчку
if (Key in RowMovementKeys) then ClearSelection;
в методе TCustomDBGrid.KeyDown и подумай...
т.е. тебе нужен наследник TCustomDBGrid'а с переопределенным методом KeyDown и возможно еще чего....


АндрейК   (2007-11-19 12:40:00) [9]


> Осталось отключить стандартное поведение DBGrida, нафиг
> сбрасывающего SelectedRows, при обычном движении по грицу.
>


каким образом?


Reindeer Moss Eater   (2007-11-19 10:57:00) [10]

Все тот же OnKeyDown


ЮЮ   (2007-11-19 10:55:00) [11]

> [9] Reindeer Moss Eater ©   (19.11.07 10:52)
> Ну так а в чем проблемы-то?
> У грида есть OnKeyDown и есть SelectedRows

Осталось отключить стандартное поведение DBGrida, нафиг сбрасывающего SelectedRows, при обычном движении по грицу.


Reindeer Moss Eater   (2007-11-19 10:52:00) [12]

Ну так а в чем проблемы-то?
У грида есть OnKeyDown и есть SelectedRows


АндрейК   (2007-11-19 10:49:00) [13]

Вот именно так реализованно в Парусе! Они на нем работают, так им и хочется!


Reindeer Moss Eater   (2007-11-19 10:29:00) [14]

Правильно так, как будет привычнее и понятнее пользователю.


АндрейК   (2007-11-19 10:25:00) [15]

А как правильно извращаться то? я хочу сделать чтобы пробелом можно было выделять и снимать выдиление с записей, А когда щелкаешь мышкой или перемещаешься стрелками вверх и вниз - выделение не снималось.


Reindeer Moss Eater   (2007-11-19 10:07:00) [16]

Хочешь изврата - извращайся правильным способом.
Меня когда-то просили сделать выделение записей в гриде так, как делается выделение файлов в проводнике. Что и было сделано.


Anatoly Podgoretsky   (2007-11-19 10:00:00) [17]

> Reindeer Moss Eater  (19.11.2007 09:58:03)  [3]

А еще и снимать надо как-то


Reindeer Moss Eater   (2007-11-19 09:58:00) [18]

Мудро. А если юзер хочет просто сменить текущую запись по клику мыши и  выделять запись ему вовсе не надо?


АндрейК   (2007-11-19 09:54:00) [19]

Что-бы в DBGrid можно было выделять записи не удерживая ctrl. Или можно по другому как-то сделать? я хочу сделать чтобы пробелом можно было выделять записи, и когда щелкаешь мышкой или перемещаешься стрелками вверх и вниз - выделение не снималось.


Anatoly Podgoretsky   (2007-11-19 09:08:00) [20]

> АндрейК  (19.11.2007 08:58:00)  [0]

А зачем?


Наверх

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