Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];

Вниз

Заменить клик левой кнопки мыши на 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.047 c
4-1180497793
AndreyRU
2007-05-30 08:03
2007.12.16
Вне зоны доступа! WM_MOUSEMOVE


3-1186590083
Shamansky_ne
2007-08-08 20:21
2007.12.16
файлы в базу данных


11-1181055188
=BuckLr=
2007-06-05 18:53
2007.12.16
То, что у меня не работает в RichEdit


2-1195287266
Hint
2007-11-17 11:14
2007.12.16
Получение названий продуктов запущенных приложений


2-1195890376
MaShechka
2007-11-24 10:46
2007.12.16
Как поменять название в шапке Message Dialog?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский