-
Posts
2,567 -
Joined
-
Last visited
-
Days Won
647
Content Type
Profiles
Forums
Events
Store
Blogs
Posts posted by Yaroslav Brovin
-
-
Скачать:
Релиз доступен только по запросу.Дата релиза:
22 апреля 2023Новое ✨
Векторные изображения SVG
Добавлена поддержка векторных SVG изображений. В новой версии добавлен новый тип ресурсов - SVG изображение. В него вы можете загрузить SVG файл в дизайнере ресурсов для дальнейшего использования в компонентах. Добавление SVG изображения доступно в дизайнере ресурсов: Project -> FGX Assets Manager. При использовании данного изображения в компонентах, происходит автоматическое формирование растрового изображения TfgBitmap с требуемым текущим коэффициентом масштабирования окна и указанным размером иконки. При этом логический размер (dp, без учета коэффициента масштабирования) иконки указывается в окне редактирования SVG файла.
Мы проверили наш SVG парсер на иконках разных поставщиков от MaterialDesign, Microsoft Visual Studio Icons и до Icons 8. Однако, стандарт SVG довольно большой и написать за такое короткое время полноценный парсер задача довольно непростая. Несмотря на это, мы хотели бы, чтобы вы делились с нами SVG файлами, которые не смогут прочитаться или отобразиться корректно. Это поможет нам оперативнее расширять парсер в тех направлениях, которые нужны для отображения массовых SVG изображений.
При загрузке изображения в дизайнере, у иконки появится специальный значок ошибки, если она не поддерживается.
TfgCanvas
Матрицы преобразования
Добавлена возможность использовать матрицы преобразования. Для того, чтобы получить текущую матрицу преобразования или задать новую, используйте свойство TfgCanvas.Matrix. При помощи матриц преобразований, можно совершать любые аффинные преобразования над рисуемыми объектами.
Например, чтобы выполнить масштабирование рисуемой фигуры в 2 раза, можно использовать такой код:
Canvas.Matrix := TMatrix.CreateScale(2) * Canvas.Matrix;
Сохранение состояний
Теперь в процессе отрисовки на канве ```TfgCanvas``` вы можете сохранять и восстанавливать состояние канвы. В качестве состояния канвы сохраняются параметры кисти и текущая матрица преобразования. Типичный сценарий работы с состояниями может выглядеть так:
var State: IFGXCanvasState; State := Canvas.SaveState; try // Модифицируем матрицу трансформации, параметры кистей // Выполняем отрисовку finally Canvas.RestoreState(State); end;
TfgSvgPath
Реализована поддержка отрисовки дуг в SVG Path. Теперь мы поддерживаем все команды отрисовки Path по стандарту SVG.
- Исправлено отображение команды T и Q в TfgSvgPath.
Nullable
Добавлена своя реализация типа FGX.Types.TfgNullable. Этот тип позволяет указать Null значение.
Улучшения 🙌
Дизайнер ассетов
Теперь вы можете выполнять поиск SVG иконок среди поставляемых иконок Material Design. Помимо этого теперь вы можете кидать любые файлы прямо в дерево дизайнера. В зависимости от расширения, будет создан соответствующий тип ресурса.
TfgGradient
Улучшена работа с точками градиента. Теперь точки градиента хранятся в коллекции. Получить коллекцию точек можно через свойство TfgGradient.Points. Благодаря использования коллекции, теперь можно использовать пакетное изменение точек при помощи методов TfgGradient.Points.BeginUpdate и TfgGradient.Points.BeginUpdate.
- Градиент с более, чем двумя точками, не рисовался (Android).
Android API
Добавлена трансляция типа android.os.Environment.
Исправление ошибок 🐛
- SUPPORT-135 Не работает PageIndex для динамически добавенных компонентов в TfgPageLayout (iOS).
- SUPPORT-138 TfgPagerLayout сбрасывает текущую вкладку на первую при открытии контекстного меню в TfgNavigationBar (iOS).
- FGX-176 TfgLabel не окрашивает текст в заданный цвет при TextType=HTML (iOS).
- FGX-252 Изменение свойства Enabled у родителя не влияет на дочерние компоненты (Android).
- FGX-262 Сохранение ассетов всегда обновляет проектный файл.
- FGX-263 Добавление элементов в TfgListMenu в рантайме приводит приложение к ошибке.
- TfgCollectionView не отображал свои элементы при использовании отступов (iOS).
- TfgBarcode рисовал свое содержимое, даже при сбросе данных штрихкода.
- Градиент с более, чем двумя точками, не рисовался (Android).
- Исправлено отображение команды T и Q в TfgSvgPath.
- 4
- 1
-
5 часов назад, Александр Клопоцкий сказал:
First chance exception at $BE4E8F19. Exception class EJNIException with message 'java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/messaging/RemoteMessage;'. Process Faberlic.apk (23071)
Нужно в настройках проекта поставил галку Push Notification. Указанный класс из Push-нотификации Firebase. Он подключается только при включении настройки в проекте.
-
Добрый вечер,
В 20.04.2023 в 20:33, Александр Клопоцкий сказал:2. Добавляю в проект один (любой) модуль, например FB4D.Interfaces.pas, никакого кода еще не пишу,
приложение собирается без ошибок, показывается заставка, и на ней приложение зависает.
- Что в логах приложения?
- Что в стектрейсе, если запускать с отладкой.
В 20.04.2023 в 20:33, Александр Клопоцкий сказал:4. Тот же пример из билиотеки FB4D: "FSSimpleChat.dproj", компилирую FMX под Andriod 32-bit, ошибки при сборке.
Вам нужно обновить список используемых Jar-библиотек в FMX. Для этого на ветке Libraries нужно в контекстном меню выбрать Reverts to default. После этого, указанные выше ошибки сборки, должны пройти.
-
Добрый вечер,
Только что, Piligrim сказал:Требуется новая покупка или это продление?
Если захотите продлить на год, то это будет переход на годовую лицензию, но без покупки новой. Но на форуме нету возможности пока сделать апгрейд покупки с 3-х месячной до годичной. Так что если надумаете, обратитесь ко мне, я оформлю, как новую годовую но по цене годового продления.
Спасибо
- 1
-
Download:
The distributive is available by request only.Release date:
22 March 2023Improvements 🙌
TfgBarcodeScanner
- The new InvertedDataMatrix format was added for Android.
- The Codabar format was added for iOS.
Gradle
The gradle version was updated up to 8.0. Now you can use the latest Java JDK version (Java 19).
TfgMap
The new method SnapshotAsync was added for taking map snapshot asynchronously.
fgMap1.SnapshotAsync(procedure (const ASnapshot: TfgBitmap) begin TfgAssetsManager.Current.AddBitmap('screenshot', ASnapshot); end);
Dialog demo samples
- Added search for examples by name/components/description.
- Scrolling the list of examples by the mouse wheel (Delphi 11.3).
- Opening an example by double clicking.
- Added the ability to open the example folder in Explorer.
Android Headers
The new headers Android.Api.Location was added for "android.location" package.
Other
- The new demo sample was added: "Components" -> "TfgMap" -> "Alternative Tile Providers".
- TfgPageControl displays border in Form designer now.
- FGX-254 Add color's code to "Assets.Consts.pas".
Bug Fixes 🐛
- When using frames, it is not possible to build the application.
- Suppress the unsupported framework message when adding a new form and frames for Delphi 11.3.
- FGX Native designer couldn't be loaded in RAD Studio 10.4.
- The rendering TfgPageControl component border was added to IDE.
-
Скачать:
Релиз доступен только по запросу.Дата релиза:
22 марта 2023Улучшения 🙌
TfgBarcodeScanner
- Добавлена поддержка нового формата штрихкодов InvertedDataMatrix для Android.
- Добавлена поддержка формата Codabar для iOS.
TfgMap
Добавлен новый метод для асинхронного получения скриншота карты SnapshotAsync.
fgMap1.SnapshotAsync(procedure (const ASnapshot: TfgBitmap) begin TfgAssetsManager.Current.AddBitmap('screenshot', ASnapshot); end);
Gradle
Обновили версию Gradle до 8.0. Теперь вы можете использовать последнюю версию Java JDK (Java 19).
Диалог демо примеров
- Добавлен поиск примеров по названию/компонентам/описанию.
- Прокрутка списка примеров колесом мыши (Delphi 11.3).
- Открытие примера по двойному клику.
- Добавлена возможность открыть папку примера в проводнике.
Android Headers
Добавлены заголовочный файл Android.Api.Location для пакета "android.location".
Прочее
- Добавлен новый демонстрационный пример: "Компоненты" -> "TfgMap" -> "Альтернативные поставщики тайлов".
- Добавлено отображение границ TfgPageControl в дизайнере.
- FGX-254 Добавить в файл "Assets.Consts.pas" в комментарии коды цветов.
Исправление ошибок 🐛
- При использовании фреймов невозможно собрать приложение.
- Подавление сообщения о неподдерживаемом фреймворке при добавлении новой формы и фреймов для Delphi 11.3.
- Дизайнер FGX Native не загружался в RAD Studio 10.4.
- 3
- 3
-
Hello @Delphi64,
As you can see Device Class in Form designer is just preview feature. It's special preset for testing your form on specified class. So this option just sets predefined size and style for form in designer and nothing more.
Therefore, when you run the program on the device, it will take up the entire screen of the device, regardless of its type.
To make the program look good on different screens, use the power of FlexBox. FlexBox allows you to make automatic transfers of elements and make a real rubber layout.
Some of our clients develop application for tablet. As far as I know, these are some kind of terminals for working with clients - restaurants, hotels, etc.
Thank you,
Yaroslav -
Hello @Stefan Diestelmann,
We have special broadcast of FGX.Platform.iOS.TfgiOSOpenURLWithOptionsMessage.
TfgiOSOpenURLWithOptionsMessage = class(TMessage) Url: NSUrl; Options: NSDictionary; Result: Boolean; end;
So technically you should subscribe on this message and handle like you did in FMX.
Thank you
-
42 минуты назад, Alex O сказал:
для проверки в светлой и темной темах сделал цвета дубли по названию - работает
По идеи, любые дополнительные цвета надо добавлять именно в тему, если цвет зависит от нее. В этом случае, одноименные ресурсы в папке темы, будут автоматически подхватываться при ее смене. Вы, наверное, про это и написали 🙂
- 1
-
Download:
The distributive is available by request only.Release date:
15 February 2023New ✨
Frames
Added full support for Delphi frames.
TfgMap
Added support for using third-party tiles in the TfgMap map, including Open Street Maps (OSM) tiles. To add tiles to maps, it is enough to throw the component TfgOSMMapTileProvider (when using OSM tiles) or TfgEventMapTileProvider (when adding your tiles) on the form and bind it to the map via the new property TfgMap.TileProvide.
Firebase Analytics
The new component TfgFirebaseAnalytics was added for collecting usage analytics of your application.
This component allows you to collect information about the use of your application by users. For example, you can define:
- Which form users open most often.
- Which versions of your application are running successfully.
- How many users launched the app for the first time.
- What purchases are most often made in your app.
- Which components are most often interacted with.
- And much more.
Useful information:
TfgForm
Two new events OnActivated and OnDeactivated were added to detect when a form comes to the foreground and leaves the foreground on the screen.
Dark Theme
Added the ability to track the switching of the system theme using the new event TfgForm.OnSystemAppearanceChanged. The event is triggered when the operating system changes its appearance and it is indicated that the FGX Native application supports a dark theme.
If you would like to use dark theme in your FGX Native application, you have to do:
- iOS: change value of property UIUserInterfaceStyle on Automatic for all iOS project configurations in "Project -> Options... -> Version Info".
- Android: change base theme of application in "styles.xml" file from "Theme.AppCompat.Light" to "Theme.MaterialComponents.DayNight".
Look at the updated sample for understanding, how to implement automatic switching theme based on OS theme: "Resources" -> "Themes" -> "Using multiple themes".
In addition, you can request the operating system appearance parameters at any time via FGX.SystemInfo.TfgSystemInfo.Appearance.
New components icons
New icons were added for TfgMap, TfgLottieImage, TfgCamera, TfgCameraPreview, TfgBarcode, TfgBarcodeScanner, TfgVideoControl, TfgCollectionView, TfgListMenu.
Improvements 🙌
Form designer
Added the ability to change only the width or only the height of the form/frames in the form designer.
TfgBarcodeScanner
Now the component returns the type of the recognized barcode via the TfgBarcode.Format.
Java-Delphi bridge
Added thread safety when using Java types in different threads for the first time at the same time.
Bug Fixes 🐛
- In case of usage font settings in TfgEdit and switchig IsPassword mode, component losts font settings (Android).
- The rendering TfgEdit / TfgMemo was fixed in IDE designer for HiDPI screens (IDE).
- The rendering of text with hyphenation was fixed in TfgLabel for designer (IDE).
- FGX-246 TfgBarcodeScanner error reading QR code. The application crashes (Android).
- FGX-247 Non-standard paths for compiled binaries (Android).
- 2
-
Скачать:
Релиз доступен только по запросу.Дата релиза:
15 февраля 2023Новое ✨
Фреймы
Добавлена полноценная поддержка Delphi фреймов.
TfgMap
Добавлена поддержка использования сторонних тайлов в карте TfgMap в том числе тайлы OpenStreetMap (OSM). Чтобы добавить тайлы в карты, достаточно кинуть компонент TfgOSMMapTileProvider (при использовании тайлов OSM) или TfgEventMapTileProvider (при добавлении своих тайлов) на форму и привязать его к карте через новое свойство TfgMap.TileProvide.
Firebase Analytics
Добавлен новый компонент для сборка аналитики использования вашего приложения TfgFirebaseAnalytics.
Данный компонент позволяет собрать информацию об использовании вашего приложения пользователями. Например, вы можете определить:
- Какую форму пользователи открывают чаще всего.
- Какие версии вашего приложения успешно запускаются.
- Сколько пользователей первый раз запустили приложение.
- Какие покупки чаще всего делают в вашем приложении.
- С какими компонентами чаще всего взаимодействуют.
- И многое другое.
Полезная информация:
TfgForm
Добавлены два события OnActivated и OnDeactivated для определения, когда форма выходит на передний план и уходит с переднего плана на экране.
Темная тема
Добавлена возможность отслеживать переключение системной темы при помощи нового события TfgForm.OnSystemAppearanceChanged. Событие вызывается, когда операционная система меняет свое представление и указано, что FGX Native приложение поддерживает темную тему.
Чтобы указать, что FGX Native поддерживает темную тему необходимо:
- Для iOS поменять значение ключа UIUserInterfaceStyle на Automatic для всех iOS конфигураций проекта в "Project -> Options... -> Version Info".
- Для Android поменять базовую тему приложения в файле "styles.xml" с "Theme.AppCompat.Light" на "Theme.MaterialComponents.DayNight"
Вариант реализации автоматической смены темы приложения на основании системной темы, смотрите в обновленном примере: "Ресурсы" -> "Темы" -> "Использование нескольких тем".
Помимо этого, вы можете в любой момент запросить параметры отображения операционной системы через FGX.SystemInfo.TfgSystemInfo.Appearance.
Иконки компонентов
Добавлены иконки для компонентов TfgMap, TfgLottieImage, TfgCamera, TfgCameraPreview, TfgBarcode, TfgBarcodeScanner, TfgVideoControl, TfgCollectionView, TfgListMenu.
Улучшения 🙌
Дизайнер форм
Добавлена возможность изменять только ширину или только высоту формы/фреймы в дизайнере форм.
TfgBarcodeScanner
Теперь при компонент возвращает тип распознанного штрих кода через свойство TfgBarcode.Format.
Java-Delphi мост
Добавлена потокобезопасность при одновременном первом использовании Java типов в разных потоках.
Исправление ошибок 🐛
- При использовании своих настроек шрифта для TfgEdit и при переключении режима скрытия пароля, сбрасывались настройки шрифта (Android).
- Исправлено отображение TfgEdit / TfgMemo в дизайнере для HiDPI экранах (IDE).
- Исправлено отображение текста с встроенными переносами в TfgLabel в дизайнере (IDE).
- FGX-246 TfgBarcodeScanner ошибка при определении QR кода. Приложение падает (Android).
- FGX-247 Нестандартные пути для скомпилированных бинарников (Android).
- 7
- 3
-
10 часов назад, Dmitriy сказал:
А это нормально, что теперь в заголовок каждого файла pas автоматически вставляется FGX.Application ?
Модуль вставляет только тогда, когда это нужно, а не всегда. Если какой-то компонент использует что-то из этого модуля, то он автоматически добавляется. Например, использование компонента TfgApplicationEvents приводит к автоматическому добавлению модуля.
10 часов назад, Dmitriy сказал:apk пересобранного приложения вырос c 11 Mb до 30Mb
Если предположить по вашему утверждению, что просто пересборка вашего приложения добавила вам 19 Мб, то вот собранный демонстрационный пример и он весит около 14 Мб. Да, мы постоянно добавляем новый функционал и сделали миграцию на AndroidX, это безусловно увеличивает размер apk, но не в три раза, как у вас получается.
-
После долгих и упорных поисков удалось найти обходное решение, чтобы отобразить кнопку встраивания фрейма на форму.
Поддержка фреймов добавлена в 1.15.3.0.
- 6
- 1
-
Download:
The distributive is available by request only.Release date:
18 January 2023New ✨
Firebase Push-notifications for iOS
The Firebase implementation was added for Push-notificatino service. In case if you are using Firebase (FCM), iOS returns Firebase device token instead of APNS. So additional token conversion is not required.
Supporting Android Libraries
Now you can easilier add any Android library only by full qualified name, without having to search for JAR/AAR files and all dependencies. To do this, use the Library management manager available from the main menu "'Project -> Android FGX Libraries".
Improvements 🙌
Android API USB
The new Android API header was added for working with USB: Android.Api.Hardware.USB.
Bug Fixes 🐛
- Building apps for Android in Application Store mode could fail if the password contained some illegal characters (Android).
- If at least two services were used in the project: Push notifications, advertising or in-app purchases, then the application crashed at startup (Android).
- The displaying of FlexBox designer for AlignmentChildren property was improved for HiDPI screens.
- The demo sample was fixed: "Android API -> AlarmManager".
- In case of usage TfgPushNotificationService component with ServiceName <> default, Android application could crashed on stratup (Android).
- 2
- 1
-
Скачать:
Релиз доступен только по запросу.Дата релиза:
18 января 2023Новое ✨
Firebase Push-уведомления для iOS
Добавлена реализация сервиса push-уведомлений на базе Firebase. Теперь при использовании Firebase (FCM), iOS так же может возвращать Firebase токен устройства. Дополнительная конвертация APNS токена устройства в Firebase не требуется.
Поддержка Android-библиотек
Теперь вы можете с легкостью подключить любую Android-библиотеки только по имени, без необходимости искать файлы JAR/AAR и всех зависимостей. Для этого воспользуйтесь менеджером управления библиотеками доступный из главного меню Project -> FGX Android Libraries.
Улучшения 🙌
Android API USB
Добавлены новые заголовочные файлы для работы с USB под Android: Android.Api.Hardware.USB.
Исправление ошибок 🐛
- Сборка приложений под Android для конфигурации Application Store могла завершаться неудачей, если в пароле содержались некоторые запрещенные символы.
- Если в проекте использовались хотя бы два сервиса: Push-уведомления, реклама или встроенные покупки, то приложение при старте падало.
- Улучшено отображение FlexBox дизайнера для `AlignmentChildren` свойство на HiDPI экранах.
- Исправлен демонстрационный пример "Android API -> AlarmManager"
- При использовании компонента TfgPushNotificationService и названия ServiceName, отличного от 'default', могла наблюдаться ошибка Android приложения на старте (Android).
- 4
- 1
-
Hm, Interesting questions. Supporting RTF doesn't mean, that it support RichEdit. The regular component cannot be used as a richedit, but it can display formatted output, as it is done with HTML. I mean RichEdit has more formats.
-
This error indicates that you have already used the trial and the expiration date has come to an end.
-
Did you install trial before?
-
Hello,
Android native EditText and iOS TextView supports rich format. However, I cannot find information about export RTF format to internal for usage in EditText for example. We are using this internal format for supporting HTML fro example.
- 1
-
7 минут назад, Александр Клопоцкий сказал:
По вашему примеру, как прописать класс фрейма в dfm файле формы?
Так код фреймов не выпущен. Поэтому сейчас даже если прописать, ничего не будет. Могу в принципе закончить текущий вариант и встроить его в либу, чтобы хотя бы руками можно было бы пока через dfm встраивать
-
Добрый вечер,
Мои пять копеек на счет фреймов. Я согласен, что фреймы нужны и полезны. Да, можно встраивать формы, но куда проще кинуть фрейм, чем кодом встраивать форму. Более того, у меня уже почти реализованный вариант фреймов. Однако, все уперлось в то, что RAD Studio не дает API для добавления фреймов для сторонних фреймворков. Поэтому на текущий момент, я научил ее создавать фреймы и работать с ними в дизайнере. Однако, кинуть фрейм на форум через палитру компонентов нельзя. Единственный способ, это руками прописать класс фрейма в dfm файле формы, что для публичного релиза не годится.
Чтобы не быть голословным:
-
На здоровье 🙂
3 минуты назад, Kreon сказал:да, это вариант был-бы неплох, Есть лицензия на софт, так генерится ключ, отправляешь, поддержка возвращает второй ключ. Диск умер, отправил первый ключ, они подтвердили что железо то-же, выслали второй ключ.
В данном случае подтверждение никакое не требуется. Мы вам верим 🙂
- 1
-
Только что, Kreon сказал:
Это была последняя лицензия, одну потерял при тестирование, пришлось систему переустанавливать, вторая на ноуте, ну и третья рабочая, на старом диске.
Я увеличил вам доступное количество активаций. Пробуйте еще разок.
-
Добрый день,
35 минут назад, Kreon сказал:Заимел новый SSD диск, перенес систему на новый диск, при запуске Delphi ошибка лицензии.
Да, смена железа влияет на выданную лицензию. Удалите файл лицензии в каталоге "C:\ProgramData\FGXNative\License" соответствующий вашей версии FGX Native и перезапустите Delphi. После этого выполните активацию продукта еще раз при помощи выданного ранее кода активации.
P.S. Переустановка не поможет.
Спасибо.
1.15.5.0 English
in English version
Posted
Download:
The distributive is available by request only.
Release date:
22 April 2023
New ✨
SVG Vector Images
The support of vector SVG images was added. In the new version, a new type of asset has been added - SVG image. You can upload an SVG file to the assets designer for further use in components. Adding an SVG image is available in the Assets Designer: Project -> FGX Assets Manager. When using this image in components, the TfgBitmap bitmap image is automatically generated with the required current window scaling factor and the specified icon size. At the same time, the logical size (dp, without taking into account the zoom factor) of the icon is indicated in the SVG file editing window.
We tested our SVG parser on icons from different vendors from MaterialDesign, Microsoft Visual Studio Icons and up to Icons 8. However, the SVG standard is quite large and writing a full-fledged parser in such a short time is not an easy task. Despite this, we would like you to share with us SVG files that cannot be read or displayed correctly. This will help us to expand the parser more quickly in the directions that are needed to display massive SVG images.
When loading an image in the designer, the icon will have a special error icon if it is not supported.
TfgCanvas
Transformation matrix
Now you can use transformation canvas. To get the current transformation matrix or set a new one, use the Canvas.Matrix property. With the help of transformation matrices, you can perform any Athenian transformations on the objects being drawn.
For example, to scale the shape figure, you can use the following code:
Canvas.Matrix := TMatrix.CreateScale(2) * Canvas.Matrix;
Saving states
Now, in the process of drawing on the canvas TfgCanvas, you can save and restore the state of the canvas. The brush parameters and the current transformation matrix are saved as the canvas state. A typical scenario for working with states may look like this:
var State: IFGXCanvasState; State := Canvas.SaveState; try // Modify transformation matrix, brushes // Painting finally Canvas.RestoreState(State); end;
TfgSvgPath
Arc commands were implemented in SVG Path. Now we supports all path commands Path by SVG standard.
Nullable
We added our implementation of nullable type FGX.Types.TfgNullable. This type allows to use null value.
Improvements 🙌
Assets Desginer
Now you can search for SVG icons among the supplied Material Design icons. In addition, now you can drop any files directly into the designer's tree. Depending on the extension, the appropriate resource type will be created.
TfgGradient
The working with gradient points were improved. Now all points are stored in collection. You can get this collection via TfgGradient.Points property. Thanks to the use of the collection, it is now possible to use batch modification of points using the methods TfgGradient.Points.BeginUpdate and TfgGradient.Points.BeginUpdate.
Android API
New Android API class android.os.Environment was translated.
Bug Fixes 🐛