AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TRichEdit und scrollen

Ein Thema von Schwedenbitter · begonnen am 19. Jan 2010 · letzter Beitrag vom 19. Jan 2010
Antwort Antwort
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

TRichEdit und scrollen

  Alt 19. Jan 2010, 12:38
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 istAnchors:=[akLeft, akRight, akTop, akBottom]; 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.

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:
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;
Beide Methoden, mit denen ich sonst immer den Text an das Ende scrolle, versagen hier. Was mache ich verkehrt?

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: TRichEdit und scrollen

  Alt 19. Jan 2010, 12:42
Hast du nicht was vergessen?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: TRichEdit und scrollen

  Alt 19. Jan 2010, 12:50
Zitat von s.h.a.r.k:
Hast du nicht was vergessen?
Ja! Siehe oben. Ich hatte das erste Mal zu zeitig auf Enter gedrückt.

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:
...
    SC_Maximize,
    SC_Restore : Begin
                   Inherited;
                   Log.Perform(EM_SCROLLCARET, 0, 0);// auf letzte Zeile scrollen
                 End;
...
Spricht etwas gegen Inherited?

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: TRichEdit und scrollen

  Alt 19. Jan 2010, 12:52
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: TRichEdit und scrollen

  Alt 19. Jan 2010, 12:58
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 von Schwedenbitter:
Spricht etwas gegen Inherited?
oder muss/sollte ich dann besser wsNormal benutzen? Warum merkt sich das TRichEdit das eigentlich nicht?

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz