我创建了这样的样式:
然后创建一个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