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

Вниз

Как прокручивать TGrid колесом мыши?   Найти похожие ветки 

 
Vi0let ©   (2003-12-30 14:15) [0]

А то, при движении колеса, меняется активная строка только в видимом списке грида, а сам список не прокручивается...


 
Vi0let ©   (2003-12-30 14:19) [1]

... TDBGrid


 
asp ©   (2003-12-30 14:20) [2]

Либо воспользоваться RxDBGrid, либо наследовать от стандартного свой, с обработкой MouseWheel.


 
Vi0let ©   (2003-12-30 14:22) [3]

как реализовать обработку MouseWheel ?


 
Vemer ©   (2003-12-30 14:23) [4]

Либо написать общий обработчик колеса, который нажатия клавиш вверх/вниз имитирует, образец вроде на сайте АП есть.
У меня работает.


 
asp ©   (2003-12-30 14:29) [5]

Переопределяй от TWinControl"а в protected
function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer;
MousePos: TPoint): Boolean; dynamic;
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;


 
sniknik ©   (2003-12-30 14:57) [6]

TMyDBGrid = class(TDBGrid)
procedure WMMouseWheel(var Msg: TWMMouseWheel); message WM_MOUSEWHEEL;
end;

procedure TMyDBGrid.WMMouseWheel(var Msg: TWMMouseWheel);
begin
if DataSource.DataSet.Active then begin
if Msg.WheelDelta > 10 then DataSource.DataSet.Prior;
if Msg.WheelDelta < -10 then DataSource.DataSet.Next;
end;
end;

естественно дальше нужно TMyDBGrid вместо TDBGrid использовать.


 
Vi0let ©   (2003-12-30 19:21) [7]

интересно, попробую ...


 
dimm22   (2003-12-30 19:38) [8]

DBGridEh из библиотеки EhLib. Много чего полезного умеет делать.


 
Vi0let ©   (2004-01-01 14:56) [9]

sniknik
> естественно дальше нужно TMyDBGrid вместо TDBGrid использовать
я так понимаю, в этом случаем у меня 2 варианта:
1) создавать объект TMyDBGrid в рантайме, и все значения свойств кодом задавать
2) создавать компонент наследующий грид с новым свойством
я правильно понял?
а нет ли менее хлопотного варианта?


 
sniknik ©   (2004-01-01 18:58) [10]

....
А ивано-франковец ему отвечает: ну, так это, короче, не проблема.
Это вы неделю не покурите, и она сама по себе рассосется.
Тут все растаманы(наркоманы) как зашумели: та, шо ты гонишь! Прямо как психиатр, в натуре. Это же как можно, целую неделю не курить, это же вобще умом поехать можно. А ивано-франковец им говорит: тогда давайте другой способ, менеее напряжный.
.... ;о))
© сага и мыше и наркомане.

еще способ менее напряжный(?) сам только что сделал(вроде работает, с тем что в десигне), конечно наверняка ктото чемто подобным уже давно пользуется.
но вообще мне удобнее первым, т.к. не только прокрутку перекрываю обычно, еще и DrawCell, WMVScroll и и еше коечего цепляю (тут уж проше в рантайм создать и параметры прописать, меньше получается).

type
TMyDBGrid = class(TDBGrid);

TForm1 = class(TForm)
.....
procedure FormCreate(Sender: TObject);
private
procedure MyMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
TMyDBGrid(DBGrid1).OnMouseWheel:= MyMouseWheel;
end;

procedure TForm1.MyMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
if (Sender is TDBGrid) and TDBGrid(Sender).DataSource.DataSet.Active then
begin
if WheelDelta > 10 then TDBGrid(Sender).DataSource.DataSet.Prior;
if WheelDelta < -10 then TDBGrid(Sender).DataSource.DataSet.Next;
Handled:= true;
end;
end;


 
Vi0let ©   (2004-01-03 11:13) [11]

благодарю, всё получилось



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
7-93724
T-Coder
2003-11-13 02:36
2004.01.29
Shell Extension bug


3-93375
--none--
2003-12-31 16:29
2004.01.29
ADOTable


7-93719
Владимир Березин
2003-11-10 21:49
2004.01.29
Призраки в корзине


9-93321
Unknown user
2003-07-14 19:37
2004.01.29
Параметры перспективы в OpenGL.


4-93737
KosilkA
2003-11-23 18:58
2004.01.29
ListView SubitemImages - как узнать ?