Crear Form en tiempo de Ejecución
Amigos, quisiera saber si hay la posibilidad de crear un Form sabiendo el nombre de la clase del form; es decir:
Var Form:TForm; Link:String; Begin Link:='TForm1'; Form:=TForm(Link).Create(Self); End; Eso es lo que hago y me sale error, no se si hay alguna forma de poder hacer eso; obviamente Link puede ser cualquier Formulario que esta dentro del Proyecto, solo que necesito asignarselo a la variable Form para poder trabajarlo. Gracias de antemano. |
Hola
Por el nombre de la clase de ventana no se si sera posible pero de esta otra manera si lo es:
TfrmTchartAmpliados debe ser el nombre (Tipo) de una clase de ventana (Formulario) que tienes que haber diseñado previamente. Debes incluir en la clausula uses de la unit donde pongas este codigo el nombre de la unit donde esta el formulario diseñado. Debes ademas eliminar la creacion del formulario en el programa principal. Creo que en esencia eso es todo. Saludos Juan Carlos |
Se puede hacer lo que necesitas utilizando RTTI siempre y cuando la clase esté registrada.
Para acceder a la clase debes utilizar GetClass y para registrar una clase se usa el procedimiento RegisterClasses. Creo que es más sencillo verlo con un ejemplo. En este caso se registra la clase en el DPR y desde el Form1 se crea el Form2 a partir del nombre de la clase. |
Gracias
Muchas gracias, me funcionó con el RegisterClass y el GetClass, ya me estaba por reventar la cabeza de tanto pensar jejeje, mil gracias
|
La franja horaria es GMT +2. Ahora son las 18:05:04. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi