[高分求]如何制作间隔重复执行事件?

okook 2007-07-18 12:33:48
我有两个事件A和B,设定一个间隔时间X秒,重复执行A事件,结束后间隔X秒在重新执行A事件。当执行Y次后,在执行B事件1次,然后在重复执行A事件。

这个和间隔时间设定有关系,现在大脑有点笨,没有想到怎么做效率好些。请大家帮忙写一下代码或者算法,先谢谢了
...全文
243 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxinghappy 2007-07-25
  • 打赏
  • 举报
回复
Timer 事件,就是这么简单
yzdiyu 2007-07-23
  • 打赏
  • 举报
回复
我明白他的意思了,他是要a事件结束后才计算那个x妙,如果用定时器,就会间隔x-a(a事件的执行时间了)。那么就用线程,在a执行完成后,sleep(x)应该就可以了吧。:),多少次执行后执行b,参考定时器的做法。
pengxuan 2007-07-23
  • 打赏
  • 举报
回复
Timer.interval:=1000;这个是Timer控件执行的时间
brightyang 2007-07-23
  • 打赏
  • 举报
回复
timer1.interval:=.....
belllab 2007-07-23
  • 打赏
  • 举报
回复
Timer.interval
okook 2007-07-22
  • 打赏
  • 举报
回复
随机改变的 间隔时间怎么处理呀?
belllab 2007-07-18
  • 打赏
  • 举报
回复
var ACount:Integer



TimA:
...
Inc(ACount);
if ACount=XXXX then begin
TimB.Enable:=True;
ACount:=0;
end;
...

TimB:
....
TimB.Enable:=False;
  • 打赏
  • 举报
回复
用定时器啊
pengxuan 2007-07-18
  • 打赏
  • 举报
回复
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.
jadeluo 2007-07-18
  • 打赏
  • 举报
回复
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;
okook 2007-07-18
  • 打赏
  • 举报
回复

需要中间间隔时间的, 还有次数
brightyang 2007-07-18
  • 打赏
  • 举报
回复
timerA,timerB
x,m:integer;


timerA.enable:=true;
m:=m+1;



if m=y then
begin
timerB.enable:=true;
m:=0;
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