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;