Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2010, 16:54   #1
Muniz
 
Регистрация: 26.11.2009
Сообщений: 8
По умолчанию Удаление компонентов

Создаю массив компонентов, вот часть кода
Код:
type pan=array[1..15,1..15] of tpanel;
......
var i,p,j,o:integer;
    panela:pan;
begin
  p:=0; o:=0;
  for i:=1 to r do for j:=1 to s do
   begin
    panela[i,j]:=Tpanel.Create(form2);
    with panela[i,j] do
     begin
      parent:=form2;
      caption:=inttostr(m[i,j]);
      height:=17;
      width:=33;
      top:=50+o;
      left:=8+p;
      p:=p+48;
      if j=s then
      begin
       p:=0; o:=o+32;
      end;
     end;
   end;
Подскажите, как теперь удалить созданные компоненты, к примеру по нажатию кнопки или при закрытии данной формы?

Последний раз редактировалось Muniz; 09.01.2010 в 17:06.
Muniz вне форума Ответить с цитированием
Старый 09.01.2010, 17:33   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

также по циклу всем free
Код:
for i:=1 to r do for j:=1 to s do panela[i,j].free
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 09.01.2010, 17:45   #3
Muniz
 
Регистрация: 26.11.2009
Сообщений: 8
По умолчанию

Выбивает ошибку: Access violation at address 00403156 in module 'Project1.exe'.
Muniz вне форума Ответить с цитированием
Старый 09.01.2010, 18:01   #4
Muniz
 
Регистрация: 26.11.2009
Сообщений: 8
По умолчанию

Может я что-то не правильно пишу? Буду благодарен за любую помощь.
Код:
procedure TForm1.Button1Click(Sender: TObject);

var i,j,r,s,p,o:integer;
    m:array[1..15,1..15] of integer;
    panela:pan;
begin
p:=0; o:=0;
  for i:=1 to 3 do for j:=1 to 3 do
   begin
    panela[i,j]:=Tpanel.Create(form1);
    with panela[i,j] do
     begin
      parent:=form1;
      caption:=inttostr(j);
      height:=17;
      width:=33;
      top:=50+o;
      left:=8+p;
      p:=p+48;
      if j=3 then
      begin
       p:=0; o:=o+32;
      end;
     end;
  end;   
end;

procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
    panela:pan;
begin
  for i:=1 to 3 do for j:=1 to 3 do
  begin
   panela[i,j].Free;

  end; 
end;

Последний раз редактировалось Muniz; 09.01.2010 в 18:04.
Muniz вне форума Ответить с цитированием
Старый 09.01.2010, 18:58   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Код:
var pan: array[1..3, 1..3] of tpanel;

...
procedure TForm1.SpeedButton1Click(Sender: TObject);
var i,j,p,o,z:integer;
begin
 p:= 0; o:= 0; z:=0;

 for i:= 1 to 3 do for j:=1 to 3 do begin
  pan[i,j]:= Tpanel.Create(self);
  with pan[i,j] do begin
   inc(z);
   caption:= inttostr(z);
   height:=17;
   width:=33;
   top:=50+o;
   left:=8+p;
   p:=p+48;
   if j=3 then begin
     p:=0; o:=o+32
   end;

   parent:= self
  end
 end
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
var i,j: integer;
begin
 for i:=1 to 3 do for j:=1 to 3 do pan[i,j].Free
end;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 09.01.2010, 19:12   #6
Muniz
 
Регистрация: 26.11.2009
Сообщений: 8
По умолчанию

Огромное спасибо!
Muniz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление ненужных компонентов из установленной Win7 v01d Windows 1 28.12.2009 15:32
редактор компонентов devi409 Компоненты Delphi 11 20.12.2008 16:49
Пропадание компонентов Terran Компоненты Delphi 2 03.11.2008 18:07
Удаление компонентов SanekIrk Общие вопросы Delphi 8 16.08.2008 09:26