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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
Delphi2010 フローパネル(FlowPanel) 2010/09/23
 
前回は[Additional]内の「TrayIcon」(トレイアイコン)について見ましたので、今回は同じく[Additional]内の「FlowPanel」(フローパネル)について見てみます。フローパネルは Delphi6 にはありません。先にテスト10として新規作成します。

 
前述の従来のパネル(Panel)は、パネルを配置し、その上に様々なコントロールを配置して自由にレイアウトをする事が出来ましたが、このフローパネルは、パネルを配置し、その上に様々なコントロールを配置する、というところまでは同じなのですが、コントロールの位置を自由に指定する事は出来ません。コントロールの順番は、配置した順番になりますが、各コントロール間の隙間などは自由に指定する事は出来ず、前後に、上下に、ぴったりくっつくような感じになります。
自由度が無い感じもしますが、自動的に調整してくれるという事は、逆に、Windows設定でのフォントの大きさが変わる事により画面レイアウトが崩れてしまうのをプログラムコード等で位置調整を行う事によって修正する、というような事をしなくても良い、という事になりそうです。
ただ、上に配置した各コントロール間の距離をポイント指定できるようになっていればいいのですが・・・<オブジェクトインスペクタ>をざっと見た限りでは見当たりません。少し残念。
 
取り合えず配置してみます。1つ目ですので Nameプロパティは「FlowPanel1」となります。

 
フローパネルの文字は、Captionプロパティで指定する事が出来ます。この文字の表示位置は、Alignmentプロパティで水平位置(「taCenter」(中央)・「taLeftJustify」(左)・「taRightJustify」(右))を、VerticalAlignmentプロパティで垂直位置(「taVerticalCenter」(中央)・「taAlignTop」(上)・「taAlignBottom」(下))を指定する事が出来ます。但し、パネルとしての使用は通常、上にコントロールを配置してレイアウトする事なので、Captionプロパティの内容は空状態にして文字を表示させないようにするのが1つのパターンだと思われます。
 
さて、それでは、フローパネルの上にコントロールを配置してみます。
 
フローパネルを選択した状態で、[Standard]内のラベル、エディット、ラベル、エディット、という順番で配置します。すると下図のようになります。

 
コントロールを配置したあと、それぞれを移動させようとしてみて下さい。動かそうとしても元の位置に戻ってしまうのが分かります。それでは、<オブジェクトインスペクタ>の内容を見ていきます。
まずは、AutoSizeプロパティです。これを True にしてみて下さい(デフォルトは False)。すると下図のようになり、フローパネルの大きさがコントロールの大きさに調整されますが、イマイチ本意ではないので通常はデフォルトのままの False 指定がいいと思われます。

 
元のような状態に戻して、次に、AutoWrapプロパティです。文章入力でのオートラップといえば文字1行を見た目綺麗になるよう自動調整されて改行もどこで行うかを自動で行ってくれる機能ですが、このフローパネルのAutoWrapプロパティも同じような意味で、True(デフォルト)にすると、コントロールの改行(?)の自動調整をしてくれるようになります。といってもコントロールの改行を明確に行うという操作が不明なので、False にすると下図のような状態になってしまうので、横長状態であれば構わないのですが、そうでない場合はデフォルト状態の方がいいかもしれません。

但し、双方ともデフォルト状態の場合、例えば文字の大きさが極端に大きい場合、下図のようになってしまって、これもレイアウトとしておかしいとも言えます。予め余裕をもってレイアウトしたとしても駄目なので、その場合はプログラムコードでフローパネルの大きさを変えるようにしておく、場合によっては、スクロールボックスの上にフローパネルを置く、という手段が必要になるかもしれません。

Size=16ポイント


Size=18ポイント
 
 
FlowStyleプロパティは、上に配置するコントロールをどのように配置するのかを指定します。説明文はヘルプより
BottomTopLeftRight 左下隅
↑→
最初のコントロールは,パネルの左下隅に配置されます。後続のコントロールは,下から上,左から右の順に追加されます。
BottomTopRightLeft 右下隅
↑←
最初のコントロールは,パネルの右下隅に配置されます。後続のコントロールは,下から上,右から左の順に追加されます。
LeftRightBottomTop 左下隅
→↑
最初のコントロールは,パネルの左下隅に配置されます。後続のコントロールは,左から右,下から上の順に追加されます。
LeftRightTopBottom 左上隅
→↓
最初のコントロールは,パネルの左上隅に配置されます。後続のコントロールは,左から右,上から下の順に追加されます。これがデフォルト設定です。
RightLeftBottomTop 右下隅
←↑
最初のコントロールは,パネルの右下隅に配置されます。後続のコントロールは,右から左,下から上の順に追加されます。
RightLeftTopBottom 右上隅
←↓
最初のコントロールは,パネルの右上隅に配置されます。後続のコントロールは,右から左,上から下の順に追加されます。
TopBottomLeftRight 左上隅
↓→
最初のコントロールは,パネルの左上隅に配置されます。後続のコントロールは,上から下,左から右の順に追加されます。
TopBottomRightLeft 右上隅
↓←
最初のコントロールは,パネルの右上隅に配置されます。後続のコントロールは,上から下,右から左の順に追加されます。
 
 
そのほか、<オブジェクトインスペクタ>をざっと見た限りでは、特に気になるようなプロパティやイベントは無さそうです。
 
という訳でこのコンポーネントは、自由にレイアウトをしたいという場合には使えませんが、要は使いよう、って感じもしますので、使う事によって、有効・便利な方法も分かっていくかもしれません。
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/09/22
 2010/09/23
▼2010/09/24
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.