FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Cerrar formularios pasado un tiempo
Hola,
Tengo varios paneles dentro del form principal y varios formularios en una aplicación, el tema es que me gustaría que los paneles y los formularios que hacen referencia a un determinado tema no se puedan quedar abiertos si no se están utilizando durante un tiempo, pero no se si existe alguna forma de saber si alguien está utilizando un TPanel en concreto o un formulario en concreto para, una vez pasado el tiempo estipulado se cierren solo esos formularios y esos paneles y no toda la aplicación. Espero que se entienda lo que quiero hacer y si no pues lo intento explicar otra vez. Saludos. |
#2
|
||||
|
||||
tiempo
de momento se me ocurre que en el evento onexit del panel actives un times con un intervalo que tu mismo puedes determinar. el la propiedad interval de este.
por ultimo programes en el ontimer del timer que se cierre el panel al cumplirse ese intervalo. |
#3
|
||||
|
||||
Hola,
creo que no me he explicado bien, yo tengo varios paneles, los utilizo como si fueran distintas pantallas pero dentro del mismo formulario, por medio de un statusbar me voy moviendo por todos los paneles que tenga visibles en ese momento, hay un panel que quiero ocultar si no se está utilizando pero no se como saber si se está utilizando un panel u otro a no ser que en cada uno de los componentes que tenga el panel que quiero ocultar le ponga un código para reiniciar un timer en el onmousemove, por ejemplo. Quería saber si existe otra forma menos tediosa de conseguir lo que quiero. Saludos. |
#4
|
||||
|
||||
Hola
Por lo que entiendo tienes varios paneles. Para que esten activos, osea en uso, tienen que estar visibles. Si estan visibles pero no los quieres usar esperando cierto tiempo entonces los escondes. Si es asi, aqui tienes un ejemplo sencillo. Saludos
__________________
Siempre Novato Última edición por Caral fecha: 03-02-2015 a las 18:52:44. |
#5
|
||||
|
||||
Hola Caral, gracias por tu tiempo.
He probado lo que me propones, he tenido que modificar la comprobación del tiempo cuando llega al que hemos establecido de la siguiente manera:
Porque cuando hacía la comprobación no los consideraba iguales, de todas formas no es realmente lo que quiero, digamos que de los tres paneles que me has dibujado en tu ejemplo estoy utilizando el panel1, me muevo por él, pincho en él o en algún componente que contenga, pero el panel2 y el panel3 no los estoy utilizando, pasado el tiempo establecido quiero que se me cierren el panel2 y el panel3 pero no el 1 que si que lo estoy utilizando. Espero que se entienda. Saludos. |
#6
|
||||
|
||||
Hola
Usa el tag del panel. Saludos
__________________
Siempre Novato |
#7
|
||||
|
||||
, no se a que te refieres, dices que use el tag del panel, ¿como vigía?, por ejemplo, si estoy usando el panel1 a este le pongo el tag:=1 y a los demás el tag:=0, entonces pasado el tiempo miro los que tienen 0 y los cierro, ¿algo así?, si te refieres a eso se me ocurre que, si tengo abierto un panel en primer plano pero no lo estoy utilizando porque me he ido a tomar cafe, en realidad no lo estoy utilizando, por lo que se debería cerrar. Si cuando cambio de panel pongo el que tengo activo en 1 en el tag y el resto en 0 se me cerraran todos los que pongan 0 cuando llegue el tiempo deseado aunque los haya estado usando en el último segundo y lo que quiero es que no se cierren hasta que haya pasado un tiempo sin utilizarse.
A lo mejor es que no he pillado a que te referías con el tag. Saludos. |
#8
|
||||
|
||||
Hola
Pregunto: Los usaras con el mouse ?. Se podria hacer un procedimiento para que vea la posicion de raton, algo asi:
Esto te dara la posicion x e Y del raton, con esto puedes saber si el raton esta encima del panel y cerrar los demas. Saludos
__________________
Siempre Novato |
#9
|
||||
|
||||
Te tengo que pedir perdón Caral porque te voy dando la información a cuentagotas, sí, utilizo el ratón para moverme por el panel y sus componentes, pero también el teclado, además el panel que estoy utilizando lo pongo en Align:=AlClient por lo que los demás se quedan detrás, entonces voy añadiendo los nombres de los paneles que tengo abiertos en un statusbar, al pulsar sobre el nombre del panel que quieres ver te lo trae al frente. tu solución valdría si los paneles tuvieran una posición fija cada uno, sabiendo la posición del panel y la del mouse.
Una solución que me sirvió una vez para una aplicación que quería que se cerrase si no se estaba utilizando fué la siguiente:
Pero esto era para cerrar la aplicación entera no una cierta parte de la aplicación. Espero que así se entienda mejor. Última edición por ElDioni fecha: 09-02-2012 a las 18:28:50. |
#10
|
||||
|
||||
Hola,
quería especificar que además de querer cerrar los paneles que estabamos comentando, que se encuentran dentro de un mismo form, también quiero cerrar otros formularios cuando pase un tiempo determinado sin usarse. Saludos. |
#11
|
||||
|
||||
Hola ElDioni.
Te agrego otra idea derivando una clase de TPanel, por ahí te puede servir... Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#12
|
||||
|
||||
Hola
Quiero poner una queja formal. Los codigos de mi amigo ecfisa me están dejando mal parado. Asi no se vale. Saludos PD: Muy bueno amigo, muy bueno.
__________________
Siempre Novato |
#13
|
||||
|
||||
Hola ecfisa,
muchas gracias por el código, está cojonudo, voy a adaptarlo a mi programa para ver como queda y os cuento, pero en principio, con el vistazo que le he dado así por encima, creo que me va a servir para lo que pretendía. Gracias de nuevo, y a ti también Caral gracias por tu tiempo. Saludos. |
#14
|
||||
|
||||
Bueno, lo he estado probando y efectivamente me sirve y mucho, le he tenido que añadir el siguiente código porque sino no reiniciaba el contador del timer.
Me faltaría poder cerrar el panel que tiene el foco si en realidad, aunque tenga el foco, no se está utilizando. Voy a ver si se me ocurre algo. Saludos y gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cerrar Formularios con la Tecla ESC | sleep25000 | Varios | 2 | 30-06-2011 13:08:33 |
Cerrar formularios | zvf | OOP | 2 | 28-04-2006 17:11:34 |
Cerrar formularios | FunBit | OOP | 2 | 09-09-2005 11:31:59 |
Cerrar dos formularios creados dinamicamente (al mismo tiempo) | ctronx | Varios | 7 | 02-09-2004 00:19:04 |
pasado tiempo sin acciones lanzar exe | rolando_sd | Varios | 5 | 25-08-2003 23:12:49 |
|