Algunas veces surgen comentarios sobre la cantidad de mensajes que tiene este o aquel usuario, o las buenas respuestas que da uno u otro.
Yo sé que mis respuestas son normalmente bastante escuetas, secas, cortas y otros usuarios se toman su tiempo en contestar incluso con buenos ejemplos.
Lo digo porque me ha llamado la atención
este hilo donde se ve claramente la diferencia entre uno y otro, a la hora de contestar.
Un usuario pregunta por la mejor manera de liberar un TLabel creado en tiempo de ejecución.
Respuesta de Casimiro Notevi:
Cita:
Empezado por Casimiro Notevi
¿Cómo lo has creado?
|
Respuesta de ecfisa:
Cita:
Empezado por ecfisa
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
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.
|
En fin, ¿calidad de los aportes?, ahí se ve claramente