Mdi

Expertos como están
Tengo una dudita
Tengo una mdi
Dentro de esa mdi habro otra ventana la cual tiene un menu asociodo
mi pregunta es
Desde ese menu como referencio a un objeto que esta ventana sin el nombre
O sea usar ese menu insertar para cualquier ventana que tenga una datawindows dentro me explico bien
o sea desde el menu poner this. Insertrow(0) o algo asi asi no tengo que hacer un menu para cada ventana
muchas garcias ...
Respuesta
1
Genera un evento en la ventana llamado insertar.
Desde el menú llamas al evento de forma dinámica, es decir.
mdiframewindow.GetActiveSheet ( ).event dynamic insertar()
Se entiende que mdiframewindow es el nombre de la ventana principal de MDI y el evento insertar() debe de estar en todas las ventanas, se puede crear una ventana padre con este evento o con los eventos que queremos poner en los menús y heredar de ella.

2 respuestas más de otros expertos

Respuesta
1
Creo que tu inquietud es generar un menu de opciones genérica para cualquier mantenimiento o pantalla,
claro tendrías que relacionar la ventana con el menu
Bien.
Se me ocurre lo siguiente:
*- crear una variable que haga una instancia de la ventana.
la cual contiene la ventana que esta activa.
*- dentro de cada pantalla o ventana que relaciones deberás crear un evento del usuario el cual será clave para ejecutar un proceso por ejemplo la opcion del menu INSERTAR podria estar relacionado con el evento del usuario UE_INSERTAR, creado en la ventana.
*- ahora ya tengo la variable de instancia y el evento. solo me queda dispararlo.
Esto lo hago utilizando la variable y ayudándome de la función TRIGGEREVENT() o POSTEVENT(),
La primera dispara inmediatamente el evento, y la segunda dispara el evento hasta que el proceso que lo disparo finalice.
Por ejemplo.
Asignando la variable de instancia.
Crear esta en el área publica o global
--------------------------------------
windows iw_actual
Asignar la instancia
---------------------
Este proceso en el evento ACTIVATE()
O en un evento como SHOW() el cual se activa cuando la ventana obtiene el foco. De tal manera que la variable se cargue con la ventana actual
iw_actual = THIS
En la opción INSERTAR
---------------------
iw_actual.POSTEVENT('ue_insert')
Esto dispara el evento ue_insert(), en la ventana actual la cual esta instanciada en la variable iw_actual
Puedes cambiar el disparador POSTEVENT por TRIGGEREVENT la ventaja es que estarás seguro con el anterior que el evento no será disparado hasta que el foco del proceso salda de la opción INSERTAR del menu.
Y traslade el control a la ventana.
Respuesta
1
Te recomendaría que mejor crearas un evento en cada pantalla al cual deseas insertar un registro, y así solo uses un menú para todas las pantallas.
El código que iría en el menú sería:
parentdatawindow.TriggerEvent("ue_insertar")
Cualquier otra duda, solamente pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas