Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Richedit - Fokus auf letzte Zeilen halten(inaktives Fenster) (https://www.delphipraxis.net/136884-richedit-fokus-auf-letzte-zeilen-halten-inaktives-fenster.html)

Viktorii 14. Jul 2009 09:45

Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
 
Zitat:

Zitat von Lannes
Hallo,

Deine exe funktioniert, ich meinte mit "zeigt den Fehler", das abweichende Scrollverhalten.

Achso :oops: :-D


Zitat:

Zitat von Lannes
Was ist wenn Du Application.MainFormOnTaskBar auf False setzt?

Bringt leider auch nichts :(


Zitat:

Zitat von Lannes
Im Anhang mal das normale Verhalten des RichEdits(mit Turbo Delphi erzeugt).

Also bei mir verhält sich das schon besser als mein Kompilat, aber auch noch nicht genau so wie ich es dachte:

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 :(

Lannes 14. Jul 2009 10:11

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.

Viktorii 15. Mär 2010 08:57

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 hier

Delphi-Quellcode:
MyRichEdit.Lines.Append('gnümpf');
MyRichEdit.Perform(EM_LINESCROLL, 0, 1);   // <-- Des Rätsels Lösung
:thumb:

Panthrax 15. Mär 2010 10:13

Re: Richedit - Fokus auf letzte Zeilen halten(inaktives Fens
 
Delphi-Quellcode:
*.Perform(EM_SCROLL, SB_LINEDOWN, 0); // bei konstant einer Zeile
*.Perform(EM_LINESCROLL, 0, Offset); // mit Variable
Wenn das Steuerelement umgebrochene Zeilen enthält, ist eine Zeile zu wenig. Dann besser so:
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 01:38 Uhr.
Seite 2 von 2     12   

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