AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
Delphi2010 ツールバー(ToolBar) 2010/10/21
 
前回は[Win32]内の「StatusBar」(ステータスバー)について見ましたので、今回は同じく[Win32]内の「ToolBar」(ツールバー)について見てみます。ツールバーは Delphi6 にもあります。ツールバーについては既に、コントロールバー(ControlBar)のページで既に少し記述しています。

 
それではフォームに直接、ツールバーを貼り付けてみます。1つ目ですので Nameプロパティは「ToolBar1」となります。通常、位置はフォーム画面の一番上になります。パネル Panel1 の上にかぶさってしまいましたので、後でパネルを下へ移動しておきます。

 
ツールバーは、その上にツールボタンを配置し、それをクリックする事によって様々な機能等を実行させたりするのに利用します。メニューバーで機能を実行する代わりにツールバーを利用する事も多いです。
但し、ユーザーカスタマイズを前提にしたツールバーは、アクションツールバー(ActionToolBar)を利用される場合が多いと思われますので、従来から存在するこのツールバーは、どちらかというと、プログラム作成者側が提供する固定的(静的)なツールバーであると言えるかもしれません(ツールバーにも Customizableプロパティを「True」にするという手法はあるようです)。
 
ツールバーの ShowCaptions プロパティを True にして(デフォルトは False)、ToolBar1を右クリックし表示されるポップアップメニューの「ボタンの新規作成」を行います。するとツールバーの上にボタンが1つ[ToolButton1]が作成されます。



同様にもう1つボタンを作ってみます。

同様にもう1つボタンを作る前に、ボタン間隔がキチキチなので少し間をあけたいので、セパレータを付けてみます。ToolBar1の右クリックメニュー「セパレータの新規作成」を行います。

すると、空状態のツールボタン ToolButton3 が作成されました。セパレータというのは、そういうものらしいですね。

同様にもう1つボタンを作ってみます。

この状態で、保存・コンパイル(再構築)・実行してみます。

ボタン状態ではなくフラット状態になっています。マウスを移動して合わせると薄い四角形が表示されています。
 
ツールバーを移動したり、フォームから取り外してフロート状態にしたい場合は、コントロールバーやクールバー(※通常はコントロールバーを使うという事になっているようです)等と併用するのが通例でしょう。
 
 
ツールボタン ToolButton1を選択すると<オブジェクトインスペクタ>は ToolButton1 の情報を表示します。Captionプロパティを指定すると、ボタン上の文字を指定する事が出来ます。

 
Actionプロパティは、アクションリスト(ActionList)と共に利用します。
 
AllowAllUpプロパティは、Groupedプロパティが「True」で Styleプロパティが「tbsCheck」の場合に有効で、この場合はツールボタンをラジオグループ(RadioGroup)のように扱う事が出来るというイメージなのですが、このプロパティが「False」の場合は、グループ内のうちの1つのボタンだけ押している状態(Downプロパティが「True」)にする事が出来、このプロパティが「True」の場合は、グループ内の複数のボタンを押している状態にする事が出来るようになります。
 
AutoSizeプロパティは、「True」にすると(デフォルトは「False」)ボタン上の文字の長さに応じて、ボタンの大きさが自動的に調整されます。
 
Downプロパティは、「True」にするとボタンを押した状態に、「False」にするとボタンを離した状態に、する事が出来ます。Styleプロパティが「tbsCheck」の場合に有効でしょう。
 
DropdownMenuプロパティは、フォームに配置したポップアップメニュー(PopupMenu)を指定し、Styleプロパティが「tbsDropDown」の場合にはボタンの右端に三角ボタンが表示され、メニューが埋め込まれたようなツールボタンを作成する事が出来るようになります。但しこれは WindowsVista/7 でのみ有効だろうと思われます。通常のボタン状態では、ボタンをクリックするとドロップダウンメニューが表示されます。
 
EnableDropdownプロパティは、ヘルプによると
このボタンに割り当てられたドロップダウンメニューを有効にするかどうかを制御します。
EnableDropdownを使用すると、このボタンに割り当てられたドロップダウンメニューをユーザーが利用できるかどうかを、確認できます。ドロップダウンメニューを無効にするには、EnableDropdownをFalseに設定します。ドロップダウンメニューを有効にするには、EnableDropdownをTrueに設定します。
EnableDropdown のデフォルト値は False です。
メモ: これは、Windows Vista でのみ使用できます。
とありますが、このプロパティがデフォルトの「False」の場合は

となり、「True」に指定した場合には

のようにグレー表示されてしまいます。マウスを移動して上に合わせても強調表示はされません。ボタンもドロップダウンメニューも双方とも動いていますけれども、見た目としては、どうも逆のような感じがします。
 
Groupedプロパティは、隣同士のチェックボタン(Styleプロパティが「tbsCheck」のボタン)を1つのグループとして扱います。Downプロパティと合わせてラジオグループのような感じのボタンを作ることが出来ます。
 
ImageIndexプロパティは、ツールバーにイメージリストを指定している場合の、イメージ番号を指定し、ボタンにアイコン画像を貼り付けることが出来るようになります。
 
Indeterminateプロパティは、「Ttue」にすると(デフォルトは「False」)ボタンが押した状態でも離した状態でもない状態にする事が出来ます。ボタンは淡色表示されます。Downプロパティは「False」状態となります。この状態でもボタンは押せます。

