Re[8]: освобождение памяти при работе с динамическими объект
От: Вячеслав Ермолаев  
Дата: 10.09.03 12:54
Оценка:
Здравствуйте, Prinzip, Вы писали:

P>Здравствуйте, Вячеслав Ермолаев, Вы писали:


ВЕ>>T.e видны эти TGroupBox и TMemo?

ВЕ>>А код конструктора (или тот участок, где GrBox и Memo создаются) и деструктора компонента можно?

P>Ох, сорри, в предыдущий раз не тот класс показщал не тот класс показал:



P>Буду рад, если укажешь на мою ошибку.

Был бы рад, но у меня этот код работает без ошибок
class TMyComponent2 : public TGroupBox
{
private:
TMemo     *Memo;
public:

__fastcall TMyComponent2::TMyComponent2(TComponent* Owner)
               : TGroupBox(Owner)
{
   TMemo *iMemo = new TMemo(this);
   iMemo->Parent=this;
   Memo=iMemo;
}
   __fastcall ~TMyComponent2(){delete Memo;};
};

vector<TMyComponent2*> allA;

void __fastcall TForm2::Button1Click(TObject *Sender)
{
  static int i = 0;
  static int nLeft = 0;
  static int nTop = 0;

  TMyComponent2 *A = new TMyComponent2(NULL);
  A->Left = nLeft;  nLeft += 10;
  A->Top = nTop;     nTop += 10;
  A->Parent = this;

  A->Name = "Component2" + AnsiString(i++);
  allA.push_back(A);

}

void __fastcall TForm2::Button2Click(TObject *Sender)
{
 for(unsigned int i=0; i<allA.size();i++)
   delete allA[i];
 allA.clear();
 //vector<TComponent2*> allA1;
 //allA.swap(allA1);

}

Деструктор вызывается, как ему и положено
С уважением, Вячеслав Ермолаев
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.