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

x11

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

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

  • Посещение

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

    13

Активность репутации

  1. Like
    x11 получил реакцию от Anatoliy в Как использовать камеры в 3D-приложении FireMonkey с помощью Delphi   
    How to Use Cameras in a FireMonkey 3D Application with Delphi
    https://www.youtube.com/watch?v=bjflkb1GzaM
     
    может кому пригодится
  2. Like
    x11 получил реакцию от Alex7wrt в Как использовать камеры в 3D-приложении FireMonkey с помощью Delphi   
    How to Use Cameras in a FireMonkey 3D Application with Delphi
    https://www.youtube.com/watch?v=bjflkb1GzaM
     
    может кому пригодится
  3. Like
    x11 получил реакцию от Евгений Корепов в Как использовать камеры в 3D-приложении FireMonkey с помощью Delphi   
    How to Use Cameras in a FireMonkey 3D Application with Delphi
    https://www.youtube.com/watch?v=bjflkb1GzaM
     
    может кому пригодится
  4. Like
    x11 получил реакцию от Yarpda в Подключение к БД Firebird из Android   
    Библиотеку нужно не забыть добавить в Deployment (release и debug).
    У меня рядом с папкой проекта есть, т.е. на одном уровне, папка media, где лежат иконки, картинки, so-библиотеки и прочий мусор для деплоя.
    В столбце Remote path указываем ".\assets\internal\db". Открываем "Project/Deployment", выбираем конфигурацию над таблицей,  жмякаем слева + и выбираем файл. Только обрати внимание ,что галочка слева должна быть отключена.
    В проекте, в процедуре подключения к базе есть строка:
    ClientLibrary := IncludeTrailingPathDelimiter(TPath.GetDocumentsPath) + 'db' + PathDelim + 'libfbclient.so.3.0.2'; ну или "'libfbclient.so.2'", в зависимости от версии Firebird сервера: 2.5 или 3.0.
    Не забудь добавить в USES модуль System.IOUtils.
     
    Сразу напишу, что Андроид, как и Линукс туповаты, поэтому подключиться к хост-машине с Firebird по имени компьютера не получится.
    По крайне мере у меня не получилось.
    Поэтому в качестве адреса (параметр "Data Source") выступает IP адрес.
     
    Собираем строку подключения:
     
    UniConnectionFB.ConnectString := 'Provider Name=InterBase;' + 'Data Source=' + server +';' + 'Database=' + Database + ';' + 'Port=' + port +';' + 'User ID=' + Username +';' + 'Password=' + Password + ';'+ 'Client Library=' + ClientLibrary + ';' + 'Character Set='+ CharacterSet + ';' + 'Use Unicode=True;Login Prompt=False';  

  5. Haha
    x11 отреагировална Равиль Зарипов (ZuBy) в Как сделать форму с компонентами под все разрешения?   
    нужно использовать лицензионную винду, иначе Align не будет работать
     
  6. Like
    x11 получил реакцию от Barbanel в Подключение к БД Firebird из Android   
    Библиотеку нужно не забыть добавить в Deployment (release и debug).
    У меня рядом с папкой проекта есть, т.е. на одном уровне, папка media, где лежат иконки, картинки, so-библиотеки и прочий мусор для деплоя.
    В столбце Remote path указываем ".\assets\internal\db". Открываем "Project/Deployment", выбираем конфигурацию над таблицей,  жмякаем слева + и выбираем файл. Только обрати внимание ,что галочка слева должна быть отключена.
    В проекте, в процедуре подключения к базе есть строка:
    ClientLibrary := IncludeTrailingPathDelimiter(TPath.GetDocumentsPath) + 'db' + PathDelim + 'libfbclient.so.3.0.2'; ну или "'libfbclient.so.2'", в зависимости от версии Firebird сервера: 2.5 или 3.0.
    Не забудь добавить в USES модуль System.IOUtils.
     
    Сразу напишу, что Андроид, как и Линукс туповаты, поэтому подключиться к хост-машине с Firebird по имени компьютера не получится.
    По крайне мере у меня не получилось.
    Поэтому в качестве адреса (параметр "Data Source") выступает IP адрес.
     
    Собираем строку подключения:
     
    UniConnectionFB.ConnectString := 'Provider Name=InterBase;' + 'Data Source=' + server +';' + 'Database=' + Database + ';' + 'Port=' + port +';' + 'User ID=' + Username +';' + 'Password=' + Password + ';'+ 'Client Library=' + ClientLibrary + ';' + 'Character Set='+ CharacterSet + ';' + 'Use Unicode=True;Login Prompt=False';  

  7. Like
    x11 получил реакцию от AngryOwl в Ошибка при подключении к MySQL Windows   
    Я за UniDac!
    Там безо всяких библиотек.
  8. Like
    x11 получил реакцию от Rusland в Ориентация SDK на Android 8 и выше   
    Object Pascal Interface Files Of The Android 27 and Android 28 SDKs For Delphi 10.2 Tokyo
    https://www.fmxexpress.com/object-pascal-interface-files-of-the-android-27-and-android-28-sdks-for-delphi-10-2-tokyo/
  9. Like
    x11 получил реакцию от ENERGY в Ориентация SDK на Android 8 и выше   
    Object Pascal Interface Files Of The Android 27 and Android 28 SDKs For Delphi 10.2 Tokyo
    https://www.fmxexpress.com/object-pascal-interface-files-of-the-android-27-and-android-28-sdks-for-delphi-10-2-tokyo/
  10. Like
    x11 получил реакцию от Ingalime в Embarcadero.... Community Edition!   
    Настройка Delphi Community Edition для разработки под Android
     
    https://www.youtube.com/watch?v=_DXtU_8QdVE
     
  11. Like
    x11 получил реакцию от Mars M в Embarcadero.... Community Edition!   
    Настройка Delphi Community Edition для разработки под Android
     
    https://www.youtube.com/watch?v=_DXtU_8QdVE
     
  12. Like
    x11 получил реакцию от ENERGY в Ориентация SDK на Android 8 и выше   
    Надеюсь, что кому-нибудь пригодятся статьи о том, как сделать приложение с поддержкой новых версий Андроида:
    Ориентация на Android 8 и выше
    http://delphiworlds.com/2018/05/targeting-android-8-and-higher/
    http://delphiworlds.com/2018/06/targeting-android-8-and-higher-continued/
     
  13. Like
    x11 получил реакцию от Ingalime в Ориентация SDK на Android 8 и выше   
    С 1 августа 2018 года новые правила в Гугл плей.
    https://developer.android.com/distribute/best-practices/develop/target-sdk
    The following considerations apply to apps targeting Android 8.0 and higher versions of the platform:
    (Следующие соображения применимы к приложениям, ориентированным на Android 8.0 и более поздние версии платформы:)
  14. Like
    x11 отреагировална Fedor K в TNotificationCenter. Можно ли изменить иконку?   
    При работе с API конкретной платформы советую использовать именно справку самой платформы. Находим реализацию на родном языке и пытаемся повторить тоже самое через wrappers от Delphi.
    1 - это идентификатор вашего сервиса отличный от 0 (см. подробнее Service | Android Developers), т.е. можете использовать любые положительные цифры. По сути и обычные уведомления тоже содержат такой идентификатор, но это практически редко используется.
  15. Like
    x11 получил реакцию от Sergionn в Embarcadero.... Community Edition!   
    Если бы они это сделали сразу, т.е. чтобы FMX была бесплатно доступна, то сообщество Firemonkey было бы значительно обширнее.
    Глядишь, и в ВУЗах бы изучали.
  16. Thanks
    x11 отреагировална Равиль Зарипов (ZuBy) в Мобильное приложение для курьера   
    У меня в гите есть набор компонентов, там есть гамбургер, кнопка назад и FAB кнопка.
    смотрите демки 
  17. Like
    x11 получил реакцию от Barbanel в Ориентация SDK на Android 8 и выше   
    Надеюсь, что кому-нибудь пригодятся статьи о том, как сделать приложение с поддержкой новых версий Андроида:
    Ориентация на Android 8 и выше
    http://delphiworlds.com/2018/05/targeting-android-8-and-higher/
    http://delphiworlds.com/2018/06/targeting-android-8-and-higher-continued/
     
  18. Like
    x11 получил реакцию от Ingalime в Ориентация SDK на Android 8 и выше   
    Надеюсь, что кому-нибудь пригодятся статьи о том, как сделать приложение с поддержкой новых версий Андроида:
    Ориентация на Android 8 и выше
    http://delphiworlds.com/2018/05/targeting-android-8-and-higher/
    http://delphiworlds.com/2018/06/targeting-android-8-and-higher-continued/
     
  19. Thanks
    x11 отреагировална Равиль Зарипов (ZuBy) в Мобильное приложение для курьера   
    Не используйте эффекты на мобилах, нигде и никогда, если планируете запускать приложение в массы.
    эффекты дают артефакты
  20. Like
    x11 отреагировална r@di0 в Специальные разрешения   
    Вы вообще пробовали приведенный код? Он не имеет отношения к WakeLock, а как раз добавляет приложение в WhiteList.
    Если Вы хотите сделать "неубиваемое" приложение, то Вам не получится обойтись каким-то легким решением. Особенно если приложению необходимо использовать сеть. Почитайте про doze mode.
    Можете ещё посмотреть эту статью: http://delphiworlds.com/2018/01/monitoring-location-updates-on-android/
    Там предпринята попытка сделать подобное "неубиваемое" приложение.
  21. Like
    x11 отреагировална mazayhin в Окно на переднем плане во время звонка   
    Как создавать это вью или как им созданным пользоваться?
    Если создавать - то создаете разметку в xml, деплоете ее в layouts. Примеров в интернете можно кучу найти. Остальное - в другие папки.
    В общем, получится во так.
    Здесь задеплоено 3 файла - картинка res/drawable/myicon.png, res/drawable/border.xml - прямоугольник подложки и res/layouts/toast.xml - сам lauoyt.
    toast.xml ("-- " - комментарии, удалить надо будет).
    Текст, картинки и прочее можем сразу указать в разметке, и грузить автоматически. Но всегда сможем поменять в коде
    border.xml
    Думаю, тут все понятно. Примитив может быть любой.
    И формируем тост:
    //uses FMX.Helpers.Android, AndroidApi.Helpers, AndroidApi.JNI.GraphicsContentViewText, Androidapi.JNI.Widget var Toast: JToast; InfObj: JObject; Inflater: JLayoutInflater; View: JView; Text: JTextView; begin InfObj := TAndroidHelper.Context.getSystemService (TJContext.JavaClass.LAYOUT_INFLATER_SERVICE); Inflater := TJLayoutInflater.Wrap((InfObj as ILocalObject).GetObjectID); View := TJView.JavaClass.init(TAndroidHelper.Context); View := Inflater.inflate(TAndroidHelper.Context.getResources() .getIdentifier(StringToJString('layout/toast'), StringToJString('layout'), TAndroidHelper.Context.getPackageName), nil); //Грузим из ресурсов. Второе значение всегда nil Text := TJTextView.Wrap ((View.findViewById(TAndroidHelper.Context.getResources() .getIdentifier(StringToJString('id/toastText'), StringToJString('id'), TAndroidHelper.Context.getPackageName)) as ILocalObject).GetObjectID); // Так ищем элементы разметки, если надо свои значения поставить. Так же могли и поменять картинку(id/toastImage), подложку и т.д. Text.setText(StrToJCharSequence('Привет, х11! Я нативный Toast!' + #13 + 'Сегодня пишем на Pascal')); //Устанавливаем свое значение. CallInUIThreadAndWaitFinishing( //В сервисе запускаем без этого, отключаем FMX.Helpers.Android - только его, GraphicsContentViewText к графике, которая ломает сервис, отношения не имеет. procedure begin Toast := TJToast.JavaClass.init(TAndroidHelper.Context); Toast.setView(View); // Своя вьюшка Toast.setDuration(TJToast.JavaClass.LENGTH_LONG); //Константа. Свое значение не пройдет Toast.Show; //Показываем end); end; Ну и все в принципе.
    Сложного, считаю, 0.
    А что не понятно, яндекс показывает, глаза разбегаются.
     

  22. Thanks
    x11 отреагировална r@di0 в Специальные разрешения   
    Такое поведение на Андроиде с 5 версии.
    function GetPowerManager: JPowerManager; var PowerServiceNative: JObject; begin PowerServiceNative := TAndroidHelper.Context.getSystemService (TJContext.JavaClass.POWER_SERVICE); if not Assigned(PowerServiceNative) then raise Exception.Create('Could not locate Power Service'); Result := TJPowerManager.Wrap((PowerServiceNative as ILocalObject) .GetObjectID); if not Assigned(Result) then raise Exception.Create('Could not access Power Manager'); end; //Intent: JIntent; if TJBuild_VERSION.JavaClass.SDK_INT >= 23 then begin pw := GetPowerManager; if Assigned(pw) then if not pw.isIgnoringBatteryOptimizations (StringToJString('ВАШ ПАКЕТ')) then begin Intent := TJIntent.Create; try Intent.setAction (TJSettings.JavaClass. ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); Intent.setData(TJnet_Uri.JavaClass.parse (StringToJString('package:ВАШ ПАКЕТ'))); TAndroidHelper.Context.startActivity(Intent); except on e: Exception do fgToast(e.Message, 3); end; end; end;  
  23. Like
    x11 получил реакцию от Tarik Live в Toast для Android Service   
    Это не вопрос. Просто подумал, что кому-нибудь может пригодится.
    https://forums.embarcadero.com/thread.jspa?threadID=118465
    Используем 2 файла: Androidapi.JNI.ToastForService.pas + FlyUtils.Android.PostRunnableAndTimer.pas.
    Пример вызова:
    Androidapi.JNI.ToastForService.PostToast('текст сообщения', LongToast); Проверил - работает.
    Есть ещё третий параметр "UseLastToastObj", но я так и не понял, для чего он. Документации нет.
  24. Like
    x11 получил реакцию от Rusland в Что невозможно сделать на Delphi для Android?   
    На моей памяти Delphi уже 10+ лет умирает.
    Замкнутый круг: если все будут валить с Дельфи, то его и развивать не будут. Если будем продолжать, то и Дельфи будут развивать.
    К сожалению, цена на среду заоблачна для простых фрилансеров.
    А FMX вообще должна быть пока ещё бесплатна, как бета-версия.
  25. Like
    x11 получил реакцию от Rusland в Что невозможно сделать на Delphi для Android?   
    На данный момент столкнулся с тем, что нет нижеописанных  встроенных возможностей (из коробки, как говорится).
    4. Назначить (изменить) иконку у TNotification.
    5. Работать с Broadcast.
    6. Показать на переднем плане временное окно из службы, типа Toast, но дольше и с картинкой.
    7. Пролистывать картинки (нет слайдера).
    8. Работать с адресной книгой, звонками, другими данными (TAddressBook) не подходит. Вернее, есть возможность, но нет примеров и описаний совсем. Я о таких вещах, как TJContactsContract_PhoneLookup, TJNet_URI, getContentResolver.query, JCursor, TJavaObjectArray. Спасибо тем, кто помогает переводить код с Java на Delphi.
    9. Нельзя указать в настройках проекта, что приложение должно автоматически стартовать при перезагрузке смартфона.
    10. Нельзя создавать 64-битные Андроид-приложения. А в Гугломаркете их уже 40%.
    11. Нет списка, который бы можно было подключить к TDataSet с возможностью дозагрузки и автоматического уничтожения ненужных записей.
×
×
  • Создать...