我创建了这样的样式:

delphi - delphi如何在运行时更改firemonkey用户样式文本子属性-LMLPHP

然后创建一个TLayout继承的组件,名为TLieu

我的目标是在运行时实例化它并进行更改:Image属性,Title.Text属性,Informations.Text属性,Map,Infos,Link按钮

我的代码,但是不起作用:

Procedure TF_Main.Button1Click(Sender: TObject);
var
  Lieu: TLieu;
begin
  Lieu := TLieu.Create(VSB_Place);
  Lieu.Name := 'Test';
  Lieu.StyleName := 'Lieu';
  Lieu.StylesData['Title.Text'] := 'My Title';
  // TLayout(Lieu).StylesData['Title.Text'] := 'My Title';  // this doesn't work either
end;


如何在运行时更改自定义用户样式组件的子属性?

最佳答案

TLieu必须从TStyledControl继承
使用Lieu.StyleLookup代替Lieu.StyleName
更改StyleData之前,请调用ApplyStyleLookup

10-05 22:15