Thema: Delphi SyntaxHighlighting

Einzelnen Beitrag anzeigen

Benutzerbild von Lannes
Lannes

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

Re: SyntaxHighlighting

  Alt 6. Okt 2009, 13:19
Hallo,

Zitat von Lannes:
PseudoCode:
Code:
Zeile 1 -> SelStart := 9
Zeile 2 -> SelStart := SelStart + Länge Zeile 1
Zeile 3 -> SelStart := SelStart + Länge Zeile 2
ok, damit Du weiter kommst, den Pseudocode umgesetzt:
Delphi-Quellcode:
var z, Offset, Count, LineLength: Integer;
begin
  Offset:= 5; //kommt später aus XML
  Count := 2; //kommt später aus XML
  LineLength := 0; //initialisieren
  //Offset-1 => Index 0 ist SelStart-Index für erstes Zeichen
  RichEdit.SelStart := Offset-1; //initialisieren
  for z := 0 to RichEdit.Lines.Count-1 do
    begin
    RichEdit.SelStart := RichEdit1.SelStart + LineLength;
    RichEdit.SelLength := Count;
    RichEdit.SelAttributes.Color := clRed;
    LineLength := Length(RichEdit.Lines[z]) +2; //+2 = Zeilenumbruch berücksichtigen
    end;
Erklärung: Selstart wird immer um die Länge der letzten Zeile weitergeschoben.

Der Code funktioniert natürlich nur zur Einfärbung eines Teilbereichs jeder Zeile,
die Erweiterung auf mehrere Teilbereiche überlass ich Dir.
Als auch die berücksichtigung von Randbedingungen, als da wären:
-leere Zeilen im RichEdit
-Zeilen die kürzer als Offset + Count sind
- ...
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat