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-11-2008
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Recorrer los TForm de una aplicación

¿Alguien se ha planteado (y conseguido) recorrer los TForm de una aplicación según la cláusula uses de cada unit? Me explico, Tengo una clase TFormMain que llama a dos unidades donde se definen las clases TFormArticulo y TFormProveedor. TFormArticulo llama a otra unidad donde está la clase TFormStock... ¿Podría rellenarse una especie de TreeView con las relaciones entre las clases? Quien llama a quien, cuales seran los posibles owner de un determinado TForm, etc...
Mi idea es crear una plantilla, en formato arbol, de los formularios que componen un programa y su interrelación, para que el administrador pueda asignar permisos de acceso para los usuarios a cada pantalla (sin permiso, solo lectura, total).
Responder Con Cita
  #2  
Antiguo 11-11-2008
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,

¿El asunto sería en "tiempo de diseño" o en "tiempo de ejecución"? Delphi cuenta con herramientas (no muy conocidas por un servidor, todo hay que decirlo) para crear "expertos" que de alguna forma se añaden al entorno (en tiempo de diseño) y permiten obtener información de un determinado proyecto, entre otras cosas. No sé si te llegaría, pero, desde luego con estas herramientas se hacen cosas muy curiosas. No sé decirte al respecto sino que puedes encontrar información buscando por la unidad "ToolsApi" de Delphi. Pero aquí hay mucha más información, para empezar.

Si el tema está en hacerlo en tiempo de diseño, creo que desde luego es posible conocer quién es la clase de la que hereda otra clase determinada. Ahora mismo no recuerdo funciones o métodos que directamente pudieran servirte, voy a apuntar por el "Runtime Type Information (RTTI)", pero, creo que acaso sería matar moscas a cañonazos. Quiero decir, que, la propia clase "TObject" ya debe contar con métodos como "GetParent", si no me equivoco (¿Se nota mucho que ando un poco perdido?).

Sea como sea, adonde yo quería llegar después de lo dicho, es a que se me ocurre que tal vez no sea la mejor solución la que planteas, para otorgar permisos a determinados usuarios, que estos tengan acceso a unos formularios y no a otros. Me parece una solución demasiado "complicada", y que no siempre sería la mejor. Claro que yo no entiendo mucho, pero, ese es el "pálpito" que tengo. Comprendo que lo que quieres es que alguien pueda asignar dichos permisos, tal vez un usuario "administrador", y que estos deberían poder asignarse de una forma "visual", sencilla, en fin. Pero, igual a otro compañero se le ocurre alguna otra opción, basada en su experiencia en algún desarrollo similar.

Y bueno, vale, ya me callo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 11-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
afxe: ¿conoces ESSModel?

Lo digo ya que al ser OpenSource y tener el código en Delphi... pues puede ayudar .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 13-11-2008
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Gracias a ambos. He mirado la herramienta ESSModel y es más de lo que necesito. En cuanto al comentario de Dec, efectivamente, la idea es crear un arbol con los formularios de la aplicación y su interrelación y visualmente decidir que formularios son visibles, cuales no, y cuales son visibles pero sólo para ver, no para modificar. Tengo un form base del que parten todos los forms de mi aplicación con un método de clase que chequea si la ventana se puede abrir o no, y si sólo es de consulta, recorre las propiedades readonly poniéndola a true. Lo he resuelto recorriendo la cláusua uses de la sección implementation de todas las unidades y comprobando para cada form a qué otros forms llama, y mediante un procedimiento recursivo se rellena el árbol. No sé si será la mejor manera de implementar los permisos, pero es la mejor que se me ha ocurrido para que el supervisor cree perfiles de acceso y se los asigne a los usuarios, y yo sólo me dedique a crear formularios... Sería interesante saber cómo ha resuelto el control de accesos otros programadores.
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
TService y TForm Softweb API de Windows 5 20-10-2008 17:41:01
evento WMWindowPosChanging en TForm pborges36 OOP 6 13-04-2008 00:25:04
Formato de salida en TForm aanil OOP 9 11-04-2008 02:36:15
Ejecutar Tform pmtzg Varios 1 01-04-2008 15:09:42
Refrescar mi tform.... Kamikaze OOP 3 17-11-2004 22:09:25


La franja horaria es GMT +2. Ahora son las 13:58:38.


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