1

我刚刚下载了 RAD Studio 10 Seattle 并打开了我在 RAD Studio XE8 中开发的程序。在 XE8 中,我的程序绝对没有错误。但是,当我在 10 Seattle 打开程序并尝试运行它时,它给了我大约 60 个错误。我查看了我的代码,“listview.items.item[].text”和“listview.items.item[].detail”的所有实例都加了下划线。当我查看“listview.items.item[]”的可能属性时,“.text”和“.detail”都不存在。你如何解决/解决这个问题?

在此先感谢,乔治。

4

1 回答 1

9

FireMonkey 的FMX.ListView.TListView组件及其相关类在西雅图进行了广泛的重构。这记录在 Embarcadero 的 DocWiki 上:

什么是新的| 重构列表视图控件

许多以前在 TCustomListView 中的成员现在在不同的类甚至不同的单元中。进入不同类的成员通过继承继续成为 TCustomListView 的一部分。

有关更改的详细列表,请参阅西雅图列表视图控件的重构

重构页面没有特别提到TextandDetail属性。然而,DocWiki 的其他页面提供了缺失的线索:

什么是新的| 其他 FireMonkey 更改

现在您必须将TListView.Selected转换为Appearances.TListViewItem才能使用它。

FMX.ListView.TListViewBase.Selected

要将Selected用作Appearances.TListViewItem的实例,您必须将其转换为:

德尔福:

SelectedItemText := TListViewItem(TListView1.Selected).Text;

C++:

SelectedItemText = ((TListViewItem*)(TListView1->Selected))->Text;

TListView.Selected属性仍然FMX.ListView.Types.TListItem像以前一样返回 a 。但是,TListItem不再有自己的Detail属性Text。它们已移至FMX.ListView.Appearances.TListViewItem派生自TListItem.

TListView仍然FMX.ListView.TCustomListView像以前一样派生自,但现在TCustomListView派生自 XE8 中不存在的一组新基类:

XE8:

FMX.Controls.TStyledControl
↓<br> ↓<br> FMX.ListView.TCustomListView
FMX.ListView.TListView

西雅图:

FMX.Controls.TStyledControl
↓<br> ↓<br> ↓<br> ↓<br> ↓<br> ↓<br> FMX.ListView.TAdapterListView
FMX.ListView.TListViewBase
FMX.ListView.TPresentedListView
FMX.ListView.TAppearanceListView
FMX.ListView.TCustomListView
FMX.ListView.TListView

因此,所有列表项对象TListView现在都是该类的实例,FMX.ListView.Appearances.TAppearanceListViewItem该类派生自TListViewItem.

因此,在访问任何从 移动TListItem到的属性时,您必须进行相应的类型转换TListViewItem,其中包括DetailandText属性等。

于 2015-09-12T17:44:22.770 回答