Hier kommt eine Procedure die du als Filter zur Volltextsuche einsetzen kannst:
Delphi-Quellcode:
procedure TForm1.DoFilterRecord(DataSet: TDataSet;var Accept: Boolean);
var
i : Integer;
fields : TFields;
begin
fields := dataset.Fields;
for i := 0 to fields.Count-1 do
begin
if CompareWildText(Suchmuster, fields[i].Text) then
begin
Accept := True;
Exit;
end;
end;
Accept := False;
end;
Die Funktion CompareWildText() prüft ob das Suchmuster im Datenfeld enthalten ist.
Siehe:
Stringvergleich mit Wildcards
Damit kannst du jetzt also einen Volltextfilter setzen indem du das Event OnFilterRecord auf die Methode von oben richtest.
Du kannst damit aber auch
Suchen.
"Suchen" ist der kleine Bruder des "Filters".
Delphi-Quellcode:
procedure TForm1.Volltextsuche(Dataset:TDataset);
var
accept : boolean;
begin
dataset.DisableControls;
try
while not Dataset.Eof do
begin
DoFilterRecord(Dataset, accept);
if accept then
break; // gefunden
Dataset.Next;
end;
finally
dataset.EnableControls;
end;
end;