Delphi2010 コントロールバー(ControlBar)
2010/09/11
前回は[Additional]内の「LinkLabel」(リンクラベル)について見ましたので、今回は同じく[Additional]内の「ControlBar」(コントロールバー)について見てみます。
コントロールバーは Delphi6 にもあります。
テスト7として新規作成します。
コントロールバーは、その上にツールバーやクールバー等を配置して、それらを移動したり、取り外し(フローティング)および同じ箇所への取り付け(ドッキング)を行えるようにするためのコンポーネントです。
例えば、フォームにツールバーを付けたいとして、フォームに直接、[Win32]内の「ToolBar」(ツールバー)を貼り付けてみます。1つ目ですので
Name
プロパティは「ToolBar1」となります。その
ShowCaptions
プロパティを True にして、ToolBar1を右クリックし表示されるポップアップメニューの「ボタンの新規作成」を行います。するとツールバーの上にボタンが1つ[ToolButton1]が作成されます。
↓
↓
この状態で、保存・コンパイル(再構築)・実行してみます。
ツールボタンは押せますので、ツールバーとしての意味はあるのですが、ツールバーの位置を変える事は出来ませんし、取り外してフローティング状態にする事も出来ません。
フローティング状態にするため、ToolBar1 の
DragKind
プロパティを「dkDock」とし、
DragMode
プロパティを「dmAutomatic」としてみます。
この状態で、保存・コンパイル(再構築)・実行してみます。
取り外してフローティング状態にする事は出来るようになりましたが、フォームに戻してドッキングすることは出来ません。
↓
フォームに戻せるようにするため、Form1の
DockSite
プロパティを True にすると、ドッキングは出来るようになりますが、フォーム画面上のあちこちにドッキングできるようになってしまい、うまくありません。
というわけで、コントロールバーを配置し、その上にツールバー等を配置することによって、コントロールバー内でのツールバーの移動、および、フローティング&ドッキング(ドッキングは主にフォーム画面内でのどの位置に、という事を示す)を可能にします。
上記のツールバーを選択して一旦「編集」→「切り取り」を行います。[Additional]内の「ControlBar」を配置します。1つ目ですので
Name
プロパティは「ControlBar1」となります。
ControlBar1の
Align
プロパティを「alTop」にします。ControlBar1を選択した状態で、「編集」→「貼り付け」を行い、先ほどまでのツールバーを配置します。ToolBar1 の
Align
プロパティを「alNone」にして、大きさを小さくしておきます。
↓
ControlBar1の
AutoSize
プロパティを True にしてツールバーが複数ある場合に大きさが自動的に変わるようにしておき、
BevelKind
プロパティを「bkNone」にしてコントロールバーの境界線が見えないようにしておきます。
この状態で、保存・コンパイル(再構築)・実行してみます。
ツールバーを左右にドラッグして移動することが出来るようになります。
↓
取り外してフローティング状態にする事は出来るようになります。また、フォーム画面上部に移動してドッキングすることも出来るようになります。
↓
ツールバーをフローティングしたり移動する際、画面枠の線だけが表示される状態となりますので、これだと見え方的にイマイチなので、フローティングしているツールバー画面そのものが移動して欲しいとします。その場合には、ToolBar1 の OnStartDock イベントハンドラを以下のように記述します。
procedure TForm1.ToolBar1StartDock(Sender: TObject;
var DragObject: TDragDockObject);
begin
DragObject := TToolDockObject.Create(Sender as TToolBar);
end;
保存・コンパイル(再構築)・実行して、実際に動かしてみてください。何故かこちらの方が動きも良いようです。
その他、<オブジェクトインスペクタ>をざっと見てみましたが、別段、気になるような項目は無いようです。
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>
Delphi入門編
>
Delphi2010
▲2010/09/10
2010/09/11
▼2010/09/12
シェアウェア
Script!World
データベース
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.