You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi 11社区版FMX中ListView的Text和Detail属性缺失及替代方案

FMX ListView中Text和Detail属性的替代方案(Delphi 11)

问题场景

几年前使用如下代码调用FMX的ListView控件:

ShowMessage(lvDrinksListview.Items.Item[lvDrinksListview.ItemIndex].Text);
ShowMessage(lvDrinksListview.Items.Item[lvDrinksListview.ItemIndex].Detail);

在Delphi 11社区版编译时出现以下错误:

[dcc64 Error] uMain.pas(652): E2003 Undeclared identifier: 'Detail'
[dcc64 Error] uMain.pas(651): E2003 Undeclared identifier: 'Text'

解决方法

Delphi 11的FMX ListView中,TListViewItem不再直接提供Text和Detail属性,需根据Item样式通过Objects属性访问对应文本控件:

  • 若使用默认的StandardListItem样式:

    // 获取主文本
    ShowMessage(TListItemText(lvDrinksListview.Items.Item[lvDrinksListview.ItemIndex].Objects.FindDrawable('Text')).Text);
    // 获取详情文本
    ShowMessage(TListItemText(lvDrinksListview.Items.Item[lvDrinksListview.ItemIndex].Objects.FindDrawable('Detail')).Text);
    
  • 若使用自定义Item样式,需将FindDrawable的参数替换为你自定义样式中文本控件的Name属性值。

如果采用数据绑定方式填充ListView,也可通过Item.Data属性获取对应数据字段的值。

内容的提问来源于stack exchange,提问作者grant1842

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 00:43:14