![]() |
TRichEdit und scrollen
Hallo,
das Thema mit dem Scrollen in einem TRichEdit wurde im Forum schon mehrfach behandelt. Dennoch stehe ich vor einem Problem, dass ich bislang nicht lösen konnte: Ich habe auf meinem Form ein TRichEdit. Für dieses ist
Delphi-Quellcode:
gesetz. Wenn ich mein Form Maximiere, dann vergrößert sich entsprechend auch das TRichEdit. Weiterhin wird der Text nicht vom Benutzer, sondern ausschließlich vom Programm hinzugefügt und danach immer auf die letzte Zeile gescrollt.
Anchors:=[akLeft, akRight, akTop, akBottom];
Bin ich auf der letzten Zeile und maximiere das Fenster ist alles OK. Wenn ich es dann aber wieder minimiere, dann steht der Text irgendwo und ich bin eben nicht mehr auf der letzten Zeile. Ich habe jetzt versucht, das Problem so zu lösen:
Delphi-Quellcode:
Beide Methoden, mit denen ich sonst immer den Text an das Ende scrolle, versagen hier. Was mache ich verkehrt?
Procedure TChat.WMSysCommand(Var Msg: TMessage);
Begin Case Msg.WParam Of SC_Minimize : Hide; // Minimieren-Button SC_Maximize : Begin WindowState:=wsMaximized; Log.Perform(EM_SCROLLCARET, 0, 0); // auf letzte Zeile scrollen // SendMessage(Log.Handle, // Auf letzte Zeile scrollen // WM_VScroll, SB_Bottom, 0); End; SC_Close : Hide; // Schließen-Button Else // alles andere Inherited; // Botschafen durchleiten End; End; Gruß, Alex |
Re: TRichEdit und scrollen
Hast du nicht was vergessen? :zwinker:
|
Re: TRichEdit und scrollen
Zitat:
Alles in allem ein Schnellschuß: Nachdem ich nun ca. 3 h über das Problem grüble, kam mir beim schreiben der Frage und Umformatieren des Codes die Idee - So scheint es zu klappen:
Delphi-Quellcode:
Spricht etwas gegen Inherited?
...
SC_Maximize, SC_Restore : Begin Inherited; Log.Perform(EM_SCROLLCARET, 0, 0);// auf letzte Zeile scrollen End; ... Gruß, Alex |
Re: TRichEdit und scrollen
Was passiert, wenn du das OnResize-Event des Formulars nutzt? Ich denke, dass es ein Problem der Reihenfolge der Ausführen ist, d.h. dass du zuerst scrollst und dann die Komponente weiß, dass Sie kleiner geworden ist.
|
Re: TRichEdit und scrollen
Danke für den Tip!
Ich Dummkopft bin immer von den 3 Buttons oben ausgegangen und damit nicht auf die Idee gekommen, dass es beim Unmaximieren zwar augenscheinlich derselbe Button ist. Es ist aber eine andere Message. Zitat:
Gruß, Alex |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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