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

Вниз

Прокрутка DBGrid колесиком   Найти похожие ветки 

 
Igor Mish ©   (2003-04-23 12:37) [0]

Как сделать так чтобы DBGrid можно было прокручивать колесиком мыши от начала до конца , а не только в видимой области.


 
sniknik ©   (2003-04-23 13:48) [1]

нужно переопределить одно событие в гриде (или 2 ап и даун)


TWMMouseWheel = packed record
Msg: Cardinal;
Keys: SmallInt;
WheelDelta: SmallInt;
case Integer of
0: (
XPos: Smallint;
YPos: Smallint);
1: (
Pos: TSmallPoint;
Result: Longint);
end;

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


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


пользоватся естественно придется переопределенным гридом (можно сделать его компонентом).


 
Kuusiniemi ©   (2003-04-23 13:57) [2]

1. RXDbGrid.
2. EhGrid.


 
sunrider   (2003-05-01 00:17) [3]

Я уже показывал сегодня в форуме как другим способом это можно сделать не создавая новый компонент-наследник. Определи стандартным способом две процедуры на пример FormMouseWheelDown и
FormMouseWheelUp, затем где-нибудь воспольхзоваться тем, что
DBGrid наследник TControl. Данный код у меня работает нормально

procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
try
raise EAbort.Create("");
finally
TDBGrid(Sender).DataSource.DataSet.Prior;
end;
end;

procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
try
raise EAbort.Create("");
finally
TDBGrid(Sender).DataSource.DataSet.Next;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
TForm(DBGrid1).OnMouseWheelDown:=Form1.FormMouseWheelDown;
TForm(DBGrid1).OnMouseWheelUp:=Form1.FormMouseWheelUp;
end;




 
Тих   (2003-05-01 19:48) [4]

Охренеть... С учетом того, что WM_MOUSEWHEEL может посылаться
-дцать раз в секунду, юзать для фунционала ексепшны - больно жирно, мне так кажется... Хотя, хозяин - барин :-)



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

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

Наверх




Память: 0.47 MB
Время: 0.021 c
1-70223
4you
2003-05-11 14:10
2003.05.22
Оптимизация программы


14-70494
Mop
2003-05-03 04:09
2003.05.22
Прикол с сис. блоком!


14-70506
AndrewVolkov
2003-04-29 17:40
2003.05.22
Где QuickReport в Delphi 7.0???


1-70214
anbezr
2003-05-08 10:21
2003.05.22
Получить высоту одной строчки в TEdit


1-70340
Marina_S
2003-05-08 09:47
2003.05.22
компонента TChart