Ver Mensaje Individual
  #3  
Antiguo 09-05-2003
Bacterion Bacterion is offline
Miembro
 
Registrado: may 2003
Posts: 91
Reputación: 22
Bacterion Va por buen camino
Bien, básicamente es que toda "variable" objeto es, en realidad, una referencia a objeto.

Vamos:
var
MiSuperObjeto: TMiSuperObjeto;

Sería "como" poner
var
MiSuperObjeto: ^TMiSuperObjeto;

Son siempre punteros a objeto, mientras que el resto de tipos "primitivos" (real, entero, etc...), son el contenedor de un valor del tipo (vamos tienes la referencia y el espacio de memoria asociado).

De ahí viene que si no se le asigna un objeto a la variable, en realidad no estés apuntando a algún sitio valido.

Usea:

var
MiSuperObjeto: TMiSuperObjeto;
begin
MiSuperObject.SuperMetodo; // lanzará una violación en masa de los bits pares de la cpu.

Luego, si haces lo que cadetill indica, siempre pasas una referencia al objeto (y por lo tanto, operarás, realmente, con ese objeto).
Responder Con Cita