掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DBGridの列データ自動保存、自動読込 (ID:30342)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
さらに自己レスです。 Create時とDestory時に if Not(csDesigning in ComponentState) then とすればデザイン時は無効にするようにできました。 コンポーネント作る上で基本なんでしょうが初めて見ました・・・ あとDestory時にDataSourceが解放されているとメモリエラーになるので 以下のように修正しました。 destructor TMyDBGrid.Destroy; begin if Not(csDesigning in ComponentState) then begin if FColumnSave then begin //列設定なしでデータセットが閉じている時は Columns.Count = 1 になる //この場合は保存しない if Assigned(DataSource) then begin if (DataSource.DataSet.State <> dsInactive) or ((DataSource.DataSet.State = dsInactive) and (Columns.Count > 1)) then begin Columns.SaveToFile('Col_' + Owner.Name + Name + '.dat'); end; end else begin if Columns.Count > 1 then begin Columns.SaveToFile('Col_' + Owner.Name + Name + '.dat'); end; end; end; end; inherited; end; とりあえず動く形にはなったので完了とします。 もし問題点があれば助言いただくと幸いです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.