Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Form Principal en Segundo Plano (https://www.clubdelphi.com/foros/showthread.php?t=88769)

adripugliesso 29-07-2015 13:00:21

Form Principal en Segundo Plano
 
Tengo una aplicación la cual contiene un Form Principal con un timer que esta actualizando datos desde la base continuamente y a través de diferentes botones llamo otros form en modo Showmodal.

Lo que necesito para frenar la transferencia de datos innecesaria es que mientras el form principal este en segundo plano y sin el control el timer se detenga y cuando retome el control el timer se vuelva a activar, alguien sabe que evento del form tengo que usar??

AgustinOrtu 29-07-2015 19:44:49

Mete un componente TApplicationEvents y habilita/deshabilita el Timer en el OnModalBegin/OnModalEnd

ecfisa 29-07-2015 21:28:46

Hola adripugliesso.

Para agregar otra opción, tambíen podrías hacer:
Código Delphi [-]
...
type
  TMainForm = class(TForm)
  ...
  private
    procedure WmFormActivate(var Msg:TMessage); message WM_ACTIVATE;
  ...

implementation

procedure TMainForm.WmFormActivate(var Msg: TMessage);
begin
  Tu_Timer.Enabled := Msg.WParam = WA_ACTIVE;
  inherited;
end;

Saludos :)

adripugliesso 29-07-2015 22:32:21

Gracias por el aporte..

Lepe 30-07-2015 18:13:52

El form tiene ya un evento OnActivate y OnDeactivate:
- OnActivate ocurre cuando recibe el foco, es decir, su barra de título se ilumina.
- OnDeactivate es justo lo contrario, cuando otra ventana de tu aplicación o de Windows, toma el foco, ahí es el momento de desactivar el timer .

Lo volverías a activar en el OnActivate.

Si metes un TApplicationEvents, también tiene el evento OnIdle, que se ejecuta solo cuando el usuario no interactúa con tu programa, y además tu programa no está haciendo nada. Útil para hacer chequeos y poner "tienes 3 mensajes pendientes" o lo que sea.

Saludos


La franja horaria es GMT +2. Ahora son las 20:33:31.

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