Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi RichEdit: neue farbige Zeile vorne einfügen? (https://www.delphipraxis.net/60019-richedit-neue-farbige-zeile-vorne-einfuegen.html)

Helmi 1. Jan 2006 21:30


RichEdit: neue farbige Zeile vorne einfügen?
 
Hallo,

ich möchte eine farbige Zeile in eine RichEdit hinzufügen.
Das wär ja auch kein Problem (link).

Nur will ich die neue Zeile nicht hinten (was "add" macht) sondern am Anfang setzen.

Einen Text vorne hinzufügen und diesen farblich darzustellen ist auch kein Problem. Nur wenn ich dann einen neuen Text hinzufüge, werden alle anderen Zeilen wieder schwarz.

Wie kann ich verhindern, dass die Zeilen wieder schwarz werden, sondern dass diese Zeilen ihre (mal gegebene) Farbe behalten?

ach ja - hier noch ein Code den ich bisher habe:
Delphi-Quellcode:
procedure TForm1.Meldung_anzeigen(Meldungstext: String; Farbe: TColor);
var
  S: String;

begin
  with RichEdit1 do
    begin
      S := Text;

      clear;
      Text := Meldungstext + #10 + S;
      SelStart           := 0;
      SelLength          := length(Meldungstext);
      SelAttributes.Color := Farbe;
    end;
end;

Lannes 1. Jan 2006 22:17

Re: RichEdit: neue farbige Zeile vorne einfügen?
 
Hallo,

so müsste es passen, wenn ich Dich richtig verstanden habe:
Delphi-Quellcode:
  with RichEdit1 do
    begin
      SelStart           := 0;
      SelText            := Meldungstext+#13#10;
      SelStart           := 0;
      SelLength          := length(Meldungstext);
      SelAttributes.Color := Farbe;
    end;

Matze 1. Jan 2006 22:33

Re: RichEdit: neue farbige Zeile vorne einfügen?
 
Das Problem ist ja, dass Helmi den Text komplett auis dem Richedit entfernt und hinterher den neuen String wieder im RichEdit darstellt. Da im String keinerlei Farbinformationen enthalten sind, ist natürlich der Text wieder schwarz.

Probiere es mal so:

Delphi-Quellcode:
RichEdit1.Lines.Insert(0, 'hallo');

Lannes 1. Jan 2006 22:54

Re: RichEdit: neue farbige Zeile vorne einfügen?
 
Hallo,

geht auch :wink:
diese Zeilen:
Delphi-Quellcode:
SelStart := 0;
SelText  := Meldungstext+#13#10;
sind in der Auswirkung identisch mit der Zeile:
Delphi-Quellcode:
RichEdit1.Lines.Insert(0, Meldungstext);

Helmi 2. Jan 2006 07:23

Re: RichEdit: neue farbige Zeile vorne einfügen?
 
Hallo,

danke für eure Hilfe! :thumb:

jetzt gehts!

Meine Procedure schaut jetzt so aus:
Delphi-Quellcode:
procedure TForm1.Meldung_anzeigen(Meldungstext: String; Farbe: TColor);
begin
  with RichEdit1 do
    begin
      Lines.Insert(0, Meldungstext);
      SelStart           := 0;
      SelLength          := length(Meldungstext);
      SelAttributes.Color := Farbe;
      SelStart           := 0;
    end;
end;
Ach ja, ich hab nach "SelAttributes.Color" noch ein "SelStart := 0" eingefügt, weil sonst der Text markiert war


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:17 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