title: Phi::Panel
author: YOSHIDA Kazuhiro
mailto: moriq@moriq.com

1. Phi::Panel

  汎用パネルコントロール

  Panel コンポーネントを使うと，空のパネルをフォームに配置できます。パネルコンポーネントはコントロールの周囲のベベル境界を提供するプロパティ，およびパネルに埋め込まれる子コントロールの配置の管理を支援するメソッドを持ちます。
  パネルを使うと，グループボックスを使う場合と同様の方法でコントロールをまとめることができますが，グループボックスのアウトラインではなくベベル境界が付けられます（または境界が付けられません）。通常，パネルは 1 つのフォーム内のコントロールグループに使われます。ほかのフォームで同じようにグループ化する場合は，フレームを使うとよいでしょう。

  境界のないパネルは，ドラッグアンドドックを使うアプリケーションを開発する場合にドッキング場所として有効です。
  パネルを使ってステータスバーまたはツールバーを実装できますが， ToolBar# および StatusBar# クラスを使うことをお勧めします。

1.1. super class

  Phi::WinControl#

1.1. class methods

: new(parent[, name, caption]) : Phi::Panel

1.1. properties

: alignment : Fixnum (Alignment)
  パネル内でどのようにキャプションを揃えるか

: bevel_inner : Fixnum (BevelCut)
  パネルの内部ベベルのスタイル

: bevel_outer : Fixnum (BevelCut)
  パネルの外部ベベルのスタイル

: bevel_width : Fixnum
  パネルの内部ベベルと外部ベベルの幅

  #bevel_inner と #bevel_outer がともに %c:BV_NONE% の場合， %c:bevel_width% は無効です。
  両方のベベルを除去するには， %c:bevel_width% を %c:0% に設定するのではなく， #bevel_inner と #bevel_outer を %c:BV_NONE% に設定します。その方が描画の際のオーバーヘッドが小さくなります。

: border_style : Fixnum (BorderStyle)
  パネルコントロールの周囲に描く線のスタイル

  : BS_NONE
    非可視境界
  : BS_SINGLE
    一重境界線

: border_width : Fixnum
  外部ベベルと内部ベベルとの間の距離

  border_width を使うと，パネルの周囲の境界線の幅を指定できます。値が 0 の場合，境界線は表示されません。
  パネルの境界線は外部ベベルと内部ベベルとの間の領域です。境界線は，内部ベベルが隆起しているか，陥没している場合に見えるだけですが，BevelInner が bvNone の場合でも，パネル内でのキャプションの位置に影響します。Alignment プロパティが taCenter でない場合，Caption は境界線の内側の端に揃えられます。この端は，BevelInner が bvNone の場合は外部ベベルからBorderWidth で指定されるピクセル数分だけ内側で，それ以外の場合は内部ベベルの内側の端になります。

: full_repaint : Boolean
  パネルがサイズ変更されたときに，どのように再描画されるか

  : true
    ベベル境界を含むパネル全体が再描画されます。
  : false
    ベベル境界内の領域のみが再描画されます。

: locked : Boolean
  ツールバーとして使われるパネルが OLE サーバーによって供給されるツールバーで置き換えられるかどうか

  TOleContainer コンポーネントでツールバーとしてパネルを使用するときは，Locked プロパティを False に設定します。Locked プロパティが True でなければ，TOleContainer に揃ったパネルはいずれも置き換え可能なツールバーとみなされます。パネルが OLE サーバーのツールバーで置き換えられないようにするには，パネルの Locked プロパティを True に設定します。

  : 注意
    OLE アプリケーションのツールバーは，フォームの側面のいずれかに揃ったパネル（つまり，その Align プロパティが alTop，alBottom，alLeft，alRight のいずれかに設定された状態）になければなりません。

1.1. events

OnDockDrop
OnDockOver
OnEnter
OnExit
OnGetSiteInfo
OnUnDock
OnCanResize
OnClick
OnConstrainedResize
OnContextPopup
OnDblClick
OnDragDrop
OnDragOver
OnEndDock
OnEndDrag
OnMouseDown
OnMouseMove
OnMouseUp
OnResize
OnStartDock
OnStartDrag
