Форум: "Начинающим";
Текущий архив: 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.043 c