Ver Mensaje Individual
  #16  
Antiguo 08-04-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quiero hacer una aclaración en cuanto a los owners.

Ciertamente, el Owner de un Component es quien se encargará de destruirlo, pero no significa que sea su prerogativa exclusiva. Un Component, aun con dueño puede ser destruido explícitamente sin mayores problemas.

El destructor de TComponent hace esto:

Código Delphi [-]
if Owner <> nil then
  Owner.RemoveComponent(Self);

Básicamente, cuando una componente se destruye, repasa su lista de componentes (los que posee), destruyendo cada uno. El código de arriba muestra que al destruirse, una componente se quita ella misma de la lista de componentes de su dueño, rompiendo, por así decirlo, el contrato de propiedad. Cuando ese dueño eventualmente se destruya, no tendrá a la componente en su lista y por tanto no habrá ningún intento por destruir algo que ya no existe.

// Saludos
Responder Con Cita