LoginSignup
5
6

More than 5 years have passed since last update.

FireMonkey のレイアウトコンポーネントの種類と使いどころ

Posted at

FireMonkey には、コンポーネントをグループ化して表示・処理するためのレイアウトコンポーネントがあります
レイヤーを重ねるように画面設計を行なうこともできますし、レイアウトコンポーネントを使って、グループ化することによって、たとえば、レイアウトコンポーネント上のコンポーネントの表示/非表示を同時に行なったり、画面の大きさや回転が行なわれても、常に同じ位置にグループ化したコンポーネントを表示することができます

レイアウトコンポーネントには次のような種類があります(クリックするとドキュメントページに飛びます)

TLayout

ノーマルなレイアウトコンポーネント

TLayout を使ってグルーピングされたコンポーネントは、まとめて操作することができます
まとめて、表示 / 非表示の操作を行なう例です
この実行時の例では、スイッチの On/Off が TLayout.Visible と連動します
layout01.gif

TLayout を Anchors で固定した例です
デフォルトは Top と Left ですが、これを Top と Right の固定に変更しています
レイアウトごとで扱われていることが分かるかと思います
layout02.gif

TScaledLayout

拡大縮小の担当
レイアウト上のコンポーネントは拡大されても縮小されてもちゃんと機能しまっせ
この例では、TScaledLayout の Align を Client に設定しています
scale01.gif

TScrollBox

スクロール担当
レイアウト上のコンポーネントがレイアウト枠を超えて配置されている場合に、レイアウト内でスクロールさせることができる
レイアウト枠が小さくなると、スクロールバーが現れます
layout03.gif

TFlowLayout

配列系レイアウトトリオのひとつ
配列系のレイアウトは、たとえば電卓のように同じ配分でコンポーネントを並べる際に使うと便利
レイアウトの大きさが変わった場合でも、レイアウト内の枠内に入るように整列してくれる
layout04.gif

TGridLayout

配列系レイアウトトリオのひとつ
グリッドのような縦横のマス内をつくり、その中にコンポーネントを配置することができる
マス目の大きさは、ItemHeight と ItemWidth プロパティの値で決まる (デフォルト64)
TFlowLayout と同様に、レイアウトの大きさが変わった場合でも、レイアウト内の枠内に入るように整列してくれる
layout05.gif

TGridPanelLayout

配列系レイアウトトリオのひとつ
TGridLayout と似ているけど、こちらは複数のマス目にまたがってコンポーネントを配置することができる
レイアウトの大きさが変わった場合の動作は、上の2つとは違う動きになるので注意(整列しない)
動画 gif の実行時の画面は、分かりやすいように TRectangle を使ってマス目の色分けを行っています
layout06.gif

参考:

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6