Einzelnen Beitrag anzeigen

Benutzerbild von NicNacMan
NicNacMan

Registriert seit: 28. Mai 2004
Ort: Hamburg
98 Beiträge
 
Delphi 2005 Personal
 
#3

Re: RichEdit: farbigen Text finden und ersetzen

  Alt 28. Mär 2005, 01:39
ich bin mit einer schleife alle zeichen durchgegangen, und hab geguckt welche farbe sie haben, dann hab ich das zeichen davor geprüft, und wenn das ne andere farbe hatte, hatte ich den anfang des zb blauen textes.
und das ganze dann nochmal, um das ende rauszufinden, aber das is nicht wirklich optimal, da ich bei textstellen, die am zeilenanfang bzw -ende sind probleme hatte, weil sie nicht erkannt wurden, ...
ich habs dann aufgegeben, als ich nach langem probieren gerademal den anfang des erste vorkommens des blauen textes hatte, und das ja noch mit mehreren anderen farben machen muss, von dem fontstyle (den ich ja auch noch berücksichtigen wollte) mal ganz zu schweigen ^^

das war mein erster versuch (funzt in den meisten fällen, aber leider nicht immer):
Delphi-Quellcode:
function findbeginning(textcolor: String; start: Integer): Integer;
var
  i: Integer;
begin
  result := -1;
  with Form1.RichEdit1 do
    for i := start to Pred(Length(Text)) do
      begin
        SelStart := i;
        if (ColorToString(SelAttributes.Color) = textcolor) then
          begin
            SelStart := Pred(i);
            if (i <= 0) or (ColorToString(SelAttributes.Color) = textcolor) then
              begin
                result := i;
                exit;
              end;
          end;
      end;
end;
The Double-Crunch-Peanuts!
SwapIt:
  Mit Zitat antworten Zitat