Delphi 2007 と TcxGrid を使用して、ファイル ライブラリの内容を表示しています。データベースには、ファイルの種類、名前、パス、および拡張子に関する情報が格納されています。
テストでは、TDataSet を介して 1700 レコードをグリッドにロードしています。また、まだ計算する必要がある 3 つのフィールドをグリッドに追加します。それらは、ファイルが存在するかどうか、ファイルのサイズ、および変更日です。
私の目標は、保存されているすべての情報をユーザーに表示し (これはうまく機能し、高速です)、バックグラウンド スレッドで他の 3 つのデータ フィールドの情報を見つけて、それらを TcxGrid に挿入することです。この質問は、私が行っているスレッド化とはほとんど関係がありません。その正常に動作します。
私の問題は、既に構築されているグリッド内のフィールドにアクセスすると、アクセスすると非常に遅くなることです。私は2つの異なる方法を試しました...
Grid.DataController.Values[RecordIndex,FieldIndex] - しかし、これは変種であり、それが非常に遅い理由だと思います
Grid.DataController.DataSet.FindFirst Grid.DataController.DataSet.FindNext Grid.DataController.DataSet.Fields[FieldIndex] しかし、この「シーク」メソッドを使用すると、最初に試した方法と同じくらい遅くなります。Locate と moveby も遅いです。
長い質問ですが、レコードにアクセスする最速の方法は何ですか?