掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DBGridの一覧表示について (ID:48918)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いつもお世話になっております。 また、教えて頂きたいことが出てきました。 環境は以下の通りでソースは抜粋で掲載しています。 標準的な、IBqueryやDBGridなどの組み合わせでデータベースを表示していますが 最初の「FormShow」での一覧表示(DBGrid_init)と「Button1」クリックでの表示で 一回目の表示では、DBGridの表示はほぼ一瞬に表示されて何の問題も無いのですが 二回目の表示では、DBGridの表示が上から下方向に流れるような感じで表示が極端に遅くなります。 (表示データは約1000件) ソース内の(※リスト作成)を外せば問題は無くなりますが これは別の部分でDBGridの全行データを確認するために必要なもので外せません。 このような状況ですが、二回目も一回目と同じように早く表示させたいのですが いろいろとやってみましたが全くお手上げ状態です。 何か手がありましたらご教授お願い致します。 ---------------------------------------------------------------- ■動作環境 Windows 8.1 Delphi 6.0 Enterprise Firebird 2.1 ---------------------------------------------------------------- ■ソース抜粋 procedure TForm.FormShow(Sender: TObject); begin DBG_list := TStringList.Create; DBGrid_init; // 一回目の表示 end; procedure TForm.Button1Click(Sender: TObject); begin DBGrid_init; // 二回目の表示 end; // 一覧表示 function TForm.DBGrid_init:integer; var sql_str :string; begin sql_str := 'select * from tablexx where code_no>0'; IBdatabase1.Connected := false; IBquery1.Close; DataSource1.DataSet := IBquery1; 〜略〜 IBquery1.SQL.Clear; IBquery1.SQL.Add(sql_str); DBGrid1.DataSource := DataSource1; IBquery1.Open; //--(※リスト作成)---------------------- // DBGridの行毎全データが直接見れないために対応するためのリストです。 DBG_list.Clear; with IBquery1 do begin first; while not EOF do begin DBG_list.Add(IntToStr(IBQuery1.FieldByName('code_no').AsInteger)); Next; end; end; //-------------------------------------- IBquery1.last ; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.