我正在尝试将IsChecked和IsSelected与FMX TListbox控件结合使用,并且两者都返回不正确的结果(无论用户选择什么,始终为True)。这是一个已知的错误,是否有解决方法?
我的测试代码非常简单:
var
i: integer;
lb: TListboxitem;
for i:=0 to lbxPartners.items.Count-1 do
begin
lb :=tlistboxitem(lbxPartners.Items[i]);
if lb=nil then continue;
if lb.IsChecked then
memo1.Lines.Add('item '+inttostr(i) +' checked')
else
memo1.Lines.Add('item '+inttostr(i)+' unchecked');
end;
答案 0 :(得分:4)
TListBox.Items是一个字符串列表,主要是在那里你可以像使用VCL TListBox一样使用控件。
TListBox.ListItems是TListBoxItems的列表,它是TListBox显示的子控件。
要访问IsChecked属性:
ListBox1.ListItems[n].IsChecked := True;
您可以使用以下任一方式访问该文本:
ListBox1.Items[n] := 'Hello';
ListBox1.ListItems[n].Text := 'World';
你的完整代码是(注意不需要演员):
var i: integer; lb: TListboxitem;
for i:=0 to lbxPartners.items.Count-1 do begin
lb := lbxPartners.ListItems[i];
if lb=nil then continue;
if lb.IsChecked then
memo1.Lines.Add('item '+inttostr(i) +' checked')
else
memo1.Lines.Add('item '+inttostr(i)+' unchecked');
end;