FireMonkey tRectangle with tLabel child

最后都变了- 提交于 2020-04-30 11:12:27

问题


I am coding a custom control based on tRectangle:

tMyRect = class (tRectangle)

On the tMyRect Constructor, I create a tLabel:

fRectLabel := tLabel.Create (Self);

and then set some properties for it.

At runtime, the tLabel is not showed according to the properties settings, neither responds to the speedkey.

Follows the complete code:

unit frmMyRect;
interface
uses FMX.Controls, FMX.Controls.Presentation, FMX.Forms, FMX.Layouts, 
     FMX.Objects, FMXFMX.StdCtrls, FMX.Types,System.Classes, System.UITypes;
type
  tfrmMyRect =  class (tForm)
     procedure FormCreate (Sender: tObject);
  end;
  tMyRect = class (tRectangle)
    fRectLabel : tLabel;
    constructor Create (aOwner: tComponent);
  end;
var formMyRect: tfrmMyRect;
implementation
{$R *.fmx}
var MyRect : tMyRect;
procedure tformMyRect.FormCreate (Sender: tObject);
begin
   MyRect := tMyRect.Create (Self);
   MyRect.Parent := frmMyRect;
end; { FormCreate }
constructor tMyRect.Create (aOwner: tComponent);
begin
   inherited;
  Align      := tAlignLayout.Center;
  CanFocus   :=  True;
  Height     :=   23;
  Width      :=   80;
  fRectLabel := tLabel.Create (Self);
    with fRectLabel do begin
           Align        := tAlignLayout.Center;
           AutoSize     :=  True;
           FocusControl :=  Self;
           HitTest      :=  True;
           Parent       :=  Self;
           Text         := 'Labe&l';
            with TextSettings do begin
                 FontColor  := TAlphaColorRec.Blue;
                 WordWrap   :=  False;
                 Font.Style := [TFontStyle.fsBold];
            end;
    end;
  end; { Create }
end.

I appreciate if someone can clarify why the tLabel does not behave as expected.


回答1:


You need to alter the StyleSettings property of the TLabel so that the styling system does not apply those that you have changed, e.g.:

  StyledSettings := StyledSettings - [TStyledSetting.FontColor, TStyledSetting.Style];

As to the "neither responds to the speedkey" part, you'll need to clarify what you mean, as you have not shown code related to that



来源:https://stackoverflow.com/questions/57827205/firemonkey-trectangle-with-tlabel-child

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!