1

我刚开始使用 Firemonkey,在样式的使用方面还有很多东西要学习,但是有些东西我无法弄清楚。

我已经学会了如何使用样式模拟 TListView 。所以我制作了一种样式,可以为列表项添加进度条,我们称之为 ListItemStyleProgressBar。

现在我想在我的表单上有两个 ListView 实例,一个 TListItem 的字体是红色的,一个是蓝色的。如何做到这一点?我可以制作从 ListItemStyleProgressBar (ListItemStyleProgressBarRed) '继承'的样式吗?

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

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

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

4

1 回答 1

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;
于 2013-05-07T11:49:22.217 回答