原文 http://homepages.borland.com/strefethen/index.php?pagename=Main.Delphi7
ActionBandsにおけるActionの動的生成
(掲載日2002年12月02日)このデモはActionを動的に生成して、実行時にActionBands上で使用する方法を示します。このデモでは、ActionBandの実行時のユーザー設定を、ストリーミングする事が出来ます。ポイントは、ActionBandsで使用するActionは、ActionBandの保存された設定を読み込む前に生成する必要があるという事です。デモはActionを動的に生成します(フォーム生成時)。このActionは、カスタマイズ・ボタンをクリックして、ActionToolBar上に置くことが出来ます。アプリケーションを再スタートした時、新しいボタンがActionBandの上に現れます。これは動的に生成されたActionとリンクされています。このデモは動的に生成されたActionを使用した簡単なサンプルです。これを応用すれば、使用しやすい実際のアプリケーションを作成出来ます。
Download: Runtime Action Demo
http://cc.embarcadero.com/Item/19313
TMainMenuコンポーネントにActionBandsをかぶせるには
(掲載日2002年11月18日)アップデートのお知らせ:このデモは2002年12月02日にアップデートされました。より良いメニューのスキンになりました。既に、このデモをダウンロードしている場合は、アップデート版をダウンロードし直して下さい。いくつかの問題が修正されています。
このデモは、ActionBandのメニューを使用して、既存のTMainMenuコンポーネントを覆う方法を示します。ActionBandsコンポーネントを使うように、アプリケーションを完全に書き換える必要はありません。このデモはコード例も示しています。これはActionBandメニューを動的に作成し、アプリケーション内のメニューに対応させる為に必要です。
このデモのポイントは、アプリケーションのメニューの表示方法を、アプリケーション全体を書き換えずに更新できる事です。ActionやActionBandsを使用するように書き換える必要はありません。ActionBandコンポーネントでは、メニューは色々なスタイルを使用して表示します。それに対してTMainMenuでは、新機能の追加や改良を行う場合は、アプリケーション開発期間中、修正し続ける必要があります。アプリケーションのポップアップ・メニューを覆うためにTActionPopupMenuを使用しましょう。これは以下のアップデートに含まれます。
デモのコードにより、ActionBandsに含まれる、新メニュースタイルを利用する方法が多少簡単になります。少なくとも、利用者のコードに影響は与えるでしょう。概して、ActionBandsを使用するのは、新規アプリケーションの開発時だけです。その理由は、デモを見る前は、ActionBandsの使用方法は不明確で、既存のアプリケーションを大規模に変更せずに済む方法を知らないからです。
DelphiのIDE自身も、同じテクニックを使っています。メニューを覆い、完全なOTA後方互換性を維持しています。
アプリケーションのTMainMenuコンポーネントを覆う為には、以下のステップを使用します。
- アプリケーションを、IDEで開きましょう。
- アプリケーションのMain Form(TMainMenuのあるForm)を開き、Menuプロパティをクリアしましょう。TActionMainMenuコンポーネントとTActionManagerコンポーネントをForm上に置きましょう。
- TActionManagerを選択し、オブジェクト・インスペクタのActionBarsプロパティをダブルクリックしましょう。
- 新規追加ボタン(コレクション・エディタ・ウィンドウ)をクリックし、ActionBarの最初の項目を、TActionMainMenuBarにしましょう。
- デモから以下のメソッドをコピーし、Formに追加しましょう。TForm1.LoadMenu, TForm1.UpdateMainMenuBar
- TActionMainMenuBarコンポーネントでOnPopupイベントとOnExitMenuLoopイベントを作成しましょう。デモからイベントのコードをコピーしましょう。
- デモから、FNewMenuActionsのTListデータのメンバーをコピーし、FormのPrivate部に追加しましょう。
- OnCreateイベントをFormに追加し、コードをデモのTForm1.FormCreateイベントからコピーしましょう。
- OnDestroyイベントをFormに追加し、コードをデモのTForm1.FormDestroyイベントからコピーしましょう。
以上で、アプリケーションは実行可能となり、ActionBandsによる新メニュー・スタイルを使用できるようになりました。
コンポーネントを追加しましょう。メニューの色を設定するコンポーネントとして、ColorMapコンポーネント(コンポーネント・タブのAdditional)を置きます。これをTActionMainMenuBar.ColorMapプロパティと接続しましょう。メニューのバリエーションを見たい方は、このページをご覧下さい。
Download: ActionBand Skin Demo
http://cc.embarcadero.com/Item/19272
ActionBandColorMap Creator(Delphi7.0専用)
(掲載日:2002年9月第四週)このデモでは、カスタム・カラーマップを生成します。カラーマップはActionBandコンポーネントと連携して使用します。これによりアプリケーション内のActionBandsコンポーネントの表示方法をコントロールする事が出来ます。このデモでは、カラーマップを実況プレビューし、カラーマップを実行時にカスタマイズする事が出来ます。このデモで使用するのは、TColorBoxコンポーネントを継承したTColorChangerコンポーネントです。これには2つのプロパティが追加されており、他のコンポーネントのColorプロパティと連結します。ComboBoxを使用して、色を変える事が出来ます。
以下のスクリーン・ショットは、2つのActionBandMenuのデフォルト・スタイルを表しています。VCLで、カラーマップを適用した場合はこんな風になります。上段は、XPスタイルメニュー。下段はスタンダード・スタイルメニューを使用しています。注目:右端の2つのカラーマップは、ActionBandColorMap Creatorを使用して作られています。
Download: ActionBand Colormap Creator
http://cc.embarcadero.com/Item/18801
|