Hola Carlos.
Como bién apunta Casimiro, todo depende como hiciste la creación. Si la hiciste sobre una variable a la que tenes acceso basta con que uses
donde desees.
Si la creaste al vuelo, por ejemplo:
Código Delphi
[-]
procedure TForm1.FormCreate(Sender: TObject);
begin
with TLabel.Create(Self) do begin
Name:= 'MiLabel';
...
end;
basta con hacer
Código Delphi
[-]
TLabel(FindComponent('MiLabel')).Free;
En cambio si su hiciste su owner igual a nil, para que se oculte y libere tendrías que hacer:
Código Delphi
[-]
with FindComponent('Label1') do
begin
Parent:= nil;
Free;
end;
Si son muchos los controles creados quizá te pueda servir hacer:
Código Delphi
[-]
...
uses contnrs;
var
ObjLst: TObjectList;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
L: TLabel;
begin
ObjLst:= TObjectList.Create;
for i:= 0 to 19 do begin
L:= TLabel.Create(nil);
L.Left:= 20;
L.Top:= 20 * i + 30;
L.Caption:= 'Label'+IntToStr(i+1);
ObjLst.Add(L);
TLabel(ObjLst[i]).Parent:= Self;
end;
end;
procedure TForm1.LiberarClick(Sender: TObject);
begin
FreeAndNil(ObjLst);
end;
Saludos.