2017-09-25 1 views
0

私はDelphi Tokyoでアプリケーションを作成していますが、私はDelphi Tokyoに移行しました。しかし、ListViewでの検索はもはや正しく動作していません。 最初に使用すると、正しく動作します。レコードをフィルタリングして編集します。私はデータをdatasnapサーバに送り、すべてのレコードをもう一度フェッチしてリストビューをリフレッシュします。しかし、私が再び検索しようとすると、それはもはやレコードを見つけることができませんが、リストビューをブラウズするとレコードを見つけることができます。ListView DataSnapサーバーからデータを取得した後にフィルタが機能しない

明らかに、データをリロードしたときに画面に表示されないすべてのレコードはフィルタリングされていません。手動でレコードに移動して検索を実行すると、そのレコードは機能します。

マイコードは、DataSnapのからデータを取得し、リストビューに表示する:私はフィルターを掃除するために、このコードを使用し

DadosSocio := F_ClientModule.ServerMethods1Client.GetSocio(0); 
    Assert(TFDJSONDataSetsReader.GetListCount(DadosSocio) = 1); 

    mem_Socios.Close; 
    mem_Socios.AppendData(TFDJSONDataSetsReader.GetListValue(DadosSocio, 0)); 
    mem_Socios.Open; 

    lvSocios.ScrollTo(0); 
    lvSocios.ScrollViewPos := 0; 

for I := 0 to lvSocios.Controls.Count-1 do 
    Begin 
    if lvSocios.Controls[I].ClassType = TSearchBox then 
    begin 
     TSearchBox(lvSocios.Controls[I]).Text := ''; 
    end; 
    End; 

私は、フィルターをきれいにするこのコードを使用してみましたエラーを返しますArgument out of Range

lvSocios.Items.Filter := nil; 

答えて

0

私は次の問題を解決しましたコード:

var 
    I: Integer; 
begin 
    for I := 0 to ListView.Controls.Count-1 do 
    Begin 
    if ListView.Controls[I].ClassType = TSearchBox then 
    begin 
     TSearchBox(ListView.Controls[I]).Text := ''; 
    end; 
    End; 

    ListView.Items.Filter := nil; 
関連する問題