Everything posted by Yaroslav Brovin
-
Ошибка при создании событий в дизайнере для частей TfgDrawerLayout
Исправлено в 1.6.0.0.
-
Два (и более) меню
Исправлено в 1.6.0.0.
-
fgcombobox hangs
Hello, Could you attach? All device log from application Android OS version. Stack trace from IDE. Thank you
-
Полностью обновленный компонент TfgButton
В процессе реализации уже существующих компонентов библиотеки FGX Native для iOS мы иногда сталкиваемся с тем, что для полноценной кроссплатформенной разработки приложений текущего функционала компонентов уже не хватает. Например, в панели TfgNavigationBar (iOS) для кнопки навигации часто иконку дополняют текстом, в то время, как в андроиде текст никто не добавляет. Однако, речь в этой новости пойдет не об этом компоненте, а об обычной кнопке TfgButton. С виду кнопка - один из самых простых компонентов. Однако, на практике, это довольно сложный компонент, если брать во внимание большое разнообразие в мире кнопок разных стилей и видов. Было много причин, почему кнопка TfgButton в библиотеке довольно ограничена в своих возможностях. Главная из них - это как сделать действительно удобный набор настроек, который угодил бы большинству и при этом был бы прост и гибок в настройке. Рад поделиться, что в процессе реализации iOS и изучения Material Design, мы пришли к удобному на наш взгляд набору настроек кнопки. Стили Теперь кнопка может иметь один из трёх базовых стилей: Text - обычная текстовая кнопка, без рамки, с возможностью привязать иконку. Этот тип предназначен для третьестепенных действий. Outlined - это плоская Text кнопка с окантовкой. Этот же тип используется для второстепенных действий. Contained - это Outlined кнопка + заливка области. Естественно, каждый вид кнопки должен иметь свой индивидуальный набор настроек. И желательно, чтобы инспектор объектов отображал только актуальные для данного стиля настройки. Так, например, если используется Text кнопка, то для нее должны быть доступны настройки рамки и заполнения. Поэтому теперь каждый стиль кнопки динамически подгружает свой набор настроек. Выбор стиля выполняется в инспекторе объектов в новом свойстве Appearance: При изменении стиля будут доступны разные наборы настроек внешнего вида: Как вы могли уже заметить, список настроек, отвечающих за внешний вид, довольно сильно расширился, что позволяет легко делать такие разные по виду кнопки: круглые, плоские, разноцветные, контрастные и тд Настройки элементов Стоит отметить, что теперь можно отдельно управлять отображением каждого элемента кнопки: Текст Иконка Рамка Наполнение Таким образом, теперь для иконки можно отдельно указать оттенок прямо на уровне компонента. Это особенно удобно в случаях, когда вы используете одну и ту же иконку в разных местах с разными оттенками. Если ранее для решения подобной задачи было необходимо делать копии одной и той же иконки и менять ей оттенок в дизайнере ресурсов, то сейчас достаточно установить свойство Appearance.Icon.TintColorName равным "Theme\Text\Icon" (к примеру). Так же теперь можно указать желаемый размер области вывода иконки. В автоматическом режиме, иконка старается стать как можно больше, занимая все доступное пространство кнопки. При указании фиксированного размера, иконка не сможет превысить указанное значение: При этом, кнопка с Contained стилем умеет автоматически подбирать цвета текста и иконки на основании цвета фона (если вы не указали свои цветовые предпочтения явно? Помимо этого, если вы хотите отобразить цветную иконку, вы можете отключить автоматическую перекраску через свойство Appearance.Icon.RenderMode. Для рамки кнопки мы предусмотрели возможность изменить значение радиуса скругления и толщину рамки. Изменения API Переименованы свойства ImageName -> IconName, ImageLocation -> Appearnace.Icon.Location, так как на наш взгляд иконка - это небольшой графический элемент, который преимущественно отображается на кнопке. При этом мы оставили обратную совместимость, так что при запуске старого проекта, старое значение из свойства ImageName и ImageLocation будет автоматически прочитано. Свойства TextSettings и TextShadow теперь находятся в группе настроек Appearance.Text. Они так же будут успешно восстановлены для старых проектов. Старые типы кнопок TfgButonKind.Raised и Flat теперь не будут поддерживаться и при открытии проекта автоматически будут сконвертированы в Contained и Text стили. P.S. Всем хороших выходных и успешного кодирования ?
-
[Tfgabel] Не работает подчеркивание и зачеркивание текста
Надо сразу писать про проблему... А не костылить. Критические ошибки мы стараемся оперативно править.
-
Как убрать автофокус у TfgEdit?
Ок, понял. Посмотрю. Спасибо.
-
Как убрать автофокус у TfgEdit?
Добрый вечер, можете указать тайминг к видео, на какой секунде видно, описываемое поведение?
-
1.5.0.1 English
Download : The distributive is available by request only. Release d ate: 24 September 2020 Changelog: * TfgCollectionView: - When NotifyItemsRemoved is invoked, future items selection occurs with a shift. Fixed. https://forum.fgx-native.com/topic/549-tfgcollectionview-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%B0-%D0%BF%D1%80%D0%B8%D0%B2%D0%BE%D0%B4%D0%B8%D1%82-%D0%BA-%D1%81%D0%B4%D0%B2%D0%B8%D0%B3%D1%83-%D0%B2%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F/ * TfgEdit: - Regression. The BackgroundName doesn't work for TfgEdit. Fixed. * TfgForm/TfgControl: - TfgForm wrong defined reference on TfgControl.Form. Now if form-frame is embedded into other, it contains reference on root form and all nested controls refer to the form-frame. If the form is not embedded, than TfgForm.Form = nil.
-
[TfgCamera] Corrupted result photo on Samsung device
We have discussed this issue in direct chat with Omar. The problem is in his Samsung device. Each Android device provides configuration information about camera work. FGX Native provide special API for it FGX.Camera: IFGXCamera = interface ['{14C827DC-3D2C-4C40-8CFA-665CF1B7F937}'] function GetId: string; {$REGION 'Characteristics'} function GetType: TfgCameraType; function GetAvailableFrameSizes(const AFrameType: TfgFrameType): TArray<TSize>; overload; function GetAvailableFrameSizes(const AImageFormat: TfgImageFormat): TArray<TSize>; overload; function GetOutputSupportedFormats: TfgImageFormats; function GetCameraRotationAngle: TfgRotation; {$ENDREGION} Based on available configuration and user settings TfgCamera prepares session for capturing photo. Omar's device returns the followed JPEG format sizes: supportedSize=2048x1536 supportedSize=2048x1152 supportedSize=1920x1920 supportedSize=1920x1080 supportedSize=1440x1080 supportedSize=1280x720 supportedSize=1088x1088 supportedSize=1056x704 supportedSize=960x720 supportedSize=800x480 supportedSize=736x736 supportedSize=720x480 supportedSize=640x480 supportedSize=352x288 supportedSize=320x240 supportedSize=176x144 However, his device doesn't really support square aspect ratio. So bug in Samsung leads to offset result photo: We are not able to fix this bug in FGX Native library, because it's a low level camera implementation bug on operation system level. However, changing required photo size on other aspect ratio works fine. It's possible to specify required frame size via property TfgCamera.MaxFrameSize.
-
1.5.0.1 Русский
Скачать: Релиз доступен только по запросу. Дата релиза: 24 сентября 2020 Список изменений: * TfgCollectionView: - При использовании метода NotifyItemsRemoved выделение последующих элементов происходит со сдвигом. Исправлено. https://forum.fgx-native.com/topic/549-tfgcollectionview-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%B0-%D0%BF%D1%80%D0%B8%D0%B2%D0%BE%D0%B4%D0%B8%D1%82-%D0%BA-%D1%81%D0%B4%D0%B2%D0%B8%D0%B3%D1%83-%D0%B2%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F * TfgEdit: - Регрессия: Задание фона через свойство BackgroundName не работало. Исправлено. * TfgForm/TfgControl: - Исправлено неверное определение ссылки на форму в TfgControl.Form. Теперь если форма встроена в другую, то она будет содержать ссылку на родительскую форму, а все вложенные в нее контролы будут ссылаться на нее. Если форма не встраивается, то она будет содержать nil ссылку.
-
[TfgCollectionView] Удаление элемента приводит к сдвигу выделения
Исправлено в 1.5.0.1
-
[TfgCollectionView] Удаление элемента приводит к сдвигу выделения
Вызывать ReloadItems не надо. Подтверждаю. Ошибку воспроизвел. Локально поправил. Исправление войдет в следующую версию.
-
1.5.0.0 English
Download : The distributive is available by request only. Release d ate: 20 September 2020 Changelog: * Attention!: - The new property Autosize is enabled for TfgNavigationBar, TfgSwitch and TfgTrackBar by default. So you don't need to have a code for calculating height of NavigationBar. - If you are using non standard Navigation bar height, you have to turn OFF valu Autosize = []. * The new property Autosize was added for TfgNavigationBar, TfgSwitch and TfgTrackBar: - The property allows to enable automatic calculation required size of control. - The automatic calculation is processed only, if size dimension doesn't depends on Flex alignment settings. For example, if a component should be stratched, то автосайз в этом случае не будет применяться. * TfgLabel: - New property ContentPadding was added for correction text output area. - The LetterSpacing property was added for changing space between text glyphs. It's not supported in IDE! * TfgEdit: - New property ContentPadding was added for correction output area. - Now you can specify icon via TfgEdit.IconName, which is displayed on the left side of text. - Small fixes of TfgEdit appearance in IDE. New padding were added. Now the appearance is the same as on Android device. * TfgRadioButton: - The bug of wrong tint color of RadioButton was fixed. * TfgButton: - New properties TintColor and TintColorName were added for possibility recolor button to the required color. * Push-notification: - When developer used Push notification and communicate with other Android activities via Intent, Exception could occure. Fixed. https://forum.fgx-native.com/topic/527-tfgfirebasepushnotification-efgasserterror/?tab=comments#comment-2122 - If user tap on push-notification in Notification Center, when application is in background, OnReceiveNotification is invoked. * Android-Api: - New headers were added "android.provider.*" -> "Android.Api.Providers.*" * Demo samples: - "Android Api" -> "AlarmManager"
-
1.5.0.0 Русский
Скачать: Релиз доступен только по запросу. Дата релиза: 20 сентября 2020 Список изменений: * !Внимание: - Свойство Autosize теперь включено по умолчанию для TfgNavigationBar, TfgSwitch и TfgTrackBar. Поэтому код по расчету высоты панели навигации можно теперь удалить. - Если вы используете нестандартную высоту панели навигации в своих целях, то вам НЕОБХОДИМО сбросить значение свойства Autosize = []. * Добавлено новое свойство Autosize для TfgNavigationBar, TfgSwitch, TfgTrackBar: - Свойство позволяет включить автоматический расчет ширины/высоты компонента. - Автоматический рассчет производится только, когда размер не зависит от настроек выравнивания Flex. Если компонент должен быть растянут, то автосайз в этом случае не будет применяться. * TfgLabel: - Добавлено новое свойство ContentPadding, отвечающее за возможность указать внутренний оступ, используемый для коррекции области отображения текста. - Новое свойство LetterSpacing позволяет указать межсимвольный интервал. Пока не поддерживается в дизайнере! * TfgEdit: - Используя новое свойство ContentPadding, можно менять внутренние оступы для коррекции области отображения содержимого. - Теперь можно указать иконку, отображаемую слева от текста. TfgEdit.IconName свойство. - Подправлено отображение TfgEdit в дизайнере. Добавлены отступы в начале и в конце поля ввода. Теперь внешний вид компонента идентичен виду на устройстве. * TfgRadioButton: - Исправлена ошибка из-за которой компонент использовал серый цвет для кнопки, вместо цвета акцента. * TfgButton: - Добавлены новые свойства TintColor и TintColorName позволяющие перекрасить кнопку в нужный цвет. * Push-уведомления: - При одновременном использовании пуш сервиса и взаимодействии с другими процессами, могла происходит ошибка приводящая к падению приложения. Исправлено https://forum.fgx-native.com/topic/527-tfgfirebasepushnotification-efgasserterror/?tab=comments#comment-2122 - Теперь, если пользователь нажимает на уведомление в центре уведомлений при свернутом приложении, будет срабатывать событие OnReceiveNotification. * Android-Api: - Добавлены новые заголовочные файлы для "android.provider.*" -> "Android.Api.Providers.*" * Демо проекты: - "Android Api" -> "AlarmManager"
-
Анонс 1.5.0.0
В ближайшем релизе 1.5.0.0 мы добавили пару небольших улучшений, которые немного помогут вам проще разрабатывать ваши мобильные приложения. 1. Отступы для TfgLabel В разработке пользовательского интерфейса довольно часто встречается задача визуального выделения текстовых меток/тегов. Обычно для визуального выделения используется фон в виде скругленного прямоугольника. Раньше такая задача решалась при помощи двух компонентов: Контейнер TfgLayout с требуемыми отступами для текста и с фоном BackgroundName в виде 9-path изображения. Метка TfgLabel, куда непосредственно выводится текст. Теперь же у TfgLabel есть специальное свойство ContentPadding, позволяющее добавить внутренние отступы, используемые при отображении текста. В результате метка легко получается на базе одного компонента TfgLabel с фоном BackgroundName и требуемыми отступами. 2. Оттенок для кнопки TfgButton Теперь для кнопки TfgButton добавлены новые свойства TintColor и TintColorName, позволяющие перекрасить системный цвет кнопки. 3. Android AlarmManager Мы добавили небольшой пример по использованию Java кода из FGX Native приложения. Новый демонстрационный пример показывает, как сделать на языке Java свой BroadcastReceiver и использовать его в связке с FGX Native приложением. Данный пример пригодится разработчикам, которым необходимо более тесная интеграция с Android API. 4. Автосайз iOS Так же мы с нуля реализовали TfgDrawerLayout для iOS drawer-iOS.mp4.648b868510783b05479fa65efce46878.mp4
-
[TfgFirebasePushNotification] EfgAssertError
Скину в личку промежуточную сборку, как соберется.
-
[TfgFirebasePushNotification] EfgAssertError
Исправлено в 1.5.0.0.
-
[TfgFirebasePushNotification] EfgAssertError
Сегодня гляну вечером.
-
Автоматический расчет размеров компонентов
Всем доброго дня, При разработке кросс-платформенного приложения важной базовой составляющей является определение размеров компонентов. С одной стороны нет ничего проще, чем задать желаемый размер любому компоненту библиотеки FGX Native или задать правило выравнивания компонентов при помощи FlexBox. Однако, кросс-платформенная разработка накладывает определенные трудности в этом подходе. А именно зачастую размер компонентов зависит не только от других компонентов, но и от содержимого. И если с первым отлично справляется FlexBox, то со вторым в FGX Native нужно использовать метод для расчета размеров компонентов TfgControl.MeasureSize, и будем честны, это было временное решение. Мы всегда стараемся сделать библиотеку FGX Native удобной для использования, чтобы разработчик мог концентрироваться в коде на бизнес логике своего приложения, а не программной "настройке" UI. Одним из грядущих улучшений будет поддержка автоматического расчета размеров компонентов. Мы внедрили на нижнем уровне поддержку Autosize. Теперь на уровне появится новое свойство TfgControl.Autosize, которое отвечает за то, что именно нужно автоматически посчитать: ширину, высоту или обе величины. Если в ходе выравнивания компонента система понимает, что компонент имеет фиксированный размер, то в этом случае компонент может автоматически его рассчитать. Так например задание Autosize = [Height] для TfgTraсkBar автоматически посчитает нужную высоту компонента, а вот указание Autosize = [Width] для этого компонента ни на что не повлияет. Не смотря на то, что сам механизм внедрен на нижнем уровне, реально это свойство в ближайшем релизе будет доступно только для нескольких компонентов: TfgSwitch, TfgTrackBar, TfgNavigationBar и возможно TfgLabel. Если с TfgSwitch и TfgTrackBar в целом понятно, то вот на счет TfgNavigationBar стоит отдельно отметить, что теперь этот компонент умеет в автоматическом режиме расчета высоты учитывать отступы у формы SafeArea и наличие заголовка и подзаголовка. И если раньше необходимо было программно отслеживать изменения отступов области SafeArea в TfgForm.OnSafeAreaChanged и на основании значений отступов вычислять руками высоту панели навигации, то сейчас все это будет происходить автоматически. Данное нововведение особенно актуально в свете предстоящего появления iOS. Так как в iOS используются другие шрифты, размеры текста и размеры компонентов. И чтобы сделать действительно универсальное приложение без этой функциональности будет очень сложно. Всем хорошей рабочей недели!
-
Rad Studio 10.4.1
NDK 17 version is very old. And It's not suitable for FMX and FGX Native projects. So you should use some more fresh. Compare your NDK settings from 10.4 and 10.4.1.
-
1.4.6.0 Русский
- 1.4.6.1 English
- 1.4.6.1 Русский
Скачать: Релиз доступен только по запросу. Дата релиза: 4 сентября 2020 Список изменений: * TfgCollectionView: - В версии 1.4.6.0 есть регрессия, которая не позволяет найти вложенные элементы стилей. Исправлено.- 1.4.6.0 Русский
Добрый день, Принял. Сегодня в течении дня выпущу хотфикс. P.S. Сборку запустил.- 1.4.6.0 English
Download : The distributive is available by request only. Release d ate: 04 September 2020 Changelog: * Android Api: - We introduced new way for using Android BroadcastReceiver in runtime. Now you can user special designed class FGXBroadcastReceiver and OnBroadcastReceiverListener listener for usage as BroadcastReceiver in FGX Native application. Look at the demo sample "Android Api" -> "Broadcast receiver". - New Android API headers were added: BroadcastReceiver, IntentFilter, AlarmManager and etc. * Samples: - "Android Api" -> "Broadcast receiver". The sample of registering broadcast receiver for listening changes of the airplane mode. * Project creator wizard: - The wizard remembers the last project location, organizadion id and git settings now. https://forum.fgx-native.com/topic/469-nf-%D0%B7%D0%B0%D0%BF%D0%BE%D0%BC%D0%B8%D0%BD%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%B0%D0%BF%D0%BA%D0%B8/ * Assets designer: - When developer opens the assets designer via property editor in the Object Inspector, Assets designer selects current asset in Object Inspector. Also now it opens existed designer instead of creatin new tab. https://forum.fgx-native.com/topic/511-nf-%D0%BF%D0%B5%D1%80%D0%B5%D1%85%D0%BE%D0%B4-%D0%BA-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D1%83-%D0%BF%D1%80%D0%B8-%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B8-%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD%D0%B5%D1%80%D0%B0-%D0%B0%D1%81%D1%81%D0%B5%D1%82%D0%BE%D0%B2/ * TfgForm: - When the last form is closed, it is not hidden from the screen. It helps to avoid displaying black screen while animation of hiding activity is in progress. * TfgCollectionView: - The new method TfgItemWrapper.UpdateLookupNameIndex was added. It allows to refresh index of item's controls. The method is used for situation, when developer dynamically changes structure of style on a fly. In this case, if he is going to use GetControlByLookupName method, he has to invoke this method for refreshin index. * Common designer improvements: - IDE Main menu has to new items for quickly creating new project and openning demo. "File" -> "New". - Several main menu icons were added. - The appearance of several designer windows were adjusted for 10.4. - #501 FGX: Advertising component is visible in FMX project https://gitlab.com/y.brovin/fgx/-/issues/501 - #498 [Designer] The wizard of opening demo has misspelling in demo description. https://gitlab.com/y.brovin/fgx/-/issues/498