Jump to content

Yaroslav Brovin

Administrators
  • Posts

    2,567
  • Joined

  • Last visited

  • Days Won

    647

Everything posted by Yaroslav Brovin

  1. Добрый день, Компонентов для отрисовки графиков нету. Но их можно нарисовать самостоятельно через TfgPaintBox и TfgCanvas.
  2. Судя по документации еще надо указать специальный режим для фонового выполнения. Однако, указав его, все равно звук не работает. Посмотрю еще.
  3. В целом посмотрел. Сделал все, как по документации, но пока не работает: procedure TFormMain.PlaySound(const AAssetName: TfgAssetName); var AudioFileUrl: NSURL; Asset: TfgAssetFile; ErrorPtr: Pointer; Error: NSError; Session: AVAudioSession; d: NSTimeInterval; begin if TfgAssetsManager.Current.Find<TfgAssetFile>(AAssetName, Asset) then begin Session := TAVAudioSession.OCClass.sharedInstance; Session.setCategory(AVAudioSessionCategoryPlayback, @ErrorPtr); if ErrorPtr <> nil then begin // Не удалось задать категорию воспроизведения звуков Error := TNSError.Wrap(ErrorPtr); raise Exception.Create(NSStrToStr(Error.localizedDescription)); end; FAudioPlayer := TAVAudioPlayer.Create; AudioFileUrl := StrToNSUrl(Asset.FileName); FAudioPlayer := TAVAudioPlayer.Wrap(FAudioPlayer.initWithContentsOfURL(AudioFileUrl, @ErrorPtr)); if ErrorPtr <> nil then begin // Не удалось открыть файл Error := TNSError.Wrap(ErrorPtr); raise Exception.Create(NSStrToStr(Error.localizedDescription)); end; if FAudioPlayer.prepareToPlay then FAudioPlayer.play; end else raise Exception.CreateFmt('Cannot play sound. Asset is not available: assetName="%s"', [AAssetName]); end; Завтра продолжу. Файл открывается, но не может забуферизироваться.
  4. Download: The distributive is available by request only. Release date: 20 January 2021 Bug Fixes 🐛 If TfgBottomSheetLayout.ContentShadingSettings.Enabled is True, main content was black on the application start. TfgBottomSheet didn't allow to change height in IDE.
  5. Скачать: Релиз доступен только по запросу. Дата релиза: 20 января 2021 Исправление ошибок 🐛 При запуске проекта с TfgBottomSheetLayout.ContentShadingSettings.Enabled = True, основное содержимое сразу и полностью заполняется цветом. В дизайнере невозможно было поменять высоту TfgBottomSheet.
  6. Download: The distributive is available by request only. Release date: 19 January 2021 Loss of backward compatibility 🚨 TfgCanvas The default direction of the gradient is left-to-right instead of top-to-bottom now. TfgBottomSheetLayout We have revised the modal mode of TfgBottomSheetLayout and decided to expand possibility of this component. We introduced 2 new settings group: TfgBottomSheetLayout.ContentShadingSettings - shading settings of main content TfgBottomSheetContent. It allows to specify color of shading and enable/disable it. TfgBottomSheetLayout.BlockContentMode - mode of blocking touch events of main content TfgBottomSheetContent. You can easily tune the modal mode with these settings. At the same time you can do combined modal mode, when main content is available in collapsed sheet mode. You can use TfgBottomSheetLayout.ContentShadingSettings.Enabled = True and TfgBottomSheetLayout.BlockContentMode = WhenCollapsedOrExpanded for emulating old modal mode. New ✨ TfgListMenu We introduced new property to fine-tune the component's color scheme. This settings group doesn't allow set different colors for different menu items since the component follows the concept of Material Design. However, you can now specify the base colors of the scheme and the colors for the separator for the normal display mode of the menu item and the selected one, which was not possible before. In addition, quite often, the icons used in menu items need to be tinted. This could be solved at the assets designer level by simply specifying the desired tint color for an icon. However, the icons used in the menu can be used in other places in practice. In this situation, you had to have two duplicates of the same icon, but with different shades, which certainly increases the size of the application and complicates further editing of resources. The situation is complicated when the color of the icon when selected differs from the color of the icon without selection. The solution to this problem is now succinctly done through a new group of settings Appearance.Icon, which works on the same principle as the similar property of TfgButton. Here you can specify the color of the icon without and with selection. As a result, you only need to have one icon in the resources of this base size for all other places. Clipboard We implemented new crossplatform service FGX.Clipboard.TfgClipboardService for Android and iOS for working with system clipbaord. At the moment, the service allows you to work only with text. To get acquainted with the work of the service, an example is available "System services" -> "Text clipboard". Measure Text The new method TfgCanvas.MeasureText was added for calculation text size. Other Now, if you are using non-implemented components (TfgCalender, TfgVideoControl, TfgSearchEdit, TfgAutocompleteEdit) for iOS, it will not lead to application crash and application will show visual stubs instead. We added new iOS API headers: AVFoundation, CoreMedia and CoreVideo. Improvements 🙌 Themes Despite the fact that the themes have been supported for a long time, they had a number of difficulties associated with the use of custom resource names. Changing the theme automatically worked perfectly for all components that the developer did not specify their resource. However, as soon as any resource was specified (not by default), such a resource was considered independent of the theme and did not change when switching the theme. We fixed this situation and now the resource is bound to the current form topic if the resource is specified from the current form. This allows you to make a full-fledged theme switch for all properties. If the resource is not linked to a topic, then this resource will not change when the form changes the topic. Now we always display the name of the asset used by default for the property even if there is no asset, unless otherwise specified. We decided that this would make it easier to understand what resources the component uses by default. Other We provided two new theme colors to the theme generator: "On Surface" and "On Background" - These are contrasting colors intended for use in elements that use the "Surface" or "Background " color scheme. To get the color data, just re-generate the theme in the asset designer. We added new helpers for TAlphaColor (look at FGX.Types.Color) allowing you to work with color components, perform basic alpha channel transformations, and so on. Optimization for using fonts for painting on canvas TfgCanvas.FillText (Android). Bug Fixes 🐛 TfgCanvas TfgArch with SweepAngle 360 not drawing properly (Android). Fixed drawing with a gradient brush TfgCanvas.Fill and a gradient pen TfgCanvas.Draw (Android). Fixed drawing points with pen TfgCanvas.DrawPoints(s) (Android). Fixed drawing arc with pen TfgCanvas.DrawArc (Android). Fixed polygon filling TfgCanvas.FillPolygon (Android). Fixed drawing of an arc as part of a TfgCanvas.TfgPath (Android). Fixed drawing position of text on canvas TfgCanvas.FillText (iOS). Other TfgArch and TfgArc didn't show correctly round state IsCircle=True, if component's height was greater than width. We fixed wrong declaration of external functions and procedures in iOS API. We fixed delays in alignment system (iOS). The form has right size immediately after creating now (iOS). The bug of extracting file asset was fixed (iOS). If TfgButton used custom icon size Appearance.Icon.Size, it used wrong icon position. The TfgListMenu.OnTapItem event could sometimes not work (iOS). The TfgTrackBar.OnChanging event didn't work (iOS). The TfgTrackBar.OnChanging is not invoked, if ContinuesUpdates = False (Android). The openning form with TfgForm.IsTransparen = True led to crash (iOS).
  7. Скачать: Релиз доступен только по запросу. Дата релиза: 19 января 2021 Потеря обратной совместимости 🚨 TfgCanvas Теперь по умолчанию направление градиента слева-направо, а не сверху-вниз TfgBottomSheetLayout Мы пересмотрели модальный режим работы TfgBottomSheetLayout компонента и решили расширить возможности компонента. Для этого мы ввели две новые группы настроек: TfgBottomSheetLayout.ContentShadingSettings - настройки затемнения основной области содержимого TfgBottomSheetContent, позволяющие указать цвет и включить/выключить отображение затемнения. TfgBottomSheetLayout.BlockContentMode - позволяет указать, когда нужно блокировать доступ к основному содержимому TfgBottomSheetContent. При помощи этих настроек вы можете, как с легкостью настроить модальный режим, так и сделать комбинированный модальный режим при котором основное содержимое будет доступно в Collapsed режиме. Чтобы отобразить страницу в модальном режиме достаточно включить затемнение через TfgBottomSheetLayout.ContentShadingSettings.Enabled = True и блокирование через TfgBottomSheetLayout.BlockContentMode = WhenCollapsedOrExpanded. Новое ✨ TfgListMenu Добавлено новое свойство TfgListMenu.Appearance, которое предназначено для настройки цветовой схемы элементов пунктов меню. Данная группа настроек не позволяет раскрасить в разные цвета все пункты меню, так как компонент следует концепции Material Design, где используется именно общая цветовая схема. Однако, теперь вы можете указать базовые цвета схемы и цвета для разделителя для обычного режима отображения пункта меню и выделенного, чего нельзя было делать ранее. Помимо этого, довольно часто, используемые иконки в пунктах меню, необходимо перекрашивать. Это можно было решить на уровне дизайнера ресурсов, просто указав для иконки нужный оттенок. Однако, используемые в меню иконки могут быть использованы в других местах на практике. В такой ситуации приходилось иметь два дубликата одной и той же иконки, но с разными оттенками, что безусловно увеличивает размер приложения и усложняет дальнейшую правку ресурсов. Ситуация осложняется, когда цвет иконки при выделении отличается от цвета иконки без выделения. Решение данной проблемы теперь лаконично сделано через новую группу настроек Appearance.Icon, работающей по такому же принципу, как и аналогичное свойство у TfgButton. Здесь вы можете указать цвет иконки без и с выделением. В результате вам достаточно иметь всего лишь одну иконку в ресурсах данного базового размера для всех остальных мест. Буфер обмена Реализован новый кроссплатформенный сервис по работе с буфером обмена FGX.Clipboard.TfgClipboardService для Android и iOS. На текущий момент сервис позволяет работать только с текстом. Для ознакомления с работой сервиса доступен пример "Системные сервисы" -> "Текстовый буфер обмена". Замер размера текста Добавлен метод TfgCanvas.MeasureText, позволяющий получить размер текста. Прочее Раньше, использование не реализованных компонентов под iOS (TfgCalender, TfgVideoControl, TfgSearchEdit, TfgAutocompleteEdit), приводило к падению приложения. Теперь приложение не будет падать, а вместо компонентов будет отображаться заглушка с названием класса компонента. Добавлены заголовочные файлы для iOS API: AVFoundation, CoreMedia и CoreVideo. Улучшения 🙌 Темы Не смотря на то, что темы поддерживаются уже давно, с ними был ряд сложностей, связанных с использованием кастомных названий ресурсов. Смена темы автоматически работала отлично для всех компонентов, у которых разработчик не указывал свой ресурс. Однако, как только указывался любой ресурс (не по умолчанию), то такой ресурс считался не зависимым от темы и при переключении темы не менялся. Мы исправили эту ситуацию, и теперь ресурс привязывается к текущей теме формы, если ресурс указывается из текущей формы. Это позволяет сделать полноценное переключение темы для всех свойств. Если же ресурс не привязан к теме, то такой ресурс не будет меняться при смене темы у формы. Теперь мы всегда отображаем название ресурса, используемого по умолчанию у свойства даже если ресурса нет, если другое не указано. Мы решили, что это облегчит понимание какие ресурсы использует компонент по умолчанию. Прочее Добавлены новые два ресурса цвета для темы: "On Surface" и "On Background" - это контрастные цвета, предназначенные для использования отображения элементах, использующих цвета "Surface" или "Background". Чтобы получить данные цвета, достаточно заново сгенерировать тему в дизайнере ресурсов. Добавили дополнительные хелперы для типа TAlphaColor (см. FGX.Types.Color), позволяющие работать с компонентами цвета, выполнять базовые преобразования альфа канала и т.д. Оптимизация использования шрифтов для рисования на холсте TfgCanvas.FillText (Android). Исправление ошибок 🐛 TfgCanvas TfgArch with SweepAngle 360 not drawing properly (iOS). Исправлено рисование градиентной кистью TfgCanvas.Fill и градиентным пером TfgCanvas.Draw (Android). Исправлено рисование точек пером TfgCanvas.DrawPoints(s) (Android). Исправлено рисование дуги пером TfgCanvas.DrawArc (Android). Исправлена заливка полигона TfgCanvas.FillPolygon (Android). Исправлено рисование дуги являющейся частью TfgCanvas.TfgPath (Android). Исправлено положение рисования текста на холсте TfgCanvas.FillText (iOS). Прочее Компоненты TfgArch и TfgArc неверно отображали круглое состояние при IsCircle=True, если высота компонента была больше, чем ширина. Поправили декларации всех внешних процедур и функции iOS API. Исправлены задержки в выравнивании компонентов (iOS). Теперь после создания формы она имеет корректные размеры (iOS). Исправлена ошибка распаковки файла ресурсов (iOS). При указании фиксированного размера иконки в кнопке через Appearance.Icon.Size, неверно центрировалась иконка (Android). Событие TfgListMenu.OnTapItem могло иногда не работать (iOS). Событие TfgTrackBar.OnChanging не работало (iOS). Теперь событие TfgTrackBar.OnChanging не вызывается, если ContinuesUpdates = False (Android). Открытие формы с TfgForm.IsTransparen = True приводило к падению приложения (iOS).
  8. Добрый вечер, Я не понял, в чем проблема. Возможно, она уже поправлена в 1.9.0.0. Но вот ваш код по созданию форм: procedure TFormMain.fgButton1Tap(Sender: TObject); begin // Ярослав. Тут создали новую форм var checklistReelFrame: TchecklistReelFrame; checklistReelFrame := TchecklistReelFrame(self.FindComponent('ChecklistReel_' + Self.ComponentCount.ToString)); if checklistReelFrame = nil then begin checklistReelFrame := tchecklistReelFrame.Create(self); checklistReelFrame.name := 'ChecklistReel_' + 'ChecklistReel_' + Self.ComponentCount.ToString; checklistReelFrame.categoryContinousCard.Visible := false; end; // Ярослав: Тут ее показали на весь экран, главная форма позади. TfgAnimationHelper.ShowForm(checklistReelFrame); // Ярослав: А тут сделали новую вкладку с формой и добавили ее в главную форму. var page := PageControl.AddPage; var checklistContaner := TChecklistContainer.Create(page); checklistContaner.ChecklistReel := self; checklistContaner.PositionMode := TfgPositionMode.Relative; checklistContaner.Alignment.FlexGrow := 1; checklistContaner.FullScreen := false; checklistContaner.Parent := page; checklistContaner.Show; end; Если есть скрины с андроида и йос, буду рад.
  9. В ближайшие дни мы выпустим новый релиз FGX Native 1.9.0.0, в который будет включено большое количество разнообразных улучшений, новых возможностей и исправлений ошибок. TfgBottomSheetLayout Новый компонент, добавленный в 1.8.0.0, имел среди своих возможностей модальный режим отображения страницы. У текущей реализации модального режима есть одно ограничение, которое делает его не очень удобным для использования, а именно: у модального режима нет промежуточной стадии Collapsed (когда панель свернута в корешок, но при этом еще не блокирует основное содержимое). Мы решили разбить модальный режим на группу новых настроек: Настройки затемнения основной области содержимого TfgBottomSheetContent (TfgBottomSheetLayout.ContentShadingSettings). Теперь вы можете включать или отключать затемнение в любой момент времени, а также указать цвет, используемый для затемнения. Эта настройка особенно нужна при поддержке темной темы в вашем приложении. Настройка блокирования взаимодействия с основным содержимым компонента TfgBottomSheetLayout.BlockContentMode. /// <summary> /// <para> /// Режим блокирования получения любых событий основного содержимого <с>TfgBottomSheetContent</c>: /// </para> /// <list> /// <item><b>Never</b> - Никогда.</item> /// <item><b>WhenCollapsedOrExpanded</b> - Когда страница свернута или развернута.</item> /// <item><b>WhenExpanded</b> - Только когда страница разворачивается или развернута.</item> /// </list> /// </summary> TfgBlockContentMode = (Never, WhenCollapsedOrExpanded, WhenExpanded); Теперь при помощи этих двух настроек вы сможете гибко настроить модальный режим. Мы удалили старый метод ShowModal. Чтобы сделать его в 1.9.0.0 достаточно в дизайнере указать две настройки TfgBottomSheetLayout: BlockContentMode = WhenCollapsedOrExpanded ContentShadingSettings.Enabled = True. Буфер обмена Реализован новый кроссплатформенный сервис по работе с системным буфером обмена FGX.Clipboard.TfgClipboardService для Android и iOS. На текущий момент сервис позволяет работать только с текстом. Для ознакомления с работой сервиса доступен пример "Системные сервисы" -> "Текстовый буфер обмена". Темы Несмотря на то, что темы поддерживаются уже давно, с ними был ряд сложностей, связанных с использованием своих названий ресурсов. Смена темы автоматически работала отлично для всех компонентов, у которых разработчик не указывал свой ресурс. Однако, как только указывался любой ресурс (не по умолчанию), то такой ресурс считался независимым от темы и при переключении темы не менялся. Мы исправили эту ситуацию, и теперь ресурс привязывается к текущей теме формы, если ресурс указывается из текущей формы. Это позволяет сделать полноценное переключение темы для всех свойств. Если же ресурс не привязан к теме, то такой ресурс не будет меняться при смене темы у формы. Например, мы хотим кастомизировать оттенок панели навигации и хотим использовать "Dark Primary" цвет вместо "Light Primary". На скриншоте снизу мы указываем ресурс из текущей темы "Theme Light": Если же мы переключаем тему у формы со светлой на темную, наш вручную установленный ресурс оттенка панели теперь уже берет одноименный ресурс из темной темы. Дополнительно, мы решили слега помочь разработчику понять, какие ресурсы компонент использует по умолчанию. Теперь мы всегда отображаем название ресурса, используемого по умолчанию у свойства, даже если ресурса нет (если другое не указано). В старом подходе название ресурса по умолчанию отображалось только, когда в приложении есть тема. Однако, это не очень удобно, так как не дает возможности быстро узнать, какие ресурсы использует компонент по умолчанию и немного усложняет жизнь разработчиков. TfgListMenu Это один из самых старых компонентов и в связи с разными идеями по его улучшению и развитию мы его не трогали. С одной стороны, это довольно удобный компонент для быстрого прототипирования меню, однако, с другой, он был ограничен в ряде настроек, которые позволили его бы слегка подстроить. Поэтому разработчики часто использовали TfgCollectionView вместо TfgListMenu. Мы решили ввести ряд базовых настроек, которые позволяют изменить базовую цветовую схему компонента, для полной совместимости с темами библиотеки. Добавлено новое свойство TfgListMenu.Appearance, которое предназначено для настройки цветовой схемы элементов пунктов меню. Данная группа настроек не позволяет раскрасить в разные цвета все пункты меню. Это связано с тем, что компонент следует концепции Material Design, где используется общая цветовая схема. Однако теперь, вы можете указать базовые цвета схемы и цвета для разделителя для обычного режима отображения пункта меню и выделенного, чего нельзя было делать ранее. Помимо этого, довольно часто, используемые иконки в пунктах меню, необходимо перекрашивать. Это можно было решить на уровне дизайнера ресурсов, просто указав для иконки нужный оттенок. Однако, используемые в меню иконки могут быть использованы в других местах на практике. В такой ситуации приходилось иметь два дубликата одной и той же иконки, но с разными оттенками, что безусловно увеличивает размер приложения и усложняет дальнейшую правку ресурсов. Ситуация осложняется, когда цвет иконки при выделении отличается от цвета иконки без выделения. Решение данной проблемы теперь лаконично сделано через новую группу настроек Appearance.Icon, работающей по такому же принципу, как и аналогичное свойство у TfgButton. Здесь вы можете указать цвет иконки без и с выделением. В результате вам достаточно иметь всего лишь одну иконку в ресурсах данного базового размера для всех остальных мест. Замер размера текста Еще одной из самых часто запрашиваемых возможностей с вашей стороны был функционал по программному замеру размера текста. В 1.9.0.0 появится набор методов у TfgCanvas предназначенных для получения размера текста: function MeasureText(const AText: string; const AMaxWidth: Single; const AIsWordWrap: Boolean): TSizeF; И многое другое... В релиз 1.9.0.0 включено большое количество правок iOS части в части управления формами, выравниванием и тд.
  10. Посмотрю. Первоначальная проблема с выравниванием потенциально исправлено в 1.9.0.0. Да, жесты пока не реализованы.
  11. В релизе 1.9.0.0 добавил хедеры для AVFoundation, в котором находится AVAudioPlayer. Как выйдет релиз, то вот код по воспроизведению аудио файла: uses iOS.Api.AVFoundation, iOS.Api.Helpers, iOS.Api.Foundation; var AudioPlayer: AVAudioPlayer; AudioFileUrl: NSURL; ErrorPtr: Pointer; Error: NSError; begin AudioPlayer := TAVAudioPlayer.Create; AudioFileUrl := StrToNSUrl('Имя файла'); AudioPlayer := TAVAudioPlayer.Wrap(AudioPlayer.initWithContentsOfURL(AudioFileUrl, @ErrorPtr)); if ErrorPtr = nil then begin // Не удалось открыть файл Error := TNSError.Wrap(ErrorPtr); raise Exception.Create(NSStrToStr(Error.localizedDescription)); end else begin AudioPlayer.prepareToPlay; AudioPlayer.play; end;
  12. Можно воспользоваться AVAudioPlayer. Нужно его создать и указать файл. А дальше все как у обычного плейера.
  13. Я вижу, что в папке с примером "CollectionView - Scrolling" почему-то включена собранная версия FGX.Helpers.Android. Этого там точно не должно быть. Надо удалить.
  14. Добрый вечер, Нужно поиском по всему компьютеру поискать FGX.Helpers.Android. Возможно конфликт с FGX for FMX? Это версия для FMX, там есть одноименный модуль.
  15. Если верить информации в интернете, то похоже этот метод был добавлен в libc.so начиная с 23 версии Андроида. А в 10.4 обновили хедеры PThread API. И что-то мне подсказывает, что добавили в хедеры pthread_atfork, которые является синонимом для register_atfork.
  16. Попробуйте поставить более новую версию Android NDK. У вас ошибка динамической линковки, что приложение не может найти "__register_atfork". Это по сути реализация pthread_atfork. FGX Native внутри себя контролирует версию целевого Android и гарантирует, что библиотека будет работать. Однако, библиотека использует RTL, который, возможно, в 10.4 не совместим уже с Androud 5.0 (у меня нет пока информации об этом). В этом случае, уже к сожалению, ничего не сделать. Так как RTL для правок не доступен.
  17. Спасибо. По этому логу все ок. Версия сохранена, поэтому окно не должно показываться.
  18. Hello Michal, It's bug. We will fix it. Thank you
  19. Добрый вечер, Я попозже посмотрю. Скорее всего какая-то проблема в йос реализации.
  20. Download: The distributive is available by request only. Release date: 29 December 2020 Loss of backward compatibility 🚨 Changed the processing logic for HardwareBack button when TfgForm.CloseOnHardwareBack option is enabled: Clicking the button now processes only the active form, and not all forms, as before. Instead of TfgForm.Hide now called TfgForm.Close. If the button click was on the main form and CloseAction is equal to Hide, then the application goes into the background. New ✨ The new property TfgVirtualKeyboard.IsKeyboardShown was added for indicating whether the virtual keyboard is currently open. Added a new TfgForm.Close method to hide or destroy the form. The decision on action with the form is made based on the TfgForm.DefaultCloseAction property or in the TfgForm.OnClose event. Improvements 🙌 Now, using TfgAutoreleasePool, you can lazy destroy objects and interfaces that were not previously placed in the internal storage list. For iOS controls added the ability to manage focus (SetFocus, ResetFocus, IsFocused). Properties ContentPadding, IconName, BorderStyle, SelectAllOnFocus, OnReturnKeyPressed, OnEnter, OnExit and all selection methods were implemented for TfgEdit in iOS. Events OnEnter and OnExit were implemented for TfgMemo in iOS. Events TfgNavigationBar.OnActionButtonTap and TfgNavigationBarButton.OnTap were implemented for iOS. Bug Fixes 🐛 TfgCanvas.FillText method ignored the WordWrap argument to render multiline text. If the property TfgDateEdit.IsEmpty is set to True, it is impossible to select today's date. Property TfgMemo.Text always returned empty string (iOS). The application with TfgButton could crash on iOS. If you use mask in TfgImage, image can be wrong rendered in IDE. The vertical TfgLine was not rendered correctly.
  21. Скачать: Релиз доступен только по запросу. Дата релиза: 29 декабря 2020 Потеря обратной совместимости 🚨 Изменена логика обработки нажатия кнопки HardwareBack при включенной опции TfgForm.CloseOnHardwareBack: Нажатие кнопки теперь обрабатывает только активная форма, а не все формы, как ранее. Вместо TfgForm.Hide вызывается TfgForm.Close. Если нажатие кнопки было на главной форме и CloseAction равен Hide, то приложение уходит на задний план. Новое ✨ Добавлено новое свойство TfgVirtualKeyboard.IsKeyboardShown показывающее открыта ли в данный момент виртуальная клавиатура. Добавлен новый метод TfgForm.Close позволяющий скрыть или разрушить форму. Решение о действии с формой принимается на основании свойства TfgForm.DefaultCloseAction или в событии TfgForm.OnClose. Улучшения 🙌 Теперь с помощью TfgAutoreleasePool можно отложено уничтожать объекты и интерфейсы, которые не были прежде помещены во внутренний список хранения. Для iOS компонентов добавлена возможность управления фокусом (SetFocus, ResetFocus, IsFocused). Реализованы свойства ContentPadding, IconName, BorderStyle, SelectAllOnFocus, OnReturnKeyPressed, OnEnter, OnExit и все методы по работе с выделением для TfgEdit под iOS. Реализованы события OnEnter и OnExit для TfgMemo под iOS. Реализованы события TfgNavigationBar.OnActionButtonTap и TfgNavigationBarButton.OnTap под iOS. Исправление ошибок 🐛 Метод TfgCanvas.FillText игнорировал аргумент WordWrap для отрисовки многострочного текста. При установленном свойстве TfgDateEdit.IsEmpty в True невозможно выбрать сегодняшнюю дату. Свойство TfgMemo.Text всегда возвращало пустую строку iOS. При определенных условия приложение могло упасть при использовании TfgButton под iOS. При использовании маски в TfgImage изображение в компоненте могло неправильно отображаться в дизайнере. TfgLine неверно отображалась верхняя часть вертикальной линии.
×
×
  • Create New...