2012-03-12 6 views

答えて

6

私はこのような何かしようとするだろう:

procedure TForm1.Button1Click(Sender: TObject); 
var 
    MenuItem: TMenuItem; 
    Action: TCustomAction; 
begin 
    MenuItem := TMenuItem.Create(PopupActionBar1); 
    Action := TFileOpen.Create(PopupActionBar1); 
    Action.Caption := '&Open...'; 
    Action.ShortCut := 16463; 
    MenuItem.Action := Action; 
    PopupActionBar1.Items.Add(MenuItem); 

    MenuItem := TMenuItem.Create(PopupActionBar1); 
    Action := TFileOpenWith.Create(PopupActionBar1); 
    Action.Caption := 'Open with...'; 
    MenuItem.Action := Action; 
    PopupActionBar1.Items.Add(MenuItem); 
end; 

そして私はキャプション、ショートカットの値を取得したのか?良い質問。これらはアクションリストのコンポーネントエディタからのものです。アクションリストに標準アクションを追加し、フォームのソースコードを調べると、それらを得ることができます。そこには、このように、あなたのアクション定義が表示されます(?ポップアップメニュー項目の)

object FileOpen1: TFileOpen 
    Category = 'File' 
    Caption = '&Open...' 
    Hint = 'Open|Opens an existing file' 
    ImageIndex = 7 
    ShortCut = 16463 
end 

し、ポップアップメニューのため、あなたがヒントを必要としない、カテゴリ、あなたは(もImageIndexプロパティ(アクションリストのためです)独自のイメージセットを定義することができます。したがって、インデックスが異なる場合があります)、それらを残すことができます。実際にあなたはこのすべてを残すことができます、アクションはそれでも(あなたが使用するクラスに基づいて)実行されますが、キャプションもショートカットもありません。

関連する問題