![]() |
Richedit - Fokus auf letzte Zeilen halten(inaktives Fenster)
Hallo zusammen.
Ich habe ein Fenster mit einem RichEdit drauf. Mit RichEdit.Lines.Append() füge ich Zeilen hinzu. Wenn der sichtbare Bereich des RichEdit voll ist und ich weiter Zeilen anfüge, erscheint der Scrollbalken, die ersten Zielen verschwinden nach oben und die letzten Zeilen sind sichtbar. So soll es auch sein. Ist allerdings eine andere Anwendung aktiv und mein Fenster ist im Hintergrund, werden die Zeilen zwar angefügt (was ich am kleiner werden des Scrollbalken sehen kann) aber der Fokus ändert sich nicht und bleibt auf den erste Zeilen. Sobald ich das Fenster ankilcke und es wieder aktiv machen, ändert sich auch der Fokus und zeigt die letzten Zeilen. Wie bekomme ich es hin, dass sich der Fokus 'on the fly' ändert sobald Zeilen hinzugefügt werden und das Fenster im Hintergrund ist? RichEdit.Refresh hat leider nicht geholfen. Vielen Dank |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Hallo,
versuch mal das:
Delphi-Quellcode:
Aber wofür scrollen, wenn das Fenster im Hintergrund ist :gruebel:
with RichEdit1 do
begin Lines.Append(...); SelStart := Length(Text); Perform(EM_SCROLLCARET, 0, 0); end; |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Zitat:
Zitat:
|
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Hallo,
das Standardverhalten des RichEdit ist ein automatisches Scrollen beim Einfügen der Zeilen mit Append, auch dann wenn die Anwendung nicht aktiv ist. Also wird das Scrollen durch etwas anderes verhindert, da fehlen jetzt Informationen um weiter helfen zu können. Wie ist denn die Kommunikation realisiert? Hilft ein Aufruf von Application.ProcessMessages nach dem Einfügen mit Append? |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Application.ProcessMessage hilft leider auch nicht.
Kann gut sein dass ich das Scrollen durch irgendetwas verhindere. Dazu und zum Thema wie die Kommunikation realisiert ist möchte ich ![]() |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Hallo,
Zitat:
Zitat:
was mir noch so einfällt: - RichEdit durch Memo ersetzen = Problem noch vorhanden? - RichEdit.Invalidate? - RichEdit.RePaint? |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Liste der Anhänge anzeigen (Anzahl: 1)
Hilft leider alles nicht.
TMemo hingegen macht es genau so wie ich es möchte. :gruebel: Siehe Beispielprogramm im Anhang. |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Hallo,
Deine exe zeigt den Fehler. Hab den Code mal mit DelphiTurbo nachgebaut, Scrollen ist OK. In Deiner Projektdatei ist Application.MainFormOnTaskBar:=True; vorhanden. Das gibt es erst ab Delphi 2007, hat mir das Inet verraten. Das ist der einzige Unterschied zu meiner Programmversion. Ob damit ein Zusammenhang besteht? |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Seltsam. Bei mir tut's die exe....
Application.MainFormOnTaskBar:=True; auskommentieren hilft leider auch nicht. Wollte das auch mal mit TurboDelphi probieren, aber scheinbar kann ich das nicht parallel zu Delphi 2009 installieren :? Hat jemand vielleicht noch eine Idee? |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
Deine exe funktioniert, ich meinte mit "zeigt den Fehler", das abweichende Scrollverhalten. Was ist wenn Du Application.MainFormOnTaskBar auf False setzt? Im Anhang mal das normale Verhalten des RichEdits(mit Turbo Delphi erzeugt). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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