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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
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.