以下は、通常の VCL と XE3 で、TGridPanel を使用して行いました (私の Delphi では TGridPanelLayout はありません)。
GridPanel の問題は、コントロール (ボタンなど) を任意のセル (Cell:1,1 など) に配置できず、そのセルの前のセルにコントロールがないことです。GridPanel は、常にインデックス 0 から上に向かっていっぱいになります。
したがって、トリックはそれをだますことです。GridPanel に既に他のセルがあるかどうかに応じて、ボタンが移動する場所を確保し、ボタンがより低いインデックスのセルにある場合は、その場所に何か他のものを配置する必要があります。
ボタンを押す前にフォームを見てください。

セル 1,0 に ControlItem をまだ作成していないことに注意してください。
ボタン 1 をセル 1,0 に移動したいと思います。最初にその場所 (セル 0,0) に何か他のものを配置しない限り、それを行うことはできません。ボタン 1 を収容するために、セル 1,0 に新しい ControlItem を作成する必要があります。
procedure TForm1.Button1Click(Sender: TObject);
begin
// Places CheckBox1 in the same cell as BUtton1
GridPanel1.ControlCollection.ControlItems[0,0].Control := CheckBox1;
// Create a new ControlItem for Button1 and in the same breath move
// Button1 to it
GridPanel1.ControlCollection.AddControl(Button1,1,0);
// You know what this does. :)
CheckBox1.Parent := GridPanel1;
end;
結果:
