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;