Jump to content

Benten

Members
  • Posts

    121
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by Benten

  1. Нашел такой интересный момент, как настроить доступ  демона gradle через прокси, если блокируются IP адреса -  Accessing the web through a proxy

    Теперь вопрос: А как собственно добавить эти настройки в проект FGX?

    Example 22. Configuring an HTTP proxy using gradle.properties
    systemProp.http.proxyHost=www.somehost.org
    systemProp.http.proxyPort=8080
    systemProp.http.proxyUser=userid
    systemProp.http.proxyPassword=password
    systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost

     

  2. 32 минуты назад, Viktor Akselrod сказал:

    Попробуйте в качестве теста воспользоваться любым VPN сервисом.

    Поэкспериментирую конечно с vpn, но боюсь. что это не поможет.  Java уже обновил до 18 версии.

    Кстати, если удалить папку .gradle и запустить сборку, то будет видно в output, что gradle таки закачивается, но не запускается

    Спойлер

    Build started 23.12.2022 16:08:14.
    __________________________________________________
    Project "C:\Users\yuris\Documents\FGX Native\Samples\PushNotification - Receive\PushNotificationDemo.dproj" (Make target(s)):
    Target _PasCoreCompile:
        c:\program files (x86)\embarcadero\studio\22.0\bin\dccaarm.exe -$O- --no-config -M -Q -TX.so -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults -DDEBUG;;FRAMEWORK_xfm -E.\Android\Debug -I"c:\program files (x86)\embarcadero\studio\22.0\lib\Android\debug";"C:\Android\FGX Native\Libs\280\Android\Debug";"c:\program files (x86)\embarcadero\studio\22.0\lib\Android\Release";"C:\Android\FGX Native\Libs\280\Android\Release";"C:\Android\FGX Native\Libs\Common\Android\Debug\armeabi-v7a" -LEC:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\Android -LNC:\Users\Public\Documents\Embarcadero\Studio\22.0\Dcp\Android -NU.\Android\Debug -NSSystem;Xml;Data;Datasnap;Web;Soap; -O"c:\program files (x86)\embarcadero\studio\22.0\lib\Android\Release";"C:\Android\FGX Native\Libs\280\Android\Release";"C:\Android\FGX Native\Libs\Common\Android\Debug\armeabi-v7a" -R"c:\program files (x86)\embarcadero\studio\22.0\lib\Android\Release";"C:\Android\FGX Native\Libs\280\Android\Release";"C:\Android\FGX Native\Libs\Common\Android\Debug\armeabi-v7a" -U"c:\program files (x86)\embarcadero\studio\22.0\lib\Android\debug";"C:\Android\FGX Native\Libs\280\Android\Debug";"c:\program files (x86)\embarcadero\studio\22.0\lib\Android\Release";"C:\Android\FGX Native\Libs\280\Android\Release";"C:\Android\FGX Native\Libs\Common\Android\Debug\armeabi-v7a" --libpath:C:\Android\NDK\android-ndk-r21\platforms\android-23\arch-arm\usr\lib;C:\Android\NDK\android-ndk-r21\sources\cxx-stl\llvm-libc++\libs\armeabi-v7a --linker:C:\Android\NDK\android-ndk-r21\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe -V -VN -NO.\Android\Debug  PushNotificationDemo.dpr   
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    Time Elapsed 00:00:08.56
    Build started 23.12.2022 16:08:24.
    __________________________________________________
    Project "C:\Users\yuris\Documents\FGX Native\Samples\PushNotification - Receive\PushNotificationDemo.dproj" (Deploy target(s)):
    Target _CleanRemoteDir:
        Cleaning APK Output Directory:  .\Android\Debug\PushNotificationDemo
        c:\program files (x86)\embarcadero\studio\22.0\bin\paclient.exe -u8 --Clean=".\Android\Debug\PushNotificationDemo,C:\Users\yuris\Documents\FGX Native\Samples\PushNotification - Receive\PushNotificationDemo._@emb_.tmp"  
        Platform Assistant Client  Version 13.2.11.7
        Copyright (c) 2010-2022 Embarcadero Technologies, Inc.
        
        Deleting file(s)...
        Total file(s) deleted: 1 file(s)  2 dir(s)
        Deleting file "C:\Users\yuris\Documents\FGX Native\Samples\PushNotification - Receive\PushNotificationDemo._@emb_.tmp".
    Target StripAndroidLibrary:
        Creating directory "C:\Users\yuris\Documents\FGX Native\Samples\PushNotification - Receive\Android\Debug\PushNotificationDemo\debug".
        Copying file from "C:\Users\yuris\Documents\FGX Native\Samples\PushNotification - Receive\Android\Debug\libPushNotificationDemo.so" to "C:\Users\yuris\Documents\FGX Native\Samples\PushNotification - Receive\Android\Debug\PushNotificationDemo\debug\libPushNotificationDemo.so".
        c:\program files (x86)\embarcadero\studio\22.0\bin\paclient.exe -u8 --stripdebug="C:\Android\NDK\android-ndk-r21\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-strip.exe,C:\Users\yuris\Documents\FGX Native\Samples\PushNotification - Receive\Android\Debug\libPushNotificationDemo.so,C:\Users\yuris\Documents\FGX Native\Samples\PushNotification - Receive\.android-build\app\src\main\library\lib\armeabi-v7a\libPushNotificationDemo.so"  
        Platform Assistant Client  Version 13.2.11.7
        Copyright (c) 2010-2022 Embarcadero Technologies, Inc.
        
    Target BuildPackage:
        gradlew app:build
        Downloading https://services.gradle.org/distributions/gradle-7.4-bin.zip
        ...........10%...........20%...........30%...........40%...........50%...........60%...........70%...........80%...........90%...........100%
        
        Welcome to Gradle 7.4!
        
        Here are the highlights of this release:
         - Aggregated test and JaCoCo reports
         - Marking additional test source directories as tests in IntelliJ
         - Support for Adoptium JDKs in Java toolchains
        
        For more details see https://docs.gradle.org/7.4/release-notes.html
        
        Starting a Gradle Daemon (subsequent builds will be faster)
        
        FAILURE: Build failed with an exception.
        
        * Where:
        Build file 'C:\Users\yuris\Documents\FGX Native\Samples\PushNotification - Receive\.android-build\build.gradle' line: 3
        
        * What went wrong:
        Plugin [id: 'com.android.application', version: '7.3.0', apply: false] was not found in any of the following sources:
        
        - Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
        - Plugin Repositories (could not resolve plugin artifact 'com.android.application:com.android.application.gradle.plugin:7.3.0')
          Searched in the following repositories:
            Gradle Central Plugin Repository
            Google
            MavenRepo
        
        * Try:
        > Run with --stacktrace option to get the stack trace.
        > Run with --info or --debug option to get more log output.
        > Run with --scan to get full insights.
        
        * Get more help at https://help.gradle.org
        
        BUILD FAILED in 34s
        C:\Android\FGX Native\MSBuild\FGX.Delphi.Android.Targets(80,5): error MSB3073: The command "gradlew app:build" exited with code 1.
    Done building target "BuildPackage" in project "PushNotificationDemo.dproj" -- FAILED.
    Done building project "PushNotificationDemo.dproj" -- FAILED.
    Build FAILED.
    C:\Android\FGX Native\MSBuild\FGX.Delphi.Android.Targets(80,5): error MSB3073: The command "gradlew app:build" exited with code 1.
        0 Warning(s)
        1 Error(s)
    Time Elapsed 00:00:36.16

     

  3. 21 минуту назад, Yaroslav Brovin сказал:

    TfgAssetsManager

    Методы TfgAssetBitmapSet.FindBitmap теперь возвращают ложь, если существует только информация об изображении без самого изображения (Bitmap = nil). 

    Ярослав, можете дать небольшой фрагмент кода, как это использовать?

  4. 4 минуты назад, Yaroslav Brovin сказал:

    2. Взять лицензию с предыдущей версии

    • Открыть каталог "C:\ProgramData\FGXNative\License"
    • Скопировать файл лицензии от предыдущей версии.
    • Переименовать новый файл согласно текущей версии FGX Native. Например: "1.14.4.1.lcs".
    • Перезапустить/запустить Delphi.

    Ярослав, спасибо, пошел по этому пути, как наиболее простому. Delphi запустилась, проект компилируется.

    Только один вопрос остался, что могут означать вот эти восклицательные знаки?

    img-2022-10-24-16-24-27.png

  5. 1 час назад, Yaroslav Brovin сказал:

    2. Краш на Unbind

    • Какую версию Андроид вы используете?
    • Я вижу, что вы используете эмулятор. Воспроизводится ли проблема на живом устройстве. И если да, то на какой версии Андроида?

    Пробую на разных версиях Андроид и разных устройствах:

    1. Смарт-терминал MSPOS - Андроид 6
    2. Xiomi Redmi 4A - Андроид 6
    3. Эмулятор - Андроид 7
    4. Планшет HUAWEI Андроид 8
    5. Xiomi Mi9T Pro - Android 10

    Эмулятор в видео показан только для наглядности, ошибка везде одинаковая.

    Проблему с версиями SDK, NDK, JDK я исключаю потому что проект FMX  работает корректно

    Или я не прав?

  6. Добрый день, уважаемые разработчики.

    Решил адаптировать подключение к удаленному сервису Андроид на базе стандартного примера Firemonkey из Samples:

    C:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\RemoteServiceDemo

    Мое приложение находится в папке FGXRemoteApp. Подключение к сервису проходит на ура, обмен с сервисом тоже работает, а вот при отключении от сервиса, приложение зависает.

    При этом, аналогичное FMX приложение из папки FMXRemoteApp работает корректно. Удаленный сервис RemoteService запускается через приложение AppRemoteHost

    RemoteServiceDemo.7z

  7. Добрый день.

    Прошу помощи или подсказки разработчиков.

    Столкнулся с интересной ситуацией при работе с несколькими модальными окнами в FGX-Native. Модальные окна показываю с помощью хелпера, как рекомендуют разработчики библиотеки

    TfgAnimationHelper.ShowModalForm(FFormEdit);

    Но какое модальное окно будет сверху зависит от того, какое окно было создано последним. В прилагаемом видео, в первом сценарии создается сначала окно поиска, а затем окно редактирования. В этом случае модальное окно редактирования перекрывает окно поиска и все работает как задумано. Но если сначала создать окно редактирования, а потом окно поиска, то окно поиска перекрывает окно редактирования, как показано во втором сценарии видео. Помогите, пожалуйста, найти ошибку в исходном коде или в библиотеке.

    Видео и контрольный пример прилагается.

     

     

    TestModalForm.7z

    • Like 1
  8. Всем большое спасибо за участие и помощь.  Ларчик просто открывался. Сплиттер реализуется программно тремя строчками кода через обработчик OnTouch

    Ключевой момент заключается в том, что координату касания на сплиттере надо привести к системе координат формы с помощью метода  LocalToForm

    procedure TFrameHalls.LtTableSplitterTouch(Sender: TObject;
      const ATouches: TfgTouches; const AAction: TfgTouchAction;
      var AHandled: Boolean);
    begin
      inherited;
    
      LtTableInfo.BeginUpdate;
      try
        LtTableInfo.Size.Height := TfgControl(Sender).LocalToForm(ATouches[0].Location).Y;
        LtTableInfo.Realign;
      finally
        LtTableInfo.EndUpdate;
      end;
    
      AHandled := True;
    end;

     

    • Like 4
  9. 4 минуты назад, knsg12 сказал:

    Вот рабочий пример на FGX TfgBottomSheetLayout.

    Это совсем не то.  У вас меню имеет два фиксированных размера, либо оно заданной высоты, либо скрыто.

    А вы сделайте, чтобы меню было с плавающей высотой.

    P.S.  Кстати, вы тоже пишите мобильного официанта? 😀

  10. Второй день мучаюсь с этим сплиттером, не выходит красиво и плавно через OnTouch.

    В конце концов, в FMX  такой сплиттер и много чего еще есть.

    Чем тогда FGX-Native лучше FMX?  Только удобным Assets менеджером?

  11. 23 минуты назад, knsg12 сказал:

    Возможно он отличается чем то, только из-за того что был реализован в другой среде. А в принципе такое поведение возможно реализовать в FGX

    @knsg12  я и реализовал в FGX через событие OnTouch на разделителе между компонентами btnTableSplitterTouch (см. первый отрезок видео в первом посте), но получается очень дёрганно, не хватает плавности и скорости перемещения сплиттера.

    Может кто-то поможет в этом вопросе, как сделать отработку сплиттера более плавной и быстрой с помощью события btnTableSplitterTouch?

  12. 19 минут назад, Stas сказал:

    Честно скажу, я не помню, чтобы видел такое в мобильных приложениях.

    Посмотрите мое видео выше, там используется сплиттер во втором приложении, при этом приложение очень популярное в РФ.

    Да и насчет небольшого экрана в корне не согласен, у меня приложуха должна работать на планшетах 10-11". Скажу больше, мне еще и вертикальный сплиттер нужен.

  13. Добрый день!

    Посмотрел внимательнее компонент TfgBottomSheetLayout. Не подходит, слишком много ограничений.

    Во-первых, расположение  выдвигающегося TfgBottomSheet только внизу, а мне надо вверху.

    Во-вторых, TfgBottomSheet имеет только две фиксированные высоты - PickHeight и Height, а мне нужна плавающая высота выдвигающегося компонента

    Плавность и анимация TfgBottomSheetLayout конечно на высоте, но этого мало.  Нужен полноценный компонент.  Очень странно, что такой распространенный компонент, как TfgSplitter, до сих пор никому не понадобился. Вот я и подумал, может разработчики обходятся каким-то другим способом, про который я не знаю?

  14. Добрый день.

    Прошу добавить в библиотеку компонент Splitter или подскажите, как его реализовать имеющимися средствами?

    В настоящий момент я попробовал сделать вот так, но получается криво. Для сравнения я показываю как плавно и быстро работает сплиттер в похожем приложении

    procedure TFrameHalls.btnTableSplitterTouch(Sender: TObject;
      const ATouches: TfgTouches; const AAction: TfgTouchAction;
      var AHandled: Boolean);
    begin
      inherited;
      if AAction = TfgTouchAction.Down then
      begin
        LtTableInfo.Tag := Trunc(LtTableInfo.Size.Height);    // Начальная высота верхней панели
        LtTableSplitter.Tag := Trunc(ATouches[0].Location.Y); // Начальное смещение касания сплиттера
      end else
      if AAction = TfgTouchAction.Up then
      begin
        LtTableInfo.Tag := 0;
        LtTableSplitter.Tag := 0;
      end else
      if AAction = TfgTouchAction.Move then
      begin
        sbTables.BeginUpdate;
        try
          LtTableInfo.Size.Height := LtTableInfo.Tag + Trunc(ATouches[0].Location.Y) - LtTableSplitter.Tag;
          sbTables.Realign;
        finally
          sbTables.EndUpdate;
        end;
      end;
    
    end;

     

×
×
  • Create New...