首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

[高分求]怎么制作间隔重复执行事件

2012-03-06 
[高分求]如何制作间隔重复执行事件?我有两个事件A和B,设定一个间隔时间X秒,重复执行A事件,结束后间隔X秒在

[高分求]如何制作间隔重复执行事件?
我有两个事件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 事件,就是这么简单

热点排行