1

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;
4

1 に答える 1