コンポーネントの動的な作成方法



コンポーネントを動的に作成するにはどうすればいいのでしょうか?


下記のように記述すれば可能です。
注意として必ず,Parentプロパティに親となるコンポーネント(Form,Panel等)を 指定するようにしてください。
これにより,不特定多数のコンポーネントを使用したり,配列でコンポーネントをコ ントロールできるようになります。


//ユニットのヘッダのprivateに以下の一行を記述
TLabel *labels[9];

//以下の記述をボタンのクリック時のイベントに記述
//また,Form1にPanel1というパネルを事前にはっておいてください

void __fastcall TForm1::Button1Click(TObject *Sender)
{
for (int i=0;i<=9;i++)
{
labels[i]=new TLabel(Form1);
labels[i]->Top=i*20;
labels[i]->Caption="Label"+IntToStr(i);
labels[i]->Parent=Panel1;
}
}