Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#13

Re: Suchergbenisse farblich hinterlegen (TSynMemo)

  Alt 8. Sep 2009, 12:05
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/)
  Mit Zitat antworten Zitat