Delphi2010 クールバー(CoolBar)
2010/10/22
前回は[Win32]内の「ToolBar」(ツールバー)について見ましたので、今回は同じく[Win32]内の「CoolBar」(クールバー)について見てみます。
クールバーは Delphi6 にもあります。
クールバーは、
コントロールバー(ControlBar)
同様、上にツールバーを配置して、複数配置した場合には位置を移動することが出来るツールバーを作成する事が出来ますが、更に、ツールバーだけではなく、各コンポーネントを配置する事も出来ます。
それではフォームに直接、クールバーを貼り付けてみます。1つ目ですので
Name
プロパティは「CoolBar1」となります。通常、位置はフォーム画面の一番上になります。パネル Panel1 の上にかぶさってしまうので先に下に移動しておきました。クールバーにマウスを合わせてもヒントメッセージのような「CoolBar1: TCoolBar〜」は表示されないようです。
クールバーの上に試しにラベルを配置してみます。ラベルの場合は、パネルみたいな感じに見えますね。
試しにエディットを配置してみます。自動的にバンド(Band)がついて、エディットは横幅一杯の大きさになってしまいました。小さくしても何かするとすぐに戻ります。
試しにボタンを配置してみます。こちらもエディット同様、自動的にバンドがついてボタンは横幅一杯の大きさになってしまいました。
これではちょっと使いにくいですね。そういう場合は、パネルを配置し、その上にエディットやボタンを配置すれば良いようです。配置したパネルの
AutoSize
プロパティは「True」にしておきます。
パネル1つ=バンドが1つの場合には、移動しようとしても移動できませんが、パネルが複数=バンドが複数あるとドラッグして移動できるようになるようです(但し、最終行の横移動は出来ないようです)。
この状態で、保存・コンパイル(再構築)・実行してみます。
↓
↓
クールバーの
AutoSize
プロパティを「True」にしておけば、バンドの大きさに応じて、大きさが自動調整されるようになります。
↓
Align
プロパティはこれまで同様、いつもの定番・お約束です。画面の4辺/全てにくっつける、或いは、何もしない(alNone)を指定します。デフォルトは「alTop」になります。「alLeft」や「alRight」にすると、
Vertical
プロパティが「True」になり、バンドは縦に並んでいたものが横に並ぶようになり、グリップも上側に付きます。
「alTop」
「alLeft」
BandMaximize
プロパティは、複数のバンドを一列に表示させている際、どうやったら1つのバンドを画面一杯に表示するのかを指定します。「bmClick」(クリック時<デフォルト>)、「bmDblClick」(ダブルクリック時)、「bmNone」(常に画面一杯に表示)のうちから選択します。固定サイズのバンドは最大化出来ません。
1列に並べてグリップ部をクリック(「bmClick」時)
↓
Bitmap
プロパティは、BMPファイルを指定するとその画像を背景にする事が出来ます。これを指定しない場合は Windowsの画面の設定に依存します(テーマ等指定時には
Color
プロパティも無視されるようです)。
FixedOrder
プロパティは、バンドの順序を変更できるようにするか(「False」:デフォルト)変更できないようにするか(「True」)を指定する事が出来ます。
FixedSize
プロパティを「True」にすると(デフォルトは「False」)、
Vertical
プロパティがデフォルトの「False」の場合(バンドを縦に並べている場合)、全てのバンドを同じ
高さ
に自動調整します。
Vertical
プロパティが「True」の場合(バンドを横に並べている場合)、全てのバンドを同じ
幅
に自動調整します。
Images
プロパティは恒例のごとく、イメージリストを指定し、各バンド内の
ImageIndex
プロパティでイメージ番号を指定する事によって、各バンドの先頭にアイコン画像を貼り付けることが出来るようになります。
各バンドは、
Bands
プロパティでアクセスできます。これまで同様、クールバーをダブルクリック/右クリックメニュー「バンドの設定」/<オブジェクトインスペクタ>のBandsプロパティの右端[…]ボタンクリックで、バンドの編集画面が表示されます。
クリックすれば<オブジェクトインスペクタ>に反映されます。
バンド内の
Bitmap
プロパティは、クールバー同様、BMPファイルを指定するとその画像を背景にする事が出来ます。クールバーで指定したものをそのまま表示する場合は、
ParentBitmap
プロパティを「True」にします。
バンド内の
Break
プロパティが「True」(デフォルト)の場合は、前のバンドから新しい行に表示され、「False」の場合は、前のバンドと同じ行に表示されます。
バンド内の
FixedBackground
プロパティは、「True」(デフォルト)の場合、クールバーで指定した背景画像で覆われます。「False」にすると背景画像は各バンド内で位置合わせが行われます。
バンド内の
FixedSize
プロパティを「True」にすると(デフォルトは「False」)バンドの大きさが固定化され、実行時にバンドの大きさや位置を変更する事が出来なくなります。1つのバンドの値を変更すると、その他のバンドも同じ値に変更されます。
バンド内の
HorizontalOnly
プロパティを「True」にすると(デフォルトは「False」)
クールバーの
Vertical
プロパティが「True」の場合、バンドが非表示になります。
Vertical
プロパティが「False」の場合は何の意味も無し、との事です。
バンド内の
MinHeight
プロパティは、バンドの最小の高さを指定します。
バンド内の
MinWidth
プロパティは、バンドの最小の幅を指定します。
バンド内の
Text
プロパティは、バンドのタイトル文字列を入力します。クールバーの
ShowText
プロパティを「True」にすると、そのタイトル文字列がバンド上に表示されます。
各バンド上のコントロールをフロート状態にしたい場合は、
クールバーの
DockSite
プロパティを「True」にして、ここにドッキングできますよ、という指定をしておいて、各バンド上のコントロールの
DragKind
プロパティを「dkDock」とし、
DragMode
プロパティを「dmAutomatic」とします。
procedure TForm1.Panel2StartDock(Sender: TObject;
var DragObject: TDragDockObject);
begin
DragObject := TToolDockObject.Create(Sender as TPanel);
DragObject.Control.HostDockSite.Left := Mouse.CursorPos.X ;
DragObject.Control.HostDockSite.Top := Mouse.CursorPos.Y ;
end;
これはパネル Panel2 の場合で、マウス位置が多少ずれますが、ツールバーであれば
コントロールバー(ControlBar)
と同じようにすれば同様に出来ると思われます。
という訳で、クールバーの説明はこれくらいにしておきます。
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>
Delphi入門編
>
Delphi2010
▲2010/10/21
2010/10/22
▼2010/10/23
シェアウェア
Script!World
データベース
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.