Delphi2010 アクションツールバー(ActionToolBar)
2010/09/29
前回は[Additional]内の「PopupActionBar」(ポップアップアクションバー)について見ましたので、今回は同じく[Additional]内の「ActionToolBar」(アクションツールバー)について見てみます。
アクションツールバーは Delphi6 にもあります。
アクションツールバーを配置してみます。1つ目ですので
Name
プロパティは「ActionToolBar1」となります。エディットより下になってしまいますのでマウスでドラッグしてエディットの上に移動しておきます。
↓
アクションツールバーは、
アクションメインメニューバー(ActionMainMenuBar)
と同様、アクションマネージャーと共に利用して、ユーザーのカスタマイズ可能なツールバーを提供します。
アクションリスト、アクションマネージャーは既に配置され、アクションリスト、アクションメインメニューバーへの関連付け等の指定は行われているものとします。
アクションマネージャーとアクションツールバーを関連付けます。。<オブジェクトインスペクタ>にて、アクションマネージャー ActionManager1の
ActionBars
プロパティの欄を選択し、右端に表示される[…]をクリックします。
[ActionBarsの編集]画面が表示されますので、新規追加を行います。
<オブジェクトインスペクタ>にて、ActionBars[1]の
ActionBar
プロパティを「ActionToolBar1」にします。
関連付けは出来ましたので、次に、ツールバー作成をします。
アクションメインメニューバーと同様、アクションマネージャーの編集画面からのドラッグ&ドロップでツールバーを作成する事が出来ます。
その前に、テスト11のフォルダ内に「test011.dat」があると思いますので、Windowsのエクスプローラでそれを削除しておきます。
アクションマネージャー ActionManager1 をダブルクリックして下さい。編集画面が表示されます。[アクション]頁のカテゴリを指定すると、既に登録してあるアクションリスト内のアクションが表示されます。
アクションの項目を、<フォームデザイナ>の アクションツールバー ActionToolBar1 の上へマウスでドラッグ&ドロップします。
すると、アクションツールバー ActionToolBar1 に項目が追加されます。
同様にして、アクション「すべてを選択」もドラッグ&ドロップしてみます。
保存・コンパイル(再構築)・実行をします。
以前にメニューバーのカスタマイズ内容を登録・呼び出しするようにプログラミングしていますが、ツールバー内容もそのまま登録・呼び出しされるようになります。
ちなみに、アクションメインメニューバーの場合は、カスタマイズ画面を表示させた状態で[Delete]キーでメニューを消す事が出来るのですが、アクションツールバー上のボタンは[Delete]キーで消す事が出来ない様子です。そのため、別途、削除する方法を用意しておく必要があると思われます。
前回、ポップアップアクションバーを配置しましたので、そのポップアップメニューにメニューをリセットする項目を追加する事にします。ついでにメインメニューのリセットも追加します。
ポップアップアクションバーPopupActionBar1をダブルクリック、又は、右クリックメニュー「メニューデザイナ」を行い、メニュー項目を追加します。
1つは
Caption
プロパティを「メニューバーをリセット(&M)」、
Name
プロパティを「mnuMenuBarReset」とし、もう1つは
Caption
プロパティを「ツールバーをリセット(&R)」、
Name
プロパティを「mnuToolBarReset」とします。
メニューを選択した時の
OnClick
イベントハンドラを下記のようにします。
procedure TForm1.mnuMenuBarResetClick(Sender: TObject);
begin
ActionManager1.ResetActionBar(0);
end;
procedure TForm1.mnuToolBarResetClick(Sender: TObject);
begin
ActionManager1.ResetActionBar(1);
end;
これでアクションツールバーに文字タイプのボタンを置くという事は出来ました。次に、メニュー文字にアイコンを付加するようにしてみます。
それにはまず、アイコンを作成する必要があります。正直なところ、よく利用するアイコンファイルくらいは Delphi にサンプルアイコンファイルとして付属して欲しいです。アイコン作成ソフトにて取り合えずテキトウに作っておきます。
恒例のごとく、[Win32]内のImageList(イメージリスト)を配置し、作成したアイコンを追加します。
↓
↓
↓
これをアクションリスト ActionList1 に割り当てます。<オブジェクトインスペクタ>にて、ActionList1の
Images
プロパティを ImageList1 にします。
アクションリスト ActionList1 をダブルクリック、又は、右クリックメニュー「アクションリストの設定」を行い、カテゴリ〜アクションを指定して、<オブジェクトインスペクタ>にて
ImageIndex
プロパティを、そのアクション用のアイコンの番号に指定します。
アクションマネージャー ActionManager1 を選択し、。<オブジェクトインスペクタ>にて、ActionList1の
Images
プロパティを ImageList1 にします。
テスト11のフォルダ内に「test011.dat」があると思いますので、Windowsのエクスプローラでそれを削除しておきます。保存・コンパイル(再構築)・実行を行います。メニューの文字の前にアイコンが付いていることが確認できると思います。
次に、アイコン/画像のボタンを置く事についてですが、ツールバー(ToolBar)のような「ボタンの新規作成」という操作は、このアクションツールバーには無いようですので、単純に、アクションツールバー上の項目の
ShowCaption
プロパティを False にする事を考えます。
フォームデザイナで、アクションツールバー上の「カスタマイズ」を選択し、<オブジェクトインスペクタ>にて、
ShowCaption
プロパティを「False」にします(デフォルトは「True」になっています)。
↓
「すべてを選択」のほうも同様に行います。
そして、実行時、カスタマイズにて、アクションツールバーへ選択したアクションをドラッグ&ドロップした際についてですが、何もしないと文字が表示されますので、これを表示しないようにしたいです。アクションツールバーへコントロールを配置したときには、
OnGetControlClass
イベントが発生するようです。ですのでこのイベントハンドラを記述します。
procedure TForm1.ActionToolBar1GetControlClass(Sender: TCustomActionBar;
AnItem: TActionClient; var ControlClass: TCustomActionControlClass);
begin
TActionClientItem(AnItem).ShowCaption := False ;
end;
としてみます。
それでは、保存・コンパイル(再構築)・実行をしてみます。
↓ カスタマイズのアイコンをクリック
↓ 切り取りをドラッグ&ドロップ
↓ 幾つか同様に行って、カスタマイズを閉じる
という感じで実行出来るのがわかりました。
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>
Delphi入門編
>
Delphi2010
▲2010/09/28
2010/09/29
▼2010/09/30
シェアウェア
Script!World
データベース
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.