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

Лидеры

  1. Pax Beach

    Pax Beach

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


    • Баллы

      1

    • Постов

      414


  2. HyperZen

    HyperZen

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


    • Баллы

      1

    • Постов

      203


  3. ENERGY

    ENERGY

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


    • Баллы

      1

    • Постов

      568


Популярный контент

Показан контент с высокой репутацией 01.11.2019 во всех областях

  1. {$IFDEF ANDROID} procedure KeepScreenOn(aEnable: boolean); var vFlags: integer; begin vFlags := TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON; if aEnable then begin CallInUIThread ( // uses FMX.Helpers.Android procedure begin TAndroidHelper.Activity.getWindow.setFlags (vFlags, vFlags); end ); end else CallInUIThread ( procedure begin TAndroidHelper.Activity.getWindow.clearFlags (vFlags); end ); end; {$ENDIF} Это для Berlin и ниже. При использовании Tokyo - вызов CallInUIThread не нужен, можно вызывать напрямую, т.к. теперь главный Delphi поток это Java UIThread. iOS uses iOSapi.UIKit; {$R *.fmx} procedure TForm6.Button1Click(Sender: TObject); var UIApp : UIApplication; begin UIApp := TUIApplication.Wrap(TUIApplication.OCClass.sharedApplication); UIApp.setIdleTimerDisabled(True); end;
    1 балл
  2. Запретить отключение экрана приложения в Андроид: в файл проекта (Project - View Source) добавить строки: // в uses {$IFDEF ANDROID} Androidapi.Helpers, Androidapi.JNI.App, Androidapi.JNI.GraphicsContentViewText, {$ENDIF} {$R *.res} // и далее - перед Application.Initialize begin {$IFDEF ANDROID} TAndroidHelper.Activity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON); {$ENDIF} Application.Initialize; ...
    1 балл
  3. Столкнулся с проблемой взаимодействия своего приложения Android с сервером MySQL в локальной сети. Задача простая: скачать на планшет таблицу с данными с сервера MYSQL в локальной сети, выполнить на планшете действия с данными, выгрузить обратно на MySQL уже в другую таблицу результат действий. Начал разбираться, пересмотрел и перечитал множество примеров других разработчиков. Оказалось, что в RAD Studio 10 Seattle нет компонентов, способных заставить работать Android устройство напрямую с сервером MySQL. Конечно есть FireDAC, dbExpress. По факту, хоть разработчики dbExpress и заявляют, что компонент TSQLConnection работает с Android platform, но при попытке открыть соединение с MySQL сервером на Android устройстве сообщает об ошибке. На Windows компонент отрабатывает соединение нормально. Разработчики FireDAC честно заявили, что их соединение с MySQL на Android работать не будет. Какие есть выходы: 1. Создать DataSnap сервер, который будет установлен на сервере и взаимодействовать с Android клиентом и сервером MySQL. DataSnap будет являться прослойкой между Android и MySQL, через него можно осуществлять обмен данными, обернутыми в JSON. Для меня этот вариант не подходит, потому что по различным причинам устанавливать на сервер (или даже рабочую станцию) дополнительный сервер приложений не представляется возможным. 2. Использовать дополнительные компоненты, позволяющие работать с MySQL из-под Android и iOS. Поиск нужных компонентов для RAD Studio показал, что все они платные. И уж если бесплатных не найти, покупать нужно хороший продукт, которые поддерживает как минимум MySQL, SQLite, SQLServer. Не буду начинать холивар, скажу только, что для меня наиболее подходящим оказался компонент UniDAC от Харьковской компании Devart. Решающими факторами стали: удобнная политика лицензирования, приемлемая для задач цена, быстрая скорость ответа технической поддержки, конечно, поддержка всех распространенных серверов баз данных и нужных мне платформ, работа с большими объемами данных (более 100 тыс. записей), возможность 2 месяца тестировать компоненты, получить существенную скидку при покупке, рекомендации разработчиков с форума www.fire-monkey.ru . На сайте www.devart.com выбрал свою версию RAD Studio и скачал инсталяторы компонентов UniDAC и MyDAC. Установил и запустил RAD Studio. В главном меню RAD Studio появились соответствующие пункты меню, а в палитру компонентов добавились три закладки. Вы самостоятельно может скачать и попробовать компоненты можно по этой ссылке https://www.devart.com/unidac/ Реализация кода: Итак, я собрал тестовый стенд. На котором разместил 3 соединения, 3 набора данных, три кнопки для соединения и разъединения с сервером MySQL, и две метки, в которые при успешном соединении записываю случайную запись «Название компании» из таблицы «Покупатели», в одну Ansi формат, в другую UTF8. В качестве демонстрационной базы данных использую Northwind, поставляемую с RAD Studio. Как видно на рисунке, тестировалась работа компонентов dbExpress, MyDAC, UniDAC. Двойной щелчок на компоненте соединения, открываются свойства соединения, прописываем для компонентов необходимые параметры и запускаем. Я прилагаю пример приложения, который вы самостоятельно сможете запустить на своей RAD Studio. В результате, как и ожидалось, компоненты dbExpress не смогли соединиться с базой данных и вывалился с ошибкой “TDBXError: Unable to find procedure DBXLoader_GetDriver”. Которую было не просто отловить из-за отсутствия в компоненте обработчика Connection Timeout. Компоненты MyDAC и UniDAC мгновенно соединялись с MySQL и считывали записи. Моя задача решена, переписываю решение в рабочий проект. Надеюсь и вам будет полезен этот пример. MyDACvsDbExpressDemo.zip
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...