Evitar que determinados formularios se cierren de la x de la vista

Quiero controlar que determinados formularios no se puedan cerrar desde la X

He puesto evento de pre-vista cerrada y recojo la vista con theMainWindow.currentView();

Pero resulta que con esto tengo la vista activa, no la que estoy intentado cerrar.

¿ Hay forma de saber en qué vista han pulsado la x ?

Prueba con
theMainWindow.currentView().centralWidget().objectInfo().id()
Te devuelve el id del formulario que tengas activo.

Y si en el manejador le pones SET RETORNO PROCESO = NO pues no lo cierra.

Si, pero el problema es que te coge el formulario ACTIVO.

No me he explicado bien.

Si estás en un formulario pero le das a la x de otra ficha, no sabes en la ficha que han pulsado, ese código te devolverá el formulario activo y no el que han cerrado.

Hola Sergio.

Primero, revisa ese código que tienes porque sí que debes poder acceder a la Vista que estás cerrando con theMainWindow.currentView(). De hecho ese es el funcionamiento requerido.

Sin embargo no todo es tan bonito, la Vista que estás cerrando debe estar activa, no sirve pulsar la X de otra Vista distinta que no está activa porque en ese caso theMainWindow.currentView() no devuelve la Vista sobre la que pulsas la X.

Saludos
Paco Satué

Hola Sergio.

Ya veo que efectívamente estás intentando cerrar otra pestaña diferente a la que está activa.
En ese caso, creo que “tenemos un problema Houston”.

Saludos
Paco Satué

Si, el tema es ese, la activa no tiene gracia, el tema es putear un poquito.

La verdad, no se me ocurre como.

Hola Sergio.

No le des más vueltas, lo más coherente es que haya de una vez un evento ON_CLOSE del formulario, ya sea en modo Vista o en modo Diálogo.

Ya está la Idea llamando a la puerta de Velneo desde hace casi 8 años.
https://soporte.velneo.es/hc/es/community/posts/222979227-Evento-OnClose-en-formularios

Saludos
Paco Satué

De hecho esa idea la puso mi compañero.

Es incomprensible que no exista ese evento.