-
Posts
132 -
Joined
-
Last visited
-
Days Won
11
Content Type
Profiles
Forums
Events
Store
Blogs
Everything posted by Александр Клопоцкий
-
Название приложения: Фаберлик Подарки Платформа: Android 32 bit, Android 64 bit Поддерживаемые версии ОС: Android 5.0 и новее Необходимое свободное место: до 80 Мб Описание: Приложение "Фаберлик Подарки" предназначено для для сопровождения постоянных покупателей продукции Фаберлик. Приложение соединяется с базой данных MySQL на обычном хостинге сайта. Для подключения использую компоненты UniDAC, SecureBridge. Каждому скачиванию присваивается порядковый номер, сохраняется в телефоне, по нему отбираются и показываются сообщения чата для данного клиента. При приходе сообщения делаю "Local notification" из примера. Программа администрирования на Delphi 10.4.1 VCL компонентах. Ссылка на приложение: https://play.google.com/store/apps/details?id=faberlic24.by
-
1. Удалил версию FGX-Native 1.7.1. Удалились папки: C:\Document and Settings\User\Local Setting\FGX Native\ C:\Users\User\AppData\Local\FGX Native\ 2. Поставил версию FGX-Native 1.8.0. Выбрал - только RADStudio 10.4, - только Android. По новой создались папки: C:\Document and Settings\User\Local Setting\FGX Native\ C:\Users\User\AppData\Local\FGX Native\ 3. Открываю пример: CollectionViewScrollDemo. Компилирую - Ошибка: [DCC Fatal Error] FGX.Platform.pas(195): F2051 Unit FGX.Assets.Android was compiled with a different version of FGX.Helpers.Android.JStringToString Делал полный "Build All Projects", та же ошибка. Где сохранились файлы библиотеки от старой версии? Полный текст компиляции примера CollectionViewScrollDemo: Checking project dependencies... Compiling CollectionViewScrollDemo.dproj (Debug, Android) brcc32 command line for "CollectionViewScrollDemo.vrc" c:\delphi\bin\cgrc.exe -c65001 "CollectionViewScrollDemo.vrc" -foCollectionViewScrollDemo.res dccaarm command line for "CollectionViewScrollDemo.dpr" c:\delphi\bin\dccaarm.exe -$O- --no-config -M -Q -TX.so -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults -DDEBUG -E.\Android\Debug -Ic:\delphi\lib\Android\debug;"C:\Users\User\AppData\Local\FGX Native\Libs\270\Android\Debug";c:\delphi\lib\Android\Release; C:\Delphi\Add\UniDAC\Lib\Android32;C:\Delphi\Add\SecureBridg\Lib\Android32;"C:\Users\User\AppData\Local\FGX Native\Sources"; "C:\Users\User\AppData\Local\FGX Native\Libs\270\Android\Release";"C:\Users\User\AppData\Local\FGX Native\Libs\Common\Android\Debug\armeabi-v7a" -LEC:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Android -LNC:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Android -NU.\Android\Debug -NSSystem;Xml;Data;Datasnap;Web;Soap; -Oc:\delphi\lib\Android\Release;C:\Delphi\Add\UniDAC\Lib\Android32;C:\Delphi\Add\SecureBridg\Lib\Android32; "C:\Users\User\AppData\Local\FGX Native\Sources";"C:\Users\User\AppData\Local\FGX Native\Libs\270\Android\Release";"C:\Users\User\AppData\Local\FGX Native\Libs\Common\Android\Debug\armeabi-v7a" -Rc:\delphi\lib\Android\Release;C:\Delphi\Add\UniDAC\Lib\Android32; C:\Delphi\Add\SecureBridg\Lib\Android32;"C:\Users\User\AppData\Local\FGX Native\Sources";"C:\Users\User\AppData\Local\FGX Native\Libs\270\Android\Release";"C:\Users\User\AppData\Local\FGX Native\Libs\Common\Android\Debug\armeabi-v7a" -Uc:\delphi\lib\Android\debug; "C:\Users\User\AppData\Local\FGX Native\Libs\270\Android\Debug";c:\delphi\lib\Android\Release;C:\Delphi\Add\UniDAC\Lib\Android32; C:\Delphi\Add\SecureBridg\Lib\Android32;"C:\Users\User\AppData\Local\FGX Native\Sources";"C:\Users\User\AppData\Local\FGX Native\Libs\270\Android\Release";"C:\Users\User\AppData\Local\FGX Native\Libs\Common\Android\Debug\armeabi-v7a" --libpath:C:\Development\android-ndk-r21d\sources\cxx-stl\llvm-libc++\libs\armeabi-v7a; C:\Development\android-ndk-r21d\platforms\android-23\arch-arm\usr\lib --linker:C:\Development\android-ndk-r21d\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe -V -VN -NO.\Android\Debug CollectionViewScrollDemo.dpr [DCC Fatal Error] FGX.Platform.pas(195): F2051 Unit FGX.Assets.Android was compiled with a different version of FGX.Helpers.Android.JStringToString Failed Elapsed time: 00:00:41.4 Даты создания файлов примера:
-
Все классы, связанные с анимацией перенесли в Android.Api.Animations. (В описании выше: Android.Api.Animation.)
-
В форме fmCatalog по событию OnSafeAreaChanged опускаю панель навигации (TfgLayout) под системную панель: procedure TfmCatalog.fgFormSafeAreaChanged(Sender: TObject; const AScreenInsets: TRectF); begin loNav.Size.Height := AScreenInsets.Top + 56; loNav.Padding.Top := AScreenInsets.Top; loNav.Realign; end; В версии 1.5.3 - панель опускалась: В версии 1.6.0 - панель не опускается. Возможно AScreenInsets - не может получить значение. Код не менял, скомпилировал под 1.6.0, как исправить? :
- 1 reply
-
- 1
-
tfgdrawerlayout [TfgDrawerLayout] не реагирует на OnTap
Александр Клопоцкий replied to Александр Клопоцкий's topic in Closed
Да, верно. Поставил у метки: HitTest = True, и метка стала реагировать на событие OnTap. -
tfgdrawerlayout [TfgDrawerLayout] не реагирует на OnTap
Александр Клопоцкий posted a topic in Closed
В версии 1.4.1.1 перестал работать TfgDrawerLayout. Демо-пример: "DrawerDemo". На Drawer панеле, в текстовой метке fgLabel2 прописал событие OnTap: procedure TForm4.fgLabel2Tap(Sender: TObject); begin fgDrawerLayout1.Close(True); end; Нажимаю на текстовую метку, и нет реакции, не отрабатывает. -
Первая версия каталога, которая работала пару месяцев, у меня была сделана по "демо проекту": "Ресурсы" -> "Изображения" -> "Асинхронная загрузка изображения по URI". На хостинг я выкладывал новые *.jpg страниц каталога, и они открывались в приложении без обновления приложения. Это тот способ обновления, который использует официальное приложение от компании "Фаберлик". Приложение по размеру маленькое, все тащит через интернет. Навигация по страницам каталога: "<< Первая", "< Предыдущая", "Следующая >", "Последняя >>" и "Введите номер", какую страницу показать. Про клиентов приложения - это девушки, которые выбирают товар, рекламируют, продают его везде и всегда, "сетевики", ну и новые клиенты, которые готовы листать этот каталог вдоль и поперек часами, выискивая выгодные цены. Они часто листают каталог, где нет хорошего интернета, за городом, на даче, на шашлыках, и туалете, в автобусе, и им надо быстро сразу весь каталог полистать взад - вперед и увеличить где нужно. Я предложил им второй вариант, где каталог жестко зашит в "Assets Manager". Размер приложения сразу увеличился с 15 Mb до 65 Mb, но зато теперь каталог всегда с ними и они его могут всегда "кручу - верчу - смотрю как хочу", он у них летает. Для обновления в начале каталога нажимают ссылку на "Google Play" и обновляются без проблем. Знают число, когда каталог меняется и я рассылаю по "демо проекту": "Push-уведомления" -> "Получение Push-уведомления" - "Новый каталог, обновите приложение!". Им этот вариант однозначно больше нравиться. Они ведь всегда по причине нестабильного интернета скачивали себе в "Галерею" каталог в виде фото, это 300 *.jpg рисунков разрешения 902 x 1352. Каталог менялся, "Галерея" засорялась, они уже путались, это в "Галерее" новый каталог или старый, чистить не все умели, памяти со временем не хватало. А при обновлении приложения старый каталог гарантированно уйдет из памяти телефона и заменится новым, и не надо "Галерею" чистить потому как каталог в приложении. Ну и насчет памяти, в смысле стремления сделать приложение как можно меньшего размера. Это как с ассемблером, где каждый байт экономили, по тому как раньше объемы памяти были очень ограниченные. Сейчас памяти становиться много, экономить уже не нужно, ограничение это уже снимается, важным становиться удобство использования. Эта ошибка "нехватка памяти" при листании, которую я привел выше возникала на "дохлом" телефоне "Xiaomi Redmi Note 3" без включенной "выгрузки из памяти". В хороших последних телефонах она не возникает даже при выключенной "выгрузки из памяти", хватает памяти загрузить весь "Assets Manager" и листать его. Здесь выбор: Приложение либо универсальное, маленькое но медленное, которое обновлять не надо – Либо не универсальное, большое но быстрое, которое обновлять надо. Мои пользователи однозначно выбрали второе.
-
Спасибо "sinuke" https://forum.fgx-native.com/profile/7-sinuke/ за публикацию проекта "Проверка контрольных знаков" и исходного кода в общий доступ: https://github.com/sinuke/excises Там я смотрел, как правильно добавлять, вызывать и закрывать дополнительные формы в свой проект. Эту тему можно вынести и на вебинары по обзору возможностей библиотеки. Добавил вызов формы просмотра выбранной страницы каталога: procedure TfmCatalog.ShowCatalogPage; begin fmCatalogPage := TfmCatalogPage.Create(Self); fmCatalogPage.IsAnimating := True; TfgAnimationHelper.ShowForm(fmCatalogPage, [TfgAnimationOption.StartFromCurrent], ANIMATION_DIRATION, procedure begin fmCatalogPage.IsAnimating := False; end); end; По "демо проекту": "Компоненты" -> "TfgCollectionView" -> "Выделение" сделал вызов формы просмотра выделенной страницы каталога: procedure TfmCatalog.cvCatSelectionChanged(Sender: TObject; const ASelectedItems: TArray<System.Integer>); var ItemIndex: Integer; begin for ItemIndex in ASelectedItems do begin CatalogPage := ItemIndex + 1; ShowCatalogPage; end; end; По "демо проекту": "Жесты" -> "Жест "Zoom" - увеличение масштаба" без изменения кода примера добавил функционал просмотра страницы каталога с Zoom: procedure TfmCatalogPage.imCatPageZoom(Sender: TObject; const AZoomInfo: TfgZoomInfo); begin if AZoomInfo.Phase = TfgGesturePhase.&InProgress then begin imCatPage.PositionMode := TfgImage.DefaultPositionMode; imCatPage.Size.SetSizeF(AZoomInfo.InitialSize.cx * AzoomInfo.Scale, AZoomInfo.InitialSize.cy * AzoomInfo.Scale); imCatPage.Position.Point := imCatPage.LocalToForm(AZoomInfo.Focus) - AZoomInfo.InitialFocus * AzoomInfo.Scale; imCatPage.Realign; end; end;
-
По "демо проекту": "Ресурсы" -> "Изображения" -> "Выгрузка изображений из памяти" сделал каталог. В "Assets Manager" загрузил изображения 292 страниц каталога. Без включения выгрузки из памяти, при прокрутке на 26 странице возникает ошибка нехватки памяти. После включения выгрузки из памяти прокручиваются все 292 страницы. Спасибо, прекрасно работает! TfgAssetsManager.Current.AutoreleaseOptions.Enabled := True;
-
У меня подписка до 05.04.2020. Буду ждать счет.
-
Если в демо проекте "GestureZoom" рисунок fgImage1 разместить на странице fgPageControl1, то при каждом увеличении опять есть продергивания. Каждый раз при увеличении рисунок возвращается в центр страницы. Хочу сделать каталог, страницы каталога fgImage1 на страницах fgPageControl1, чтобы пользователь мог листать и увеличивать страница каталога.
-
Отозвался ваш проект. Когда нажимаю на место текстовой метки, она окрашивается цветом fgLabel.LinkColor и идет переход по адресу ссылки, после возвращения в приложение ссылка уже видна. Похоже fgLabel подхватывает цвет только в момент обращения к ней. Если в текстовой метке свойство LinksTypes.WebLinks := False, то она "не кликабельна", в fgLabel применяется цвет fgLabel.Color. Когда мы присваиваем свойство LinksTypes.WebLinks := True, то она становится "кликабельна", ожидает нажатия на себя, но fgLabel еще не применяет цвет fgLabel.LinkColor, и уже не применяет цвет fgLabel.Color. (цвету текста метки присваивается цвет фона). И только когда мы нажмем на нее, по нажатию переопределяется цвет метки на fgLabel.LinkColor. VID_20200123_085838.mp4
-
Запустил ваш "LabelLinkDemo.zip". Тоже, в текстовой метке при "LinksTypes.WebLinks := True" текст метки не отображается. Если в текстовой метке убираю это свойство "LinksTypes.WebLinks := False", то текст метки отображается. Записал я загрузку проекта в телефон на видео: Возможно у меня телефон древний: "Xiaomi Redmi Note 3 Pro":
-
Хочу сделать текстовую метку TfgLabel - ссылкой. Выставляю свойство LinksTypes.WebLinks := True. При загрузке приложения в телефон, текст метки не виден, белый. При нажатии на нее идет переход по адресу ссылки, ссылка работает, но подпись, которая в TfgLabel.Text не отображается. Если свойство LinksTypes.WebLinks := False, убрать ссылку и оставить простую текстовую метку, при загрузке приложения в телефон она видна. Как сделать, чтобы текстовая метка TfgLabel была ссылкой, и текст метки отображался установленным цветом?
-
В библиотеке есть пример: "DrawerDemo". Там на fgNavigationBar1 иконка "Гамбургера", при нажатии на которую выдвигается "Drawer". В "FGX Assets manager" видно как иконка подключается: Иконку для своего приложения можно взять из папки примера: Меню (TfgListMenu или TfgCollectionView) размещаем на "Drawer".