DBGrid und Scrollwheel



Grüße euch!

Ich weiß, wir hatten das Thema schon einmal gestreift[0], aber ich frag noch einmal nach.

Es gebt darum, einem DBGrid beizubringen, mit dem Scrollrad nicht am Ende des Viewports stehen zu bleiben. Dazu überschreibe ich in einer abgeleiteten Klasse einfach CMMouseWheel von TDBGrid:

if Message.Result = 0 then
begin
if Message.WheelDelta < 0 then
begin
PostMessage(Handle, WM_VSCROLL, SB_LINEDOWN, 0)
Message.Result := 1;
end
else if Message.WheelDelta > 0 then
begin
PostMessage(Handle, WM_VSCROLL, SB_LINEUP, 0);
Message.Result := 1;
end
end
else
inherited;


Soderla, damit macht das Teil genau das, was ich will. Das Verhalten ist dasselbe, wie wenn ich den Scrollbar bewege. Zwei Fragen bleiben offen:

1) Hab ich was übersehen, oder gibt es keine Möglichkeit (außer der, die ich im zitierten Thread mit CursorRauf CursorRunter angedeutet hab), eine Zeile weiterzugehen? Der Scrollbalken am DBGrid verhält sich genauso: er springt an die erste oder letzte Zeile und scrollt dann weiter.

2) Ich nehme nicht an (und habs ausprobiert), dass ich spezielle Maßnahmen treffen muss, um zB im Editiermodus keinen Schmafu zu bauen: Schließlich simuliere ich einen Klick auf den Scrollbar, sonst nix.

Stefan
[0] http://groups.google.com/group/de.comp.lang.delphi.misc/msg/1758acc132378cf3
.



Relevant Pages

  • Re: DBGrid und Scrollwheel
    ... Es gebt darum, einem DBGrid beizubringen, mit dem Scrollrad nicht am Ende des Viewports stehen zu bleiben. ... if Message.WheelDelta < 0 then ... wie wenn ich den Scrollbar bewege. ...
    (de.comp.lang.delphi.misc)
  • Re: Fastest way to get table scheme?
    ... The other part of the problem is that it's not just *one* query ... I have a form with a dbgrid. ... by the customer through a VPN tunnel with only 64 kilobits/second. ... Everytime the vertical scrollbar is moved (or if the user presses ...
    (borland.public.delphi.database.ado)
  • Re: ScrollBar
    ... I thought I could get rid of the ScrollBar simply by setting the height ... Try Adjusting the ClientWidth and ClientHeigth of the DBgrid ... Normally the scrollbars are set to automatic if the client ...
    (comp.lang.pascal.delphi.misc)
  • Re: ScrollBar
    ... I thought I could get rid of the ScrollBar simply by setting the height of ... Try Adjusting the ClientWidth and ClientHeigth of the DBgrid ... Normally the scrollbars are set to automatic if the client ...
    (comp.lang.pascal.delphi.misc)