Einzelnen Beitrag anzeigen

Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Reservierte Wörter hervorheben [RichEdit]

  Alt 10. Dez 2006, 14:40
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;
Blackheart
  Mit Zitat antworten Zitat