Wenn man clientseitig eine Liste der Datensätze vorhält (TClientDataset oder etwas eigenes, völlig egal), dann kann man doch auch clientseitig einfach filtern. Man könnte z.B. eine Filterfunktion mit Callback deklarieren, dann könnte das z.B. so aussehen:
Delphi-Quellcode:
type
TMatchFunc = function(SomeElement: TListElement): Boolean;
procedure TIrgendwas.Filter(MatchFunc: TMatchFunc);
var
i: integer;
Item: TListItem;
begin
ListView.Items.BeginUpdate;
try
ListView.Items.Clear;
for i := 0 to Liste.Count - 1 do
if Assigned(MatchFunc) and MatchFunc(Liste[i]) then
begin
Item := ListView.Items.Add;
Item.Caption := Liste[i].SomeStringProperty;
(* etc. pp. *)
end;
finally
ListView.Items.EndUpdate;
end;
end;