DBGrid und Scrollwheel
- From: "Stefan M. Huber" <looseleaf@xxxxxxx>
- Date: Fri, 10 Mar 2006 16:30:34 +0100
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
.
- Follow-Ups:
- Re: DBGrid und Scrollwheel
- From: Norbert Kolz
- Re: DBGrid und Scrollwheel
- From: Stefan M. Huber
- Re: DBGrid und Scrollwheel
- Prev by Date: Re: D6: Mit Debugger nur durch eignen Code, aber wie?
- Next by Date: Re: DBGrid und Scrollwheel
- Previous by thread: D6: Mit Debugger nur durch eignen Code, aber wie?
- Next by thread: Re: DBGrid und Scrollwheel
- Index(es):
Relevant Pages
|