Everything posted by Yaroslav Brovin
-
Распознование QR кодов
План на ближайшие релизы такой: Расширение функционала карт: полигоны и полилинии Пуш уведомления. Сканер бар кодов.
-
1.0.4.0
Скачать: Релиз доступен только по запросу. Дата релиза: 20 января 2020 Список изменений: [1.0.4.0] 20.01.2020 * Улучшения в TfgForm: - #416 Добавить настройку для формы для отключения закрытия по кнопке HardwareBack Добавлена настройка TfgForm.CloseOnHardwareBack позволяющая отключать автоматическое закрытие формы по кнопке vkHardwareBack. https://gitlab.com/y.brovin/fgx/issues/416 * Исправление демо проектов: - Анимация -> Открытие/Закрытие дочерних форм. Добавлено закрытие дочерней формы по кнопке назад. - Анимация -> Открытие/Закрытие модальных форм. Добавлено закрытие модальной формы по кнопке назад. #415 [Demo] AnimationModalFormdemo. При использовании кнопки бек закрывается дочерняя форма https://gitlab.com/y.brovin/fgx/issues/415 * Улучшения в TfgBitmap: - Исправлена ошибка, которая не позволяла задать размер битмапа по очередно для каждой стороны. * Улучшения в TfgCanvas: - Исправлена ошибка использования неверного масштаба при отрисовке примитивов на TfgBitmap. - Исправлена ошибка реализации метода: DrawBitmap(const ABitmap: TfgBitmap; const ALeft: Single; const ATop: Single) В результате которой неправильно вычислялась область вывода изображения (игнорировался коэффициент масштабирования битмапа). * Улучшения в TfgControl: - При создании TfgCollectionView в рантайме, возникала ошибка. Теперь это исправлено. - При ручном создании компонентов не все свойства TfgControl синхронизировались с нативным контролом. Это исправлено. * Улучшение дизайнера: - Убраны зависимости от VirtualTreeView и PngComponents, которые приводили к конфликту библиотеки FGX Native с аналогичными библиотеками, уже установленными у пользователя.
-
Как в runtime создать TfgCollectionView?
Исправлено в 1.0.4.0.
-
Как в runtime создать TfgCollectionView?
Ошибку воспроизвел. Будет исправлена в следующем релизе 1.0.4.0.
-
[TfgBitmap] При отрисовки примитивов на канве битмапа используется неверный масштаб
Канва выводит битмап TfgBitmap с учетом коэффициента масштабирования, заданного в TfgBitmap.Scale. Именно этот коэффициент отвечает за то, как точки битмапа будут выводится на канве. По умолчанию TfgBitmap.Scale равен 1. Поэтому при выводе вашего изображения используется логический размер битмапа. То есть одна точка битмапа может занимать на канве сразу несколько физических точек экрана. Я обнаружил ошибку в реализации метода вывода битмапа на канву, из-за чего наблюдается неверное масштабирование. Это исправлено в 1.0.4.0. Пока, к сожалению, скейл экрана можно получить только у хелпера FGX.Helpers.Android.TfgAndroidHelper.ScreenScale. Позже будет отдельный кроссплатформенный сервис TfgScreen. Окончательный правильный вариант буферизации изображения будет выглядеть так: Физический размер битмап всегда задаем с учетом физического размера экрана. Для правильного масштабирования изображения при выводе. Чтобы одна точка изображения выводилась строго на одну точку экрана, нужно задать TfgBitmap.Scale. var Buffer: TfgBitmap; begin try Buffer := TfgBitmap.Create; Buffer.Size := TSizeF.Create(fgPaintBox1.Width * TfgAndroidHelper.ScreenScale, fgPaintBox1.Height * TfgAndroidHelper.ScreenScale).Round; Buffer.Scale := TfgAndroidHelper.ScreenScale; Buffer.Canvas.FillColor(TAlphaColorRec.Gray); Buffer.Canvas.Stroke.Kind := TfgBrushKind.Solid; Buffer.Canvas.Stroke.Color := TAlphaColorRec.Red; Buffer.Canvas.Stroke.Thickness := 10; Buffer.Canvas.Fill.Kind := TfgBrushKind.Solid; Buffer.Canvas.Fill.Color := TAlphaColorRec.Yellow; Buffer.Canvas.DrawCircle(Buffer.Width / 2, Buffer.Height / 2, Buffer.Width / 2); ACanvas.DrawBitmap(Buffer, 0, 0); finally Buffer.DisposeOf; Buffer := nil; end; end; Действительно, при отрисовки примитивов на битмапе неверно использовался масштаб, поэтому скейл битмапа игнорировался и всегда использовался скейл экрана. Исправлено в 1.0.4.0.
-
[TfgBitmap] Возникает исключение при последовательном задании размеров
Действительно, было сделано так, чтобы битмап не мог иметь нулевой размер. Это связано с ограничением Андроида. Но нет проблемы, чтобы удалять нативный битмап, если размер по одной стороне нулевой. Исправлено в 1.0.4.0.
-
[TfgMap] Добавить возможность добавлять свои полигоны
Над полигонами уже работаем. В следующем релизе уже будут.
-
Не могу установить триальную версию
Добрый вечер, Эта ошибка связана с ошибкой в апдейте 10.3. В RTL поломали совместимость юнитов. Чтобы ее исправить, Embarcadero выпускали хотфикс, его надо установить. Статья Марко Канту об этой проблеме: http://blog.marcocantu.com/blog/2019-august-1032-runtime-packages-patch.html Скачать хотфикс: https://cc.embarcadero.com/item/30886
-
[TfgMap] Добавить возможность добавлять свои полигоны
Из необходимого минимум, что? Только полигоны? Есть три важные направления, которые нужно сделать в ближайшее время: Пуш уведомления Сервисы Карты Сейчас я занимаюсь пуш уведомлениями, Виктор занят другими задачами. Поэтому я хочу понять объем работ, так как по картам есть разные направления. Можно рассмотреть добавление необходимого минимума. Чтобы не блокировать выполнений задач и постепенно добавлять функционал
-
Общие вопросы, и первое знакомство.
Собственно вот вам в помощь: https://developers.google.com/youtube/v3/docs
-
Общие вопросы, и первое знакомство.
Компонент НЕ работает с какими-то конкретными стриминговыми сервисами. Он воспроизводит видео из переданного потока. Если у вас есть ссылка на этот поток, то компонент его должен воспроизвести. На вопрос, как получить видео поток, вам следует обратиться в раздел для разработчиков сервиса Google YouTube.
-
Общие вопросы, и первое знакомство.
Что именно я не проверял? Вы понимаете, что такое "стриминговый сервис" и, что такое "видео поток"?
-
Общие вопросы, и первое знакомство.
Добрый день, В описании компонента заявлено воспроизведение видео потока, а не поддержка "Стриминговых сервисов". То есть вы скармливаете URL на ваш видео поток и компонент его воспроизводит. При этом поддерживаемые форматы зависят от их поддержки на уровне операционной системы Андроид. Так как именно она отвечает за то, какие форматы она поддерживает. Чтобы попробовать воспроизвести поток есть бесплатная Trial сборка. Скачайте, установите, передайте ссылку на ваш видео поток и проверьте.
-
Эмуляторы
Ветку я сделал, только я не понял, что вы планируете там обсуждать.
-
1.0.3.0
Скачать: Релиз доступен только по запросу. Дата релиза: 11 января 2020 Список изменений: * Внимание! - В этой версии обновлен шаблон манифеста Андроид приложения. Если вы используете старый Android SDK (который идет в поставке среды), то возможно приложение с новым манифестом не соберется. В этом случае нужно обновить версию Android SDK до одной из последних. * Улучшения в TfgCollectionView: - #335 [TfgCollectionView] Предлагаю добавить поддержку колонок. Добавлено новое свойство ColumnsCount, позволяющее указать, количество колонок по которым должны размещаться элементы. https://gitlab.com/y.brovin/fgx/issues/335 * Улучшения в TfgForm: - Добавлено новое свойство Transparent, которое позволяет отключить фон формы. - Исправлена ошибка, которая приводила к тому, что форма была прозрачной на touch касания. Это приводило к тому, что могли срабатывать компоненты, расположенные позади формы. * Улучшения в TfgBitmap: - Исправлена ошибка в методе сохранения битмапа в файл SaveToFile. В результате чего итоговый файл мог быть пустым. * Улучшения в компонентах "Графический примитив": - Кисти закраски и рисования позволяют использовать ресурс с цветом. Однако он не использовался при отрисовке. Теперь это исправлено. * Улучшения в подддержке тем: - #410 [TfgForm] добавить для формы возможность указывать название используемой темы Для формы добавлено свойство ThemeName, позволяющее указать название используемой темы. Если значение не указно, то всяй форма использует тему по умолчанию Theme. https://gitlab.com/y.brovin/fgx/issues/410 * Обновление заголовочных файлов Android Api: - Добавлены обертки для android.content.ClipData* * Новые демо проекты: - Форма -> Фреймы. - Компоненты -> TfgCollectionView -> Размещение элементов по столбцам. - Ресурсы -> Темы -> Использование нескольких тем. * Исправление демо проектов: - Компоненты -> TfgCamera -> Фотокамера. В настройках проекта не были проставлены разрешения на доступ к камере. Поэтому при старте доступ к камере сразу же отклонялся. * #409 Добавить в шаблон манифеста android:usesCleartextTraffic="true" https://gitlab.com/y.brovin/fgx/issues/409 * Улучшения в дизайнере: - Ранее компоненты не были доступны в Pallette, если для проекта была выбрана платформа Android 64 bit. - В дизайнер ассетов добавлен пункт меню для импорта изображений из папки иконок, взятых с сайта material.io. #412 [Assets] Добавить в контекстное меню импорт папки с иконками https://gitlab.com/y.brovin/fgx/issues/412
-
[TfgOpenDialog] Диалог выбора файлов или каталогов
P.S. Не забываем про правила форума. Одна тема - один вопрос.
-
[TfgOpenDialog] Диалог выбора файлов или каталогов
Ничего не понял.
-
[TfgForm] Срабатывает события неактивной формы
Исправлено в 1.0.3.0.
-
[TfgOpenDialog] Диалог выбора файлов или каталогов
Через часик релиз выложу. На будущее. Обертки для Android API я генерирую обычно по мере необходимости. Если в будущем вам будет чего-то не хватать в них, дайте мне знать. Я их сразу добавлю. В будущем будет доступна специальная тулза, которая генерирует эти хедеры.
- Not permitted в паре примеров из Release 1.0.2.0
-
[TfgBitmap] При сохранении TfgBitmap в файл получаю пустой файл
Исправлено в 1.0.3.0.
-
[TfgOpenDialog] Диалог выбора файлов или каталогов
В релизе 1.0.3.0 в хедеры AndroidAPI добавлены оболочки для типа TJClipData_Item. Теперь эти методы будут доступны.
-
[TfgOpenDialog] Диалог выбора файлов или каталогов
В FGX Native в андроид реализации идет широковещательная рассылка двух сообщений (FGX.Platform.Android). На них (в соответствии с тем, что вам нужно) надо подписаться через System.Messaging: TfgActivityResultMessage = class(TMessage) public RequestCode: Integer; ResultCode: Integer; Data: TJIntent; end; TfgActivityNewIntentMessage = class(TMessage<TJIntent>);
-
[TfgCollectionView] При выделении элемента списка наблюдается небольшое смещение контента
Ошибку поймал. Буду думать. У меня правда не так явно, как у вас. Наблюдается легкое смещение, но у меня есть идеи почему так происходит.
-
Общая просьба
Это часть слоя данных. И это не является задачей UI фреймворка. Без разницы, как и каким способом вы данные получаете. Нужен Json, используйте JSON из RTL. Нужен доступ к базе - FireDAC или другие компоненты доступа к данным. В поставке есть пример асинхронной загрузки изображений "Ресурсы -> Изображения -> Асинхронная загрузка по URI". Ничто не мешает в списках при связывании данных делать тоже самое. Просто по мере связывания данных в TfgCollectionView.OnBindItem добавляете в менеджер ассетов изображение по URL, генерируете уникальное имя и присваиваете его в TfgImage. Как вы могли заметить, далее все произойдет автоматически. как только картинка будет готова, она сразу же отобразиться в TfgImage. И это большой бонус для разработчиков. Собственно среди примеров есть примеры по работе со списком. Так же в TfgCollectionView добавлен набор готовых шаблонов-стилей элементов. Чтобы можно было сразу сделать готовые стили. Если вам нужны TfgCardPanel, так и бросьте его внутрь стиля элемента. Связь с данными уже рассмотрена среди примеров. На вашем скрине выше тут есть и кнопки, и метки, и изображения. Все это надо оформить в виде стиля элемента. И в коде OnBindItem связать. Основная сложность здесь - это Flexbox. Но ссылки на изучение флекс бокса в полной мере я дал в документации. Это самая сложная часть, но как только вы ее освоите, вы сможете с легкость делать такие и более сложные интерфейсы за 30-60 минут. Если у вас есть конкретные вопросы по TfgCollectionView или FlexBox, задавайте, я с удовольствием на них отвечу. Единственное, чего пока нету в TfgCollectionView - это отображение элементов по сетке. Но я обещаю, что я добавлю эту поддержку в ближайших версиях (Я сейчас над этим работаю). Так же предлагаю закончить эту бесконечную тему. Где каждый пишет все подряд и следовать правилам форума - одна тема - один вопрос. А то пользы от таких огромных топиков очень сомнительна. Выложил демонстрационный пример с вебинара: