Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Como abrir una ventana desde una DB (https://www.clubdelphi.com/foros/showthread.php?t=94044)

steelha 03-07-2019 18:11:50

Como abrir una ventana desde una DB
 
Buenos dias, tiempo sin preguntar aunque de ves en cuando entro a ver hilos.
Lo siguiente es que tengo 3 tabla donde guardo los grupos, items y pantallas de un menu, pero no se como hacer para que al momento de crear el menu dinamicamente desde la base de datos, me cree el evento onclick con la accion de abrir o mostrar la ventana X. Uso Delphi Xe7. Aca dejo ejemplo de la estructura.

db menu db items
idusuario opcion opcion item ventana

Gracias de ante manos por su ayuda, se que aunque no los puedo ver estan ahi para ayudarme

aposi 03-07-2019 19:06:14

Hola,
No seria mas facil tener el menu creado en tiempo de diseño y al abrir el formulario poner visibles solo las opciones que tene ese usuario desde la base de datos?

Neftali [Germán.Estévez] 04-07-2019 09:56:05

Igual que se crean los componentes (en tu caso menús) en tiempo de ejecución, también se pueden crear los eventos de esos elementos en tiempo de ejecución.
A medida que vas creando los TMenuItem, debes ir asignandoles un evento (OnClick).


Aquí tienes unpar de hilos de los foros donde hemos hablado de ello y donde puedes ver ejemplos de cómo hacerlo:
https://www.clubdelphi.com/foros/showthread.php?t=56001
https://www.clubdelphi.com/foros/showthread.php?t=22870


Aunque si buscas seguro que encuentras más.

steelha 04-07-2019 13:57:25

ok, gracias leere los link a ver que provecho saco de ellos,y referente de crear un menu en tiempo de diseño si lo haria es la solucion mas facil, pero lo que me solicitaron es que no sabes que tendras solo te enviaran un ejecutable con unos cambio y a nivel de DB debes crear una configuracion de menu para ciertos perfiles: es decir me diran el nombre de la ventana y que parametro pasar solamente yo debo hacer una ventana que modifique la db de menu e items para agregarlos y que le salga a las personas que poseen ese perfil. no es dificil hacerlo en tiempo de ejecucion solo que no se como usar el onclick en tiempo de ejecucion.

Javierus 05-07-2019 00:34:21

De alguna manera debes de saber qué has de ejecutar; por ejemplo, puedes tener una stringlist donde se almacenen los nombres de las acciones y p.ej.bel método o procedimiento que correspondiente.
Luego el menú se creará indicando el nombre de la acción que se quiera
Al crear el menú, en el onclick pones un genérico, y en el tag el index de la acción correspondiente en la stringlist
Al hacer clic, tu onclick mira el sender, Qué es el o menuitem
Y del tag obtienes la entrada de la stringlist
Y de allí la ejecución del procedure o lo que sea que te han proporcionado

steelha 08-07-2019 14:17:10

Gracias por responder ando probando :)

steelha 10-07-2019 15:36:59

Doy por cerrado el tema gracias por los comentarios y aquellos que me leyeron pero no comentaron, lo que querían pero no sabían que decir; a todos ellos gracias por sus votos y hacerme hoy ganar el concurso de miss nadie :) :) :) :)
Hasta el próximo comentario o duda se me cuidan.
aaah y PAZ MUNDIAL

Casimiro Notevi 10-07-2019 18:06:59

Cita:

Empezado por steelha (Mensaje 532735)
...

¿Te has presentado a un concurso? ¿qué tiene que ver con el tema? Entiendo que lo solucionaste ya.

Neftali [Germán.Estévez] 15-07-2019 09:21:41

Cita:

Empezado por steelha (Mensaje 532735)
Doy por cerrado el tema gracias por los comentarios y aquellos que me leyeron pero no comentaron, lo que querían pero no sabían que decir; a todos ellos gracias por sus votos y hacerme hoy ganar el concurso de miss nadie

Y si lo has solucionado, estaría bien dar alguna pista de cómo.
Por si otros usuarios con el mismo problema leen el tema, que sepan cómo afrantar el problema.
Gracias.

steelha 24-07-2019 17:39:20

No no puede solucionar el problema solo decidí hacerlo de otra forma, como me dijeron creando todo y habilitando solo lo que el usuario tiene asignado. Lo de mas era solo por votar el stresss y ya abro otro hilo nos vemos por allá. Muchas gracias por todo


La franja horaria es GMT +2. Ahora son las 07:14:36.

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