Delphi XE6 Firemonkey: styellookup也继承文本值



我第一次使用样式,得到奇怪的行为。字体属性等继承很好,但我的文本值被替换为引用TLabel的文本值。我做错了什么吗?

km = new TLabel(Bord);
km->Parent = Bord;
km->Position->X = 42;
km->Position->Y = 7;
km->Width = 38;
km->Height = 14;  //up to here these properties are fine
km->StyleLookup = "style_km"; //inherit style from other TLabel
km->Text = "9009 km"; //this is ignored - the text from other TLabel displays at runtime

我猜你在这里做的是在表单上放一个标签,并将它的StyleName设置为'style_km',然后放第二个标签,并将styellookup设置为'style_km',使其看起来像第一个标签。

然而,当你把一个组件变成一个样式时,就像你对第一个标签所做的那样,使用该样式的组件将继承所有样式的属性,这里包括文本。

TLabel的样式也应该是tttext[1]。TLabel知道查找tttext并将它的文本设置为tttext。它不知道该怎么做,如果样式是一个TLabel(即不同的组件,它不从tttext继承)。

你需要做的是在表单上放置一个文本,在它不会被看到的地方,并使用它作为你的样式。

但是请记住,在表单上添加样式并不是创建样式的理想方法。它非常适合学习样式,因为它是一种快速创建和使用样式的方法,但是需要隐藏组件等,这意味着它不适合生产使用。

如果你正在开发桌面,右键单击TLabel并选择"编辑自定义样式",将当前样式复制到样式设计器中供你编辑。

在移动设备上,你需要添加一个TStyleBook,设置表单的StyleBook属性指向它,然后双击TStyleBook来从头创建样式。

[1]一些样式,特别是在移动设备上,需要一些其他的东西,而不是bog标准的文本项

相关内容

  • 没有找到相关文章

最新更新