應該很簡單,但我看不到它。delphi - 你如何找出哪個TPopupMenu是一個TMenuItem屬於
你可以找出那是右鍵單擊以顯示與彈出菜單組件:
PopupMenu1.PopupComponent
但你如何找出包含TMenuItem這是又點擊了彈出菜單菜單?
爲了簡化問題的例子:
我有一系列的標籤,每一個不同的標題,我有一個分配給每一個標籤的的彈出菜單屬性彈出菜單。
當有人右鍵點擊標籤之一,並提出了彈出式菜單,然後點擊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 2011-05-28 10:27:39