Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-06-2011
Avatar de BPL
BPL BPL is offline
Miembro
 
Registrado: ene 2009
Posts: 47
Poder: 0
BPL Va por buen camino
Cerrar un Formulario por Rango de Tiempo

hola....

necesito saber si existe en delphi 7 algun componente o algo similar
que pueda maneja un Time en donde si presiono alguna tecla no haga nada (es por que alguien esta trabajando) pero si no ha presionado ninguna tecla por 3 minutos que me cierre el formulario...

ojala exista algo.....
gracias.....
Responder Con Cita
  #2  
Antiguo 24-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

No sé de ningún componente que haga eso, pero no es difícil de implementar:
Código Delphi [-]
implementation

procedure TForm2.FormShow(Sender: TObject);
begin
  KeyPreview:= True;// el form recibe eventos de teclado antes que el control activo
  Timer1.Interval:= 60000*3; // 3 minutos
  Timer1.Enabled:= True;
end;

procedure TForm2.FormKeyPress(Sender: TObject; var Key: Char);
begin
  // 3 minutos más...
  Timer1.Enabled:= False;
  Timer1.Enabled:= True;
end;
...
...
procedure TForm2.Timer1Timer(Sender: TObject);
begin
  Close;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Timer1.Enabled:= False;
  Action:= caFree;
end;

end.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 24-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
me imagino que puedes usar el componente TIMER colocandole el tiempo de 3 minutos para que se cierre, lo combinas con los eventos onkey.... y OnMouse...para colocar en cero el contador en caso alguien este utilizando el form y listo
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 24-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
debo ser mas rapido.. mientras yo escribia... Flash ecfisa ya colocaba una respuesta
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 25-06-2011
Avatar de BPL
BPL BPL is offline
Miembro
 
Registrado: ene 2009
Posts: 47
Poder: 0
BPL Va por buen camino
efcisa....gracias...lo implemente y resulto perfecto....

te pasaste.....
Responder Con Cita
  #6  
Antiguo 25-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola BPL.

De nada, me alegro que te haya servido.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 25-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje


jajajajajajaja ya ves lo que digo? jajajajaja muy buena...
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #8  
Antiguo 25-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

No sé de ningún componente que haga eso, pero no es difícil de implementar:

Código Delphi [-]
implementation

procedure TForm2.FormShow(Sender: TObject);
begin
KeyPreview:= True;// el form recibe eventos de teclado antes que el control activo
Timer1.Interval:= 60000*3; // 3 minutos
Timer1.Enabled:= True;
end;

procedure TForm2.FormKeyPress(Sender: TObject; var Key: Char);
begin
// 3 minutos más...
Timer1.Enabled:= False;
Timer1.Enabled:= True;
end;
...
...
procedure TForm2.Timer1Timer(Sender: TObject);
begin
Close;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Timer1.Enabled:= False;
Action:= caFree;
end;

end.





Saludos.

y si solo mueven el mouse ? se cerraria igual verdad?
agregale los eventos onMouse.......
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #9  
Antiguo 25-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
jaja, quité la imágen por que me pareció inapropiada.... pero en este caso fuiste más rápido

En ese caso tendría que agregar el mismo código de refresh del timer en el evento OnMouseMove como bíen decis vos.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 25-06-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Auque la solución propuesta por ecfisa es valida. Puedes probar algo más cómo y simple. Utiliza la API de Windows. Precisamente la función GetLastInputInfo.
Código Delphi [-]
var
    LastInputInfo: PLASTINPUTINFO;
begin
    if GetLastInputInfo(LastInputInfo) <> 0 then
        if LastInputInfo.dwTime => (60000 * 3) then
            Self.Close;
end;

El procedimiento anterior lo puedes utilizar en un Timer que se ejecute ciclícamente entre un periodo determinado.

Saludos,
Chris

PD: @oscarac: Vieras como me reí de la fotode ecfisa que has colgado... jajaja
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
cerrar formulario Patricio Varios 2 04-07-2008 23:52:27
Cambiar propiedad de componente del formulario padre al cerrar el formulario hijo jzginez OOP 5 22-06-2007 21:40:51
como desplegar mensaje repetitivo en rango de tiempo Jheysson13 Varios 2 15-11-2006 18:47:23
Cerrar conexión al cerrar formulario arantzal Conexión con bases de datos 5 09-08-2006 12:43:52
Cerrar formulario en uso locojoan API de Windows 1 21-06-2006 17:08:22


La franja horaria es GMT +2. Ahora son las 16:52:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi