आईई/फ़ायरफ़ॉक्स बैक बटन शैली, ड्रॉपडाउन मेनू बटन दिखाने का कोई तरीका है?ड्रॉप-डाउन मेनू वाला बटन कैसे बनाएं?
उत्तर
निश्चित रूप से। पेज पर एक टूलबार रखो। टूलबार पर राइट-क्लिक करें, एक बटन जोड़ें। बटन की शैली को tbsDropDown पर सेट करें। पेज पर एक पॉपअपमेनू रखो। मेनू आइटम को परिभाषित करने के लिए पॉपअपमेनू पर डबल क्लिक करें। फिर, आपके द्वारा बनाए गए बटन पर वापस जाएं और अपनी ड्रॉपडाउनमेनू प्रॉपर्टी को उस पॉपअपमेनू को इंगित करने के लिए सेट करें जिसे आपने अभी बनाया है।
यदि आप टूलबार का उपयोग नहीं करना चाहते हैं, तो राइज (www.raize.com) और एक्सप्रेस एडिटर्स (www.DevExpress.com) पुस्तकालयों में ऐसे घटक होते हैं जो ऐसा कर सकते हैं।
मुझे लगता है कि आप एक बटन का मतलब है जो क्लिक करते समय मेनू को छोड़ देता है।
आप अपने बटन को मैन्युअल रूप से कोड कर सकते हैं इसके तहत एक TPopupMenu ड्रॉप करने के लिए क्लिक करें।
उदाहरण: अपने फॉर्म पर एक TClickEvent (शायद एक TButton) और एक TPopupMenu के साथ कुछ भी ड्रॉप करें। कुछ मेनू आइटम जोड़ें। फिर निम्न ऑनक्लिक ईवेंट हैंडलर जोड़ें:
procedure TForm86.Button1Click(Sender: TObject);
var
button: TControl;
lowerLeft: TPoint;
begin
if Sender is TControl then
begin
button := TControl(Sender);
lowerLeft := Point(button.Left, button.Top + Button.Height);
lowerLeft := ClientToScreen(lowerLeft);
PopupMenu1.Popup(lowerLeft.X, lowerLeft.Y);
end;
end;
और व्हायोला! जादू की तरह। यदि आप इसका पुन: उपयोग करने की योजना बना रहे हैं तो आप इसे एक घटक में लपेट सकते हैं। शायद इसे ऑनलाइन भी बेच दें।
नोट: आप एक देरी चाहते हैं, तो एक और तरीका है कि कोड को निकालने और उसके बाद एक टाइमर OnClick सेट और OnMouseLeave की घड़ी बदल जाते हैं। फिर यदि टाइमर आग लगती है तो आप निकाली गई विधि को कॉल कर सकते हैं। सुनिश्चित नहीं है कि आप कीबोर्ड क्लिक पर इसे कैसे करेंगे। मुझे नहीं पता कि फ़ायरफ़ॉक्स, आदि या तो इसका समर्थन करता है।
जिम का जवाब बहुत अच्छा है, लेकिन पहले मेरे लिए काफी काम नहीं किया। क्लाइंटटोक्रीन फॉर्म 86 की विधि का उपयोग करता है, जो बटन केवल सीधे फॉर्म पर है, तो यह सही है।
procedure TForm86.Button1Click(Sender: TObject);
var
button: TControl;
lowerLeft: TPoint;
begin
if Sender is TControl then
begin
button := TControl(Sender);
lowerLeft := Point(0, button.Height);
lowerLeft := button.ClientToScreen(lowerLeft);
PopupMenu1.Popup(lowerLeft.X, lowerLeft.Y);
end;
end;
यह कोई फर्क नहीं पड़ता कि बटन कहां है काम करता है: यह बटन के ClientToScreen विधि है कि, कहा जाता है इस तरह होना चाहिए।
बहुत अच्छा - दोनों अंगूठे ऊपर! – user1580348
वास्तविक समस्या मौजूद है यदि आप चाहते हैं कि यह टीबटन एक टीएसपीड बटन है जो मेनू प्रदर्शित होने पर नीचे रहता है और जब उपयोगकर्ता मेनू से किसी आइटम पर क्लिक करता है या फॉर्म में कहीं भी क्लिक करता है तो पॉप अप होता है। लेकिन यह एक अलग सवाल है और एक अलग विषय है ... – gabr
क्या आप स्पीडबटन के ऑनक्लिक ईवेंट में टाइमर नहीं लगा सकते हैं, और टाइमर का निष्पादन ईवेंट परीक्षण यह देखने के लिए है कि पॉपअपमेनू अभी भी दिखाई दे रहा है या नहीं? – Argalatyr
यदि बटन स्क्रीन के निचले भाग के पास रखा गया है, तो बटन बटन के निचले हिस्से से शुरू होने पर नीचे रखेगा, इस प्रकार इसे कवर करेगा, जो शायद आप नहीं चाहते हैं। (शायद कोई समस्या नहीं है, मैंने सोचा कि मैं इसका उल्लेख करूंगा।) – dummzeuch