全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:894
推到 Plurk!
推到 Facebook!

如何在一各BUTTON中在加上時間的延後執行

答題得分者是:careychen
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-27 14:19:19 IP:122.116.xxx.xxx 訂閱
小弟在BUTTON1 裡面寫段執行碼

執行之後再尾巴又要啟動 BUTTON2

但希望按下BUTTON1之後的五秒在執行BUTTON2 (每次都要這樣)

該怎麼去做呢??


[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
begin
....................
...................
....................
// 上5秒等待時間 在往下跑
BUTTON2.CLICK
end;
[/code]
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-11-27 14:19:50, 註解 無‧
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-27 15:33:40 IP:60.248.xxx.xxx 訂閱
最快的方法是按下 button 後,呼叫一個timer ,這個 Timer 的 interval 是設 5 秒
如果怕 Timer 不準的話,也可以用 MultiThread 來處理,這樣時間的控制就比較準確了~~~

===================引 用 lovemari 文 章===================
小弟在BUTTON1 裡面寫段執行碼

執行之後再尾巴又要啟動 BUTTON2

但希望按下BUTTON1之後的五秒在執行BUTTON2 (每次都要這樣)

該怎麼去做呢??


[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
begin
....................
...................
....................
// 上5秒等待時間 在往下跑
BUTTON2.CLICK
end;
[/code]
------
價值的展現,來自於你用哪一個角度來看待它!!
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-27 15:41:36 IP:122.116.xxx.xxx 訂閱
你好 

大大我有這樣寫過

可是他卻沒有在我按下BUTTON的時候讀秒

卻在我打開程式的時候就開始讀秒

然後我都還沒跑BUTTON01 他就自動跑BUTTON2了


[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
begin

.......................
.......................
.......................


Timer1.Enabled := false;
Timer1.Interval := 3000; (*3秒*)
Timer1.Enabled := true;
BUTTON2.CLICK //程式一開啟3秒就自動執行BUTTON2了 我都還沒點BUTTON1= =


end;
[/code]
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-27 15:46:11 IP:122.116.xxx.xxx 訂閱
我剛修改成下列方式

是已經不會自己偷跑了

可是變成我執行BUTTON1 BUTTON2 也直接執行了

並沒有等待十秒之後


[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
begin
....
...

Timer2.Interval := 10000; (*10秒*)
Button2.Click;


end;
[/code]
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-11-27 15:46:48, 註解 無‧
lovemari 重新編輯於 2008-11-27 15:58:18, 註解 無‧
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-11-27 16:09:27 IP:60.248.xxx.xxx 訂閱
=_= 看您這樣的回答,您似乎對 Timer 元件不是很了解?

程式中設定 Interval 也只是設定他的觸發時間而已,並沒有啟動他

請改成如下

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
Button2.Click;
end;
[/code]

===================引 用 lovemari 文 章===================
我剛修改成下列方式

是已經不會自己偷跑了

可是變成我執行BUTTON1 BUTTON2 也直接執行了

並沒有等待十秒之後


[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
begin
....
...

Timer2.Interval := 10000; (*10秒*)
Button2.Click;


end;
[/code]
------
價值的展現,來自於你用哪一個角度來看待它!!
編輯記錄
careychen 重新編輯於 2008-11-27 16:10:20, 註解 無‧
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-11-27 16:32:36 IP:122.116.xxx.xxx 訂閱
哈 我懂了

我剛剛漏掉一點

就是Timer的預設值我設成 True了

謝謝大大 問題解決了
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-11-27 16:34:11, 註解 無‧
系統時間:2024-05-15 12:32:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!