Jump to content

Yaroslav Brovin

Administrators
  • Posts

    2,552
  • Joined

  • Last visited

  • Days Won

    643

Everything posted by Yaroslav Brovin

  1. Перенес в трекер: Как проверю, отпишусь. Все должно работать.
  2. Download: The distributive is available by request only. Release date: 13 July 2021 Improvements 🙌 TfgPageControl The full implementation of TfgPageControl was done for iOS. The swiping pages was implemented (iOS). The TfgPageControl.SwipeEnabled property was implemeneted (iOS). All events TfgPageControl.OnPageSelecting, OnPageSelected and OnChanged were implemented (iOS). Now events are not being invoked, when user changes active page by programmatic way (iOS). Animation The new animation kind was added, which allows to animate control position. The new animator can be created via factory method TfgAnimationManager.CreatePositionAnimation. Unlike the translation animator Translate, this animator works with the local coordinates of the component, allowing you to move the component more conveniently. Assets manager Added scrolling assets designer content by mouse wheel. FGX-84 Add scrolling assets designer content by Mouse Wheel in IDE. Platform The notification about changes screen orientation was implemented for iOS. You can observes this notification via TfgApplicationEvents.OnScreenOrietnationChanged event. If you don't want to use this component, you can use broadcast receiving messages via TMessageManager: uses System.Messaging, FGX.Platform; TMessageManager.DefaultManager.SubscribeToMessage(TfgOnScreenOrientationChangedMessage, procedure(const Sender: TObject; const M: TMessage) begin TfgAssert.IsClass(M, TfgOnScreenOrientationChangedMessage); var Message := TfgOnScreenOrientationChangedMessage(M); // Message.OldOrientation // Message.NewOrientation end); Other The new method ToString was implemented for iOS API types: CGSize, CGPoint, CGRect for convenient printing values. Bug Fixes 🐛 After translate animation, the position of the control was reset to the initial value (Android). Sometimes, after Bounds and Translation animations, the control could have an incorrect final position (Android). When adding an existing animation of the same name to TfgAnimationManager, it did not get into the internal list. As a result, this animation could not be found and could not be stopped. FGX-73 Incorrect sequence of event calls (iOS). FGX-74 The TfgPageControl.OnChanged was invoked even, if developer changes pages by programmatic way (iOS). FGX-82 TfgPopup The not nil value is required FBackGroundView (iOS). FGX-83 EAccessViolation was raised, when iOS application is being launched (iOS). FGX-86 When displayed in TfgPopup on iPadOS, the one-columned TfgCollectionView is arranged in two columns (iOS). FGX-87 Wrong placement TfgBottomSheet on startup (iOS). FGX-88 Tint in TfgImage in TfgCollectionView works incorrectly (iOS). FGX-90 EAccessViolation is raised in TfgCollectionView.GetItemCount, when form is being created in (iOS). FGX-93 The OnVirtualKeyboardFrameChange event return non zero height when the Virutal Keyboard is hidden (iOS). FGX-94 "Style=Translucent" doesn't work fot TfgNavigationBar (iOS). FGX-98 The sliding pages doesn't work in TfgPageControl (iOS). When user applied the TintColor to the TfgButton in iOS, the tint color was applied to the button background, although it should not be (iOS). The applying tint color for assets in the Assets Designer was fixed for iOS < 13.0 (iOS).
  3. Скачать: Релиз доступен только по запросу. Дата релиза: 13 июля 2021 Улучшения 🙌 TfgPageControl Полная реализация компонента TfgPageControl под iOS. Реализована смена вкладок через прокручивание пальцем (iOS). Реализовано свойство TfgPageControl.SwipeEnabled (iOS). Реализованы все события TfgPageControl.OnPageSelecting, OnPageSelected и OnChanged (iOS). Теперь события не срабатывают при программной смене текущей вкладки (iOS). Анимация Добавлен новый тип анимаций, позволяющий изменять позицию визуального компонента. Данный аниматор можно создать через новый фабричный метод TfgAnimationManager.CreatePositionAnimation. В отличии от аниматора смещения Translate, этот аниматор работает с локальными координатами компонента, позволяя удобнее перемещать компонент. Менеджер ресурсов Добавлена прокрутка содержимого дизайнера ресурсов колесом мыши. FGX-84 Добавить возможность прокручивать содержимое дизайнера ресурсов колесом мышки. Платформа Реализовано уведомления об изменениях ориентации устройства (iOS). Отслеживать изменение ориентации можно через событие компонента TfgApplicationEvents.OnScreenOrietnationChanged. Если вы не хотите использовать этот компонент по каким-то причина, вы можете перехватить уведомление через механизм широковещательной рассылки TMessageManager: uses System.Messaging, FGX.Platform; TMessageManager.DefaultManager.SubscribeToMessage(TfgOnScreenOrientationChangedMessage, procedure(const Sender: TObject; const M: TMessage) begin TfgAssert.IsClass(M, TfgOnScreenOrientationChangedMessage); var Message := TfgOnScreenOrientationChangedMessage(M); // Message.OldOrientation // Message.NewOrientation end); Прочее Реализован метод ToString для CGSize, CGPoint, CGRect для удобной печати значений. Исправление ошибок 🐛 После окончания анимации смещения Translate позиция компонента сбрасывалась на начальное значение, хотя должна была оставаться в конечном положении (Android). Иногда после выполнения анимаций изменения положения Bounds или смещения Translation компонент мог оказаться в неверной финальной позиции (Android). При добавлении в TfgAnimationManager уже существующей одноименной анимации она не попадала во внутренний список. В следствии чего эту анимацию нельзя было найти и нельзя было остановить. FGX-73 Неправильная последовательность вызова событий (iOS). FGX-74 TfgPageControl.OnChanged срабатывает всегда, даже при программной смене вкладок (iOS). FGX-82 Требуется не пустое значение TfgPopup.FBackGroundView (iOS). FGX-83 EAccessViolation при запуске приложения (iOS). FGX-86 При отображении в TfgPopup на iPadOS одно колоночный TfgCollectionView выстраивается в две колонки (iOS). FGX-88 Некорректно отрабатывает оттенок в TfgImage в TfgCollectionView (iOS). FGX-87 Странное поведение для TfgBottomSheetLayout (iOS). FGX-90 Ошибка EAccessViolation при создании формы в методе GetItemCount для TfgCollectionView (iOS). FGX-93 Не отрабатывает событие OnVirtualKeyboardFrameChange при скрытии клавиатуры (iOS). FGX-94 Не работает Style=Translucent у TfgNavigationBar (iOS). FGX-98 Не производится смена вкладок в TfgPageControl через пролистывание (iOS). При применении оттенка TintColor кнопке TfgButton в iOS оттенок применялся к фону кнопки, хотя этого не должно было быть (iOS). Исправлено применение оттенка иконкам, заданного через дизайнер ресурсов для версий iOS < 13.0 (iOS).
  4. Проблему я локализовал. Причина в плавном скролинге списка и только в нем. По каким-то причинам, Андроид выполняет плавное прокручивание списка и это приводит к росту кеша объектов элементов. Что в конечном итоге укладывает приложение, так как создаются более 1000 компонентов. Утечки как таковой нет. Буду разбираться дальше, почему Кеш увеличивается именно при плавной прокрутке.
  5. Добрый вечер, Для возможности использования Java классов из нативного кода используется JNI - это специальная прослойка между виртуальной машиной JAVA и нативным кодом. По скольку JVM работает со счетчиками ссылок на нативные объекты, а нативный код нет, то в JNI есть таблицы в которые занесены текущие ссылки из нативного кода на Java объекты. Эта таблица имеет ограничение на максимальный размер, которые может разнится между устройствами. Ошибка JNI ERROR (app bug): global reference table overflow (max=51200) говорит о том, что данная таблица полностью заполнена количество используемых ссылок. Обычно причиной этому является утечка памяти. То есть ссылка на Java Объект захвачена, но не возвращена после использования. Я посмотрю ваш демо проект и попозже отпишусь о результатах.
  6. В эту среду совместно с компанией Embarcadero проводим вебинар посвященный разработке мобильного приложения с использованием FGX Native. На вебинаре разберем одну из возможных архитектур мобильного приложения, применим шаблон MVVM для построения экранов. И познакомимся с приемами создания мобильных интерфейсов с FGX Native. Когда: 23 июня 2021 в 12:00 МСК Язык: русский Заголовок: Примеры использования библиотеки FGX Native для создания макетов реальных мобильных приложений. Ссылка на регистрацию: https://lp.embarcadero.com/fgx-native Анонс:
  7. Download: The distributive is available by request only. Release date: 19 June 2021 New ✨ Drop down window TfgPopup This release adds the ability to display any content as a drop-down window attached to the specified component. To create the TfgPopup drop-down window you need to use the TfgPopupFactory factory and pass the displayed component there. As a component, you can specify any visual component, including a form. FPopup := TfgPopupFactory.CreatePopup(FPopupContent); FPopup.Size := TSizeF.Create(200, 300); You must specify the component that the drop-down window should be displayed relative to. An additional parameter can be used to specify the popup offset. FPopup.DropDown(fgButton1); If you use themes in your application, then you can specify theme name via property ThemeName. By default, the drop-down window displays a shadow. However, you can use the transparent style of the drop-down window. This is managed via the Transparent property. New demo sample was added: "Components" -> "TfgPopup" -> "Basic sample". Details: https://translate.yandex.ru/translate?lang=ru-en&url=https%3A%2F%2Fforum.fgx-native.com%2Fblogs%2Fentry%2F29-выпадающие-окна-tfgpopup%2F Improvements 🙌 TfgBitmap Added the ability to work with raw data TfgBitmap using IFGXBitmapData. To get started, call TfgBitmap.MapData and TfgBitmap.UnmapData when finished. Added the ability to rotate TfgBitmap by a fixed angle. Turns are available 90, 180 and 270 degrees. New demo sample was added: "Canvas" -> "TfgBitmap - working with raw data". Details: https://translate.yandex.ru/translate?lang=ru-en&url=https%3A%2F%2Fforum.fgx-native.com%2Fblogs%2Fentry%2F30-новые-возможности-tfgbitmap%2F TfgWebBrowser Revised the handling of opening sites with problematic certificates. Now, by default, such sites are not opened. If you want to allow them to be displayed, you need to use the new event TfgWebBrowser.OnSSLError and use the AHandler parameter to prohibit or allow loading of such resources. New demo sample was added: "Components" -> "TfgWebBrowser" -> "Handling certificate errors". TfgCamera We added possibility to setup flash mode in the moment of taking photo. You can set this mode via the new property TfgCamera.FlashMode. Also you can use flash as a torch, while camera works only in preview mode. You can do it via the new property TfgCamera.TorchMode. Pay attention, it works only in preview and doesn't work in moment of taking photo. FGX-75 TfgCamera Add functionality for enabling flash. The demo sample was updated: "Components" -> "TfgCamera" -> "Camera". New controls were added for switching flash and torch modes. Bug Fixes 🐛 Dynamical changes of TfgBitmap size could lead to raising exception (Android). TfgCanvas.DrawBitmap and TfgCanvas.DrawBitmapWithMask methods rendered an image with the TfgBitmap scale instead of the TfgCanvas scale, which resulted in an incorrect image size (Android). FGX-77 TfgAnimationHelper Access Violation (iOS). FGX-78 TfgEdit has no focus after enabled-false/true (Android). FGX-79 Raising TfgCollectionView events after TfgForm.OnDestroy. FGX-80 SSL Error Handler (Android). The demo sample was fixed: "Android Api" -> "AlarmManager". The additional Android Studio project was added for building Java part.
  8. Скачать: Релиз доступен только по запросу. Дата релиза: 19 июня 2021 Новое ✨ Выпадающие окна TfgPopup В этом релизе добавлена возможность отображать любое содержимое в виде выпадающего окна, прикрепленного к указанному компоненту. Чтобы создать выпадающее окно TfgPopup необходимо воспользоваться фабрикой TfgPopupFactory и передать туда отображаемый компонент. В качестве компонента можно указывать любой визуальный компонент, в том числе и форму. FPopup := TfgPopupFactory.CreatePopup(FPopupContent); FPopup.Size := TSizeF.Create(200, 300); Чтобы отобразить попап необходимо указать компонент, относительно которого должно отобразиться выпадающее окно. Дополнительным параметром можно указать смещение. FPopup.DropDown(fgButton1); Если вы используете темы в вашем приложении, то вы можете указать название темы через свойство ThemeName. По умолчанию выпадающее окно отбрасывает тень. Однако, вы можете использовать прозрачный стиль выпадающего окна. Это управляется через свойство IsTransparent. Добавлен новый демонстрационный проект: "Компоненты" -> "TfgPopup" -> "Базовый пример". Детали: Улучшения 🙌 TfgBitmap Добавлена возможность работы с "сырыми" данными TfgBitmap с помощью IFGXBitmapData. Для начала работы вызовите TfgBitmap.MapData и TfgBitmap.UnmapData по окончанию. Добавлена возможность поворота TfgBitmap на фиксированный угол. Доступны повороты на 90, 180 и 270 градусов. Добавлен новый демонстрационный проект: "Графика" -> "TfgBitmap - работа с "сырыми" данными". Подробнее: TfgWebBrowser Пересмотрена обработка открытия ресурсов с проблемными сертификатами. Теперь по умолчанию, такие сайты не открываются. Если вы хотите допустить их отображение, необходимо использовать новое событие TfgWebBrowser.OnSSLError и через параметр AHandler запретить или разрешить загрузку таких ресурсов. Добавлен новый демонстрационный проект: "Компоненты" -> "TfgWebBrowser" -> "Обработка ошибок сертификатов". TfgCamera Для камеры добавлена возможность указывать режим работы вспышки в момент снятия фотографии. Это поведение управляется новым свойством TfgCamera.FlashMode. Дополнительно можно использовать вспышку в качестве фонарики в процессе работы предпросмотра (Preview). Это задается через новое свойство TfgCamera.TorchMode. Обратите внимание, что фонарик работает только в режиме превью и игнорируется в момент съемки фотографии. FGX-75 TfgCamera добавить функционал включения вспышки. Обновлен демонстрационный пример: "Компоненты" -> "TfgCamera" -> "Фотокамера". Добавлены элементы управления для включения вспышки и режима фонарика. Исправление ошибок 🐛 Динамическое изменение размера TfgBitmap могло приводить к исключению (Android). Методы TfgCanvas.DrawBitmap и TfgCanvas.DrawBitmapWithMask отрисовывали изображение со скейлом TfgBitmap вместо скейла TfgCanvas, что приводило к неверному размеру изображения (Android). FGX-77 TfgAnimationHelper Access Violation (iOS). FGX-78 TfgEdit нет фокуса после enabled-false/true (Android). FGX-79 Вызов событий TfgCollectionView после TfgForm.OnDestroy. FGX-80 SSL Error Handler (Android). Исправлен демонстрационный проект: "Android Api" -> "AlarmManager". Добавлен проект для сборки Java части в Android Studio.
  9. Доброго дня! В ближайшем релизе 1.11.2.0 всех нас ждет появление поддержки выпадающих окон TfgPopup. Если вам необходимо отобразить содержимое в виде выпадающего окна, то эта возможность непременно вам пригодится. Создание В качестве содержимого выпадающего окна можно использовать как любой визуальный компонент так и форму. Удобнее всего использовать форму, поскольку она позволяет создать содержимое выпадающего окна прямо в дизайнере. При создании формы важно указать: Отключить полноэкранный режим формы TfgForm.FullScreen = False. Опционально сделать фон прозрачным через TfgForm.Transparent = True . В качестве начинки окна, я сделал форму с TfgCollectionView, используемым для отображения содержимого Чтобы создать выпадающее окно нужно обязательно иметь содержимое, которое вы планируете показать в этом выпадающем окне. Создание выполняется через фабрику FGX.Popup.TfgPopupFactory, как и тосты, пикеры, диалоги и тд. var FPopup: TfgPopup; FPopupContent: TFrameList; FPopupContent := TFrameList.Create(nil); FPopup := TfgPopupFactory.CreatePopup(FPopupContent); После создания TfgPopup становится владельцем вашего содержимого. Это значит, что содержимое будет уничтожено, как только TfgPopup будет удален. Если вы хотите сами контролировать время жизни содержимого, вы можете передать вторым параметром значение False. В этом случае, после уничтожения TfgPopup, ваше содержимое останется жить. FPopup := TfgPopupFactory.CreatePopup(FPopupContent, False); После создания необходимо указать размер выпадающего окна при помощи свойства TfgPopup.Size. Например, если выпадающее окно прикреплено к кнопке. то имеет смысл в качестве ширины брать ширину кнопки: FPopup.Size := TSizeF.Create(fgButton1.Width, 200); Отображение Для отображения выпадающего окна существует два одноименных метода TfgPopup.DropDown, оба которых привязывают отображение окна к указанному компоненту. /// <summary> /// Открывает выпадающее окно, прикрепленное к указанному компоненту <c>AAnchor</c> со смещением <c>AOffset</c>. /// </summary> procedure DropDown(const AAnchor: TfgControl; const AOffset: TPointF); overload; virtual; abstract; /// <summary>Открывает выпадающее окно, прикрепленное к указанному компоненту <c>AAnchor</c>.</summary> procedure DropDown(const AAnchor: TfgControl); overload; FPopup.DropDown(fgButton1); Если вам необходимо выполнить отображение выпадающего окна со смещением, то вы можете передать это смещение вторым параметром: FPopup.DropDown(fgButton1, TPointF.Create(0, 8)); Эта версия метода удобна в случаях, когда вы самостоятельно делаете внешний вид выпадающего окна и хотите добавить отступы между выпадающим окном и компонентом, вызывающим это окно. Для закрытия окна используйте метод Close. /// <summary>Закрывает выпадающее окно.</summary> procedure Close; virtual; abstract; Настройка внешнего вида По умолчанию TfgPopup выглядит, как TfgCardPanel с тенью и рамкой. Однако, если вы хотите сделать свой внешний вид окна, то вы можете отключить отображение по умолчанию через свойство TfgPopup.IsTransparent. В этом случае содержимое будет отображено прямо под привязанным компонентом. /// <summary>Прозрачное выпадающее окно или нет?</summary> property IsTransparent: Boolean read FIsTransparent write SetIsTransparent; Если вы используете в своих приложениях темы, то вы можете использовать темы и для содержимого выпадающего окна. Для этого необходимо указать название темы в свойстве TfgPopup.ThemeName. Таким образом можно добавить поддержку темной темы и детальнее настроить внешний вид попапов. /// <summary>Название темы, используемой для содержимого выпадающего окна.</summary> property ThemeName: TfgThemeName read FThemeName write SetThemeName; ios.mp4 android.mp4 События В TfgPopup поддерживается два типа событий, OnOpened и OnClosed, вызываемые при открытии и закрытии выпадающего окна соответственно. Так же мы предлагаем две версии каждого события для использования совместно с анонимными функциями и событиями. /// <summary>Вызывается, когда выпадающее окно отображается на экране.</summary> property OnOpened: TNotifyEvent read FOnOpened write FOnOpened; /// <summary>Вызывается, когда выпадающее окно отображается на экране.</summary> property OnOpenedCallback: TfgCallback read FOnOpenedCallback write FOnOpenedCallback; /// <summary>Вызывается, когда выпадающее окно скрывается с экрана.</summary> property OnClosed: TNotifyEvent read FOnClosed write FOnClosed; /// <summary>Вызывается, когда выпадающее окно скрывается с экрана.</summary> property OnClosedCallback: TfgCallback read FOnClosedCallback write FOnClosedCallback;
  10. Добрый день, Судя по описанию - это однозначно баг. После OnDestroy никакие события компонентов формы не должны вызываться, конечно.
  11. Добрый вечер, нужна демка
  12. Download: The distributive is available by request only. Release date: 26 May 2021 Improvements 🙌 TfgBottomSheetLayout The new group settings property were added TfgBottomSheetLayout.BlockContentSettings. It allows to specify default action, when user taps blocked content area. The old property BlockContentMode was moved to BlockContentSettings.Mode. Now you can choose which action to perform automatically when clicking on the blocked area of the main content via the BlockContentSettings.AutoCloseAction. You can also now catch the touch event of this area via the new TfgBottomSheetLayoutOnBlockedContentTap event for manual page manipulation. FGX-60 Hide/Close TfgBottomSheetLayout. FGX-61 TfgBottomSheetLayout AutoHide. Assets manager The new method TfgAssetsFactory.SaveConfigToFile was added, which allows to save information about filtered assets in file. Example of saving all resources whose name starts with the Cache prefix: const CachePrefix = 'Cache'; TfgAssetsFactory.SaveConfigToFile(TfgAssetsManager.Current, ConfigFileName, function (const AAsset: TfgAsset): Boolean begin Result := string(AAsset.Name).StartsWith(CachePrefix); end, [TfgWritingOption.EmitEmptyAssets]); FGX-35 Add a possibility to save filtered assets to config file. Other TfgWebBrowser can open https pages with certificate issues (Android). The new helpers methods ToString and ToARGBHex were added for TAlphaColor. The new header file Android.Api.Accessibility was added for using Android Accessibility. Bug Fixes 🐛 FGX-62 TfgAnimationHelper Access Violation (iOS). FGX-63 Incorect rendering background of fgNavigationBar (iOS). FGX-64 TfgBottomSheet doesn't store AlignmentChildren.Direction value. FGX-66 TfgCardPanel wrong rendering background color (iOS). FGX-67 TfgAnimationHelper.ShowForm(FrameName) is crashed (iOS). FGX-68 Application was crashed, when the HideForm was invoked. FGX-69 AddBitmapFromUrlAsync could led to exception sometimes (Android). The TfgBottomSheetLayout.BlockContentMode property didn't work, if ContentShadingSettings.Enabled = False (Android). The transation of TfgTranslation designer was fixed.
  13. Скачать: Релиз доступен только по запросу. Дата релиза: 26 мая 2021 Улучшения 🙌 TfgBottomSheetLayout Добавлена группа настроек TfgBottomSheetLayout.BlockContentSettings позволяющая автоматически свернуть/закрыть страницу в модальном режиме при касании заблокированной области основного содержимого. В эту группу перемещено свойство BlockContentMode -> BlockContentSettings.Mode. Теперь вы можете выбрать, какое действие нужно совершить автоматически при нажатии на заблокированную область основного содержимого через свойство BlockContentSettings.AutoCloseAction. Так же вы можете теперь поймать событие касания этой области через новое событие TfgBottomSheetLayout.OnBlockedContentTap для ручных манипуляций со страницей. FGX-60 Hide/Close TfgBottomSheetLayout. FGX-61 TfgBottomSheetLayout AutoHide. Менеджер ресурсов Добавлен новый метод TfgAssetsFactory.SaveConfigToFile, который позволяет сохранить информацию об отфильтрованных ресурсов в любой файл. Пример сохранения всех ресурсов, у которых имя начинается с префикса 'Cache': const CachePrefix = 'Cache'; TfgAssetsFactory.SaveConfigToFile(TfgAssetsManager.Current, ConfigFileName, function (const AAsset: TfgAsset): Boolean begin Result := string(AAsset.Name).StartsWith(CachePrefix); end, [TfgWritingOption.EmitEmptyAssets]); FGX-35 Assets Добавить возможность сохранять информацию об ассетах в файл. Прочее Теперь TfgWebBrowser может открывать https страницы, которые имеют проблемы с сертификатом (Android). Добавлены хелперы ToString и ToARGBHex для TAlphaColor. Добавлен заголовочный файл Android.Api.Accessibility для возможности использования Android Accessibility. Исправление ошибок 🐛 FGX-62 TfgAnimationHelper Access Violation (iOS). FGX-63 Некорректная работа fgNavigationBar (iOS). FGX-64 TfgBottomSheet не сохраняет AlignmentChildren.Direction. FGX-66 TfgCardPanel Магические способности(iOS). FGX-67 TfgAnimationHelper.ShowForm(FrameName) падает (iOS). FGX-68 Новая анимация - крашится приложение при вызове HideForm. FGX-69 Исключение при загрузке изображений (Android). Свойство TfgBottomSheetLayout.BlockContentMode не работало, если ContentShadingSettings.Enabled = False (Android).
  14. Давайте предметные вопросы задавать в соответствующих ветках форума с деталями, что делается и как. Желательно с кусками кода или демо проектом. А то такие вопросы легко теряются именно здесь среди других комментариев. Спасибо
  15. Хотя, я понял в чем дело. Посмотрим. Как минимум не должно быть вызова отображения формы при ее скрытии. Разберемся с этим. Но и создание компонентов в любом случае не надо делать в OnShow.
  16. При каждом отображении формы вызывается ее обработчик OnShow. Собственно, если вы кнопки создаете в OnShow, то вы их создаете на каждого отображение формы. Что не верно. Их надо создать один раз, например в конструкторе или в событии OnCreate.
  17. Добрый день, Какая платформа? Какая версия IDE используется? Демо проект? В каком месте вы создаете компоненты в рантайме? Спасибо
  18. Нам очень приятно поделиться с вами этой новостью. Одно из приложений, написанных на FGX Native, победило в ежемесячном конкурсе Delphi приложений от Embarcadero. Это приложение - аудио-гид по достопримечательностям разных городов с поддержкой нескольких языков. Поздравляем Романа с успехом и желаем ему не останавливаться на достигнутом! Приложение в Play Market: https://play.google.com/store/apps/details?id=ru.wc2.welcome&hl=ru&gl=US Ссылка на конкурс Embarcadero: https://delphi.embarcadero.com/delphi26th-welcome-a-spectacular-mobile-app-for-travelers-made-in-delphi/ Автор: @Roman
  19. Понял. Это можно решить, указав дополнительно модуль: FGX.Animation.TfgAnimationHelper.ShowModalForm(MyModalForm) В следующей версии переименуем хелпер для TfgControl, чтобы он не конфликтовал с одноименным типом.
  20. Правильно ли я понимаю, что проблема решена?
×
×
  • Create New...