2013-02-16 39 views
0

我使用Delphi 7創建程序。我有一個名爲CoinsEdit的輸入框。當用戶點擊提交時,他們將不得不等待的秒數爲 CoinsEdit.text div 30 + 2 。我明白了他們必須等待的分鐘數和秒數,但我希望它能夠倒數。我也想要一個進度條來配合它。所有這些將在一個對話框中。在加載完成之前,應該禁用「OK」按鈕。我到目前爲止:使用Delphi 7創建倒計時和加載欄

procedure TForm1.onConnected; 
var 
    amount: string; 
    user: string; 
    pass: string; 
begin 
    amount := CoinsEdit.text; 
    user := UserEdit.text; 
    pass := PassEdit.text;  
    Form1.Visible := False; 

    ShowMessage('Please wait for ' + Seg2Min(StrToInt(CoinsEdit.text) div 30 + 2)); 

    ShowMessage(user + ', ' + Trim(amount) + ' coins have been added to your ' + 
    'account.'); 

    Form1.Visible := True; 
    UserEdit.Text := ''; 
    PassEdit.Text := ''; 
    CoinsEdit.Text := ''; 
end; 

Seg2Min是將秒轉換爲分和秒的函數。這是功能:

Min := Seg div 60; 
Rest := Seg - (Min*60); 
if Min = 0 then 
    Seg2Min:= FormatFloat('0', Rest) + ' seconds' 
else 
    Seg2Min:= FormatFloat('0', Min) + ' minutes and ' + FormatFloat('0', Rest) + 
    ' seconds'; 

如何使用TTimer並將其用於倒計時?

+5

所以,你想從我們這裏完成你的工作。或者你有什麼麻煩?你的問題是什麼 ? – TLama 2013-02-16 15:27:57

+0

如何使用TTimer並將其用於倒計時? – Penian4 2013-02-16 15:29:18

+0

可能的重複[如何在delphi7中創建數字時鐘?](http://stackoverflow.com/q/9487451/576719)。 – 2013-02-16 15:32:41

回答

2

好了,所以我做了什麼來解決這個問題是:

1,創建2種形式(frmLogin,frmDialog)

2.如果點擊提交按鈕i顯示了第二個形式 「frmDialog」。

3.然後我有一個計時器來更新進度條。

你有興趣的一段代碼是:

private 
    { Private declarations } 
    TimeRemaining,startvalue : Integer; 
public 
    { Public declarations } 
end; 


procedure TfrmDialog.FormShow(Sender: TObject); 
begin 
    TimeRemaining:=StrToInt(frmLogin.edtCoins.text) div 30 + 2; 
    startvalue:=TimeRemaining; 
end; 

procedure TfrmDialog.Timer1Timer(Sender: TObject); 
begin 
    lblProgress.Caption:='Please wait for ' + IntToStr(TimeRemaining); 
    TimeRemaining:=TimeRemaining-1; 
    ProgressBar1.Max:= startvalue * 200; 
    ProgressBar1.StepBy(200); 
    if TimeRemaining < 0 then 
    begin 
    btnOk.Enabled:=true; 
    lblProgress.Hide; 
    end; 
end; 

你只需要填寫正確的數學。 但是我認爲,如果你不明白或想要更多的幫助,只是留下評論,你會明白。

+2

我會將計時器屬性設置爲500或1000. – 2013-02-16 21:10:31

+1

這些值可能不同,這只是爲了說明一下。 – 2013-02-17 09:44:12

+1

是的。 OP的評論更多,因爲我認爲這是一個重要的細節。 – 2013-02-17 10:54:21