Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: Bazooka en Enero 12, 2015, 11:02:41 am

Título: Detectar un click fuera de un formulario Modal
Publicado por: Bazooka en Enero 12, 2015, 11:02:41 am
Hola hay alguna forma de detectar que el usuario esta haciendo click afuera de un formulario que esta por ejempo detras de otro que esta abierto como Modal ?

para darle un mensaje como este !!! Primero cerra el que esta en el frente Chavon!!Gracias
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: YAcosta en Enero 12, 2015, 01:50:40 pm
Seria interesante saber eso... pero ¿y porque no abres el form así?:

MiFormulario.Show 1

(con el 1) De esa manera no pasara el foco a ningún otro formulario, digo, para ahorrar código.

Saludos
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: Bazooka en Enero 12, 2015, 04:02:23 pm
Seria interesante saber eso... pero ¿y porque no abres el form así?:

MiFormulario.Show 1

(con el 1) De esa manera no pasara el foco a ningún otro formulario, digo, para ahorrar código.

Saludos

Es que así lo abro Yvan ! Y aunque el usuario pinche fuera de ellos no pasa nada pero quisiera detectar ese click.
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: YAcosta en Enero 12, 2015, 06:40:42 pm
¿?¿?

No entendi doc. ¿que es "no pasa nada"?

Cuando el usuario pincha fuera la ventana parpadea SALVO QUE le hayas quitado la propiedad border (o algo asi) al formulario, en ese caso igual funcionaria pero visualmente no avisaria. ¿es eso?
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: Bazooka en Enero 12, 2015, 07:29:21 pm
¿?¿?

No entendi doc. ¿que es "no pasa nada"?

Cuando el usuario pincha fuera la ventana parpadea SALVO QUE le hayas quitado la propiedad border (o algo asi) al formulario, en ese caso igual funcionaria pero visualmente no avisaria. ¿es eso?

GRAFIQUEMOS !!

Todo ocurre dentro de un form Maximizado y sin Barra de Titulos
Los botones de Arriba estan en un picture dentro del de este.
De alli en mas todos se abren como Modal (Show 1)
Donde comienza EL RECTANGULO AMARILLO ES UN FORM ABIERTO frmClienteContenedor.Show vbModal
Donde comienza el Rectangulo Verde es otro form que esta sobre el anterior FrmAgregarCliente.Show. VbModal

y como veras no tienen barras de titulo por lo que me gustaria simplemente que cuando el cliente pinche fuera del rectangulo verde !
poder capturar ese click!!

OJALA SE ENTIENDA !!!
(http://snag.gy/xYhNI.jpg)
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: YAcosta en Enero 12, 2015, 07:52:51 pm
Correcto, es lo segundo. Te servira. ¿Te sirve esto?
http://www.foro.vb-mundo.com/f24/mousedown-fuera-del-form-15094/

P.D: ¿Ese formulario es tuyo? Si la respuesta es Si te felicito por el buen diseño tanto de las lineas como de los colores, te quedo bien piola. Si la respuesta es No... celebro tu buen gusto.  :-)
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: Bazooka en Enero 12, 2015, 08:00:09 pm
Correcto, es lo segundo. Te servira. ¿Te sirve esto?
http://www.foro.vb-mundo.com/f24/mousedown-fuera-del-form-15094/

P.D: ¿Ese formulario es tuyo? Si la respuesta es Si te felicito por el buen diseño tanto de las lineas como de los colores, te quedo bien piola. Si la respuesta es No... celebro tu buen gusto.  :-)

Siii es todo mio ! Gracias Yvan y es el Software que le vengo prometiendo hace 10 años a mi esposa para su SPA .
Asi que me tengo que esmerar para no caer es sus garras !!
La inspiracion de la interfaz es de uno que vi por alli pero ya resulto algo totalmente personalizado.

Lo comenze hace 15 dias
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: YAcosta en Enero 12, 2015, 08:22:33 pm
:-)

La paleta de colores está muy bien, no sabia que quedaba tan bien el tono naranja con el tono gris. También siempre fui partícipe de extirpar la barra azul de los formularios que es lo que vengo haciendo por años, siempre me pareció "común".
Felicitaciones y muchos éxitos con el proyecto.
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: Bazooka en Enero 13, 2015, 08:36:16 pm
Amigo Yvan sigo con el post y prepare un ejemplo sencillito para graficar lo que necesito.

