Hier eine Routine, die alle Möglichkeiten des FindDialogs ausnützt.
(TFindDialog findest auf der Seite Dialoge)
Die Trennzeichen kann man auch noch erweitern, wenn man will.
Diese werden benötigt für die "Ganzes Wort"-Suche.
Aus folgendem Grund verwende ich hier nicht die Pos-Funktion.
Erstens kann man damit nicht rückwärts suchen, zweitens muß immer der String zerlegt werden.
Eventuelle Probleme: Wenn der Suchstring ganz am Anfang, oder Ende des Textes steht, und mit "Ganzes Wort" gesucht wird.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59:
| implementation
{$R *.dfm}
const Trennzeichen = [' ',',','.','!','?','"'];
procedure TForm1.Button1Click(Sender: TObject); begin FindDialog1.Execute; end;
procedure TForm1.FindDialog1Find(Sender: TObject);
function Vergleiche(j: Integer): Boolean; var found : String; begin Found := Copy(Memo1.Text, j-1, Length(FindDialog1.FindText)+2); Result := false; IF frMatchCase in FindDialog1.Options then begin IF Copy(Memo1.Text, j, Length(FindDialog1.FindText)) = FindDialog1.FindText then Result := true; end else begin IF LowerCase(Copy(Memo1.Text, j, Length(FindDialog1.FindText))) = LowerCase(FindDialog1.FindText) then Result := true; end;
IF (Result = true) AND (frWholeWord in FindDialog1.Options) then begin Result := (Memo1.Text[j-1] in Trennzeichen) AND (Memo1.Text[j+Length(FindDialog1.FindText)] in Trennzeichen); end; end;
var i : Integer; begin IF frDown in FindDialog1.Options then begin For i := Memo1.SelStart+Memo1.SelLength to Length(Memo1.Text) do begin IF Vergleiche(i) then begin Memo1.SelStart := i-1; Memo1.SelLength := Length(FindDialog1.FindText); Exit; end; end; ShowMessage('Text nicht gefunden!'); end else begin For i := Memo1.SelStart downto 0 do begin IF Vergleiche(i) then begin Memo1.SelStart := i-1; Memo1.SelLength := Length(FindDialog1.FindText); Exit; end; end; ShowMessage('Text nicht gefunden!'); end; end; |
Sollte eigentlich sein, was Du suchst.
"Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."