Перейти к содержанию
Fire Monkey от А до Я

SVTX

Пользователи
  • Постов

    86
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Весь контент SVTX

  1. Забыл указать. Мерцание только на Андроиде. (разные версии от 10-й до 12-той)
  2. Уважаемые эксперты, столкнулся с неприятным мерцанием форм на показе и деактивации после перехода на Александрию 11. Раньше такого не было. Сейчас создал пустой тестовый проект чтобы проверить. procedure TForm1.Button1Click(Sender: TObject); var AForm: TForm1; begin AForm := TForm1.Create(nil); AForm.Show; //мерцание тут OR AForm.ShowModal(procedure(ModalResult: TModalResult) //мерцание тут begin //AForm.Free; end); end; procedure TForm1.Button2Click(Sender: TObject); begin ModalResult := mrOk; //мерцание тут OR Hide; //мерцание тут Close; end; Формы пустые, пробовал разные заливки и что угодно. Оно мерцает и все! А на рабочем проекте просто показывается рабочий стол на полсекунды при любом показе/закрытии новой формы. Подскажите куда копать, не форумах не могу найти ничего.
  3. Slym большая благодарность. Кажется в правильном направлении указали движение. Буду пробовать в работе.
  4. Забывается если не используешь регулярно. Спасибо, уже получилось. Пробую.
  5. не нашел этого метода у TForm FMX (( Вижу, она ушла в protected. Попробую выдернуть.
  6. Я и так и так пробовал. Один корень. Поэтому пока решил что найду правильное решение и потом буду переводить на правильный код. FFrom.Release также генерит ошибку. Такое ощущение что чтото "держит" форму даже после завершения ForceQueue.
  7. Чаще всего глобальная. Спасибо, сейчас буду пробовать!!
  8. Я пробовал даже такой изврат, оно иногда работает, иногда нет, я так понимаю я упускаю чтото концептуальное и делаю неправильно. FFrom := TFrom.Create(nil); TThread.ForceQueue(nil, procedure begin FFrom.ShowModal(procedure(Res: TModalResult) begin //FreeForm(FFrom); //--> и тут получаем кучу ошибок - как правило на Form.Hide почемуто TThread.ForceQueue(nil, procedure begin FForm.Free; end, 100); end); end);
  9. Slym спасибо что откликнулись На IOS а конкретно iPhone 12/13 изменилась архитектура и появился баг с ShowModal. Описано в тикете https://quality.embarcadero.com/browse/RSP-36095 И там описан обходной путь именно как я написал. Он работает, но если очищать форму все ломается. А если не чистить приложение падает через 20 новых созданных форм.
  10. Такое было когда info.plist.TemplateiOS подтянулся из старого проекта. Взял info.plist.TemplateiOS из пустого проекта созданного на новой среде и проблема ушла.
  11. Добрый день уважаемые эксперты. Помогите разобраться с функцией TThread.ForceQueue Пришлось внедрить ее как костыль в IOS для показа модальных форм, и получаем кучу ошибок на очистке памяти. Подскажите кто и как правильно ее использует в работе. Ниже рабочий код который гарантированно приведет к ошибке и у нас таких более 100 мест в проекте. FFrom := TFrom.Create(nil); TThread.ForceQueue(nil, procedure begin FFrom.ShowModal(procedure(Res: TModalResult) begin FreeForm(FFrom); //--> и тут получаем кучу ошибок - как правило на Form.Hide почемуто end); end);
  12. Уважаемый Kami очень прошу помощи. Внедрили в IOS костыль TThread.ForceQueue для ShowModal и получили кучу ошибок как Вы и пишете. Так как Вы явно понимаете суть работы, посмотрите что можно сделать и подскажите. Итак что мы делаем почти везде Надо создать динамически форму, сделать ей ShowModal (для этого используем в IOS TThread.ForceQueue) и освободить форму после завершения. Примерно так. FFrom := TFrom.Create(nil); TThread.ForceQueue(nil, procedure begin FFrom .ShowModal(procedure(Res: TModalResult) begin FreeForm(FFrom); //--> и тут получаем кучу ошибок - как правило на Form.Hide почемуто end); end); Подскажите как с этим борются правильно. Спасибо.
  13. Вау. Спасибо, проверю утром.
  14. Добрый день. На Windows 10 FMX.TWebBrowser не получается запустить в режиме Edge. (из Samples) Что сделано 1) Установлен сам Edge (устанавливал из репозитория Windows) 2) Скачаны dll и положены рядом с exe. 3) Внесены изменения в реестр в ветку FEATURE_BROWSER_EMULATION 4) Проверена работа VCL.TEdgeBrowser - все работает. 5) TWebBrowser в режиме edge не выдает никаких ошибок, просто пустое пространство на месте где должен быть браузен. Подскажите что делаю не так, чтото упускаю из виду. Либо как запустить VCL.TEdgeBrowser на FMX. Благодарю.
  15. SVTX

    Ошибка ShowModal на IOS 15 (IPhone 12/13)

    При запуске многолетнего работающего приложения на новой IOS 15 (IPhone 12/13) полетели все формы. Падает ShowModal форм. Была найдена причина - на IOS 15 используются асинхронные методы. Детально описано тут https://en.delphipraxis.net/topic/5762-showmodal-hangcrashes-on-ios-15-with-iphone-12-13/ Созданы тикет https://quality.embarcadero.com/browse/RSP-36095 Вопрос к нашим экспертам, возможно ктото уже нашел решение как обойти данный баг, прошу помощи и совета так как самого устройства с IOS 15 нет (брали на прокат чтобы поймать баг), а приложение уже ставят на новые девайсы и получают неприятное неработающее приложение.
  16. SVTX

    1 okt 2021

    Ребят всем кто помогал советами больше спасибо!. Удалось все запустить. Итак все проблемы миграции с Delphi 10.3.4 были от 4-x источников. Решение первых двух описано в теме https://en.delphipraxis.net/topic/5627-d11-android-new-app-billing-service/ А именно 1) Обязательно добавить в манифест 2 строки В блоке meta-data <meta-data android:name="com.google.android.play.billingclient.version" android:value="4.0.0" /> и в конце после </activity> <activity android:name="com.android.billingclient.api.ProxyBillingActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 2) Включить BILLING permission в настройках приложения. 3) Далее (не уверен что обязательно) но все источники крайне рекомендуют. - залить на Google Store Alpha или Beta или Рабочую версию. (версия для внутреннего тестирования не подходит) и подождать от 2 часов до суток. 4) И самое важное кто мигрирует с Delphi 10.3.4. В старой версии был баг, когда QueryProducts нужно было вызывать извращенным способом, а проверку IsProductPurchased нужно было проводить в таймере. В Delphi 11 все это пофиксили, и нужно переписать код по канону. - а) вызываем SetupInAppPurchase - б) в событии InAppPurchaseSetupComplete вызываем QueryProducts - в) в любом месте проверяем IsSetupComplete=true and CanMakeInAppPurchases=true и вызываем PurchaseProduct - г) кто менял в файле файл Helpers.pas тип переменной для таймера TinAppPurchased - нужно удалить из проекта измененный файл. Вуаля, все работает. Пользователю Maka респект за советы.
  17. SVTX

    1 okt 2021

    Мака спасибо. Это уже информация. Буду пробовать! Я тоже сомневался куда тег мета добавлять!
  18. SVTX

    1 okt 2021

    Maka это обнадеживает. У меня работает а) SetupInAppPurchase б) QueryProducts в) IsSetupComplete = True г) CanMakeInAppPurchases = True Падает PurchaseProduct. Не затруднит Вам посмотреть код где Вы вызываете PurchaseProduct? Может там какаято инициализация предварительная нужна. Хз уже куда копать, начал писать покупку на нативной жаве (чтобы проверить), но если у Вас работает, то должно работать у всех.
  19. SVTX

    1 okt 2021

    Надеюсь что есть такие специалисты которые подскажут.
  20. SVTX

    1 okt 2021

    Неужели никто из коллектива форума не использует покупки на Андроиде в 11 версии??
  21. SVTX

    1 okt 2021

    Я делал по инструкции по миграции. https://developer.android.com/google/play/billing/migrate Там написано "Удалить разрешениеcom.android.vending.BILLING" Но в любом случае что с этим пунктом что с другим ничего не работает. У вас работает???
  22. SVTX

    1 okt 2021

    Всем добрый день. Таже проблема. После перехода на 11 версию покупки перестали работать. а) добавил в манифест android:name="com.google.android.play.billingclient.version" б) убрал из манифеста BILLING permission (если оставить тоже не работает) в) переопубликовал Альфа версию в Google Play И ничего. Покупки которые раньше работали не работают. "service connection is disconnected". В мануале embarcadero только Sydney. Куда копать, кто подскажет??
  23. Друзья нужна подсказка куда копать. В старом проекте файл classes.dex создавался по канону, делалось merge с classes.dex из поставки и через Deployment заливалось на устройство. Сейчас все теже действия перестали работать. Вопросы - как создавать новый файл classes.dex (какой использовать компилятор, новый D8 или старый DX) - нужно ли делать Merge с файлом из папки папки Android\Debug\Project1.classes\ - есть ли какойто иной путь? Спасибо все кто откликнется
  24. Коллега прошу подсказки. Вы создали classes.dex и смерджили его с Android\Debug\Project1.classes\ верно? А потом подключили его как и раньше через deployment classes.dex?
×
×
  • Создать...