关于timer使用(50分)

  • 主题发起人 主题发起人 ma-liang
  • 开始时间 开始时间
M

ma-liang

Unregistered / Unconfirmed
GUEST, unregistred user!
在一FORM上有一TIMER当不程序在后台运行时如何使ONTIMER事件
不在运行,并在程序再一次调入前台时使ONTIMER事件能再一次运行
 
Try

If Application.Active Then DoSomeThing;
 
在 Form1 上放 Timer1 和 Timer2,
设置 Timer2 的 Interval 足够小,
在 Timer2.Ontimer 中加入:
Timer1.Enabled := Form1.Active;
就可以了.
 
前台转后台好办,
在 ontimer 事件中加上 Jinbo的代码
if not application.active then timer1.enabled:=false;
而 后台转前台呢?
用另一个定时器,判断 application是否active?如果是
timer1.active:=true;
最好写在 applicatin 的 onactive 事件中,可是我不知道怎么写
 
applicatin 的 onactive事件不能在属性编辑器里找到的。
要把写好的函数用程序附值给它
application.onactive:=myprocedure;
 
使用以下代码:
Unit1;

uses ...;

type
TForm1 = class(TForm)
...
procedure OnAppActivate(Sender: TObject);
procedure OnAppDeactivate(Sender: TObject);
end;

procedure TForm1.OnAppActivate(Sender: TObject);
begin
Timer1.Enabled := True;
end;

procedure TForm1.OnAppDeactivate(Sender: TObject);
begin
Timer1.Enabled := False;
end;

procedure TForm1.Create(Sender: TObject);
begin
Timer1.Enabled := True;
Application.OnActivate := OnAppActivate;
Application.OnDeactivate := OnAppDeactivate;
end;
 
Sorry,按惯例,TForm1.Create应该改为TForm1.FormCreate,
这是TForm1的OnCreate事件。
 
多人接受答案了。
 
后退
顶部