Delphi-PRAXiS

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: Farbige Zeilen (https://www.delphipraxis.net/57660-richedit-farbige-zeilen.html)

Pseudemys Nelsoni 24. Nov 2005 19:51


RichEdit: Farbige Zeilen
 
Moin,

ich benutze folgenden Code um eine farbige Zeile in mein RichEdit zu bekommen:

Delphi-Quellcode:
procedure AddColoredLine(ARichEdit: TRichEdit; AText: string; AColor: TColor);
begin
  with ARichEdit do
  begin
    SelStart := Length(Text);
    SelAttributes.Color := AColor;
    SelAttributes.Size := 8;
    SelAttributes.Name := 'Tahoma';
    Lines.Add(AText);
  end;
end;
Das funktioniert auch soweit, nur wenn ich folgendes mache:

Delphi-Quellcode:
RichEdit1.Text := RichEdit1.Text + 'hi';
Dann ist der komplette Text wieder schwarz. Jemand ne Ahnung wie das kommt?

marabu 24. Nov 2005 20:06

Re: RichEdit: Farbige Zeilen
 
Hallo Mario,

wenn du mit der Text-Eigenschaft arbeitest, dann werden die DefAttributes der RichEdit-Komponente angezogen.

Grüße vom marabu

Pseudemys Nelsoni 24. Nov 2005 20:10

Re: RichEdit: Farbige Zeilen
 
Moin marabu,

hast du ne ahnung was ich da tun kann? ich bekomme naemlich immer einzelne zeichen für das richedit, und dafür kann ich kein lines.add() benutzen, da ich dann am ende von oben nach unten statt von links nach rechts lesen müsste <g>

marabu 24. Nov 2005 20:16

Re: RichEdit: Farbige Zeilen
 
Mach es so:

Delphi-Quellcode:
procedure AddColoredString(ARichEdit: TRichEdit; AText: string; AColor: TColor);
begin
  with ARichEdit do
  begin
    SelStart := Length(Text);
    SelAttributes.Color := AColor;
    SelAttributes.Size := 8;
    SelAttributes.Name := 'Tahoma';
    SelText := AText;
  end;
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  // AddColoredLine(RichEdit, 'asdfhskgfsdgfjhsdfjsd', clRed);
  AddColoredString(RichEdit, 'asdfhskgfsdgfjhsdfjsd'#13#10, clRed);
end;
marabu

Pseudemys Nelsoni 24. Nov 2005 20:20

Re: RichEdit: Farbige Zeilen
 
Besten Dank, geht einwandfrei :mrgreen:

RavenIV 2. Dez 2005 11:08

Re: RichEdit: Farbige Zeilen
 
aber dann darf man kein
Delphi-Quellcode:
RichEdit.Lines.Add(...);
mehr machen, weil sonst der testliche Text auch farbig ist.

Lannes 2. Dez 2005 13:30

Re: RichEdit: Farbige Zeilen
 
Hallo,

mit der geänderten Prozedur:
Delphi-Quellcode:
procedure AddColoredString(ARichEdit: TRichEdit; AText: string; AColor: TColor);
var oldColor : TColor;
begin
  with ARichEdit do
  begin
    setfocus;
    SelStart := Length(Text);
    oldColor := SelAttributes.Color;
    SelAttributes.Color := AColor;
    SelAttributes.Size := 8;
    SelAttributes.Name := 'Tahoma';
    SelText := AText;
    SelAttributes.Color := oldColor;
  end;
end;
darf man dann auch per add Zeilen hinzufügen, die die zuvor vorhandene Textfarbe annehmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 Uhr.

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