2010-08-23 34 views
6

मुझे अपने डेल्फी 2010 ऐप में एक TDataModule में एक विंडोज़ संदेश भेजने की आवश्यकता है।डेल्फी - मैं TDataModule को विंडोज़ संदेश कैसे भेजूं?

TDataModule एक हैंडल नहीं है:

मैं

PostMessage(???.Handle, UM_LOG_ON_OFF, 0,0); 

प्रश्न का उपयोग करना चाहते हैं। मैं इसे विंडोज़ संदेश कैसे भेजूं?

उत्तर

8

आप इसे आसानी से एक हैंडल दे सकते हैं। कक्षा इकाई में AllocateHWND पर एक नज़र डालें। अपने डेटा मॉड्यूल के लिए हैंडल बनाने के लिए इसे कॉल करें, और एक सरल संदेश हैंडलर परिभाषित करें जो UM_LOG_ON_OFF को संसाधित करेगा।

+0

क्या AllocateHWND बस एक छिपी हुई विंडो बनाते हैं? –

+0

@gbrandt: यह एक * विंडो हैंडल बनाता है, * जो काफी समान नहीं है। संदेशों को प्राप्त करने और अपने स्वयं के चित्र को संभालने के लिए सभी दृश्य नियंत्रणों में एक विंडो हैंडल होना चाहिए, (और हैंडल के बिना दृश्य नियंत्रण स्वयं को आकर्षित नहीं कर सकते हैं या संदेश प्राप्त नहीं कर सकते हैं), लेकिन प्रत्येक संभाल नोड दृश्य तत्व से बंधे नहीं हैं। –

+1

@gbrandt: इस लिंक पर एक नज़र डालें http://www.delphidabbler.com/articles?article=1 "कैसे एक गैर-खिड़की वाला घटक विंडोज से संदेश प्राप्त कर सकता है" –

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