ステップ 4 - サイズと配置を設定する(Delphi)

提供: RAD Studio
移動先: 案内検索

FireMonkey コンポーネントの作成(Delphi) への移動


この特別なコンポーネントをテストするには、ShowModal のモーダル ダイアログ ボックスとして開いたフォームに各ボタンを配置する必要があります。

  1. PanelTester.exe プロジェクトをアクティブ化し、メイン フォーム PanelTest.pas を開きます。このフォームではダイアログ フォームが開きます。
  2. クラスの名前(Form1 として自動生成)を TPanelTestForm に、[リファクタリング|名前の変更...]< d3ab77a0> [リファクタリング|名前の変更...]で変更します。自動的にグローバル参照変数も PanelTestForm に変わります。
  3. 次に、TestDialog.pas で、フォームの名前(Form2)を「TTestDialogForm」に変更します。その参照が TestDialogForm になります。
  4. ダイアログ フォームをフォーム デザイナに切り替えます。TDialogButtonPanel([ツール パレット]の[Samples]カテゴリにある)をフォームにドロップします。
    パネルのサイズが適切ではなく、下揃えではないことに注意してください。これには次のような理由があります。
    • 作成されたコントロールのサイズと配置が、レンダリングするために使用されるスタイルリソース コンポーネントから切り離されています。
    • ルートのスタイルリソース(TRectangle)が Bottom に設定されている場合でも、多くの場合に、スタイルリソースはコントロールの子オブジェクトであるので、この設定を採用せず、コントロールのサイズ変更や配置の試行方法に関係なく、コントロールの実際の外観が、一部分に制限されないようにします。
    • スタイルリソースが適用されたとき、それらの Align プロパティは常に Contents に設定されます。その結果、スタイルリソースは、レンダリングしているコントロールのコンテンツ ボックス全体を占めます。
    ただし、実際に実行する内容は、スタイルリソースではなく、カスタム コンポーネントAlign プロパティを設定することです。これを実行するには、コンストラクタを宣言し実装します。プロパティのデフォルト値も宣言し、次のとおり Height と Width を設定します(Bottom 指定なので、Width は実際には関係ないが、代表最小値を設定できる)。
public
    constructor Create(AOwner: TComponent); override;
  published
    property Align default TAlignLayout.Bottom;
constructor TDialogButtonPanel.Create(AOwner: TComponent);
begin
  inherited;
  Height := 46;
  Width := 300;
  Align := TAlignLayout.Bottom;
end;
5. これらの変更を確認するには、コンポーネント パッケージをインストールし直します。[プロジェクト マネージャ]のパッケージ プロジェクトを右クリックして、[インストール]を再び選択します。
6. ダイアログ ボックス フォームに戻って、コンポーネントを削除し、パレットから別のコンポーネントを追加します。パネルは、ここで正しいサイズになり、整列されます。
7. コンポーネントが動作していることを確認するには、メイン フォームに戻り、ボタン(ダイアログ ボックスを開くため)とラベル(モーダル結果コードを表示するため)をドロップします。
8. 次のとおり、ボタンに対して OnClick イベント ハンドラを設定します。
uses
  TestDialog;

procedure TPanelTestForm.Button1Click(Sender: TObject);
var
  ModalResult: Integer;
begin
  ModalResult := TestDialogForm.ShowModal;
  Label1.Text := IntToStr(ModalResult);
end;
9. ここで PanelTester.exe プロジェクトを実行します。ボタンをクリックして、ダイアログ ボックスを開きます。3 種類のボタンのいずれかをクリックすると、ダイアログ ボックスが閉じ、対応するモーダル結果が返ります。


前のステップ

次のステップ

関連項目