![]() |
TRichEdit probleme beim scrollen
Hi,
ich habe ein problem mit dem RichEdit. Ich habe vorgegeben das die History 200 betragen darf. Bin ich unter 200 klappt alles wunderbar. Sobald was neues kommt wird es unten angehängt und gegebenfalls sauber gescrollt. Überschreite ich die 200 und lösche dann die oberste zeile weg, springt er irgendwo mitten rein. Das heisst ich sehe dann nichtmehr das ende des textes, sondern der steht irgendwo mitten drin. Srcolle ich den dann wieder nach unten, passiert bei der nächsten ausgabe das gleiche. Er scrollt einfach irgendwo mitten rein. Das RichEdit benutze ich nur als ausgabe. Es ist auf ReadOnly. Ist die 200 erreicht mache ich folgendes.
Delphi-Quellcode:
Was mache ich falsch?while REditOut.Lines.Count > 200 do begin REditOut.Lines.Delete(0); end; REditOut.Perform(EM_SCROLLCARET,SB_LINEDOWN,0); Vielen dank im voraus |
Re: TRichEdit probleme beim scrollen
http://msdn.microsoft.com/en-us/library/bb787527%28VS.85%29.aspx SB_LINEDOWN The user clicks the bottom scroll arrow. Increments the scroll box position; scrolls toward the bottom of the data by one unit. Wenn du löschst, dann landet der Cursor an der Stelle, wo gelöscht wurde. Setze den Cursor (SelStart) auf das Dateiende und laß zu diesem scrollen. |
Re: TRichEdit probleme beim scrollen
Delphi-Quellcode:
so? Nach dem Delete oder vorher?
REditOut.SelStart:=REditOut.Lines.Count
Sorry das ich nachfrage, aber es dauert immer bis zu 4 stunden bis ich die 200 zeilen voll habe. Und wenn ich weniger nehme zum testen dann klappt es?!? |
Re: TRichEdit probleme beim scrollen
SelStart wird nicht in Zeilen angegeben.
Delphi-Quellcode:
REditOut.SelStart := Length(REditOut.Text);
// oder in Kurz REditOut.SelStart := -1; Zitat:
PS: das Delete vor dem Add würde auch gehn, da durch das Add ebenfalls die Position verschoben wird ... darum ist es danach immer am Textende. :angel2: Eigentlich sollte bei Add automatisch gescrollt werden, darum würde ich es so machen und nicht selber nochmals scollen:
Delphi-Quellcode:
while REditOut.Lines.Count >= 200 do
REditOut.Lines.Delete(0); REditOut.Lines.Add(s); |
Re: TRichEdit probleme beim scrollen
Ach, klar. Ich dreh das dann am besten einfach um. Also erst Del und dann Add.
Vielen dank!! |
Re: TRichEdit probleme beim scrollen
Alternativ kannst du auch folgendes probieren:
Delphi-Quellcode:
mfg
SendMessage(ARichEdit.Handle,WM_VSCROLL,SB_BOTTOM,0);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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