如何在运行时更改FMX ListBoxGroupHeader文本

时间:2015-07-21 07:24:52

标签: delphi listbox firemonkey delphi-xe8

使用FMX,XE8。

我试图找出如何在运行时更改TListBoxGroupHeader的文本。

我有一个TListBox,我已经(在设计时)将TListBoxGroupHeader添加为第一项。

列表框中有许多额外的项目(每个项目都有控件 - 我希望在设计时添加这些项目)。

在运行时我想更改ListBoxGroupHeader的文本 - 我无法解决如何执行此操作。

我试过了:

 ListBoxGroupHeader1.Text:='new text';    
 ListBox1.ListItems[0].Text:='new text';    
 TListBoxGroupHeader(ListBox1.ListItems[0]).Text:='new text';    
 TListBoxGroupHeader(ListBox1.ListItems[0]).ItemData.Text:='new text';

没有更改文字。

或者更确切地说,Text数据已更改,但不会更改列表框中的Group Header。也就是说,如果我在表单上放一个标签并执行: lbl1.Text:= lst1.ListItems [0]。文本; 然后lbl1显示'新文字'。

这是一个错误还是我错过了什么?

TIA。

EDB

1 个答案:

答案 0 :(得分:0)

使用Delphi XE8 Update 1进行测试。

我和你一样有同样的问题。我做了以下解决方法:

var
  Form1: TForm1;
  ListBoxGroupHeader1: TListBoxGroupHeader;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBoxGroupHeader1 := TListBoxGroupHeader.Create(ListBox1);
  ListBoxGroupHeader1.Visible := False;
  ListBoxGroupHeader1.Parent := ListBox1;
  ListBoxGroupHeader1.Visible := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ListBoxGroupHeader1.Text := DateTimeToStr(Now);
end;