मैं डेल्फी में एक पॉपअप मेनू का उपयोग कर रहा हूं। मैं इसे "रेडियो समूह" फैशन में उपयोग करना चाहता हूं, जहां उपयोगकर्ता किसी आइटम का चयन करता है, यह चेक किया जाता है और अन्य आइटम चेक नहीं किए जाते हैं। मैंने ऑटोचेक प्रॉपर्टी का उपयोग करने की कोशिश की, लेकिन इससे कई आइटमों की जांच की जा सकती है। क्या पॉपअप मेनू सेट करने का कोई तरीका है ताकि केवल एक आइटम की जांच की जा सके?डेल्फी पॉपअप मेनू चेक
उत्तर
ज़र्टोग सही है, लेकिन यदि आप चेकबॉक्स रखना चाहते हैं, तो इस ईवेंट को पॉपअप मेनू में प्रत्येक आइटम को असाइन करें।
ध्यान दें कि यह कोड थोड़ा बालों वाली दिख रही है क्योंकि यह आपके पॉपअप मेनू के नाम को जानने पर निर्भर नहीं है (इसलिए, इसे "GetParentComponent" के साथ देखकर)।
procedure TForm2.OnPopupItemClick(Sender: TObject);
var
i : integer;
begin
with (Sender as TMenuItem) do begin
//if they just checked something...
if Checked then begin
//go through the list and *un* check everything *else*
for i := 0 to (GetParentComponent as TPopupMenu).Items.Count - 1 do begin
if i <> MenuIndex then begin //don't uncheck the one they just clicked!
(GetParentComponent as TPopupMenu).Items[i].Checked := False;
end; //if not the one they just clicked
end; //for each item in the popup
end; //if we checked something
end; //with
end;
आप घटना क्रम पर हर पॉपअप बॉक्स के लिए इस तरह से अपनी फार्म पर असाइन कर सकते हैं (यदि आप ऐसा करना चाहते हैं):
procedure TForm2.FormCreate(Sender: TObject);
var
i,j: integer;
begin
inherited;
//look for any popup menus, and assign our custom checkbox handler to them
if Sender is TForm then begin
with (Sender as TForm) do begin
for i := 0 to ComponentCount - 1 do begin
if (Components[i] is TPopupMenu) then begin
for j := 0 to (Components[i] as TPopupMenu).Items.Count - 1 do begin
(Components[i] as TPopupMenu).Items[j].OnClick := OnPopupItemClick;
end; //for every item in the popup list we found
end; //if we found a popup list
end; //for every component on the form
end; //with the form
end; //if we are looking at a form
end;
इस जवाब नीचे एक टिप्पणी के जवाब में: आप तो कम से कम एक आइटम की जांच करने की आवश्यकता है, फिर पहले कोड ब्लॉक के बजाय इसका उपयोग करें। आप ऑनक्वेट ईवेंट में एक डिफ़ॉल्ट चेक आइटम सेट करना चाह सकते हैं।
procedure TForm2.OnPopupItemClick(Sender: TObject);
var
i : integer;
begin
with (Sender as TMenuItem) do begin
//go through the list and make sure *only* the clicked item is checked
for i := 0 to (GetParentComponent as TPopupMenu).Items.Count - 1 do begin
(GetParentComponent as TPopupMenu).Items[i].Checked := (i = MenuIndex);
end; //for each item in the popup
end; //with
end;
पॉपअप (या किसी अन्य) रेडियो समूह आइटम की तरह मेनू आइटम का इलाज करने के लिए, प्रत्येक आइटम आप रेडियो समूह में करना चाहते हैं के लिए सच करने के लिए 'RadioItem' गुण सेट।
चेकमार्क दिखाने के बजाए, यह चयनित आइटम द्वारा एक बुलेट दिखाएगा, लेकिन यह आपके इच्छित तरीके से काम करेगा, और दृश्य क्यू वास्तव में विंडोज मानक से मेल खाएगा।
ज़र्टोग के पोस्ट पर विस्तार करने के लिए: डेल्फी में पॉपअप मेनू (कम से कम डी 6 से) में ग्रुप इंडेक्स संपत्ति है जो आपको मेनू के भीतर रेडियो आइटम के कई सेट रखने की अनुमति देती है। एक दूसरे आदि के लिए पहले समूह, 2 के लिए 1 के लिए GroupIndex सेट
तो: सेट स्वत: जाँच = सच सेट RadioItem = सच सेट GroupIndex अगर आप रेडियो मदों की एक से अधिक समूह की जरूरत है
- 1. संदर्भ मेनू बनाम पॉपअप
- 2. दिखाएँ पॉपअप मेनू क्लिक
- 3. आईओएस बबल पॉपअप मेनू आईट्यून्स
- 4. विंडोज एक्सप्लोरर में डेल्फी मेनू मेनू जोड़ें
- 5. स्क्रॉलबार के साथ पॉपअप मेनू कैसे बनाएं?
- 6. Emacs स्वत: पूर्ण पॉपअप मेनू टूटा
- 7. एंड्रॉयड चेक करने योग्य मेनू आइटम
- 8. डेल्फी
- 9. रेंज चेक त्रुटि और डेल्फी 7.0
- 10. रेंज चेक त्रुटि का कारण (डेल्फी)
- 11. डिफ़ॉल्ट राइट-क्लिक मेनू दिखाएं - डेल्फी
- 12. टेक्स्ट डीएफएम संदर्भ मेनू विकल्प का क्या अर्थ है?
- 13. फ्लैश मूवी पर क्रॉस ब्राउज़र ड्रॉपडाउन/पॉपअप मेनू
- 14. कार्रवाई में एक बटन के क्लिक पर पॉपअप मेनू बार
- 15. बटन क्लिक होने पर पॉपअप मेनू कैसे खोलें?
- 16. संदर्भ मेनू में चेक/अनचेक QAction जोड़ने के लिए कैसे?
- 17. एंड्रॉयड मेनू: दो एकल चेक करने योग्य एक ही मेनू में समूहों
- 18. पॉपअप
- 19. पॉपअप
- 20. पॉपअप
- 21. पॉपअप
- 22. पॉपअप
- 23. चेक = "चेक" बनाम चेक = सही
- 24. डब्ल्यूपीएफ पॉपअप
- 25. फ्रेमलेस पॉपअप विंडो
- 26. मैं डेल्फी में मेनू बार में एक TLabel कैसे जोड़ूं?
- 27. सिस्टम मेनू के बिना डेल्फी फॉर्म लेकिन बंद बटन
- 28. QTreeWidget राइट क्लिक मेनू
- 29. डेल्फी
- 30. JavaFX 2 कस्टम पॉपअप फलक
उन्होंने यह भी होना चाहिए वह कोड जोड़ें जो जांचता है कि कम से कम एक मेनू आइटम चेक किया गया है और जो चेक बैक उपयोगकर्ता को चेक प्रविष्टि को अनचेक करता है जोड़ता है। यह आपके उदाहरणों को सरल होना चाहिए। – gabr
मुझे यकीन नहीं है कि उसका लक्ष्य है, लेकिन मैंने जवाब में इसे संभालने के लिए एक ब्लॉक जोड़ा। यह वास्तव में चीजों को थोड़ा सा सरल बनाता है। – JosephStyons
यह निश्चित रूप से जाने का तरीका नहीं है: यह कार्यक्षमता पहले ही अंतर्निहित है। ज़र्टोग और गेरी की पोस्ट देखें, और दोनों को गठबंधन करें। – onnodb