m.medvedb Опубликовано 31 января, 2014 Поделиться Опубликовано 31 января, 2014 Как сделать компонент с нуля нет проблем...... Вопрос, как сделать копию компонента и его обработчиков? Точнее FMX позволяет сделать составной компонент..... как клонировать родителя и все связанные с ним компоненты. Ссылка на комментарий
1 Администраторы Brovin Yaroslav Опубликовано 31 января, 2014 Администраторы Поделиться Опубликовано 31 января, 2014 Добрый день, FireMonkey вводит специальный метод TFmxObject.Clone, позволяющий выполнить копирование объекта (без внутреннего состояния) и всех его дочерних объектов путем сериализации/десериализации объекта в памяти. Соответственно, чтобы получить копию объекта нужно использовать метод: function TFmxObject.Clone(const AOwner: TComponent): TFmxObject; У этого метода есть важные особенности: Этот метод не копирует родителя Parent у копируемого объекта. Этот метод не копирует обработчики событий. Этот метод не копирует внутреннее состояние объекта. Только если это состояние сериализуется самим объектом. Поэтому после выполнения копирования, вы должны задать вручную родителя для копии и требуемые обработчики событий. Так сделано, поскольку в большинстве случаев после копирования для копии задается другой родитель, поэтому чтобы уменьшить количество не нужных операций по выравниванию контролов и тд, задание родителя отводится пользователю. zairkz 1 Ссылка на комментарий
0 m.medvedb Опубликовано 1 февраля, 2014 Автор Поделиться Опубликовано 1 февраля, 2014 Благодарю за развернутый ответ! Все разобрался. Отличная функция! Ссылка на комментарий
Вопрос
m.medvedb
Как сделать компонент с нуля нет проблем...... Вопрос, как сделать копию компонента и его обработчиков? Точнее FMX позволяет сделать составной компонент..... как клонировать родителя и все связанные с ним компоненты.
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения