से संबंधित होना चाहिए, लेकिन यह मुझे नहीं देख सकता है।डेल्फी - आप कैसे पता लगाते हैं कि कौन सा TPopupMenu एक TMenuItem
PopupMenu1.PopupComponent
लेकिन कैसे आप पॉपअप मेनू कि TMenuItem कि बदले में किया गया है कि पर क्लिक किया होता है यह पता लगाना है:
आप घटक है कि दायाँ क्लिक किया है के साथ एक पॉपअप मेनू प्रदर्शित करने के लिए गया था पर पता कर सकते हैं मेन्यू?
एक उदाहरण के लिए समस्या को आसान बनाने के लिए:
मैं एक अलग शीर्षक के साथ प्रत्येक लेबल की एक श्रृंखला, है, और मैं एक पॉपअप मेनू है कि लेबल में से प्रत्येक के PopupMenu संपत्ति को असाइन किया गया है।
जब कोई सही-क्लिक लेबल में से एक और पॉपअप मेनू को लाता है, और फिर MenuItem1 पर क्लिक करता है, मैं कोड हैं:
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
MsgBox (Format ('The label right-clicked has the caption %', [xxxx.Caption ])) ;
end ;
xxxx क्या होना चाहिए?
कार्यान्वित उत्तर
दोनों उत्तरदाताओं के लिए धन्यवाद।
procedure TForm1.MenuItem1Click(Sender: TObject);
var
AParentMenu : TMenu ;
AComponent : TComponent ;
ALabel : TLabel ;
begin
AParentMenu := TMenuItem (Sender).GetParentMenu ;
AComponent := TPopupMenu (AParentMenu).PopupComponent ;
ALabel := TLabel (AComponent) ;
MsgBox (Format ('The label right-clicked has the caption %', [ALabel.Caption ])) ;
end ;
जो भी पूछताछ जो TMenuItem शामिल किया गया था और इसलिए मुझे कोड मैं कम संशोधन के साथ अन्य OnClick संचालकों में ड्रॉप कर सकते हैं का एक टुकड़ा देता है: क्या मैं के साथ समाप्त हो गया इस था।
मुझे पता था कि यह आसान होगा ... मैं TMenuItem के गुणों के तहत देख रहा था और कभी भी तरीकों को देखने के लिए सोचा नहीं था। बहुत धन्यवाद। – rossmcm