![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
![]() |
|
#2
|
||||
|
||||
|
Ups, me dejé la firma...
(+2) ![]() |
|
#3
|
|||
|
|||
|
Cita:
![]() ![]() ![]() Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
|
#4
|
||||
|
||||
|
#5
|
||||
|
||||
|
Añado mi pregunta a este post, para no abrir uno nuevo.
Lo de bloquear me quedo claro y funcionando; lo que quiero hacer y no se me ocurre como es que se cierren todas las ventanas (abiertas modalmente, en mi caso, y en cascada tal ves) menos el Form ppal. al cual se inhabilita el menu salvo la opcion de login. Bueno gracias a todos. |
|
#6
|
||||
|
||||
|
Supongo es una aplicación MDI, sólo tendrías que mostrar la ventana de login en forma modal, eso ya deja inhabilitado el resto de las ventanas. Supongo que una vez registrado el ususario, inhabilitarás las opciones que no tenga permiso, y todo queda OK.
Yo no cerraría las ventanas, puede que haya dejado una tarea a medias, o que al cerrar sus ventanas pierda "el hilo de por donde iba". De todas formas, cerrar las ventanas mdichild es un bucle por frmmdi.MdiChildCount ejecutando FrmMdi.MdiChildren[i].Close; La ventana modal tiene truco, se supone que es modal porque necesita una respuesta por parte del usuario y cerrarla cancelando las modificaciones.... no sé yo. Puedes tener una bandera en las ventanas modales o un evento que le informe que se cierre automáticamente, pero esto ya depende de cómo tengas implementadas dichas ventanas modales, ¿puedes mostrar algo de código para saber cómo las creas? (hay varios métodos). Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#7
|
|||
|
|||
|
Zarko Gajic utiliza esta función del API de Windows:
Código Delphi [-]function SecondsIdle: DWord; var liInfo: TLastInputInfo; begin liInfo.cbSize := SizeOf(TLastInputInfo) ; GetLastInputInfo(liInfo) ; Result := (GetTickCount - liInfo.dwTime) DIV 1000; end; procedure TForm1.Timer1Timer(Sender: TObject) ; begin Caption := Format('System IDLE last %d seconds', [SecondsIdle]) ; end; La desventaja es que solo vale para Windows 2000 en adelante. La ventaja, es que es totalmente limpia y fiable. Respecto a las ventanas en una aplicación modal puedes jugar con screen.activeform.formstyle. Saludos, FrancisR |
|
#8
|
||||
|
||||
|
en primer lugar no es una aplicacion MDI, de lo contrario usaria un bucle como dice Lepe, que tambien lo he leido en este foro. Pero podria haber sido tal. Pues tengo un form ppal del cual parten hacia forms secundarios que realizan ABM de modulos diferentes, en los cuales hay forms de imput, visualizacion etc, que tamb. son modales.
Mi idea; que cada form tenga por ejemplo un procedure cancelar que se ejecutara en tal caso (inactividad) y este sabra que hacer (cancelar) segun sean las tareas que se realizan en dicho form, cancelar todos los que se abrieron desde este y luego cerrarse. Tenia pensado bruto pero ligero, armar una cadena ejemplo: ppal@ModuloClientes@AltaCliente , y que cuando le diga a ppal.cancelar, este busca todos los form que esten abiertos (ModuloClientes para este ej.) y los cancele. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Bloquear aplicacion despues de cierto tiempo | Marcela | Conexión con bases de datos | 26 | 16-04-2017 23:47:23 |
| Cerrar ventana a los 10 min. de inactividad | jamonete2 | OOP | 4 | 10-06-2005 18:18:53 |
| Detectar paso a inactividad | oworty | API de Windows | 2 | 07-11-2004 14:22:17 |
| Desconexion de la aplicacion por inactividad utilizando META | mamen | .NET | 10 | 08-09-2004 14:52:52 |
| Desconexion de la aplicacion por inactividad | mamen | .NET | 8 | 14-07-2004 08:32:42 |
|