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

Вниз

DBGrid и мышь со скролингом   Найти похожие ветки 

 
BJValentine ©   (2003-03-31 11:51) [0]

Есть мышь со скролингом. DBGrid не совсем качественно реагирует на событие скролинга мыши. Каким образом можно добиться корректной работы скролинга с DBGridom?


 
sniknik ©   (2003-03-31 12:55) [1]

добавить свой класс и использовать его заместо TDBGrid

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

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;


 
BJValentine ©   (2003-03-31 12:57) [2]

Я так понимаю, что этот вопрос не совсем касается баз данных. Здесь скорее всего работа с сообщениями Win32. Не понимаю это действие модератора... Ну да ладно, ребята, подскажите хотя бы какое сообщение возникает при прокрутке скролинга мыши?


 
sniknik ©   (2003-03-31 12:58) [3]

опять забыл :о(
тоже понадобится (хотя конечно не обязательно, можно руками выделить)

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


 
Kuusiniemi ©   (2003-03-31 13:36) [4]

Или использовать RXDBGrid.


 
Alexandr ©   (2003-03-31 14:11) [5]

DBGridEh


 
Diamond Cat ©   (2003-03-31 19:23) [6]

обычно это WM_MOUSEWHEEL, но некоторые драйвера мыши действуют хитрее, к сожалению не все окна способны обработать это сообщение, поэтому иногда используется wm_hscroll или wm_vscroll


 
Fighter ©   (2003-04-01 09:59) [7]

Я сделал наследника TDBGrid и работаю только с ним, пока всё работает без проблем.

unit MydbGrid;

interface

uses Messages, Classes, dbgrids;

type
TDBGridScroll= class(TDBGrid)
private
procedure WMMouseWheel( var Message: TMessage); message WM_MOUSEWHEEL;
end;

procedure Register;

implementation

{ TDBGridScroll }

procedure TDBGridScroll.WMMouseWheel( var Message: TMessage);
begin
if Message.wParam>0 then
DataSource.DataSet.Prior
else
DataSource.DataSet.Next;
end;

procedure Register;
begin
RegisterComponents("Data Controls", [TDBGridScroll]);
end;

end.

Если хочешь картинку к компоненту могу выслать, или сделай сам...



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

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

Наверх




Память: 0.48 MB
Время: 0.019 c
1-54672
Тимохов
2003-04-04 15:53
2003.04.17
Господа, пользующиеся Д7.


1-54702
sashak
2003-04-04 12:30
2003.04.17
Проблема с запуском DataBase DeskTop


3-54469
Sewix
2003-03-29 09:21
2003.04.17
Кто нибудь ставил oracle на Win 98


14-54815
NetBreaker666
2003-03-30 19:48
2003.04.17
Кто больше всех задолбал в форуме ?


3-54430
jocko
2003-03-27 09:40
2003.04.17
Как определить какая запись?