[高分求]如何制作间隔重复执行事件?
我有两个事件A和B,设定一个间隔时间X秒,重复执行A事件,结束后间隔X秒在重新执行A事件。当执行Y次后,在执行B事件1次,然后在重复执行A事件。
这个和间隔时间设定有关系,现在大脑有点笨,没有想到怎么做效率好些。请大家帮忙写一下代码或者算法,先谢谢了
[解决办法]
用定时器啊
[解决办法]
var ACount:Integer
TimA:
...
Inc(ACount);
if ACount=XXXX then begin
TimB.Enable:=True;
ACount:=0;
end;
...
TimB:
....
TimB.Enable:=False;
[解决办法]
timerA,timerB
x,m:integer;
timerA.enable:=true;
m:=m+1;
if m=y then
begin
timerB.enable:=true;
m:=0;
end;
[解决办法]
var
iCount : Integer;
procedure ???.FormCreate(Sender: TObject);
begin
iCount := 0;
Timer1.Enabled := False;
Timer1.Interval := X * 1000;
Timer1.Enabled := True;
end;
procedure ???.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
A事件;
inc(iCount);
if iCount > = Y then
begin
B事件;
iCount := 0;
end;
Timer1.Enabled := True;
end;
[解决办法]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Memo1: TMemo;
procedure Timer1Timer(Sender: TObject);
private
procedure EventA();
procedure EventB();
public
iCount:integer;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.EventA;
begin
Memo1.Lines.Add( '执行EventA ');
Inc(iCount);
end;
procedure TForm1.EventB;
begin
Memo1.Lines.Add( '执行EventB ');
iCount:=0;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if iCount <10 then
EventA()
else
EventB();
end;
end.
[解决办法]
Timer.interval
[解决办法]
timer1.interval:=.....
[解决办法]
Timer.interval:=1000;这个是Timer控件执行的时间
[解决办法]
我明白他的意思了,他是要a事件结束后才计算那个x妙,如果用定时器,就会间隔x-a(a事件的执行时间了)。那么就用线程,在a执行完成后,sleep(x)应该就可以了吧。:),多少次执行后执行b,参考定时器的做法。
[解决办法]
Timer 事件,就是这么简单