Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-06-2006
harvicoco harvicoco is offline
Registrado
 
Registrado: jun 2006
Posts: 4
Poder: 0
harvicoco Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 28-06-2006
JCarlosas JCarlosas is offline
Miembro
 
Registrado: abr 2006
Ubicación: Habana. Cuba
Posts: 103
Poder: 19
JCarlosas Va por buen camino
Hola
Por el nombre de la clase de ventana no se si sera posible pero de esta otra manera si lo es:

Código Delphi [-]
procedure TfrmTools.sbAmpliarTchartTemporalClick(Sender: TObject);
Var
 frmTchartAmpliados : TfrmTchartAmpliados;

begin
  frmTchartAmpliados := TfrmTchartAmpliados.Create(self);
    .
//HAcer aqui lo que haga falta antes de mostrar la ventana..
    .
  frmTchartAmpliados.Show;  //Mostrar la ventana

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

Última edición por JCarlosas fecha: 28-06-2006 a las 00:04:38.
Responder Con Cita
  #3  
Antiguo 28-06-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 30-05-2007 a las 14:17:44.
Responder Con Cita
  #4  
Antiguo 28-06-2006
harvicoco harvicoco is offline
Registrado
 
Registrado: jun 2006
Posts: 4
Poder: 0
harvicoco Va por buen camino
Gracias

Muchas gracias, me funcionó con el RegisterClass y el GetClass, ya me estaba por reventar la cabeza de tanto pensar jejeje, mil gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cambiar el Caption de un Form en tiempo de ejecucion kikodelphi OOP 5 14-01-2012 22:54:22
Crear un tchar en tiempo de ejecucion detandil Gráficos 6 08-04-2006 20:30:59
Obtener Componentes de un form en tiempo de ejecucion el-Cubil.com.ar Varios 2 21-10-2005 18:22:11
como hago para minimizar un Form en tiempo de ejecucion y se coloque en la barra de t Shidalis Varios 3 20-10-2005 22:22:02
Crear un DSN en tiempo de ejecucion neyvan Conexión con bases de datos 7 21-05-2004 17:41:45


La franja horaria es GMT +2. Ahora son las 15:28:00.


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
Copyright 1996-2007 Club Delphi