Firemonkey样式设计器中的另一个列表框



我想做一个非常复杂的界面,其中一个列表框是在另一个。首先,ListBox1的所有元素从Firemonkey的style Designer中获得一个样式"CustomItem":

  Item := TListBoxItem.Create(nil);
  Item.Parent := ListBox1;
  Item.StyleLookup := 'CustomItem';

然后,有另一个样式为"CustomItem"的ListBox ("ListBox2")。

如何访问这个ListBox2的"样式查找"属性?

Item.StylesData['ListBox2'].StyleLookup := 'CustomItem2'; //this does not work.

你知道Firemonkey是否支持吗?

谢谢。

您误解了TListBox组件的工作方式以及涉及到的styellookup属性的方式。TListBox可以承载的唯一控件是TListBoxItem或该控件的后代。

你提到的CustomItem只是一个风格对象的名字,它是Delphi Firemonkey CustomListBox样本中包含的自定义
FMX风格的一部分。

你可以通过给stylesellookup
属性提供样式对象的名称来给一个特定的列表框项分配样式对象。然后项目将按照样式对象的指示在视觉上表现。

你真正要找的是FMX。树组件。您可以使它的行为与TListBox完全相同,并增加了Items能够承载子项目的额外奖励。我建议您好好看看所提供的Firemonkey示例。

我不熟悉StylesData的用法,但这可以通过onapplystylellookup事件处理程序中的FindStyleResource来完成。

procedure TForm1.ApplyStyleLookupEvent(Sender: TObject);
var O: TFMXObject;
begin
  O := (Sender as TFMXObject).FindStyleResource('ListBox2');
  if O is TStyledControl then
    TStyledControl(O).StyleLookup := 'CustomItem2';
end;

如果你有一个自定义的TListBoxItem对象,你也可以把它放在你的ApplyStyle过程中

相关内容

  • 没有找到相关文章

最新更新