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 20-08-2014
Avatar de Luis M.
[Luis M.] Luis M. is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Ripollet - Barcelona
Posts: 212
Poder: 20
Luis M. Va por buen camino
Listar forms de la aplicación

Hola.
Como podría listar o saber en tiempo de ejecución los forms que tiene el programa?
La idea sería listarlos y guardarlos en una tabla.
Es para un control de permisos en el cual el administrador del programa le daría
los permisos necesarios a cada form.
Utilizo D2007 y firebird 2.5.
Un saludo y gracias.
Responder Con Cita
  #2  
Antiguo 20-08-2014
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Si mal no recuerdo en el objeto screen vienen los forms, pero los que usan el createform, si se crean forms al vuelo, no creo que aparezcan a menos que estén creados en ese momento, algo que se me ocurre seria ver los recursos del ejecutable, como ahí se guardan los DFM, entonces podrías obtener todos...
Responder Con Cita
  #3  
Antiguo 20-08-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Creo, con el compañero, que la variable "Screen" contiene los formularios "creados". Igual si los formularios se crean con el objeto "Application" como "Owner", digo, igual aparecen también en la variable "Screen". Sin embargo, me suena raro usar los formularios para asignar permisos a los diferentes usuarios. Quiero decir que igual hay otras formas más sencillas, más establecidas y estándar. A ver si algún otro compañero puede darte alguna pista.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 20-08-2014
Avatar de Luis M.
[Luis M.] Luis M. is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Ripollet - Barcelona
Posts: 212
Poder: 20
Luis M. Va por buen camino
Gracias por responder.
Efectivamente, solo salen los formularios que están en auto-create.
Los demás formularios no salen.
Lo de los permisos, es porque este cliente es muy especial.
Tengo los componentes Tms-Security y para este caso no me valen.
En fin... los introduciré uno a uno en la tabla.
Un saludo.
Responder Con Cita
  #5  
Antiguo 21-08-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Luis.

Las primer idea que se me cruzó es ir registrando en una lista los forms en la creación, lo cuál se puede hacer usando TObjectList y unificando la creación en un proceso por ejemplo.

Luego mirando por alguna otra opción encontré esto, mucho mas elaborado, que tal vez te pueda servir: Create and Manage dynamic Forms at Runtime using Class References.

Con Delphi 2010 o +, pareciera que ya existe una opcion con RTTI, como comentan en el mensaje 6 de este hilo: Dynamically list all forms in a project (imposible para mi Delphi 7 )

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 22-08-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
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
Hola Luis.

ecfisa te ha dado muy buen información.

Yo sólo añadiría esta referencia a un caso similar: http://www.clubdelphi.com/foros/showthread.php?t=20261

Ocurrió hace nueve años. Ahora lo matizaría, pero creo que en esencia es una solución factible con tu versión de Delphi.

Un saludo.
Responder Con Cita
  #7  
Antiguo 22-08-2014
Avatar de Luis M.
[Luis M.] Luis M. is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Ripollet - Barcelona
Posts: 212
Poder: 20
Luis M. Va por buen camino
Gracias por responder.
Muy buenos e interesantes los post de ecfisa y del Al Gonzalez.

Se me ha ocurrido una posible solución y me gustaría saber vuestra opinión a ver que os parece.
Hay un fichero que tiene todas las clases de formas de la aplicación o programa. Este fichero es el "programax.dpr"
Los nombres de la clase de forma está escrito entre llaves {}.
Al arrancar del programa, este podría leer el fichero e ir incorporando los nombres de las clases de formas que no existan a la tabla.
Lógicamente renombraría el fichero con otro nombre y extensión.
Es un programa a medida para un tienda, que posiblemente en un futuro pueda ser una cadena o una franquicia.
El cliente quiere ponerle la descripción que él considere oportuna a cada clase de forma (no cambiar el nombre) y
aplicar un nivel de permiso que él considere oportuno.
Como el programa con el tiempo irá creciendo en opciones, de ahí mi dilema de como ir introduciendo las nuevas clases de
forma al apartado de permisos.
Adjunto fichero de imagen.

Muchas gracias por vuestro tiempo y aporte.
Un saludo.
Imágenes Adjuntas
Tipo de Archivo: jpg Captura.JPG (53,7 KB, 11 visitas)
Responder Con Cita
  #8  
Antiguo 22-08-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
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
No es descabellado distribuir el archivo .dpr junto con el programa ejecutable.

El problema que le veo es que de esa manera tu programa no puede saber cuál es la jerarquía de clases de tus formularios. En cambio, si usas herencia visual (es de suponer que la uses), al registrar tus clases puedes obtener más información sobre cuáles de ellas son formularios de captura, cuáles son formularios de búsqueda, etc.
Código Delphi [-]
If XClaseDeForm.InheritsFrom (TPlantillaFormCatalogo) Then
Saludos.

Última edición por Al González fecha: 22-08-2014 a las 19:13:06.
Responder Con Cita
  #9  
Antiguo 22-08-2014
Avatar de Luis M.
[Luis M.] Luis M. is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Ripollet - Barcelona
Posts: 212
Poder: 20
Luis M. Va por buen camino
Hola Al.
Lo que dices es muy correcto, pero en este caso (por el momento hasta que no lo pida el cliente) no es necesario.
Incluso el fichero .dpr tendré que modificarlo manualmente y quitarles algunas cosas como el login, el data module, etc.
Un saludo.
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
Aplicacion sin forms billy_hates Varios 11 14-04-2010 13:56:20
Listar todos los nombres de los Formularios de mi aplicacion gabriel_exe Varios 10 08-04-2009 18:10:48
Errror al Cerrar Aplicacion con Dll Forms look Varios 1 13-03-2009 22:23:30
Acceder a los forms abiertos de tu aplicacion Neftali [Germán.Estévez] Trucos 0 07-06-2006 09:55:15
Listar Forms Hijos cso2000 Varios 2 20-05-2003 21:11:13


La franja horaria es GMT +2. Ahora son las 21:11:39.


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