【问题标题】:TListBox Items AddObject Firemonkey 10.2 [duplicate]TListBox项目AddObject Firemonkey 10.2 [重复]
【发布时间】:2019-02-28 14:32:02
【问题描述】:

我正在尝试使用 formShow add

ListBox1.Items.AddObject('TEST 1', TObject(1)) ;
ListBox1.Items.AddObject('TEST 2', TObject(2)) ;

但应用会自动关闭(崩溃)。

这个例子很好用

ListBox1.Items.Add('TEST 1');
ListBox1.Items.Add('TEST 2');

任何解决方案如何使用 Items.AddObject?

【问题讨论】:

  • 如果您在移动设备上,则不能使用此技巧将常量类型转换为对象指针。
  • @Hans 我需要 VCL ListBox1.Items.AddObject('TEST 1', TObject(1)) 上的文本和值;工作正常。
  • @Pointer,在移动设备中,对象使用 ARC 内存模型进行管理。由于 1 不是对象,所以会失败。
  • 使用具有单个整数字段的类。

标签: delphi firemonkey


【解决方案1】:

对于FMX TListBox,我建议您改用Tag 属性。

aItem: TListBoxItem;
begin
   aItem := TListBoxItem.Create(Self);
   aItem.Text := 'TEST 1';
   aItem.Tag := 1;
   aItem.Parent := ListBox1;

   aItem := TListBoxItem.Create(Self);
   aItem.Text := 'TEST 2';
   aItem.Tag := 2;
   aItem.Parent := ListBox1;
end

这只是一个伪代码,但你明白了。它还使您能够从TListBoxItem 派生一个类,并使其执行普通TListBoxItem 不会做的事情,或者为不同的项目提供不同的类。

【讨论】:

    猜你喜欢
    • 2017-07-30
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 2017-10-09
    • 2014-12-15
    相关资源
    最近更新 更多