FMX フォームのサイズ変更にコンポーネントの位置大きさを追従


2016.10.25更新

これのVCL版
無料のC++ Builder 10.1 Berlin Starter Edition で動作確認しました。
FMXのソースです。
ユーザー記述部分のソースコードはVCLと同じですが、VCLではTAnchorKind::akLeftなどの部分の「TanchorKind::」を付けなくてもコンパイルが通ります。
「TAnchorKind::」を付けるとVCLとFireMonkey(FMX)のどちらでもコンパイルが通り、付けないとFireMonkeyでのみエラーになります。
フォームのサイズを変更したときに、フォーム内のコンポーネントの位置大きさも、
フォームサイズに追従して自動的に変わるようにしないと不自然です。
C++ Builderでは、コードを書かなくても、オブジェクトインスペクタで
コンポーネントのプロパティのAnchors内の、akLeft(左)、akTop(上)、akRight(右)、akButtom(下)をセットするだけで、フォームのサイズ変更時に追従してコンポーネントを寄せる側を指定することができます。
ここではコードを書きましたが、マウス操作のみでコード記述しなくてもできます。
コードを書いて指定する場合は次のようき書きます。
FMX フォームのサイズ変更にコンポーネントの位置大きさを追従
//--------------------------------------------------------------------------- #include ^lt;fmx.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.fmx" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { //C++ Builder Berlin 10.1 Starter Edition のFireMonkey(FMX)のソースです。 //フォームのサイズを変更したときに、フォーム内のコンポーネントの位置も、 //自動的に変わるようにしないと不自然です。 //C++ Builderでは、コードを書かなくても、オブジェクトインスペクタで //コンポーネントのプロパティのAnchors内の、akLeft(左)、akTop(上)、akRight(右)、 //akButtom(下)をセットするだけで、フォームのサイズ変更時に追従してコンポーネント //を寄せる側を指定することができます。 //コードで書く場合は以下のように書きます。(以下はFMXとVCL間でのソース互換あり。) //Memo1をフォームのサイズを変更時、Mimo1の大きさをフォームに大きさに合わせる Memo1->Anchors = TAnchors() << TAnchorKind::akLeft << TAnchorKind::akTop << TAnchorKind::akRight << TAnchorKind::akBottom; //Edit1をフォームのサイズを変更時、フォームの大きさに合わせて右寄せする。 Edit1->Anchors = (TAnchors() << TAnchorKind::akTop << TAnchorKind::akRight) >> TAnchorKind::akBottom >> TAnchorKind::akLeft; //Button1をフォームのサイズを変更時、フォームの大きさに合わせて右寄せする。 Button1->Anchors = (TAnchors() << TAnchorKind::akTop << TAnchorKind::akRight) >> TAnchorKind::akBottom >> TAnchorKind::akLeft; } //---------------------------------------------------------------------------

この程度なら必要ないと思いますが一応ソースファイルも用意しています。
プロジェクトファイル、ヘッダファイル、画面設計ファイルを含むコンパイルするための全てのファイルがあります。
実行ファイルも入れています。
FMX版のこのソース、実行ファイル

C++ Builder 10.1 Berlin Starter Edition サンプルブログラム example

C言語の話


あーすブラウザ
オンライン鍋田辞書
鍋田辞書トップ