ToolButton1は押した状態、   
ToolButton2は離した状態、   
ToolButton4はどちらでもない状態
 
Markedプロパティは、ヘルプによると
ボタンがマーキングされるかどうかを指定します。
Markedプロパティを使用すると,ボタンがマーキングされるかどうかを判定したり,設定したりできます。マーキングされたボタンの表面は影付きになります。
とありますが、色々やってみましたが、Delphi2010だからなのか、Windows7(Aero)だからなのかは分かりませんが、差異が全く分かりませんでした。
 
MenuItemプロパティは、メインメニューやポップアップメニューのメニュー項目のNameプロパティが表示されていて、それを指定することにより、ツールボタンをクリックしたら、メニュー項目を実行した事になるようになります。これを指定すると、Captionプロパティの内容がそのメニュー項目のものに置き換わります。その後にCaptionプロパティを手で書き換えても、フォームデザイナ上では書き換えた状態になっていますが、実行時には無効化されますので注意が必要です。
 
Styleプロパティは、ツールボタンの外観・機能を指定します。以下、ヘルプより。
tbsButtonボタンが通常のスピードボタンと同じように表示され機能する
tbsCheckボタンをクリックすると,Downプロパティが切り替わる。いったんボタンを選択すると,もう一度クリックするまで選択された状態になる
tbsDropDownボタンは下向き矢印(ドロップダウンメニューのアクセスに適切)を表示する ※おそらくWindowsVista/7のみ有効
tbsSeparatorボタンがツールバー上の空きスペースとして表示される(ほかのコントロールを区切るために使用される)
tbsDividerボタンがツールバー上の垂直線として表示される(ほかのコントロールを区切るために使用される)
tbsTextButtonボタンがテキストだけで表示される
 
 
ツールボタンのプロパティは、こんなところでしょうか。
次に、ツールバーのプロパティを見ていきます。
 
 
Alignプロパティはこれまで同様、いつもの定番・お約束です。画面の4辺/全てにくっつける、或いは、何もしない(alNone)を指定します。デフォルトは「alTop」になります。
 
AllowTextButtonsプロパティは、「True」にすると(デフォルトは「False」)ツールボタンのStyleプロパティが「tbsTextButton」以外のボタンの文字を非表示状態にします。

AutoSizeプロパティは、「True」にすると(デフォルトは「False」)ツールボタンの大きさに合わせてツールバーの大きさを自動調整します。コントロールバーやクールバー等の上に配置して、移動したりフロート状態にしたい場合や、複数のツールバーを扱う場合には、「True」にしておかないとうまくいかない場合があります。
 
Customizableプロパティは、「True」にすると(デフォルトは「False」)実行時にツールバーをカスタマイズすることが出来るようになります。その場合、[Shift]キーを押しながらツールボタンをドラッグするとツールボタンの移動が出来ます。また、[Shift]キーを押しながらツールバーの外の他のコントロールへドロップするとボタンの削除が出来ます。ツールバー上のボタンのないところをダブルクリックするとカスタマイズ用の画面が表示されます。



但し、カスタマイズした内容をファイルに保存、呼び出しをしてその状態にツールボタンを整理するというのは、便利な専用機能は無いと思われますので、そういうプログラミングを行う必要があると思われます。
 
Imagesプロパティは、イメージリストを指定し、ツールボタンにアイコン画像を貼り付けることが出来るようになります。DisabledImagesプロパティは無効なツールボタンに表示を行うイメージリスト、HotImagesプロパティは、マウスがツールボタンの上を通過した時に表示を行うイメージリスト、を指定します。

 
DrawingStyleプロパティは、ツールバーの外観を指定する事が出来ます。「dsNormal」は指定1色による表示、「dsGradient」はグラデーション表示、となっていますが、「dsNormal」の場合、色を指定しても、透過用のプロパティである、FlatプロパティやTransparentプロパティを False にしていても、Delphi2010だからなのか、Windows7(Aero)だからなのか、よく分かりませんがどうもうまく表示されない様子です。また、透過用のプロパティである FlatプロパティやTransparentプロパティが「True」になっていても、透過状態とはなっていないようです。

 
Listプロパティは、イメージリストでツールボタンにアイコン画像を指定している場合、「True」(デフォルト)の場合には、アイコン画像を文字の左側に配置し、「False」の場合はアイコン画像を文字の上側に配置します。下記は「False」にした場合の例です。

 
Menuプロパティは、配置したメインメニューのNameプロパティを選択し、そのメニューをツールボタンとしてそのまま反映させます。メニューをそのままツールボタンに反映できますので簡単かもしれませんが、ツールバーでのカスタマイズ等は出来ないようなので独自に色々とやりたい場合には逆に扱いにくいかもしれません。
 
Wrapableプロパティは、「True」(デフォルト)にすると、ツールバーの大きさに応じて、ツールバー上のツールボタンの自動改行を行えるようにします。

「True」時


「False」時
 
 
そのほか、これまでのコンポーネントで既に説明したものや、特に記述が必要であろうものは無さそうですので、このあたりにしておきます。
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/10/20
 2010/10/21
▼2010/10/22
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.