Ver Mensaje Individual
  #2  
Antiguo 25-08-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Reputación: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Puedes utilizar el compomente "TTimer" que encontrarás en la pestaña "System" de la "Paleta de componentes" de Delphi. Lo sitúas sobre el formulario en cuestión y, cuando se cree dicho formulario, echas a andar el "Timer".

En una variable global o en una propiedad del formulario (de tipo Integer) puedes ir guardando la cantidad de segundos que lleva el formulario abierto. Esto lo harás aprovechando el evento "OnTimer" del componente "TTimer", el cual se ejecutará en un intervalo que puedes configurar mediante la propiedad "Interval" y que por defecto es de un segundo.

Vas sumando segundos, sumando segundos, sumando segundos... y, en el propio evento "OnTimer" sitúas una condición "de salida", es decir, suponiendo que el formulario debe permanecer visible durante 30 segundos podrías escribir algo así:

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Inc( FVariableDondeGuardosLosSegundos );

  if FVariableDondeGuardosLosSegundos >= 30 then
  begin
    Timer1.Enabled = false;
    Form1.Close;
  end;
end;

Nota: Según te digo arriba deberías ir incrementando la variable segundo por segundo hasta que... bueno. Yo he preferido luego, puesto a escribir un sencillo ejemplo, decrementar el valor de la variable en lugar de incrementarlo. Puedes verlo en el proyecto de ejemplo que adjunto a este mensaje.
Archivos Adjuntos
Tipo de Archivo: zip ejemplo.zip (2,7 KB, 26 visitas)
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 25-08-2006 a las 04:45:26.
Responder Con Cita