【问题标题】:Access ListView item text (FMX)访问 ListView 项目文本 (FMX)
【发布时间】:2019-06-30 19:52:10
【问题描述】:

我有一个 TListView,当用户点击一个项目的图像(下图中的大绿点)时,我想复制项目文本(“russtest.cfg”)和子项目文本(“我的设备,1991” ) 在 ShowMessage 中显示。我在 C++ Builder 中找不到如何操作,但 this link 显示了在 Delphi 中如何操作。

下面是我在 TListView 的 ItemClickEx 方法中尝试过的代码:

  TListItem* item;
  item = ListView1->Items->Item[ItemIndex];
  UnicodeString s;
  s = item->ToString();
  ShowMessage(s);

但它带回了这个:

编辑 1:添加了我用来填充 ListView 的代码:

    TListViewItem* item2Add = Form1->ListView1->Items->Add();
    Form1->ListView1->BeginUpdate();
    item2Add->Text = mystring3;     // e.g. "russtest.cfg"
    item2Add->Detail = mystring2;   // e.g. "My Device, 1991"
    item2Add->ImageIndex = 1;  // big green dot
    Form1->ListView1->EndUpdate();

【问题讨论】:

  • 试试item->Textitem->Detail。顺便提一句。 Delphi 链接涉及VCL TListView,而不是FMX
  • 如果我之前的评论没有帮助,那么请展示该项目(包括所有方面)最初是如何制作的。
  • 嗨,Tom - 当我更改为 item->Text 时,我收到错误消息“文本不是 TListItem 的成员”。我将在我的帖子中添加一个 EDIT 1,以首先显示我如何填充 ListView。谢谢。

标签: firemonkey c++builder


【解决方案1】:

您需要将TListItem* 类型转换为TListViewItem*,然后您可以访问其Text 属性:

TListViewItem* item = static_cast<TListViewItem*>(ListView1->Items->Item[ItemIndex]);
String s = item->Text;
ShowMessage(s);

【讨论】:

  • 如何在 Delphi 中编写代码?
  • @海洲var item: TListViewItem; s: string; ... item := TListViewItem(ListView1.Items[ItemIndex]); s := item.Text; ShowMessage(s);
  • 感谢雷米。我会尽快尝试的。通过使用 ListView1.Items[ItemIndex].Data['Text4'].AsString 解决了它。但这肯定是 LiveBinding ListView 的一个错误。我们应该在某个地方报告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 1970-01-01
相关资源
最近更新 更多