Главная страница
    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.078 c
2-1195587796
vaska
2007-11-20 22:43
2007.12.16
приведение cardinal


15-1195034691
Кевларвестов Семен
2007-11-14 13:04
2007.12.16
Cannot Resolve Unit Name


2-1195631886
DukeArtem
2007-11-21 10:58
2007.12.16
ReadOnly для переменной


15-1195104247
Alex_C
2007-11-15 08:24
2007.12.16
Проблема с мультимедиа таймером.


2-1195074620
alikon1
2007-11-15 00:10
2007.12.16
Назначение клавишам действий





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский