GridPanelで実行時に行を挿入する方法を教えてください。
下記のコードはフォームにScrollBoxを貼り付け、その上にGridPanelを配置している状態です。(GridPanelのAlign=alTopにして)
そしてボタンを一個配置してボタンを押す度にフレームをGridPanelの1行として追加しています。
現状追加はできているのですが、行の挿入をしたくてヘルプを見ているのですが良く分かりません。
行の追加自体は何もしていなくて、FrameのParentをGridPanelにしているだけです(これも正しいのか分かりませんが...)
※GridPanelはColumnCollectionを列0を100%、RowCollectionは行0を自動としています。
よろしくお願いします。
procedure TForm1.Button1Click(Sender: TObject);
var
F: TFrame2;
begin
F := TFrame2.Create(Self);
Inc(Counter); //CounterはIntegerのデータです
F.Name := 'FrameRow' + IntToStr(Counter);
F.Parent := GridPanel1;
GridPanel1.Height := F.Height * Counter;
end;
すみません、バージョンはD2009です。
けどさん、ありがとうございます。
InsertControlを下記のようにしてみました。
F := TFrame2.Create(Self);
Inc(Counter);
F.Name := 'FrameRow' + IntToStr(Counter);
GridPanel1.InsertControl(F);
GridPanel1.Height := F.Height * Counter;
ですが、最後の行に追加されました。
すでに存在する行の途中に挿入したいです。
よろしくお願いします。
すみません、思いっきり挿入場所の引数がなかったですね
InsertControlという名前だけで書いてしまいました
で、ExtCtrls.pas の TCustomGridPanel あたりを見たのですが
「グリッド内の次のセル」というのは決め打ちっぽいですね
けどさん、ありがとうございます。
>すみません、思いっきり挿入場所の引数がなかったですね
いえいえ
やっぱり、挿入はできなさそうですね。
GridPanel以外で実装する方法を検討してみます。
ツイート | ![]() |