Firemonkey风格继承?

时间:2013-05-06 21:05:21

标签: delphi delphi-xe2 firemonkey

我刚刚开始使用Firemonkey,关于样式的使用还有很多东西需要学习,但有些东西我无法理解。

我已经学会了simulate a TListView如何使用样式。所以我创建了一个为列表项添加进度条的样式,让我们调用这个ListItemStyleProgressBar。

现在我想在我的表单上有两个ListView实例,一个是TListItem的字体是红色的,另一个是字体是蓝色的。怎么做到这一点?我可以创建一个从ListItemStyleProgressBar(ListItemStyleProgressBarRed)“继承”的样式吗?

接下来,我希望能够“设计”这两个listview实例,所以有一个显示光背的样式和一个显示暗背的样式。

令我困惑的是,似乎需要使用样式来添加功能(将TProgressBar添加到TListItem)以及为此附加功能设置样式。

谁能告诉我这里缺少什么?

1 个答案:

答案 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;