Jump to content
View in the app

A better way to browse. Learn more.

FGX Native

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ошибка с TfgFrame на Style TfgCollectionView (2-я часть)

  • 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.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.