Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cerrar form pasados unos segundos-Help (https://www.clubdelphi.com/foros/showthread.php?t=59609)

Almd 02-09-2008 12:24:48

Cerrar form pasados unos segundos-Help
 
Hola.
¿Qué método uso para que pasados unos segundos se cierre un form? Salu2.

dec 02-09-2008 12:25:56

Hola,

Puedes utilizar un componente "TTimer". Lo tienes en la pestaña "System" de la paleta de componentes.

Almd 02-09-2008 12:51:25

Funcionando. Gracias :D

Caro 02-09-2008 13:46:53

Hola Almd, también lo puedes hacer con la función Sleep.

Código Delphi [-]
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  sleep(5000); //Espera 5 segundos antes de cerrarse la app
end;

Saluditos

Almd 03-09-2008 07:32:37

Hola Caro.
Al añadir el procedimiento que has puesto me da el siguiente error al compilar:
Cita:

Overloaded procedure 'FormClose' must be marked with the 'overload' directive
Supongo que también puedo usar el método sleep añadiendolo a la parte del código en el que quiero que se cierre el form, ¿no? Lo digo porque lo he probado y no funciona :( . Creo que lo que hace es paralizar durante los segundos que ponga la sentencia SQL que en mi caso realizo.
Gracias.

AÑADO:
Confirmado, sleep detiene durante el tiempo indicado X operación, no sirve para cerrar un form. Seguiré usando el Timer a falta de una alternativa.

Caro 03-09-2008 12:49:18

Cita:

Empezado por Almd (Mensaje 311362)
Supongo que también puedo usar el método sleep añadiendolo a la parte del código en el que quiero que se cierre el form, ¿no? Lo digo porque lo he probado y no funciona :( . Creo que lo que hace es paralizar durante los segundos que ponga la sentencia SQL que en mi caso realizo.
Gracias.
AÑADO:
Confirmado, sleep detiene durante el tiempo indicado X operación, no sirve para cerrar un form. Seguiré usando el Timer a falta de una alternativa.

Supongo que en la parte de codigo donde quieres que se cierre el form haces un close, al hacer ese close se llama al evento OnClose del formulario, que es el que tiene el Sleep que detiene esa cantidad de tiempo que le das, antes de cerrarse la aplicación. Yo lo he probado con codigo en otro lado llamando a close y no me da ningún error.

Saluditos

Almd 05-09-2008 11:00:54

El form en cuestion no le tengo puesto un close, para cerrarlo hay que darle a la X de la ventana. Lo que quería es que tras ejecutar una modificación se cerrase, y con el TTimer he logrado que se cerrara transcurrido un breve periodo de tiempo.
Si hay algún otro método que hiciera lo mismo pero sin añadir un TTimer estaría gustoso de saber cuál :)


La franja horaria es GMT +2. Ahora son las 06:05:13.

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