Klappt doch noch nicht ganz so, weil Ich ja SelStart immer ans Ende des Textes setze, kann Ich jetzt nicht mehr zb. - wenn Ich Fünf Zeilen hab in der Ersten Zeile was eingeben.
Habs schon mit RichEdit1.CaretPos.x probiert klappt aber auch nicht so Recht.
Vieleicht hat ja von Euch noch wer eine Idee.
Hier nochmal der Quelltext zur Zeit.
Delphi-Quellcode:
var
Form1: TForm1;
Reserviert: array[0..2] of string =('begin', 'end', 'end.');
implementation
{$R *.dfm}
procedure ReserviertBold(RichEdit1: TRichedit);
var
i,j:Integer;
Bold, Str: String;
begin
for i:= 1 to length(RichEdit1.Text) do
for j:= 0 to High(Reserviert) do
begin
Bold:= Uppercase(Reserviert[j]);
Str:= Uppercase(Copy(RichEdit1.text, i, Length(Bold)));
if (Str = Bold) then
begin
RichEdit1.SelStart:= i - 1;
RichEdit1.Sellength:= Length(Bold);
RichEdit1.Text:=StringReplace(RichEdit1.Text,Bold,Uppercase(Bold),[rfReplaceAll, rfIgnoreCase]);
RichEdit1.SelAttributes.Color := clBlue;
RichEdit1.SelAttributes.Style:= [fsbold];
RichEdit1.SelStart:=Length(RichEdit1.Text)-1;
RichEdit1.SelAttributes.Style:= [];
end;
end;
end;
procedure TForm1.RichEdit1Change(Sender: TObject);
begin
ReserviertBold(RichEdit1);
end;