我刚刚开始使用Firemonkey,关于样式的使用还有很多东西需要学习,但有些东西我无法理解。
我已经学会了simulate a TListView如何使用样式。所以我创建了一个为列表项添加进度条的样式,让我们调用这个ListItemStyleProgressBar。
现在我想在我的表单上有两个ListView实例,一个是TListItem的字体是红色的,另一个是字体是蓝色的。怎么做到这一点?我可以创建一个从ListItemStyleProgressBar(ListItemStyleProgressBarRed)“继承”的样式吗?
接下来,我希望能够“设计”这两个listview实例,所以有一个显示光背的样式和一个显示暗背的样式。
令我困惑的是,似乎需要使用样式来添加功能(将TProgressBar添加到TListItem)以及为此附加功能设置样式。
谁能告诉我这里缺少什么?
答案 0 :(得分:0)
没有。样式没有继承机制。有两种方法可以解决您的问题:
1)创建两个(或更多)非常相似的样式来表示每个“外观”。 2)使用OnApplyStyleLookup方法在运行时进行更改,或者,如果您有自定义控件,则通过重写ApplyStyle方法进行更改。
在后一种情况下,你需要这样的东西:
procedure TMyClass.ApplyStyle;
var O: TFMXObject;
begin
O := FindStyleResource('background');
if O is TRectangle then
TRectangle(O).Fill.Color := claRed;
end;