DelphiXE3 [FMX]アクションリスト(ActionList)
2013/09/21
前頁で[Standard]内の「PopupMenu」(ポップアップメニュー)について書きましたので次は、同じく[Standard]内の「ActionList」(アクションリスト)です。
【Delphi2010の記事はこちら】
【DelphiXE3[VCLアプリケーション]の記事はこちら】
(ヘルプより)
State
ユーザーがクライアントオブジェクトをトリガしたときに、アクションリスト内のアクションが応答するかどうかを示します。
Stateは、System.Actions.TActionListState型で定義されている値のいずれか1つを取ることができます。
asNormal
クライアントオブジェクトまたはショートカットキーによってトリガされると、アクションは通常の応答を実行します。
asSuspended
クライアントオブジェクトから起動するよう伝えられても、アクションリスト内のアクションは応答しません。リスト内のすべてのアクションのEnabledプロパティは変化しません。
asSuspendedEnabled
クライアントオブジェクトから起動するよう伝えられても、アクションリスト内のアクションは応答しません。リスト内のすべてのアクションのEnabledプロパティは True に設定されます。これは、ActionBarの設計に使用します。
ActionListアイコンをダブルクリック、又は、右クリックメニュー「アクションリストの設定」を行うと、アクションリストエディタ「ActionList1の編集」画面が表示されます。
右クリックメニュー「標準アクションの新規追加」、又は、ツールバー上の新規ボタンの右横にある「▼」をクリックを行う事によって、標準アクションを追加する事が出来ます。
又は
しかし表示されるのは
だけで、例えば、編集の中には、お約束の「切り取り」「コピー」「貼り付け」等のようなアクションがありません。ヘルプにも、VCLにあるような「アクションマネージャー」は無い、と記述されています。もしかすると、RegisterActions等を使って独自追加出来るのかもしれませんが、やめておきます。それが本当に普遍的で正しい手法なのか分かりませんので。ここは普通に「新規」で登録しておく事にします。
Nameプロパティを
「Action1」から「ActionEditCut」に変更しています。
ShortCut、Textプロパティを指定していますが、これは、メニュー等でのActionプロパティで指定したものにそのまま反映されます。
これは従来と同様です。
同様に、
Action2 を EditActionCopy、
Action3 を EditActionPaste、
に変更して追加しています。
フォーム上に MainMenu1 と Edit1 を貼り付けています。
MainMenu1 の項目を下記のようにしています。
MenuItem2〜4 の Actionプロパティをそれぞれ指定すると ShortCut、Textプロパティはアクションリストからそのまま反映されます。
アクションリストエディタから各アクションを指定し、オブジェクトインスペクタのイベントの OnExecute イベントを記述することにより、メニュー等をクリックしたときに、どのような動作を行わせるのかをプログラミングします。
procedure TForm1.ActionEditCopyExecute(Sender: TObject);
begin
Edit1.CopyToClipboard ;
end;
procedure TForm1.ActionEditCutExecute(Sender: TObject);
begin
Edit1.CutToClipboard ;
end;
procedure TForm1.ActionEditPasteExecute(Sender: TObject);
begin
Edit1.PasteFromClipboard ;
end;
ポップアップメニューや各種ボタン等に割り当てる場合も同様に Actionプロパティを指定するだけです。
保存・コンパイル(ビルド)・実行を行います。
正常動作することが確認出来ます。
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>
Delphi入門編
>
Delphi2010
>
DelphiXE3
▲2013/09/20
2013/09/21
▼2013/09/22
シェアウェア
Script!World
データベース
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.