Hallo,
auch wenn Du schon eine Lösung hast, habe es für mich so gelöst:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
i: Integer;
P: TPoint;
begin
With SynMemo1 Do Begin
SearchEngine := TSynEditSearch.Create(self);
SearchEngine.Pattern := InputBox('Suchbegriff','Was sollen wir suchen?','');
SearchEngine.Options := [ssoReplace, ssoReplaceAll];
SearchEngine.FindAll(Text);
For i := 0 To SearchEngine.ResultCount - 1 Do begin
Canvas.Brush.Color := clYellow;
Canvas.Font := Font;
Canvas.Font.Color := clRed;
P := RowColumnToPixels(BufferToDisplayPos(CharIndexToRowCol(SearchEngine.Results[i] - 1)));
Canvas.TextOut(P.X, P.Y, SearchEngine.Pattern);
end;
end;
end;
Nachteil dieser Lösung: Beim Blättern im Memo gehen die Hervorhebungen verloren.
Ansonsten schau Dir mal den PyScripter an, der ist mit den SynEdit-Komponenten geschrieben und hat das von Dir gewünschte Feature.
Du bekommst die Quelltexte dazu über
http://code.google.com/p/pyscripter/source/checkout. Das compilierte Programm ist über
http://code.google.com/p/pyscripter/downloads/list zu erhalten. Damit es läuft, muss Python installiert sein (
http://www.python.org/download/releases/)