Показать сообщение отдельно
  #12  
Старый 06.12.2014, 07:25
Евгений79 Евгений79 вне форума
Прохожий
 
Регистрация: 24.04.2011
Сообщения: 24
Репутация: 156
По умолчанию

Удаление кнопок не срабатывает в таком раскладе.
Но если сделать так
Код:
 for i:=Panel1.ComponentCount-1 downto 0 do
  if pos('but', Panel1.Components[i].name) > 0 then
   Panel1.Components[i].free;
то удаляются нормально.
И да, такой расклад получается вообще идеальным. Спасибо Alegun!


с глобальным массивом кнопок тоже работает
Код:
var
 b: array of tbutton;

procedure TForm1.CreateButtons;
var
 i: integer;
begin
 setlength(b,3);
 for i := 0 to 2 do
 begin
  b[i]:= TButton.Create(panel1);
  b[i].Parent:= panel1;
  b[i].Name:= 'but'+ IntToStr(i);
 end;
end;

procedure TForm1.RemoveButtons;
var
 i,c: integer;
begin
 c:= length(b);
 for i:=0 to c-1 do
  FreeAndNil(b[i]);
 SetLength(b,0);
end;
но с массивом более громоздко выходит.
Ответить с цитированием