1

我试图在运行时TEdit向控件添加控件。TListView我想将控件设置为属于 myTEdit的所选控件,但是,我找不到执行此操作的方法。 TListViewItemTListView

最初,我试过这个:

TEdit * MyEdit = new TEdit( this );
MyEdit->Parent = MyListView->Selected;

但是,这给了我以下错误:

[bcc32 错误] E2034 无法将 'TListViewItem *' 转换为 'TFmxObject *'

一时兴起,我试图在我的列表视图中对选定的项目进行类型转换,TFmxObject如下所示:

MyEdit->Parent = (TFmxObject *)MyListView->Selected;

在编译时,这会在运行时导致访问冲突。

我搜索了很多文档和论坛帖子,但找不到很多关于在代码中动态添加控件到列表视图项的信息。我已经看到建议使用样式编辑器的解决方案,但我想尽可能避免这种情况。

如何将控件的父级设置为我的项目TListView?有没有更好/更合适的方法在运行时向 a 添加控件TListViewItem

4

1 回答 1

1

根据 Embarcadero文档, TListViewItem它不是TFmxObject后代,因此不能将其设置为Parent所需TEdit实例。它也没有Children财产。等(包含在 中的TextObject后代)也不会从 上升。看来您有以下出路。DetailObjectTListItemObjectTListViewItem TFmxObject

  1. 编写并注册另一个ListViewItem类并在您ListView的 s 中实现它或
  2. 请参阅此 SO 链接。可能,它们可能有用。
  3. 考虑TListBox改用。TListBoxItems 可以作为其他控件的父级。
于 2015-11-06T11:50:23.777 回答