Thema: Delphi SyntaxHighlighting

Einzelnen Beitrag anzeigen

Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#18

Re: SyntaxHighlighting

  Alt 8. Okt 2009, 14:58
Hallo,

mehrere Fehler

siehe Kommentare
Delphi-Quellcode:
class function TStringManipulation.SyntaxHighlighting(Edit: TRichEdit; Progressbar: TProgressbar): Bool;
var AResultList : TStringList;
var Linelength : Integer;
var Linemax : Integer;
var Offset : Integer;
var Count : Integer;
var i : Integer;
begin
  try
    Offset := 9; // später aus XML
    Count := 5; // später aus XML
    LineLength := 0;
    AResultList := TStringList.Create;//warum StringList ?
    AResultList.Assign(Edit.Lines);
    Linemax := Edit.Lines.Count-1;
    ProgressBar.Position := 0;
    ProgressBar.Max := Linemax;
    Edit.Lines.Clear; //löschen, um nachher wieder einzufügen ?
    Edit.SelStart := Offset-1; //RichEdit ist leer, Selstart bleibt 0
    for i := 0 to Linemax do
    begin
      with Edit do
      begin
        //im vorigen Durchlauf eingefärbten Text überschreiben?
        SelText := AResultList.Strings[i]+sLineBreak;
        SelStart := Edit.SelStart + Linelength;
        SelLength := Count;
        SelAttributes.Color := clBlue;
        SelAttributes.Style := [fsBold];
      end;
      Linelength := Length(Edit.Lines[i])+2; //+2 wegen Zeilenumbruch!
      ProgressBar.Position := Progressbar.Position + 1;
    end;
    FreeAndNil(AResultList);
    result := true;
  except
    FreeAndNil(AResultList);
    result := false;
  end;
end;
Ich hatte schon in Beitrag #9 geschrieben: "lass mal die StringList weg, die hilft Dir nicht dabei"
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat