Mas que compilarlo lo que hace es guardar la información del .DFM dentro del ejecutable (de hecho, si usas algun visualizador de recursos y analizas un .exe generado por Delphi verás que bajo la clave "RCDATA" podrás leer todo el contenido que tenía el .DFM, ni siquiera está encriptado ni nada), y en tiempo de ejecución lo que hace es leerlo invocando al método que comente antes "InitInheritedComponent".
Aunque has sido más especifico que yo y, seguramente, sea ese el método que resuelve las referencias. Pero si te fijas la función "GlobalFixupReferences" es invocada dentro del método "ReadRootComponent" que pertenece a la clase "TReader" y si analizas la función "InternalReadComponentRes" (que es invocada por "InitInheritedComponent" dentro del constructor del módulo o formulario) verás que crea un objeto, "TResourceStream", y llama al método "ReadComponent" que es el que crea la clase "TReader" y llama a "ReadRootComponent". (Es decir, el contenido del archivo de recursos es leído en tiempo de ejecución desde el ejecutable, y éste contiene el nombre del objeto, tipo y subcomponentes que posea).
Chao!
Última edición por jmariano fecha: 22-08-2005 a las 23:56:04.
|