Ver Mensaje Individual
  #2  
Antiguo 16-03-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Reputación: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

Cita:
Empezado por basti
...me gustaría que esta propiedad apareciese en el Object Inspector (cosa que no sé porqué no hace), y que se pudiese seleccionar el formulario en él...
Qué tal Basti. No mencionas cuál versión de Delphi utilizas, pero supongo que esta respuesta que doy basándome en experiencias similares con Delphi 7 y versiones anteriores es válida también para la versión que utilizas. La razón por la cual no aparece la nueva propiedad en el inspector de objetos es que éste (más específicamente el subsistema de almacenamiento de establecimientos de diseño o Streaming) no soporta las propiedades de tipo clase.

Una manera habitual de resolver el problema es cambiar el tipo de esa propiedad publicada a String, y en tiempo de ejecución utilizar la función FindClass para "convertir" esa cadena a la clase que corresponde y entonces usar ésta para los fines pretendidos.

Un detalle relevante es que la clase en cuestión debe ser registrada (agregada a una lista especial que maneja el programa) en tiempo de ejecución para que FindClass tenga éxito, pero esto no es necesario con las clases de formas que hayan sido definidas en tiempo de diseño y las clases de sus componentes contenidos; con ellas el registro se realiza de manera automática como lo dice la propia ayuda («Form classes and component classes that are referenced in a form declaration (instance variables) are automatically registered with the streaming system»).

Si en algún momento te ves obligado a registrar una clase explícitamente, te sugiero utilizar la función RegisterClass.

Algo que me entusiasmó con la salida de .NET fue pensar que en las nuevas versiones de Delphi podríamos contar con un tratamiento de clases más enriquecido para manejar todas estas cuestiones de forma más fácil y potente. Incluso en las nuevas versiones para Win32, tengo entendido hubo algunos avances al respecto, pero más allá de Delphi 7 no me he movido todavía (desconozco realmente el terreno).

Un abrazo clasificado.

Al González.
Responder Con Cita