![]() |
Crear Objeto por su nombre de clase
Hola:
Actualmente tengo dos formulario (TForm1 y Tform2) y me gustaria crearlos con un único procedure: Ejemplo procedure CrearFormulario(Form : TForm) begin Form := TForm.Create(self); end; // Este ejemplo funciona, pero me lo crea con la clase heredada TForm y no la que correspondería que seria: Form := TForm1.Create(self); Form := TForm2.Create(self); Hay alguna forma de crear el objeto sin saber su clase? NombreClase := Classname(Form); Form := NombreClase.Create(self); Un saludo, JL |
Hola...
Tendrías que construir una fabrica de objetos (o clases :p), en la cual registrar los nombres de clase de la forma con su respectiva clase y luego solo las creas usando el nombre de la clase: Algo como:
Ahora, en tu caso la función que quieres usar puedes mandarle el tipo de la forma que quieres crear:
Para llamar la función solo haces:
Saludos... |
Yo las creo a partir del nombre de un TAction que tenga el mismo nombre de la forma que voy a crear. Todos los action les asigno el mismo evento OnExecute
Código:
procedure TfrmMenu.actAbrirVentanaExecute(Sender: TObject); Código:
initialization |
La franja horaria es GMT +2. Ahora son las 02:27:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi