我第一次使用样式并且出现奇怪的行为。 字体属性等继承正常但我的文本值被替换为引用的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
答案 0 :(得分:0)
我猜你在这里做的是在表单上放一个标签并将它的StyleName设置为'style_km',然后放入第二个标签并将StyleLookup设置为'style_km'以使其看起来像第一个标签
但是,当你将一个组件组成一个样式时,正如你对第一个标签所做的那样,使用该样式的组件将继承 all 样式的属性,这里,包括文字。
TLabel的样式也应该是TText [1]。 TLabel知道要查找TText并将其文本设置为TText。如果样式是TLabel(即不同的组件且不从TText继承),它不知道该怎么做。
您需要做的是在表单上放置一个TText,在某处不会看到它,并将其用作您的风格。
但请记住,在表单上添加样式并不是创建样式的理想选择。它非常适合学习样式,因为它是创建和使用它们的快捷方式,但隐藏组件等的需要意味着它不适合生产使用。
如果您正在为桌面开发,请右键单击TLabel并选择“编辑自定义样式”,它会将当前样式复制到样式设计器以供您编辑。
在移动设备上,您需要添加一个TStyleBook,将表单的StyleBook属性设置为指向它,然后双击TStyleBook从头开始创建一个样式。
[1]某些样式,尤其是移动设备上的某些样式需要的不是文本项的沼泽标准TText。