![]() |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Zitat:
Zitat:
Zitat:
Ich starte die exe und mache ein anderes Fenster aktiv. Zu diesem Zeitpunkt ist der Scrollbalken noch nicht zu sehen. Sobald das Fenster voll ist, erscheint der Scrollbalken, aber der Fokus bleibt auf den ersten Zeilen. Nun mache ich das Richedit-Fenster wieder aktiv. Der Fokus springt auf die letzen Zeilen. Soweit alles wie bei mir. Dann verhält es sich aber anders/besser: Wenn ich nun wieder ein anderes Fenster aktiv mache bleibt der Fokus auf den letzten Zeilen. Ist das bei Dir auch so? Aber leider wäre auch das kompilieren meiner Applikation mit TurboDelphi keine begehbarer Lösungsweg für mich :( |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Hallo,
ist bei mir auch so. Kannst Du denn nicht ein Memo verwenden? Mal ein Vorschlag, die Anwendung soll Dir doch in der nicht aktiven Anwendung die Debug-Informationen ausgeben. In dem Zustand interresieren doch nur die hinzugefügten Zeilen, die anderen sind ja nicht mehr sichtbar(nach oben weggescrollt). Also, wenn die Anzahl der sichtbaren Lines belegt sind, entferne jeweils die erste Lines, bevor eine neue hinzugefügt wird. In einer StringList können im Hintergrund alle Debug-Informationen gesammelt und -bei Bedarf(Anwendung wird aktiviert)- im Richedit angezeigt werden. |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Für alle die das selbe Problem haben... Habe nun die Lösung dank dieses Artikels
![]()
Delphi-Quellcode:
:thumb:
MyRichEdit.Lines.Append('gnümpf');
MyRichEdit.Perform(EM_LINESCROLL, 0, 1); // <-- Des Rätsels Lösung |
Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
Delphi-Quellcode:
Wenn das Steuerelement umgebrochene Zeilen enthält, ist eine Zeile zu wenig. Dann besser so:
*.Perform(EM_SCROLL, SB_LINEDOWN, 0); // bei konstant einer Zeile
*.Perform(EM_LINESCROLL, 0, Offset); // mit Variable
Delphi-Quellcode:
var
TopLineIndex: Integer; ScrollPos: Integer; PageSize: Integer; begin PageSize := 14; // Anzahl sichtbare Zeilen ScrollPos := *.Lines.Count - PageSize; // erste sichtbare Zeile so justieren, dass die letzte Zeile sichbar ist TopLineIndex := *.Perform(EM_GETFIRSTVISIBLELINE, 0, 0); *.Perform(EM_LINESCROLL, 0, ScrollPos - TopLineIndex); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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