![]() |
RichText und Scrollen mit Mausrad
Hallöle...8-)
Ich habe einen Frame mit einem RichEdit drin... eingebettet auf einem Panel in der Oberfläche. Unter D11 konnte man, wenn das Edit den Focus hatte, mit dem Mausrad scrollen. Seit D12 srollt das Edit nicht mehr sondern der Parent auf dem der Frame liegt. Was hat sich verändert? Die Properties haben sich nicht verändert. :roll: PS: Seit D12 habe ich auch DevExpress aktualisiert. :gruebel: PS: Ein normales Memo läßt sich mit dem Mausrad scollen...in der gleichen Ansicht. Danke für Infos... |
AW: RichText und Scrollen mit Mausrad
:cry: ...keiner hat eine Idee?
|
AW: RichText und Scrollen mit Mausrad
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...:P
Klarstellung: Es hat nichts mit D12 zu tun. :zwinker: Im Video (Scroll.zip) ist zu sehen, dass das Mausrad auf das Layout Control reagiert und nicht auf das Control mit dem Focus. Wenn das Layout Control so groß ist, das kein Scrollbalken erscheint, scrollt auch das RTF Feld. :zwinker: Wie bekomme ich die Message an das Active RTF weitergeleitet? ...ich kann damit leben das Layout Control nicht mehr scrollt. :zwinker: Danke...:wink: Ausprobiert: Wenn das Active Control ein RichEdit ist, dann wird das Scrollen des Layouts unterbunden. Soweit ok. Aber das Senden an das RichEdit funtioniert nicht...:cry:
Delphi-Quellcode:
...wo ist der Fehler?
procedure TfoReceipt.dxLayoutMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin inherited; if Self.ActiveControl is TCustomRichEdit then begin Handled := True; SendMessage(Self.ActiveControl.Handle, CM_MOUSEWHEEL, WheelDelta, 0); // -> scrollt nicht end; end; PS: Ich habe gefühlt alle Varianten, auch mit Perform, mit verschiedenen Parameter Konstellationen durch. |
AW: RichText und Scrollen mit Mausrad
Warum schickst Du dem richedit ein CM_MOUSEWHEEL und nicht WM_MOUSEWHEEL?
|
AW: RichText und Scrollen mit Mausrad
Danke...:P
Zitat:
...egal wo ich das SendMessage plaziere...das RichEdit reagiert nicht. :? Im OnMouseWheel, auch im Frame nach Handled := True, die gleiche Message zum RichEdit absetzen führt zu einem Stack Overflow. (Schleife imho logisch) Dann habe ich ScrollBy im MousewheelUp/Down versucht. ScrollBy reagiert aber die Oberfläche zeichnet nicht richtig...Mit Invalidate wird der Cursor wieder auf Anfang gesetzt. :roll: Mir gehen die Ideen aus... :cry: |
AW: RichText und Scrollen mit Mausrad
Der Eingabefokus liegt aber beim RichEdit?
Viele Komponenten reagieren nichts auf's Scrollen, wenn sie nicht aktiv sind, |
AW: RichText und Scrollen mit Mausrad
Zitat:
|
AW: RichText und Scrollen mit Mausrad
Zitat:
Delphi-Quellcode:
const
EM_GETSCROLLPOS = $04DD; EM_SETSCROLLPOS = $04DE; var ScrollPos: TPoint; begin RichEdit1.Perform(EM_GETSCROLLPOS, 0, @ScrollPos); ScrollPos.Offset(0, 50); RichEdit1.Perform(EM_SETSCROLLPOS, 0, @ScrollPos); end; |
AW: RichText und Scrollen mit Mausrad
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...8-)
Heureka...ich habs...mit Hilfe. (jaenicke) :zwinker: :love:
Delphi-Quellcode:
siehe Video
procedure TfrRTFBase.edtRTFMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); // #1462
const EM_GETSCROLLPOS = $04DD; EM_SETSCROLLPOS = $04DE; var ScrollPos: TPoint; begin Handled := True; if GetWindowLong(edtRTF.Handle, GWL_STYLE) = conScrollbarVisible then begin edtRTF.Perform(EM_GETSCROLLPOS, 0, @ScrollPos); ScrollPos.Offset(0, 50); edtRTF.Perform(EM_SETSCROLLPOS, 0, @ScrollPos); end; end; procedure TfrRTFBase.edtRTFMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); // #1462 const EM_GETSCROLLPOS = $04DD; EM_SETSCROLLPOS = $04DE; var ScrollPos: TPoint; begin Handled := True; if GetWindowLong(edtRTF.Handle, GWL_STYLE) = conScrollbarVisible then begin edtRTF.Perform(EM_GETSCROLLPOS, 0, @ScrollPos); ScrollPos.Offset(0, -50); edtRTF.Perform(EM_SETSCROLLPOS, 0, @ScrollPos); end; end; Danke. :wink: |
AW: RichText und Scrollen mit Mausrad
Das sieht so aus, als ob es sinnvoll wäre, bei der äußeren Scrollbar Smooth auf True zu setzen. Zumindest bei einer TScrollBox sieht es dann viel besser aus.
Ich meine die Scrollgeschwindigkeit, wenn du im rechten Bereich scrollst. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:08 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-2025 by Thomas Breitkreuz