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

Вниз

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

 
АндрейК   (2007-11-19 08:58) [0]

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


 
Anatoly Podgoretsky ©   (2007-11-19 09:08) [1]

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

А зачем?


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

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


 
Reindeer Moss Eater ©   (2007-11-19 09:58) [3]

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


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

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

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


 
Reindeer Moss Eater ©   (2007-11-19 10:07) [5]

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


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

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


 
Reindeer Moss Eater ©   (2007-11-19 10:29) [7]

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


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

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


 
Reindeer Moss Eater ©   (2007-11-19 10:52) [9]

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


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

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

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


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

Все тот же OnKeyDown


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


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


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


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

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

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


 
Reindeer Moss Eater ©   (2007-11-19 13:04) [14]

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


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

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


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

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


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

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


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

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

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

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


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

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


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

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

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

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

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



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

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

Наверх




Память: 0.51 MB
Время: 0.022 c
2-1195317170
JanMihail
2007-11-17 19:32
2007.12.16
Отправка Get-запроса с прикрепленным файлом


2-1195715338
Parus
2007-11-22 10:08
2007.12.16
DNS cepвep


2-1195863024
СЕРВИС
2007-11-24 03:10
2007.12.16
Связь между сервисом и его программой оболочкой


15-1195215176
sds
2007-11-16 15:12
2007.12.16
Справочная служба аэропорта


15-1195087762
СетьЕть
2007-11-15 03:49
2007.12.16
Как узнать русская у пользователя Виндос или нет?