我正在尝试在运行时将TEdit控件添加到TListView控件。我想将TEdit控件作为属于我的TListViewItem的所选TListView的父项,但是,我找不到执行此操作的方法。

最初,我尝试过这样:

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

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



一时兴起,我尝试将列表 View 上的所选项目作为TFmxObject进行类型转换,如下所示:
MyEdit->Parent = (TFmxObject *)MyListView->Selected;

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

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

如何设置控件的父级到TListView中的项目?在运行时是否有更好/更合适的方法将控件添加到TListViewItem

最佳答案

根据Embarcadero,documentation, TListViewItem不是TFmxObject的后代,因此无法将其设置为所需Parent实例的TEdit。它也没有Children属性。 ascend fromTextObjectDetailObject等(TListItemObject中包含的TListViewItem后代)也是如此。
看来您有以下解决方法。

  • 编写并注册另一个TFmxObject类,并在ListViewItem
  • 中实现它
  • 参见thisthis SO links.可能有用。
  • 考虑改为使用ListViewTListBox可以成为其他控件的父级。
  • 关于c++ - Firemonkey:在运行时将子控件添加到TListViewItem,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33555672/

    10-11 22:31
    查看更多