Ver Mensaje Individual
  #12  
Antiguo 27-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Creo que a lo que van roman y delphi.com.ar es a la posibilidad que el optimizador haya eliminado la llamada a registerclass en tu ejecutable, o bien que la unidad no esté incluida en el uses de ninguna otra, por lo que la clase no existirá en el proyecto...

Cómo estas seguro que eso no ha ocurrido?

Creo que facilmente podes hacer algo como lo indicado en el código sigiuente para tener un test completo:

Código:
Procedure TForm1.Button1Click(Sender : TObject);

Var
  Instancia : TClase;  
  {si esto compila estoy seguro que la unidad ha sido incluida en el uses }
  PunteroClase : TObjectClass;

Begin
  Instancia := TClass.Create(Parametros);
  Instancia.Free;  // para que el optimizador no quite la variable Instancia del camino...
  PunteroClase := GetClass('TClass')
  Assert(PunteroClase <> nil, '¡Es nil!');
  if PunteroClase = nil Then
  Begin
    // intentamos de nuevo registrar la clase, a ver que ocurre...
    RegisterClass(TClass);
    Assert(GetClass('TClass') <> nil, '¡Sigue siendo nil, RegisterClass ya no sirve!');
  End;
end;
Creo que podria ayudar a entender que ocurre...
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita