时钟控件循环触发按扭延伸版(40)

  • 主题发起人 主题发起人 darkyu
  • 开始时间 开始时间
D

darkyu

Unregistered / Unconfirmed
GUEST, unregistred user!
这是刚才问的: check1是用来判断时钟控件的, 如果打钩 那么 时钟控件为true 反之为false 而text1是来定义时钟控件的时间的,还有button控件若干个. 如果定义时钟控件的时间为5秒,那么例如我有4个button,5秒之后触发button1,10秒之后触发button2,15秒之后触发button3,20秒之后触发button4,25秒之后再从头开始触发button1,然后依次5秒之后触发button2,button3,button4.以此循环, 请问 这样的程序该怎么写? 我鬼主意很多,- -, 现在我想在这个问题的前提下再多加4个按妞。分别对应上面的那个4个按妞。1对应5,2对应6,3对应7,4对应8。 按妞5,6,7,8是来选择要触发哪个按妞的. 如果我按了5,6,7,8然后选择时间为3秒,并且打勾,那么3秒之后触发1,6秒之后触发2,9秒之后触发3,12秒之后触发4, 关键来了!!!! 如果我选择了5,7,8 那么要怎么跳过6? 让程序3秒之后触发1,6秒之后触发7,9秒之后触发8然后依次循环?或者如果我选择的是5,6,8又或者是5,8呢?要怎么实现哦
 
程序是自己写的,在Time控件中用IF ... then ....就OK了嘛关系理清楚了,什么问题都是可以解决的,大不了就是一个算法和效率的问题而已
 
////楼上说的对,不同需求要自己写算法,下面室循环根据时间按按钮,时间室可调的unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; CheckBox1: TCheckBox; Timer1: TTimer; procedure CheckBox1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } iTimeCount :integer; public { Public declarations } end;var Form1: TForm1;const iInterval=5; ///延时间隔5simplementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin caption :='buttonclick'+inttostr(tbutton(sender).Tag);end;procedure TForm1.CheckBox1Click(Sender: TObject);begin Timer1.Enabled :=CheckBox1.Checked; Timer1.Interval :=1000; iTimeCount :=0; end;procedure TForm1.FormCreate(Sender: TObject);begin Timer1.Enabled :=false;end;procedure TForm1.Timer1Timer(Sender: TObject);var iButtonIndex :integer; fButton :TComponent; iTemp:integer;begin iTemp := iTimeCount div 1000; if (iTemp mod iInterval)<>0 then begin Inc(iTimeCount,Timer1.Interval); exit; end; iButtonIndex := (iTimeCount div 1000) div iInterval; Inc(iTimeCount,Timer1.Interval); fButton :=FindComponent('button'+inttostr(iButtonIndex+1)) ; if Assigned(fButton) then begin tbutton(fButton).Click; end; if (iButtonIndex+1) =4 then begin iTimeCount :=1; end;end;end.
 

Similar threads

回复
0
查看
804
不得闲
S
回复
0
查看
835
SUNSTONE的Delphi笔记
S
S
回复
0
查看
765
SUNSTONE的Delphi笔记
S
后退
顶部