| Delphi Programming / Object Pascal [掲載 2020年12月18日] [更新 2020年12月18日] |
| FireMonkey の TEdit の背景色を設定する方法 | |
| 動作確認等 | Windows 7 U64(SP1) + Delphi 10.3.3 Community FMX-32 |
VCL の TEdit は Windows の Edit のラッパークラスです。Color プロパティがあり TEdit コントロールの背景色が変更できます。 FireMonkey のコントロールは、どのコントロールでも親子関係を設定できます。TRectangel (矩形描画用コントロール - Shapes タブ) を配置して、TEdit の親とすることはできますが、TEdit の背景色は白てす。したがって、TEdit と重なった領域の TRectangle は見えなくなってしまいます。 |
|
すると、下図の [スタイルデザイナ] の画面になります。 |
![]() |
構造ペインの [Edit1Style1] をダブルクリックして展開します。コンポーネントパレットの Shapes タブにある TRectangle を [background] までドラッグしてドロップします。 |
![]() |
構造ペインの [Rectangle1Style] を選択してオブジェクト・インスペクタで以下の設定をします。 |
|
TRectangle を TEdit の background オブジェクトの子コントロールに設定したので、Aiign でサイズを親と同じにします。HitTest を False にして、キー操作やマウス操作を透過して background オブジェクトが受け取れるようにします。後は必要に応じてオブジェクト・インスペクタで設定します。 |
![]() |
下図は実行例です。 |
![]() |
TRectangle を content オブジェクトの子コントロールにすると下図のようになります。content は、TEdit の編集領域のことです。 |
![]() |
上の手順で背景色を設定した TEdit の背景色を、実行時に変更する例です。FindStyleResource メソッドで対象のオブジェクトを取得して、そのオブジェクトのプロパティを設定します。 |
![]() |
procedure TForm1.Button1Click(Sender: TObject); var LEditRectangle : TFmxObject; begin // 対象のオブジェクトを取得する LEditRectangle := Edit1.FindStyleResource('Rectangle1Style'); if Assigned(LEditRectangle) then begin // オブジェクトのプロパティを設定する // TRectangle の使用には uses に FMX.Objects が必要 TRectangle(LEditRectangle).Fill.Color := TAlphaColorRec.Burlywood; end; end;