Есть подозрение, что вот так будет проще
Код:
var
i: integer;
begin
// /Создать
for i := 1 to 3 do
with TButton.Create(Panel1) do
begin
Parent:= Panel1;
Name:= 'but'+ IntToStr(i);
end;
...
// Удалить
for i := 1 to 3 do
(FindComponent( 'but'+ IntToStr(i))as TButton).Free;
end;
в таком раскладе не нужны промежуточные баттонные переменные