Firemonkey: добавить дочерний элемент управления в TListViewItem во время выполнения

Я пытаюсь добавить 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

Решение

По словам Эмбаркадеро документация, TListViewItem это не TFmxObject потомок и, следовательно, его нельзя установить как Parent к желаемому TEdit пример. Не имеет Children собственность также. И не TextObject, DetailObject и т. д. TListItemObject потомки, содержащиеся в TListViewItem) вознестись из TFmxObject,
Кажется, у вас есть следующие выходы.

  1. Написать и зарегистрировать другое ListViewItem класс и реализовать его внутри вашего ListViewс или
  2. Увидеть этот а также это так ссылки. Возможно, они могут быть полезны.
  3. Рассмотреть возможность использования TListBox вместо. TListBoxItems может быть родительским элементом управления.
1

Другие решения

Других решений пока нет …