TMS の Tdbadvgrid で作業しています。SQLクエリの長さに基づいて列を動的に追加しています。列幅の節約を除いて、すべてがうまく機能します。列の追加:
//Captions
for i := 0 to oRow.Count - 1 do
begin
grdFieldData.Columns.Insert(1);
grdFieldData.Cells[i + 1, 0] := TabelList.Captions[i].Caption;
end;
//Data
for r := 0 to TabelList.Count - 1 do //rows
begin
for c := 0 to oRow.Count - 1 do //cols
begin
grdFieldData.Cells[c+1, r+1] := TabelList.Rows[r].Fields[c].Value;
end;
if r <> TabelList.Count - 1 then
grdFieldData.RowCount := grdFieldData.RowCount + 1;
end;
これで保存機能が TMS TDBAdvGrid に組み込まれ、次のようになります。
私はすべてのオプションをいじってみましたが、うまくいきませんでした。
テーブルには、1 つの固定行 (キャプション用) と 1 つの空の行があります。固定行の数は行数よりも少なくなければならないため、行はそこにあるだけです。データを.iniファイルまたはレジストリに保存すると、最初の列が保存およびロードされますが、動的に追加された列はデフォルト値(64)として書き込まれますが、ドラッグしてサイズを調整すると保存/ロードされません。.ini ファイル テーブルは次のようになります。
[Recept]
Col0=20
Col1=97
Col2=64
Col3=64
Col4=64
Col5=64
Col6=64
Col7=64
Col8=64
Col9=64
Col10=64
Col11=64
Col12=64
Col13=64
Col14=64
幅が保存されるように、列を適切に保存するために何ができるか知っている人はいますか?