Firemonkey:在 运行 时间将子控件添加到 TListViewItem
Firemonkey: Add child control to TListViewItem at run time
我正在尝试在 运行 时间内将 TEdit
控件添加到 TListView
控件。我想将 TEdit
控件设置为属于我的 TListView
的所选 TListViewItem
的父级,但是,我找不到执行此操作的方法。
最初,我试过这个:
TEdit * MyEdit = new TEdit( this );
MyEdit->Parent = MyListView->Selected;
但是,这给了我以下错误:
[bcc32 Error] E2034 Cannot convert 'TListViewItem *' to 'TFmxObject *'
一时兴起,我试图将列表视图中的所选项目类型转换为 TFmxObject
,如下所示:
MyEdit->Parent = (TFmxObject *)MyListView->Selected;
编译时,这会在 运行 时导致访问冲突。
我搜索了很多文档和论坛帖子,但找不到太多关于在代码中将控件动态添加到列表视图项的信息。我已经看到建议使用样式编辑器的解决方案,但我想尽可能避免这种情况。
如何将控件的父级设置为 TListView
中的某个项目?有没有更好/更合适的方法在 运行 时间内向 TListViewItem
添加控件?
根据 Embarcadero documentation, TListViewItem
is not a TFmxObject
descendant and thus it can not be set as a Parent
to the desired TEdit
instance. It does not have Children
property as well. Nor do the TextObject
, DetailObject
etc. (the TListItemObject
descendants contained in TListViewItem
) ascend from TFmxObject
。
看来你有以下出路。
- 编写并注册另一个
ListViewItem
class 并在您的 ListView
或 中实现它
- 参见this and this SO links.可能它们可能有用。
- 考虑改用
TListBox
。 TListBoxItem
s 可以作为其他控件的父级。
我正在尝试在 运行 时间内将 TEdit
控件添加到 TListView
控件。我想将 TEdit
控件设置为属于我的 TListView
的所选 TListViewItem
的父级,但是,我找不到执行此操作的方法。
最初,我试过这个:
TEdit * MyEdit = new TEdit( this );
MyEdit->Parent = MyListView->Selected;
但是,这给了我以下错误:
[bcc32 Error] E2034 Cannot convert 'TListViewItem *' to 'TFmxObject *'
一时兴起,我试图将列表视图中的所选项目类型转换为 TFmxObject
,如下所示:
MyEdit->Parent = (TFmxObject *)MyListView->Selected;
编译时,这会在 运行 时导致访问冲突。
我搜索了很多文档和论坛帖子,但找不到太多关于在代码中将控件动态添加到列表视图项的信息。我已经看到建议使用样式编辑器的解决方案,但我想尽可能避免这种情况。
如何将控件的父级设置为 TListView
中的某个项目?有没有更好/更合适的方法在 运行 时间内向 TListViewItem
添加控件?
根据 Embarcadero documentation, TListViewItem
is not a TFmxObject
descendant and thus it can not be set as a Parent
to the desired TEdit
instance. It does not have Children
property as well. Nor do the TextObject
, DetailObject
etc. (the TListItemObject
descendants contained in TListViewItem
) ascend from TFmxObject
。
看来你有以下出路。
- 编写并注册另一个
ListViewItem
class 并在您的ListView
或 中实现它
- 参见this and this SO links.可能它们可能有用。
- 考虑改用
TListBox
。TListBoxItem
s 可以作为其他控件的父级。