Bueno, yo no he querido entrar tampoco en ese tema y mucho menos en si es necesario o no avisar de que ha habido un problema, se me ocurren ejemplo prácticos del porqué.
Vamos a verlo de la siguiente forma:
- Tengo un objeto con varios objetos dependientes
- En el Destroy de ese objeto contenedor tengo el siguiente código
Código Delphi
[-]
destructor TContenedor.Destroy;
begin
for i := 0 to ListaObjetos.Count - 1 do
begin
if Assigned(ListaObjetos[i]) then ListaObjetos[i].Free;
end;
end;
- cada objeto contenido tiene una misión en base a si se crea o no; ejemplo: muestra un edit si se crea o no lo muestra en caso contrario
En definitiva, si te pones a buscar caso prácticos, seguro que alguno se encuentra.