创建数字键盘Firemonkey Delphi和带有字体的动态创建按钮不工作

创建数字键盘Firemonkey Delphi和带有字体的动态创建按钮不工作,delphi,firemonkey,Delphi,Firemonkey,我正在做一个触摸系统(Windows),需要数字键盘来插入用户、手动输入、密码、退出系统。我更喜欢创建按钮,但属性字体不起作用 我创建了一个类: unit-uKeyboard; 接口 使用 编辑,FMX.StdCtrls,FMX.Layouts,SysUtils; 类型 TKeyboard=类(TObject) btnk:TButton的数组[0..9]; btnx:TButton; btnbs:TButton; edtk:TEdit; 程序OnClickB(发送方:ToObject); 程序O

我正在做一个触摸系统(Windows),需要数字键盘来插入用户、手动输入、密码、退出系统。我更喜欢创建按钮,但属性字体不起作用

我创建了一个类:

unit-uKeyboard;
接口
使用
编辑,FMX.StdCtrls,FMX.Layouts,SysUtils;
类型
TKeyboard=类(TObject)
btnk:TButton的数组[0..9];
btnx:TButton;
btnbs:TButton;
edtk:TEdit;
程序OnClickB(发送方:ToObject);
程序OnClickX(发送方:TObject);
程序OnClickBS(发送方:TObject);
公众的
构造函数创建(var GLayout1:TGridLayout;var EdtText:TEdit);
毁灭者毁灭;推翻
结束;
实施
构造函数TKeyboard.Create(var GLayout1:TGridLayout;var EdtText:TEdit);
变量
i:整数;
开始
edtk:=EdtText;
玻璃窗1.ItemWidth:=圆形(玻璃窗1.Width/3);
玻璃窗1.ItemHeight:=圆形(玻璃窗1.Height/4);
对于i:=9到0 do
开始
btnk[i]:=TButton.Create(GLayout1);
用btnk[i]做
开始
父项:=GLayout1;
TextSettings.Font.Size:=40;
文本:=IntToStr(i);
OnClick:=OnClickB;
结束;
结束;
...
主机内部:

使用
uKeyboard。。。;
变量
键盘:T7键盘;
//点击按钮
键盘:=TKeyboard.Create(GridLayout4,EDTLease);
字体不是40:

根据文档:

更改类型对象的文本表示属性时,请记住,当您更改属性(上一示例中的
TextSettings.Font.Size
属性)的值时,仅当属性不包含常量时,才会实际更改对象的视图。该表显示了哪些常量控制文本表示属性的处理

因此,为了设置
TButton.TextSettings.Font.Size
的值,您需要从
TButton.StyledSettings
属性中删除
TStyledSetting.Size
标志,例如:

btnk[i]:=TButton.Create(GLayout1);
用btnk[i]做
开始
父项:=GLayout1;

StyledSettings:=StyledSettings-[TStyledSetting.Size];//确保按钮的样式设置不包括大小。发布的代码不足,无法复制-请尝试创建MCVE。