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
相关产品推荐
相关产品推荐

