Jump to content
  • Status: Closed
  • Priority: Normal
  • Resolution: Won't fix
  • Platform: Android
  • Affects version: 1.18.2.0

Решил вернуться к фреймам , так как нужен был inc/dec на каждой позиции списка, но результат получился следующим (дубль фрейма, но неактивный встал рядом с оригиналом фрейма) :

Screenshot_20240525_123830_too_infa.collview_w_frame.thumb.jpg.316f208c0b0de9c3472da90ffd63195d.jpg

collview_w_frame.rar


User Feedback

Recommended Comments

  • Administrators

Добрый вечер,

Я пока не вижу способов, как можно исправить эту ошибку. Проблема в стандартном механизме серилизации/десерилизации компонентов.

Клонирование/Копирование компонентов в FGX Native, как и в FMX, сделано через 2 шага:

  1. Вначале мы серилизуем компонент.
  2. Затем мы его десерилизуем.

Таким образом, мы получаем возможность копирования любого компонента. Однако с фреймом ситуация гораздо сложнее. Она связана с тем, что компонент может быть добавлен на фрейм:

  1. В самом дизайнере фрейма. В этом случае ситуация ни чем отличается от формы. И здесь все ок.
  2. В дизайнере формы, куда уже встроен фрейм.  В этом случае, компонента нет в оригинальном фрейме, а он добавлен уже по месту. 

В обоих случаях используется специальные ключевые слова в dfm файле: inherited (1) случай, inline (2). Для вашего примера, фрейм выглядит так. 

 image.png

Однако, когда фрейм серилизуется отдельно, то в рантайме нет информации о том, какой компонент принадлежит первоначально фрейму, а какой был добавлен/изменен. В результате получается, что вначале восстанавливается фрейм со всеми вложенными компонентами, а потом уже дополнительно считываются их изменения. 

Решения на текущий момент я не вижу. Поэтому сейчас фреймы не будут работать при использовании их в стилях. Возможное решение, это создать фрейм программно в рантайме и добавить его в стиль (при этом в дизайнере его быть не должно). В этом случае, код должен по идее корректно отработать.  

Аскар Джакишев

Active subscription

спасибо, пока стараюсь не использовать фреймы в tfgCollectionView, но воспользуюсь вашим советом, попробую создать в runtime, надеюсь, у вас получится решить это в будущем.

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.