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

Лидеры

  1. Rusland

    Rusland

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


    • Баллы

      4

    • Постов

      1 204


  2. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      3

    • Постов

      2 124


  3. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      2

    • Постов

      2 517


  4. aleksandrguru

    aleksandrguru

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


    • Баллы

      2

    • Постов

      96


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

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

  1. Вот лови пример нормальный BTACC_Source_XE8.7z
    2 балла
  2. Из PlatformSDK (PlatformSDKs\android-sdk-windows\sources\android-23\android\support\v4\content\) портировал в Delphi класс TJLocalBroadcastManager. Это очень полезный класс, если вы не хотите рассылать сообщения по всей системе, а есть необходимость общаться только внутри приложения или между хост-приложением и сервисом. Во вложении сам класс, в своем приложении убедитесь, что в Target Platforms (Android) → Android → Libraries включена библиотека android-support-v4.dex.jar. Прилагаю пример, для изучения и использования в работе, который демонстрирует работу обычного BroadcastReceiver и LocalBroadcastReceiver. В примере демонстрируется работа сообщений в приложении и сервисе. Сначала делаем build проекта LBCRService, потом будет доступна возможность собрать LocalBCR. Собираю в Berlin 10.1, но на младших версиях тоже должно работать, по крайней мере в Seatlle. В реализации методов procedure RegisterReceiver(); procedure UnRegisterReceiver(); необходимо снять комментарий с соответствующих строчек, в зависимости от того, какой тип ресивера вы хотите использовать. Androidapi.JNI.LocalBroadcastManager.pas.zip LocalBroadCastReceiver.zip
    1 балл
  3. krapotkin

    Узнать свой Longitude и Latitude

    дело в том, что запуск сервиса определения координат требует времени. значительного. поэтому нельзя взять и написать LocationSensor1.Active := True; Lat := LocationSensor1.Sensor.Latitude; Long := LocationSensor1.Sensor.Longitude; нужно посмотреть демо из поставки студии. там все красиво и подробно расписано есть обработчик, который будет вызван, когда новые координаты будут получены а пока - пишите не определено и крутите AniIndicator
    1 балл
  4. aleksandrguru, fsdb уже нашел этот пример, с помощью него как раз получилось подключиться к Ардуино
    1 балл
  5. Rusland

    Узнать свой Longitude и Latitude

    Если речь про Android. Есть TLocationSensor. И еще посмотрите полезный TMapsEngine от ZuBy.
    1 балл
  6. Tuesday, Wednesday and Thursday, November 15-17, 2016 [Call for papers] [Schedule (coming soon)] [Registration (coming soon)] This online free event is our annual developer conference. 3 full days of totally technical content. CodeRage XI is the largest, free online conference of the year from Embarcadero Technologies. This year our annual online CodeRage conference goes to 11 with “Productivity, Platforms and Performance.” The CodeRage XI Online Developer Conference takes place Tuesday, Wednesday and Thursday, November 15-17, 2016. That is three full days of content for developers like you. Broaden your understanding and deepen your skills. The conference will cover development topics using our products, related technologies and the Object Pascal and C++ programming languages. We are planning two tracks: One for Delphi and one for C++Builder. Session levels include General, Beginner, Intermediate and Advanced. Stay tuned to this page for more information! Просмотр полной статьи
    1 балл
  7. Проблема решена: <key>NSPhotoLibraryUsageDescription </key> <string>To choose photo</string> <key>NSCameraUsageDescription </key> <string>Get photo</string> Обнаружен лишний пробел перед закрывающей </key>. Странно, но это все ломало. Убрать пробел: <key>NSPhotoLibraryUsageDescription</key> <string>To choose photo</string> <key>NSCameraUsageDescription</key> <string>Get photo</string>
    1 балл
  8. Равиль Зарипов (ZuBy)

    CloudFlare [IPV6]

    ну и как результат, написанного выше
    1 балл
  9. сохранить стиль в файл рядом Windows 10 Desktop нажать на кнопку удаления Добавить новый стиль, там должно быть написано WIndows Загрузить сохраненный стиль
    1 балл
  10. MAD_EVAL

    Ошибка сценария

    Положите все библиотеки (*.dll) Хромиума в папку с исполняемым файлом. Плюс как минимум 2 папки с локалями и компонентами движка. Добавил принтскрин всего того что должно лежать в папке вместе с вашим екзешником. Это всё есть в архиве, из которого Вы устанавливали компонент в папке cef3_ChromiumXE6\bin\Win32 (или Win64)
    1 балл
  11. IP адрес кодируется 8 октетами (128 бит) Роутер еще должен уметь поддерживать IPv6. Смотреть нужно на модель и на сколько она старая. На счет этой проблемы с публикацией приложений я поищу информацию. Спрошу у наших коллег.
    1 балл
  12. В общем решил я проблему следующим образом - останавливаю поток, а не сервис (все равно кроме потока в сервисе ничего нет). Пока мне этого хватит )
    1 балл
  13. Полное решение вопроса: Автоматическая смена названия приложения в зависимости от языка системы
    1 балл
  14. Для ищущих ответа: Есть стандартное demo Object Pascal\Mobile Snippets\AndroidIntents\AndroidIntentsGroup.groupproj, в котором показано как из одного приложения передавать данные другому. С помощью этого примера удалось передавать данные из сервиса в основное приложение. В юните основного приложения пишем: uses FMX.Platform, FMX.Platform.Android, Androidapi.JNI.JavaTypes, Androidapi.JNI.Net, Androidapi.JNI.Os, Androidapi.Helpers, System.Messaging, Androidapi.JNI.GraphicsContentViewText; private { Private declarations } function HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean; procedure HandleActivityMessage(const Sender: TObject; const M: TMessage); function HandleIntentAction(const Data: JIntent): Boolean; procedure TForm1.FormCreate(Sender: TObject); var AppEventService: IFMXApplicationEventService; begin ... if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, AppEventService) then AppEventService.SetApplicationEventHandler(HandleAppEvent); // Register the type of intent action that we want to be able to receive. // Note: A corresponding <action> tag must also exist in the <intent-filter> section of AndroidManifest.template.xml. MainActivity.registerIntentAction(TJIntent.JavaClass.ACTION_VIEW); TMessageManager.DefaultManager.SubscribeToMessage(TMessageReceivedNotification, HandleActivityMessage); end; procedure TForm1.HandleActivityMessage(const Sender: TObject; const M: TMessage); begin if M is TMessageReceivedNotification then HandleIntentAction(TMessageReceivedNotification(M).Value); end; function TForm1.HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean; var StartupIntent: JIntent; begin Result := False; if AAppEvent = TApplicationEvent.BecameActive then begin StartupIntent := MainActivity.getIntent; if StartupIntent <> nil then HandleIntentAction(StartupIntent); end; end; function TForm1.HandleIntentAction(const Data: JIntent): Boolean; var Extras: JBundle; begin Result := False; if Data <> nil then begin Memo1.ClearContent; // записываем в Memo пришедшее сообщение Extras := Data.getExtras; if Extras <> nil then Memo1.Text := JStringToString(Extras.getString(TJIntent.JavaClass.EXTRA_TEXT)); Invalidate; end; end; в AndroidManifest.template.xml добавляем <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:mimeType="text/pas" /> Отправка сообщения из сервиса делается так: SendTextViaIntent('Hello from service'); procedure TAndroidServiceDM.SendTextViaIntent(const AText: string); var Intent: JIntent; begin Intent := TJIntent.Create; Intent.setType(StringToJString('text/pas')); Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); // добавил такой флаг, без него сервис затыкался Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(AText)); if TJContextWrapper.Wrap(System.JavaContext).getPackageManager.queryIntentActivities(Intent, TJPackageManager.JavaClass.MATCH_DEFAULT_ONLY).size > 0 then TJContextWrapper.Wrap(System.JavaContext).startActivity(Intent); // заменил MainActivity на TJContextWrapper.Wrap(System.JavaContext), т.к. это сервис end; Работает исправно, хоть 100%-ую правильность кода не гарантирую Но как передать сообщение из основной программы обратно в сервис я пока не знаю. Также делать хендл внутри сервиса? Попытался просто добавить FMX.Platform, в результате получаю ошибку в FMX.Platform.Android вываливается ошибка об использовании Activity внутри сервиса.
    1 балл
  15. estra

    Как добавить второй язык

    Это кто же вам такую ерунду то сказал? Почитайте "Delphi. Программирование для Windows, OS X, iOS и Android": Глава 24. Мультиязычные проекты: Компонент языковой поддержки TLang Режим автоматического перевода Перевод меню Ссылка 1, Ссылка 2
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...