Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-04-2007
leoram72 leoram72 is offline
Registrado
 
Registrado: abr 2007
Posts: 5
Poder: 0
leoram72 Va por buen camino
Consulta Formularios

Hola,

Tengo la necesidad de crear en tiempo de ejecución los formularios de mi aplicación los nombres de cada formulario estan almacenado en campos texto, y necesito que cuando el usuario elija que formulario ejecutar, tome el nombre del formulario, lo cree y lo presente, he tenido problemas con los tipos de datos.

Agradezco de antemano la ayuda.
Responder Con Cita
  #2  
Antiguo 05-04-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.112
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Por el momento se me ocurre algo como lo siguiente:

Código Delphi [-]
  with Application do begin
    if Assigned(FindComponent('Form2')) then
      (FindComponent('Form2') as TForm).ShowModal();
  end;

Con el posible inconveniente de que el formulario "Form2" ha de crearse al comenzar el proyecto, es decir, ha de estar disponible (lo que no quiere decir visible) para poder utilizar el método "FindComponent" de la clase "Application".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 05-04-2007
leoram72 leoram72 is offline
Registrado
 
Registrado: abr 2007
Posts: 5
Poder: 0
leoram72 Va por buen camino
Gracias

Mil gracias, esta opcion me sirve, ya despues mirare como optimizarla para no tener que crear toas las formas desde el principio

Gracias.
Responder Con Cita
  #4  
Antiguo 05-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Aquí va otra idea:

Para crear el formulario con nombre dado puedes definir el siguiente método en el formulario principal:

Código Delphi [-]
procedure TForm1.CreateForm(FormName: String);
var
  FormClass: TPersistentClass;

begin
  FormClass := GetClass(FormName);
  if Assigned(FormClass) and (FormClass.InheritsFrom(TForm)) then
    with TFormClass(FormClass).Create(Application) do
      Show;
end;

Para que esto funcione, el formulario principal debe incluir en el uses, las unidades de los otros formularios, y cada uno de esos otros formularios debe incluir una sección initialization donde registre la clase del formulario:

Código Delphi [-]
unit Unit2;

interface

type
  TForm2 = class(TForm)
    ...
  end;

implementation

...

initialization
  RegisterClass(TForm2);
end.

Es un poco más de trabajo, pero permite iniciar sin tener creados los formularios.

// Saludos
Responder Con Cita
  #5  
Antiguo 05-04-2007
leoram72 leoram72 is offline
Registrado
 
Registrado: abr 2007
Posts: 5
Poder: 0
leoram72 Va por buen camino
Solucionado

Bien,

Ya probe esta funcionalidad y es perfecta, mil gracias por la ayuda y la verdad no es muy extensa.

Nuevamente Gracias
Responder Con Cita
  #6  
Antiguo 20-04-2007
juliobuitrago juliobuitrago is offline
Miembro
 
Registrado: jun 2006
Posts: 37
Poder: 0
juliobuitrago Va por buen camino
Pero a mi no me funciona, proyecto adjunto

Algo hago mal.
Tengo aqui tres forms.
Uno es el principal, los otros dos de prueba.
En el principal tengo un ComboBox con los nombres de los forms para poder cargarlos.
Todo creo que está como este ejemplo, pero me recoge Nil en el GetClass y por eso no se ejecuta.

Algo mal hago, observar que registro, en cada uno de los form las clases, pero algo pasa, por favor, ayuda y muchas gracias.

Fernando
Archivos Adjuntos
Tipo de Archivo: zip formularios_dinamicos.zip (5,8 KB, 18 visitas)
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
Consulta sobre formularios Gustavo Gowdak OOP 1 15-03-2007 16:38:22
Consulta acerca del manejo de formularios ilichhernandez OOP 4 24-11-2006 23:23:37
Formularios en PHP Churi PHP 8 15-11-2005 20:19:24
Consulta sobre Formularios Gustavo Gowdak OOP 2 09-12-2004 19:40:44
consulta sobre formularios acertij022 Varios 1 01-08-2003 16:17:26


La franja horaria es GMT +2. Ahora son las 18:22:25.


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