DataBase から情報を取得し、フィルターを通過し、キーが押された後にその場で ListView の項目を更新する ListView 内から入力したものを探す TEdit を介して「検索」バーを作成することができました。
今、より関連性の高い結果を得るために、[Show More] ボタンなどを押すまで、一時的に ListView で取得する結果を制限する方法を実装する方法を学習しようとしています。
データベースは「A」を押すまでに 500 件以上の結果を返す可能性があり、それは携帯電話の機能にとって厳しいので、検索ボタンをより効率的にするためにその機能が必要です。
そのようなものを作るために私が何を使うことができるかについて、誰かが私にいくつかの指針を教えてもらえますか?
編集。
ListView での検索に使用している現在のコードはこれです...
procedure TContactsForm.Edit1ChangeTracking(Sender: TObject);
var
Lower: string;
i: integer;
begin
Lower:= LowerCase(Edit1.Text.Trim);
if Lower= '' then
begin
if Filtered then
begin
ListView1.Items.Filter := nil;
ListView1.ItemIndex := BindSourceDB1.ComponentIndex;
end;
end
else
begin
ListView1.ItemIndex := -1;
ListView1.Items.Filter :=
function(X: string): Boolean
begin
Result:= (Lower = EmptyStr) or LowerCase(X).Contains(Lower);
end;
end;
end;
function TContactsForm.Filtered: Boolean;
begin
Result := Assigned(ListView1.Items.Filter);
end;