2008-11-18 12 views
8

इनपुट सत्यापन पर, मैं संदेश बॉक्स के बजाय गुब्बारे सुझावों का उपयोग कर रहा हूं। मेरी समस्या यह है कि विस्टा पर, उनके पास गोलाकार कोनों के साथ पुरानी एक्सपी शैली है, न कि उपस्थिति की तरह नए आयत।डेल्फी में Vista शैली गुब्बारे संकेत कैसे दिखाएं?

मैंने CreateWindowEx और tooltips_class32 का उपयोग करके उन्हें बनाने का प्रयास किया है या SendMessageW और EM_SHOWBALLOONTIP का उपयोग करके संपादन के संबंधित बॉलोन्टिप को दिखाया है, परिणाम समान है। विस्टा स्टूडियो और सी # परिणामों में विस्टा स्टाइल बुलून टिप में एक ही चीज़ करना।

आप मुझे आवश्यक गुब्बारे संकेत का एक उदाहरण देख सकते हैं, जब आप पासवर्ड लॉग इन करते समय कैप्स लॉक टॉगल करते हैं, जैसे कि विंडोज लॉगऑन पर एक।

उत्तर

3

जैसा कि Delphi 2009 reviewers guide में पढ़ा जा सकता है प्रत्येक वीसीएल घटक में अब कस्टमहिंट संपत्ति है। इसे टीसी कस्टमहिंट के किसी भी वंशज को सेट किया जा सकता है।

Vista में बालन संकेत सक्षम करना सुनिश्चित करें अन्यथा वे नहीं दिखाएंगे।

+0

मैं संकेत संदेशों की तरह त्रुटि संदेशों के बजाय उनका उपयोग करता हूं। –

+0

आप यह कैसे करते हैं? मैंने यहां कोशिश की लेकिन इच्छाशक्ति पर संकेत दिखाने के तरीके को समझने में सक्षम नहीं था। –

+0

http://www.swissdelphicenter.ch/en/printcode.php?id=2279 –

16

यदि आप डेल्फी 200 का उपयोग कर रहे हैं, तो गुब्बारा संकेत जोड़ना उचित रूप से सीधा है, हालांकि दस्तावेज खराब है। (आश्चर्य, आश्चर्य)

  • आपके प्रपत्र
  • ड्रॉप अगर जरूरत माउस को रोकने के लिए एक TImageList पर एक TBalloonHint ड्रॉप।
  • लिंक TBalloonHint
  • TBalloonHint
  • को प्रपत्र की CustomHint प्रॉपर्टी सेट करने के लिए TIMageList यकीन ShowHint और ParentCustomHint अपने नियंत्रण के लिए सही सेट करना सुनिश्चित करें।

यह अगले बिट very non-obvious है:

  • स्वरूप के रूप में अपने नियंत्रण से "सुझाव" संपत्ति "शीर्षक | संकेत | ImageIndex"

आप काम हो गया। फ़ॉन्ट विकल्प के कारण शायद यह 100% विस्टा जैसा नहीं दिखता है। लेकिन यह बहुत करीब है।

Delphi 2009 http://dn.codegear.com/article/images/38757/0300000D.png,

2

डेल्फी 2009 में TCustomHint ShowHint के चार संरक्षित भार के कि जब कहा जाता है आप मांग पर और विशेष स्थानों में TCustomHint डाल सकते हैं हैं:

procedure ShowHint; overload; 
procedure ShowHint(Point: TPoint); overload; 
procedure ShowHint(Rect: TRect); overload; 
procedure ShowHint(Control: TControl); overload; 

तुम सब करने की ज़रूरत है जिस शैली में आप चाहते हैं उसमें एक संकेत लागू करें (या यदि यह पर्याप्त है तो बस TBalloonHint से उतरें) और उन विधियों को सार्वजनिक रूप से एक संकेत देने की क्षमता रखने के लिए जहां कभी भी और कभी भी आप चाहते हैं।

नोट: टेक्स्ट को प्रदर्शित करने के लिए TCustomHint की शीर्षक संपत्ति बदलें, जब तक कि आप शोहिंट का उपयोग न करें जो TControl को तर्क के रूप में लेता है। उस स्थिति में यह इसे नियंत्रण की संकेत संपत्ति से प्राप्त करता है (और इसे TCustomHint की शीर्षक संपत्ति में रखता है)।

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