Esta explicado en el proyecto

https://dl.dropboxusercontent.com/u/53113728/CIE.rar (https://dl.dropboxusercontent.com/u/53113728/CIE.rar)
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: YAcosta en Enero 13, 2015, 10:24:53 pm
Estimado, soy el menos indicado para resolver este tipo de inquietud que presumo se resuelve a nivel de Apis, tema en el que no soy experto, yo solo te pase el link  (que marica jaja) .
SIN EMBARGO, tampoco me acobardo y vería alguna forma de resolverlo no importa que no sea la forma adecuada SIEMPRE y cuando no me traiga problemas y lo usaría HASTA QUE encuentre la forma correcta.

Aclaro también que entiendo que tu quieres detectar el click fuera del formulario activo PERO dentro de tu proyecto, sino es así entonces se me complica y en ese caso tendría que dedicarle mas tiempo al tema, pero entiendo que quieres detectar el click no porque quieras detectarlo sino porque quieres evitar que el usuario haga clic en otro formulario de tu proyecto y con ello poder dar un mensaje de que debe usar el formulario activo, en el ejemplo que te mando no doy un mensaje pero si lo dejo en el form activo. Igual se le puede poner un mensaje al pie del form o como prefieras.

Igual algún colega que nos enseñe a mejorar esto se agradece.

P.D: Tema aparte. Doc, y ¿porque no usas el SetParent? recuerdo que con ello se puede hacer un form hijo dentro de otro form (o picture incluso) sin que el form padre sea Mdi.

Aclarado eso, la solución "chafa" pero funcional que conseguí deja de lado a tu timer (de paso nos ahorramos proceso) y los formularios hijos ya no se abrirían como modal.

Insisto, esta es una solución parcial pero funcional que pudiera quedar como definitiva SI ES QUE no se encuentra una forma mejor, ortodoxa si se quiere. Aunque una forma mas chapuza seria poner todo el Formulario padre con enabled = False pero no vi esa opcion porque quiza si se necesite acceder a algun control, el problema de acceder es que te lleva el form activo hacia atras.


Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: YAcosta en Enero 13, 2015, 10:30:50 pm
Chester, olvide el enlace. Aqui (https://mega.co.nz/#!1UshkT4I!bmWHE3kCGiBh27W2LyFWuNx8vi6Tl038mYI8HoIfd34) esta
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: AxioUK en Enero 14, 2015, 08:22:17 am
Estimados
  Sumándome a las soluciones Chafas como dice el master Yacosta, basándome en tu ejemplo y analizando el code original hice esto

https://www.dropbox.com/s/ggjl7utvfhlexnq/CIE.rar?dl=0 (https://www.dropbox.com/s/ggjl7utvfhlexnq/CIE.rar?dl=0)

revísalo y nos comentas

Saludos Cordiales
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: Bazooka en Enero 14, 2015, 10:19:54 am
Hola Yvan gracias como siempre por tu tiempo y extensa explicacion.

Creo que debo dejar en claro algo.

El click a detectar siempre sería dentro de mi aplicacion por que tiene un form Base (fondo) maximizado y de alli en mas todos los otros son abiertos miForm.Show 1 .
Por este mismo motivo no tengo que desabilitar lo de atras por que no es necesario por que el click que sucede fuera del form activo no afecta en nada a lo otro.
Dicho esto mi intencion es puramente darle al usuario despistado un aviso de que cierre primero el formXXX !!

Ahora veo los ejemplos que me enviaron y les comento.

Saludos
Título: Re:Detectar un click fuera de un formulario Modal
Publicado por: Bazooka en Enero 14, 2015, 05:21:06 pm
Al final chirizo!!! como decimos en Argentina..

Lo solucione de una manera un poco menos ortodoxa y recorde que hace algun tiempo habia utilizado este metodo en otra aplicacion.

Antes de llamar al formModal llamo a un formulario llamado frmTransparente y este tiene una funcion que se lo transparenta y desde este se llama al otro que va arriba dando el aspecto de que todo lo que esta detras esta bloqueado o atenuado.

vean como queda

(http://snag.gy/OKcl9.jpg)

si alguno le sirve el ejemplo modifico el que estuvimos compartiendo mas arriba para que lo entiendan bien como funciona.