![]() |
Wie Smooth-Scrollen in TJvPreViewControl? Jedi
Hi DPler,
Problem: in TJvPreViewControl (Jedi-Jvcl) will ich mit der Wheel-Maus langsam scrollen. ich habe folgendes versucht:
Delphi-Quellcode:
aber irgendwie ignoriert TJvPreViewControl diese Anweisungen und springt seitenweise.
procedure TFStBerechng.JvPreViewMouseWheelDown(Sender: TObject;
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin with (Sender as TJvPreViewControl) do VertScrollBar.Position:= VertScrollBar.Position+10; end; procedure TFStBerechng.JvPreViewMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin with (Sender as TJvPreViewControl)Do VertScrollBar.Position:= VertScrollBar.Position-10; end; Kennt jemand eine Lösung? mfg |
Re: Wie Smooth-Scrollen in TJvPreViewControl? Jedi
Hi,
weiss da keiner eine Lösung? :wall: :wall: :wall: mfg |
Re: Wie Smooth-Scrollen in TJvPreViewControl? Jedi
Setz doch mal Handled auf True, damit die VCL auch weiss das du die Message selber behandelt hast.
|
Re: Wie Smooth-Scrollen in TJvPreViewControl? Jedi
Hallo Robert,
Handled auf TRUE und jetzt tut sich erst mal gar nichts mehr(Wheelmausmäßig). Habe ich da noch nen Fehler drin? :gruebel: mfg |
Re: Wie Smooth-Scrollen in TJvPreViewControl? Jedi
Das bedeutet zumindest das die Zuweisung in den Methoden nichts bewirkt.
Das Scrollen kam also wie vermutet von der Standardbehandlung. |
Re: Wie Smooth-Scrollen in TJvPreViewControl? Jedi
Hi Robert,
ich habe mal den Jedi-Quelltext angeschaut:
Delphi-Quellcode:
eventuell kann man da was tun?
function TJvCustomPreviewControl.DoMouseWheel(Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint): Boolean; var Msg: TWMScroll; SI: TScrollInfo; begin Result := inherited DoMouseWheel(Shift, WheelDelta, MousePos); if not Result then begin FillChar(SI, SizeOf(TScrollInfo), 0); SI.cbSize := SizeOf(TScrollInfo); SI.fMask := SIF_ALL; GetScrollInfo(Handle, SB_VERT, SI); if SI.nMax = 0 then Exit; Msg.Msg := WM_VSCROLL; if WheelDelta > 0 then Msg.ScrollCode := SB_PAGEUP //Hier else Msg.ScrollCode := SB_PAGEDOWN; Msg.Pos := FScrollPos.Y; Msg.Result := 0; WMVScroll(Msg); Refresh; TDeactiveHintThread.Create(500, HintWindow); HintWindow := nil; Result := True; end; end; mfg |
Re: Wie Smooth-Scrollen in TJvPreViewControl? Jedi
Das duerfte die Stelle sein an der man Aenderungen vornimmt.
Mal SB_LINEUP bzw SB_LINEDOWN ausprobieren. Am besten nach der Aenderung die JVCL per Installer neu uebersetzen. |
Re: Wie Smooth-Scrollen in TJvPreViewControl? Jedi
Kann man das auch ohne direkte Änderung an Jedi tun?
(ich meine über Vererbung) sonst müsste ich diese Änderung bei jeder Jedi-Version nachvollziehen. mfg |
Re: Wie Smooth-Scrollen in TJvPreViewControl? Jedi
Probier doch erst mal aus ob das so funktioniert.
Ansonsten mal in englisch in unserer Newsgroup ![]() Bitte die urspruengliche Frage fragen (ob man das im MouseWheelDown hinkriegen kann) und ob man die Komponente fuer ein SmoothScroll erweitern kann (deshalb die Bitte das SB_LINEDOWN zu probieren). |
Re: Wie Smooth-Scrollen in TJvPreViewControl? Jedi
Hi Robert,
ich werde das mir mal nächste Woche anschauen, im Augenblick ist das nicht lebenswichtig und nächste Woche habe ich dazu Zeit. Rückmeldung folgt. mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz