Delphi 火猴风格的继承?

Delphi 火猴风格的继承?,delphi,delphi-xe2,firemonkey,Delphi,Delphi Xe2,Firemonkey,我刚刚开始使用Firemonkey,关于样式的使用还有很多需要学习的地方,但是有一些东西我不明白 我学会了如何使用样式。所以我制作了一个样式,在列表项中添加一个进度条,我们称之为ListItemStyleProgressBar 现在,我希望表单上有两个ListView实例,一个是TListItem的字体为红色,另一个是蓝色。如何做到这一点?我可以创建一个从ListItemStyleProgressBar ListItemStyleProgressBarRed“继承”的样式吗 接下来,我希望能够“

我刚刚开始使用Firemonkey,关于样式的使用还有很多需要学习的地方,但是有一些东西我不明白

我学会了如何使用样式。所以我制作了一个样式,在列表项中添加一个进度条,我们称之为ListItemStyleProgressBar

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

接下来,我希望能够“设置”这两个listview实例的样式,因此有一个显示浅背景的样式和一个显示深背景的样式

让我困惑的是,似乎需要样式来添加功能将TProgressBar添加到TListItem以及为添加的功能进行样式设置


有人能告诉我这里缺少什么吗?

没有。样式没有继承机制。有两种方法可以解决您的问题:

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;

嗨,迈克,谢谢你的回复。是否有可能改变它,对TListItem运行时进行更改,并使用样式对其进行样式设置?我不知道你在问什么。我的意思是,是否有可能对TListItem进行更改,我现在通过样式和代码进行了更改。因此,也许可以继承TListItem,在其构造函数中创建进度条本身。然后通过样式对扩展的TListItem进行样式化。您可以通过代码执行任何操作。我不确定我是否看到了通过代码创建控件部分而不是简单地将它们添加到样式中的优势。