[C++ Builder] プログラムからコンポーネントを生成/削除する
フォームにTButtonを2つとTEditを1つ貼り付けてください。


インクルードファイル(Unit1.h)に下記2行を追加する
class TForm1 : public TForm
{
__published:    // IDE 管理のコンポーネント
    TButton *Button1;
    TButton *Button2;
    TEdit *Edit1;
    void __fastcall Button1Click(TObject *Sender);
    void __fastcall Button2Click(TObject *Sender);
private:    // ユーザー宣言
    TEdit *Edit2;                                               //←追加
    void __fastcall Edit1KeyPress(TObject *Sender, char &Key);  //←追加
public:     // ユーザー宣言
    __fastcall TForm1(TComponent* Owner);
};


//---------------------------------------------------------------------------
// 機能:Editコンポーネントの生成
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    if( Edit2!=NULL && Edit2->Parent!=NULL ) return;

    Edit2 = new TEdit(this);   /*←プログラム終了時に自動削除される*/
    //プロパティのセット
    Edit2->Left   = Edit1->Left;
    Edit2->Top    = Edit1->Top + Edit1->Height + 8;
    Edit2->Width  = 200;
    Edit2->Parent = Form1;
    //イベントのセット
    Edit2->OnKeyPress = Edit1KeyPress;
}


//---------------------------------------------------------------------------
// 機能:Editコンポーネントの削除
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    if( Edit2!=NULL && Edit2->Parent!=NULL ){
        Edit2->Parent = NULL;
        RemoveComponent( Edit2 );
        delete Edit2;
    }
}


void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
    Form1->Caption = dynamic_cast(Sender)->Text + Key;
}


[参考にしたサイト]
 http://gimite.net/bcbqtree/qtreemain.cgi
      

・インターネット上の情報や書籍の内容を一部参考に作成してます。
・コーディング内容は著作権フリーですが、使用する場合は自己責任にてお願いします。
・記述内容に問題点や改善点がありましたらこちらまでお願いします。

サンプル集の一覧に戻る