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 Farbe ? (https://www.delphipraxis.net/63846-richedit-farbe.html)

Vader 24. Feb 2006 19:43

Re: Richedit Farbe ?
 
noch eine frage,
kann man auch die schriftgröße bestimmen ?

Delphi-Quellcode:
Richedit.SelAttributes.font.size := 8;
das geht aber nicht ?

mfg vader

turboPASCAL 24. Feb 2006 23:59

Re: Richedit Farbe ?
 
Auch das geht:

Delphi-Quellcode:
procedure ...
begin
  cp := RE.CaretPos;

  RE.Selstart := 0;
  RE.Sellength :=  //...

  RE.SelAttributes.color := clRed;
  RE.SelAttributes.Size := 12; // <---<<<

  RE.Selstart := 0;
  RE.CaretPos := cp;
  RE.SelAttributes.Size := RE.Font.Size; // Zurücksetzen der Schriftgrösse
  RE.SelAttributes.Color := RE.Font.Color; // Zurücksetzen der Schriftfarbe
end;
RE = Richedit ;)

Vader 25. Feb 2006 08:11

Re: Richedit Farbe ?
 
hallo,

danke das geht,jetzt habe ich noch ein problem, und zwar ich habe auf meiner form einige richedit's
plaziert, in der laufzeit habe ich dort dann was reinkopiert, jetzt wollte ich einen ausdruck von der
form machen
Delphi-Quellcode:
form1.print;
siehe da, der reinkopierte text in den richedit's wird nicht mitausgedruckt ?

wie ist das möglich,und wie kann ich das anderes lösen ?
mfg vader

turboPASCAL 25. Feb 2006 09:53

Re: Richedit Farbe ?
 
Mach bitte dazu einen neuen Thread auf.

Vader 25. Feb 2006 19:21

Re: Richedit Farbe ?
 
hallo,

Delphi-Quellcode:
procedure TForm.RicheditChange(Sender: TObject);
var
  cp: TPoint;
begin
  cp := Richedit.CaretPos;

  Richedit.selstart := 0;
  Richedit.SelLength :=
      Length(Richedit.Lines[0]) + 2 + // + 2 wegen dem #13#10 hinter einer Zeile
      Length(Richedit.Lines[1]) + 2 + //            -"- 
      Length(Richedit.Lines[2]) + 2; //            -"- 
  Richedit.SelAttributes.color := clRed;

  Richedit.selstart := 0;
  Richedit.CaretPos := cp;
  Richedit.SelAttributes.color := Richedit.Font.Color; // Zurücksetzen der Farbe
end;
der code bezieht sich ja auf die zeichen der lines, geht das nicht das sich Richedit.selstart direkt auf
die zeilen ( lines )bezieht, dann könnte ich sagen in der lines [8] soll die schriftfarbe rot sein ?
mfg vader

marabu 25. Feb 2006 20:01

Re: Richedit Farbe ?
 
Hallo Vader,

gefällt dir das besser?

Delphi-Quellcode:
procedure SetLineColor(re: TRichEdit; const index: Integer; const cl: TColor);
begin
  if index < re.Lines.Count then
  begin
    re.SelStart := re.Perform(EM_LINEINDEX, index, 0);
    re.SelLength := Length(re.Lines[index]);
    re.SelAttributes.Color := cl;
  end;
end;
Grüße vom marabu

xe0n 25. Feb 2006 21:10

Re: Richedit Farbe ?
 
oder dieses ^^

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i,Line,sz:integer;
begin
sz:=0; //-- sz Startzeichen
Line:=strtoint(edit1.Text)-1; //-- (-1) weil Richedit Index bei 0 anfängt
for i:=0 to Line do
begin
sz:=sz+length(richedit1.Lines[i])+2; //-- (+2) weil hinter jeder Line noch 2 nicht sichtbare Zeichen stehen
end;
richedit1.SelStart:=sz-length(richedit1.Lines[Line])-2;
richedit1.SelLength:=length(richedit1.Lines[Line]);
richedit1.SelAttributes.Color:=clred;
end;
umständlich aber es funzt auch ^^
mann kann es auch in ne procedure schreiben um dan mehrere zeilen
zu makieren.

mfg Xe0n

Vader 26. Feb 2006 06:45

Re: Richedit Farbe ?
 
hallo,

habe den aufruf so gemacht

Delphi-Quellcode:
SetLineColor (richedit1, 3,clred);
jetzt ist die zeile 3 mit der schriftfarbe rot, sagt aber deine procedure auch wieviel zeilen dann
rot sein sollen ?

Delphi-Quellcode:
SetLineColor (richedit1, 3,,2,clred);
das funzt nicht

mfg vader

marabu 26. Feb 2006 08:15

Re: Richedit Farbe ?
 
Guten Morgen Vader.

Du bist ja richtig anspruchsvoll. Pass auf die geänderte Signatur auf:

Delphi-Quellcode:
procedure SetParaColor(re: TRichEdit; const cl: TColor;
    const index: Cardinal; const count: Cardinal = 1);
begin
  if (index < re.Lines.Count) and (count >= 1) then
  begin
    re.SelStart := re.Perform(EM_LINEINDEX, index, 0);
    re.SelLength := re.Perform(EM_LINEINDEX, index + count, 0) - re.SelStart;
    re.SelAttributes.Color := cl;
  end;
end;
Freundliche Grüße vom marabu

Vader 26. Feb 2006 08:20

Re: Richedit Farbe ?
 
hallo,

danke schön ihr seid alle super,sowie deine prozeduren wie auch die lösung von xeON !
mfg vader


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr.
Seite 2 von 2     12   

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