2011-06-14 21 views
5

क्या किसी के पास एचएच के लिए एक छोटा और प्रभावी कोड है: मिमी: एसएस टाइमर (टाइमर 1। अंतराल: = 1000)? मैं एक बना सकता हूं लेकिन मुझे कुछ कुशल चाहिए।डेल्फी: सरल एचएच: मिमी: एसएस टाइमर

धन्यवाद!

मेरे कोड:

Var MyTime:TTime; 

MyTime:=EncodeTime(0,0,0,0); 

procedure TForm1.Timer1Timer(Sender: TObject); 
begin 
MyTime:=incsecond(Mytime,1); 
form1.Label1.Caption:='Time: '+TimeToStr(MyTime); 
end; 
+1

यह जानना असंभव है कि आप केवल अपने प्रश्न में दी गई जानकारी के आधार पर क्या करना चाहते हैं, यह जानना असंभव है। आपको हमें यह बताना होगा कि आप वास्तव में क्या हासिल करना चाहते हैं। क्या आप कई मिलीसेकंडों को घंटों, मिनटों और सेकंड में बदलने में मदद चाहते हैं, या आप डिजिटल घड़ी की गिनती को एनिमेट करना चाहते हैं, या ...? लेबल में समय (एचएच: मिमी: एसएस) दिखाने के लिए –

+0

। "कई मिलीसेकंडों को घंटों, मिनटों और सेकंड में कनवर्ट करना," या कनवर्ट किए बिना यह करना संभव है। – maxfax

+4

कुशल परिभाषित करें? न्यूनतम निष्पादन समय? न्यूनतम कोड? न्यूनतम StackOverflow लुकअप? – dthorpe

उत्तर

8

एक वार की जब टाइमर शुरू कर दिया ट्रैक रखने के लिए जोड़ें।

TForm1 = class(TForm) 
    private 
    timerStart: TDateTime; 
    public 
    proceure StartTimer; 
    end; 

प्रक्रिया OnTimer घटना

Label1.caption := formatdatetime('hh:nn:ss', timerStart - now()); //nn is for minutes. 

में टाइमर

proceure TForm1.StartTimer; 
beign 
timerStart := now(); 
timer1.interval = 1000; 
timer1.enabled := true; 
end; 

शुरू करने के लिए यह सही समय किसी भी अंतराल के लिए ले जाया दिखाना चाहिए।
i.e. 5000 प्रत्येक 5 सेकंड, समय लेने के लिए दिखाने के लिए।

नोट: परीक्षण के साथ, 24 घंटे से अधिक समय तक टाइमर चलाने से सही समय अंतर नहीं दिख सकता है। उस के लिए मुझे लगता है कि है कि जैसे दिन

+0

+1 FormatDateTime का उपयोग करने के लिए, लेकिन -1 टैग में डबल डालने का प्रयास करने के लिए। = 0 – NGLN

+0

मेला कॉल, मैं कभी-कभी भूल जाता हूं कि TdateTime एक int नहीं है। –

संबंधित मुद्दे

 संबंधित मुद्दे