प्रिय डेल्फी प्रोग्रामर,एक-शॉट टाइमर
मैं मदद कैसे एक शॉट टाइमर (कोई जीयूआई, तो VCL टाइमर सवाल से बाहर) लिखने के लिए ...
मुझे समझाता हूँ के लिए देख रहा हूँ थोड़ा और।
मेरी कोड में (VCL टाइमर के साथ समझा लेकिन इस विशेष परियोजना में मैं कोई फॉर्म नहीं है):
- कॉल एक
procedure
जो सीरियल पोर्ट - पर एक चार भेजने के एक एक्स राशि के साथ एक टाइमर सक्षम करें
Interval
OnTimer
घटना में:
मैं एक कोड है जो एक चार भेज तो वें अक्षम ई टाइमर खुद को कभी भी निष्पादित नहीं किया जाएगा।
समस्या यह है कि मुझे इन टाइमर गतिशील बनाने की आवश्यकता है। मैंने इसे निष्क्रिय करने के लिए "ऑनटाइमर ईवेंट" में SetTimer()
फ़ंक्शन KillTimer()
के बारे में सोचा था (इसे मुक्त करें)।
क्या यह एक अच्छा (सुरक्षित) तरीका है?
धन्यवाद!
मैंने कुछ समय पहले ['कुछ समान '] (http://stackoverflow.com/q/10468787/960757) बनाया है। आपका दृष्टिकोण अच्छा लगता है, लेकिन ध्यान दें, कि यदि आप एक समय में एक से अधिक टाइमर शुरू करेंगे, तो आपको अंतर करने की आवश्यकता होगी, उनमें से एक ने उस टाइमआउट को निकाल दिया है यदि आप उन सभी के लिए एक सामान्य कॉलबैक प्रो का उपयोग करते हैं। – TLama
मैंने पढ़ा है कि 'SetTimer()' फ़ंक्शन आप टाइमर को "अनन्य आईडी" डाल सकते हैं और उनकी आईडी – ELCouz
से मार सकते हैं हां, मैं यही कोड में कर रहा हूं। मैं टाइमर आईडी और प्रक्रियाओं का संग्रह संग्रहीत कर रहा हूं जिनकी टाइमर अंतराल समाप्त होने पर किया जाना चाहिए। जब ऐसा होता है, तो मैं उस संग्रह में एक टाइमर की आईडी द्वारा किसी आइटम के लिए खोज करता हूं जो समाप्त हो जाता है और यदि यह पाया जाता है, तो मैं टाइमर को मारता हूं, उस प्रक्रिया को निष्पादित करता हूं और उस आइटम को संग्रह से हटा देता हूं। – TLama