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

SVTX

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

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

  • Посещение

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

    4

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

  1. Появилась следующая проблема. Андроид приложение. На форме лежит TEdit. По клику по нему открывается клавиатура для ввода, все работает нормально. Вызываем модально вторую форму. Закрываем. И тут возникает непонятная ошибка. Клики по TEdit ни к чему не приводят. Текст внутри него выделяется, но каретки нет и клавиатура не появляется. Редактировать невозможно. Если по MouseUP вызвать клавиатуру для данного TEdit принудительно - то текст вводится но каретки как такой нету. Кто сталкивался и как лечить? Спасибо.
  2. Да конечно. https://myhealth.catawbavalleymc.org К сожалению средствами Delphi X6 победить данную проблему не получилось. Переписывались исходники всего FMX.WebBrowser.Android.pas. Пришлось полностью делать Активити на Java и вызывать его из Делфи приложения.
  3. Кое что накопал сам. В юните FMX.WebBrowser.Android.pas есть метод TWebBrowserListener.onReceivedSslError. По документации Андроид в нем можно обработать данную ошибку. Но команда proceed; не дает никакого результата((
  4. Неужели никто не сталкивался с такой проблемой?? она ведь нивелирует функционал TWebBrowser. Так как любой сертификат любимого сайта может истечь по сроку давности и вы уже не сможете зайти на него. Что же делать?
  5. В интернете есть много сайтов с ошибочными или неверными ssl сертификатами. При открытии данного сайта в других браузерах выдается сообщение о таком сертификате и предложение либо принять его либо отклонить. В TWebBrowser никаких обработок нет и собственно по умолчанию сайт просто не отрывается. Кто подскажет как можно решить данную проблему?
  6. Добрый день. Как запретить авто закрывание клавиатуры при смене фокуса между двумя TEdit. Сильно режет глаза когда мы просто переместили фокус на второй TEdit а за это время клавиатура закрылась и повторно открылась. Спасибо.
  7. Это делается сервисно - т.е. когда основная программа не работает. Либо по расписанию либо руками - потому как если база реально большая сборка мусора занимает очень много времени и ресурсов.
  8. Backup Restore и сборка мусора. Так вроде всегда было..
  9. К превеликому сожалению решение получить так и не получилось. Методом сотен попыток удалось выяснить что из Java можно подключится только к базе данных физически размещенной в папке "/data/data/You.Project.Name/databases/"; А из Delphi можно работать только с файлами из папки "files". Решил проблему по как мы обычно умеем - перед каждым подключением к базе из Java копирую экземпляр Делфи-Базы из files в databases. Решение жутко некрасивое но иначе не получилось. У кого какие идеи?
  10. Добрый день. Есть следующая проблема. 1) Существующей базе test.db был сделан деплойт через Delphi по пути "assets\internal\" 2) В Delphi приложении путь прописали как .Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath, 'test.db'); Все работает - все замечательно. 3) Возникла необходимость подключится к данной же базе из Activity из этогоже пакета написанном на Java. В пути подключения пишем - DB_PATH = "/data/data/" + context.getPackageName() + "/files/test.db"; И все. Подключения нету. Создается гдето в другом месте пустая таблица test.db. Кто видит мою ошибку просьба подсказать. Спасибо.
  11. Только ID возможно придется заменить на "_ID"
  12. Попробуйте взять в кавычки. Также мучался) select a.idCat as "ID", a.Name as "CatName" from tbCat a
  13. Спасибо. Использовал, все просто. Для запароленных ищите JCL-ловский компонент.
  14. Прошу помощи в поиске компонента для распаковки/упаковки zip-архивов в Andoid.
  15. Делал похожее. Вызывал жавовскую часть обьединенную с classes.dex либо через BroadcastReceiver по примеру из Blong Blong (поищите в сети) либо через второй Activity полностью написанный на java и задекларированный в манифесте, но прямой взаимосвязи с делфи-активити там нет, хотя можно было сделать через тотже BroadcastReceiver. В общем так чтобы прямо в лоб не получилось). А вопрос очень хороший).
  16. Немного разобрался. Думаю делать нужно примерно так. в манифесте определить BroadcastReceiver который по BOOT_COMPLETE будет НЕ грузить Делфи приложение, а запускать Сервис написанный опятьже на Java и описанным в томже манифесте. Сам сервис будет висеть в фоне и слушать нужные ему события и только в нужный момент запускать Делфи приложение. Вопрос по сути состоял в том, можно ли было запустить Делфи приложение как Active с параметром, и уже оттуда запускать только сервис а не визуальную часть и завершать работу. (По сути вопрос возник изза того что уже была реализована связка - Делфи-Сервис, и выходит что самое оптимальное решение - это переписать Сервис таким образом чтобы он мог запускатся и работать самостоятельно без Делфи-приложения). Немного сумбурное вышло описание, по завершению работы отпишусь и может выложу часть рабочего кода.
  17. Суть вопроса - есть визуальное приложение на Delphi + сервис с BroadcastReceiver на Java. По логике сервис должен запустится автоматически после включения телефона, работать в фоне с минимумом ресурсов и при получении нужного уведомления от системы к примеру - ACTION_USER_PRESENT загружать визуальное приложение на на Delphi. Сразу возник вопрос - в каком направлении копать решение. Буду благодарен за наводку.
  18. Добрый день уважаемое сообщество. Суть вопроса - приложение спрятали на задний фон через метод MainActivity.moveTaskToBack (True); Но обратно вытянуть его на передний план не получается никак. Ни через Java ни через саму программу - которая все еще работает. Китайцы предлагали так - Intent:= TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_MAIN); Intent.addCategory(TJIntent.JavaClass.CATEGORY_HOME); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); MainActivity.startActivity(Intent); Не работает. Пробовал так Intent:= TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_MAIN); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_REORDER_TO_FRONT); MainActivity.startActivity(Intent); не работает. Пробовал в Java через ReceiverBroadcast Intent launchintent = new Intent(); launchintent.setClassName(context, "com.embarcadero.firemonkey.FMXNativeActivity"); //launchintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); launchintent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); context.startActivity(launchintent); Не работает. Складывается мнение что именно приложения embarcadero не хотят восстанавливатся с бекграунда. Просьба когото кто сталкивался предложить дельное решение.
  19. Вопрос решен. В Design-Time для формы нужно указать Quality: HighQuality Если же вы вручную укажете в run-time в Form.Create или Form.DoShow Quality := HighQuality то сглаживание не будет работать.
  20. Имеется следующая проблема на Android. На экране обычный TRectangle в виде квадрата - залитый любым фоном и повернутый на 5 градусов в любую сторону. Включен антиалиасинг для формы. Во время показа формы, явно видны артефакты сглаживания на гранях квадрата в виде характерной елки. Никакие перерисовки типа - Repaint или Invalidate не меняют картину. Однако если открыть к примеру диалог выбора картинки из библиотеки и отменить то все артефакты исчезают. Повернутый Квадрат становится с идеально ровными краями. Почему так и как данное событие (обновление экрана) вызвать вручную? На картинке один и тотже элемент до вызова экрана выбора фото и после.
×
×
  • Создать...