Einzelnen Beitrag anzeigen

Benutzerbild von derpepe
derpepe

Registriert seit: 16. Mär 2005
Ort: Dotternhausen
164 Beiträge
 
Delphi 2005 Personal
 
#1

Scintilla: Text in einer Schleife durchsuchen

  Alt 25. Mär 2005, 21:19
Ich brauche eine Funktion, die eine ListBox mit dem Inhalt derjenigen Zeilen füttert, die einen bestimmten Suchbegriff enthalten.

Im Folgenden mein Versuch:
Delphi-Quellcode:
procedure THauptfenster.SciSearchReplace1TextFound(Sender: TObject);
begin
  if SciSearchReplace1.Tag=1 then exit;
end;

procedure THauptfenster.SciSearchReplace1TextNotFound(Sender: TObject);
begin
  SciSearchReplace1.Tag:=2;
end;


procedure THauptfenster.fuelleListe(liste:tstrings;suchbegriff:string);
var
  temp:string;
begin
  liste.Clear;
  Scintilla1.SelStart:=0;
  SciSearchReplace1.SearchBackwards:=false;
  SciSearchReplace1.SearchCaseSensitive:=false;
  SciSearchReplace1.SearchFromCaret:=true;
  SciSearchReplace1.SearchSelectionOnly:=false;
  SciSearchReplace1.SearchWholeWords:=true;
  SciSearchReplace1.SearchRegex:=false;
  SciSearchReplace1.SearchText:=suchbegriff;
  SciSearchReplace1.ReplaceText:='';

  SciSearchReplace1.Tag:=1;

  Scintilla1.SelStart:=0;

  SciSearchReplace1.DoSearchReplaceText(false,false);
  application.processmessages;
  while SciSearchReplace1.Tag<>2 do begin
    temp:=Scintilla1.lines[Scintilla1.LineFromPosition(Scintilla1.GetCurrentPos)];

    liste.add(temp);

    SciSearchReplace1.DoSearchReplaceText(false,false);
    application.processmessages;
  end;
  Scintilla1.SelStart:=length(Scintilla1.lines.Text);
end;
Leider funktioniert das so aber nicht
Hat jemand ne bessere Idee?
Den Text mit eigenen Funktionen will ich nicht, das Rad ist ja bereits erfunden
Peter J. Schneider
http://raketenwerfer.de/programmieren/delphi/index.html
Nes dar in da kev, sed un est a log!
  Mit Zitat antworten Zitat