Firemonkey:在运行时将子控件添加到TListViewItem

时间:2015-11-05 22:05:56

标签: c++ firemonkey c++builder-xe8

我正在尝试在运行时向TEdit控件添加TListView控件。我希望将TEdit控件添加到属于我的TListViewItem的选定TListView,但是,我无法找到实现此目的的方法。

最初,我试过这个:

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

然而,这给了我以下错误:

  

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

一时兴起,我试图将列表视图中的所选项目类型化为TFmxObject,如下所示:

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

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

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

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

1 个答案:

答案 0 :(得分:1)

根据Embarcadero documentation, TListViewItem不是TFmxObject后代,因此无法将Parent设置为所需的TEdit实例。它也没有Children属性。 TextObjectDetailObject等(TListItemObjectascend from TListViewItem中包含的TFmxObject后代也不存在。 看来你有以下方法。

  1. 编写并注册另一个ListViewItem课程,并在ListView
  2. 中实施
  3. 请参阅thisthis SO links.可能它们可能很有用。
  4. 请考虑使用TListBoxTListBoxItem可以为其他控件提供帮助。