можно сделать примерно так:
это для родительской формы:
Код | class TForm2 : public TForm { __published: // IDE-managed Components TBitBtn *BitBtn1; void __fastcall FormClose(TObject *Sender, TCloseAction &Action); void __fastcall BitBtn1Click(TObject *Sender); private: // User declarations std::vector<TForm3*> vec_tf; public: // User declarations __fastcall TForm2(TComponent* Owner); };
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action) { for (std::vector<TForm3*>::iterator i = vec_tf.begin(); i < vec_tf.end(); ++i) delete *i; //удаляем все дочерние окна Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TForm2::BitBtn1Click(TObject *Sender) { vec_tf.push_back(new TForm3(this)); //при нажатии на кнопку создаем дочернюю форму и ложим указатель на нее в вектор }
|
это дочерняя:
Код | class TForm3 : public TForm { __published: // IDE-managed Components void __fastcall FormClose(TObject *Sender, TCloseAction &Action); private: // User declarations public: // User declarations __fastcall TForm3(TComponent* Owner); };
void __fastcall TForm3::FormClose(TObject *Sender, TCloseAction &Action) { Action = caFree; }
|
|