Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Создание объектов


Автор: Mpak 25.12.2006, 21:53
Есть беспрерывное создание объектов например, TEdit  в виде матрицы:
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    n[nal]=StrToInt(Edit1->Text);
if (Edit1->Text!="")
{
cr:
 for (i=0;i<n[nal];i++)
 {l=128;
  for (j=0;j<n[nal];j++)
   {
    ed[j]=new TEdit(this);
    ed[j]->Parent=this;
    ed[j]->Height=25;
    ed[j]->Width=25;
    ed[j]->Left=l;
    ed[j]->Top=t;
    l=l+ 35;
   }
  t=t+35;
 }
 if (n[1]>n[0])
 {
  for (i=0;i<n[0];i++)
   {
    for (j=0;j<n[0];j++)
     {
      delete ed[j];
     }
   }
 nal=0;
 goto cr;
 }
nal=1;
}
}


Не могу сообразить как сделать удаление их если следующее введеное число меньше предыдущего....
Допустим предыдущее было 5 (матрица 5*5), а следующее 2 (матрица 2*2)
появляются лишние элементы....их надо удалить....не могу составить код правильно.....

Автор: Fazil6 25.12.2006, 22:03
надо сохранять указатели на созданные объекты в TList.  Потом удалять их получая из этого списка

Автор: Yra 26.12.2006, 22:53
Mpak,  а где двумерный массив??
 ты же работаешь с одномерным.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)