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

Pax Beach

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

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

  • Посещение

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

    12

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

  1. Like
    Pax Beach отреагировална Brovin Yaroslav в Проблема в Android 6.0   
    Так, я не все прочитал. Но добавлю пару слов на счет сворачивания и убивания приложения.
    Если вы нажимаете кнопку Back, то платформа FMX подаст запрос на уничтожение приложение.  Если вы нажимаете на кнопку Home, то приложение просто сворачивается без уничтожения. Первый и второй пункты - это поведение андроид приложений по умолчанию. Если вы не хотите, чтобы приложение принудительно грохалось по кнопки Back. То вам нужно перехватить нажатие этой кнопки и самостоятельно свернуть ваше приложение. Повесить обработчик TForm.OnKeyDown/OnKeyUp и в нем вызвать код по сворачиванию. И сбросить Key и KeyChar TAndroidHelper.Activity.moveTaskToBack(true); А дальше все как обычно. Даже после сворачивания, система может уничтожить ваше приложение в любой момент времени по своему усмотрению.
  2. Like
    Pax Beach отреагировална Brovin Yaroslav в Работа с намерениями в iOS   
    Эта официальная статья вам, однозначно, поможет: Inter-App Communication
     
  3. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в Проблема в Android 6.0   
    Андроед-телефоны, как и все вещи в 2016 году, собираются из каких-то ёбаных микросхем. 
    начало ободряющее))
  4. Like
    Pax Beach получил реакцию от Равиль Зарипов (ZuBy) в TRESTLight - облегченная версия   
    Нет времени для этого раньше понедельника. Как сделаю, выложу, конечно в соседней теме.
  5. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в TRESTLight - облегченная версия   
    Доброго времени суток!
    Навеяно этой темой.
    Посмотрел реализацию от @Pax Beach (за что ему спасибо большое) и столкнулся с тем что TRESTClient со всеми потрахами это просто дикий ужас.
    Решил собрать аналогичный пример, только не использовать TREST***
    немного опишу, свою реализацию
    uAppSettings.pas - хранит описание вашего приложения созданного в ВК  FMX.RESTLight.pas - модуль "общения" клиента с сервером FMX.RESTLight.Types.pas - тут хранятся типы для работы TRESTLight Приведу код, который постит Вам на стену текст
    var aFields: TArray<TmyRestParam>; aJSON: string; begin SetLength(aFields, 5); aFields[0] := TmyRestParam.Create('access_token', FAuthToken.token, false); aFields[1] := TmyRestParam.Create('v', FVKApp.APIVersion, false); aFields[2] := TmyRestParam.Create('owner_id', FAuthToken.user_id, false); aFields[3] := TmyRestParam.Create('friends_only', '0', false); aFields[4] := TmyRestParam.Create('message', 'Тестовое сообщение <RESTLight>', false); TTask.Run( procedure begin aJSON := TRESTLight.Execute('wall.post', FVKApp, aFields); TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Lines.Add('---- wall.post ----'); Memo1.Lines.Add(aJSON); end); end); а вот так можно заливать файлы
    var aFields: TArray<TmyRestParam>; aJSON: string; begin SetLength(aFields, 4); aFields[0] := TmyRestParam.Create('access_token', FAuthToken.token, false); aFields[1] := TmyRestParam.Create('v', FVKApp.APIVersion, false); aFields[2] := TmyRestParam.Create('owner_id', FAuthToken.user_id, false); aFields[3] := TmyRestParam.Create('photo', aUploadFile, true); // для файлов указывается !!!true!!! TTask.Run( procedure begin // для загрузки файлов использовать TRESTLight.Execute2, в нем можно указать произвольный URL aJSON := TRESTLight.Execute2(aUploadURL, FVKApp, aFields); TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Lines.Add('---- upload file to server ----'); Memo1.Lines.Add(aJSON); end); end); P.S. На правильность и оригинальность не претендую, просто альтернативный вариант. Мне например не понравилась как устроен TRESTClient, много компонентов лишних. В боевых условиях наверное код еще будет модернизироваться, я рассмотрел только пару методов, но думаю общая концепция не сильно поменяется
    GitHub   TRESTLight.zip
  6. Like
    Pax Beach получил реакцию от Rusland в После "сна" программа с сервисом не стартует   
    Лучше указать параметры SDK, с которыми компилируешь приложение, и платформу на которой тестируешь.
    И, если честно, по-русски не очень понятно, что ты имеешь ввиду. А гугл транслятор справиться с переводом сам.
    Я плюсанул )
  7. Like
    Pax Beach отреагировална Andrey Efimov в Как изменить версию АПИ для компиляции проекта   
    1. Можно поставить и самую последнюю версию АПИ (на данный момент последняя версия АПИ 24 Android 7, но использовать рискованно, т.к. Студией официально заявлена поддержка только до версии АПИ 23) Google поддерживает обратную совместимость.
    2. Частично, выбор зависит от версии АПИ, пример: в "Build Tools, Revision 23.0.0" появилась официальная поддержка Android 6.0 (API level 23). Т.е. если используете АПИ 23, то Build Tools должны быть версии 23.0.0 или более поздней. Опять же поддерживается обратная совместимость. Подобную информацию можно посмотреть тут SDK Build Tools Release Notes
    Те же правила относятся и к SDK Tools. По умолчанию студия ставит версию 24.3.3 (19 АПИ)
    3. Версия только устанавливаемая вместе со студией! Буквально вчера удалось это на себе прочувствовать. По умолчанию ставится версия NDK r9c. Не обновляйте самостоятельно на последнюю версию, приложения перестанут запускаться на устройствах!
    4. Для внутренней работы студии с НДК? не знаю точного ответа...
    5. Изменить можно в файле AndroidManifest.template.xml
    6. Всё это техническая информация, которая позволяет гуглу выдавать списки приложений под устройство пользователя. Т.е. если у пользователя АПИ 19 устройство, а ваше приложение работает с версиями не ниже 20 АПИ, то этому пользователю не будут показывать ваше приложение.
     
    Пример приложения написанного с такими настройками:
    SDK 23 АПИ NDK r9c в приложении я мониторю версию АПИ, чтобы не пытаться выдать новый функционал из 23 АПИ для версии (например) 19 АПИ. разработка проводилась на устройстве с АПИ 19 Тесты прошли на всех версиях АПИ выше 4.4 Приложение: Wifi Info (Установки: активные/всего - 119/337)
    Надеюсь хоть немного смог объяснить, хотя сам ещё не до конца понимаю, что хорошо для студии, что плохо...
    p.s. Всё описанное выше, справедливо для RAD Studio Berlin
     
  8. Like
    Pax Beach отреагировална AngryOwl в Приложение крашится   
    Перебор в чем? В запуске в отдельном потоке?
    Ну если открыть диалог, то основное приложение приостановит свою работу - для многих приложений это критично.
    Что касаемо присвоению свойству визуального компонента значений, возвращаемых тех или иных диалогов, то лучше создать переменную, присвоить ей возвращаемое значение диалога, а затем другому визуальному компоненту присвоить значение этой переменной.
    Я на такие грабли наступал уже... И не поймешь - почему падает.
  9. Like
    Pax Beach получил реакцию от AngryOwl в Как правильно обрабатывать параметры запуска приложения в iOS и Android и открывать нужную форму?   
    Ценный пример, спасибо!
    Это вопрос больше холиварный. Но хотелось бы выслушать аргументы в пользу TFrame на мобильных платформах.
     
  10. Like
    Pax Beach получил реакцию от Равиль Зарипов (ZuBy) в Как правильно обрабатывать параметры запуска приложения в iOS и Android и открывать нужную форму?   
    Ценный пример, спасибо!
    Это вопрос больше холиварный. Но хотелось бы выслушать аргументы в пользу TFrame на мобильных платформах.
     
  11. Like
    Pax Beach получил реакцию от Равиль Зарипов (ZuBy) в Андроид-фейсбук-вконтакте   
    Действительно. Прошу прощение за невнимательность — не верно разбирал массив JSON.
    Но проблема возникает раньше, после третьего шага. Когда я получаю ответ, в нем ссылки на изображения типа
    "photo_75":"http:\/\/cs630417.vk.me\/v630417371\/4b7dd\/lO3a_Dr7db4.jpg" и содержат пустые изображения типа PNG. Вот почему так?
     
    Исправил код для тестирования VKImage2.zip
  12. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в Андроид-фейсбук-вконтакте   
    да бывает, ждём результатов. если что пишите, по возможности поможем
  13. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в Андроид-фейсбук-вконтакте   
    а что не получилось, все работает
    нужно было заменить
    вы собираете photo_{owner_id}_{photo_id}
    а нужно photo{owner_id}_{photo_id}
    сайт заменил на свой)

  14. Like
    Pax Beach отреагировална Andrey Efimov в [Статья][AdMob] Добавляем рекламный блок в приложение   
    Всё, что касается рекламы, продвижения, уплаты налогов и т.п. можно почитать тут:
    Форум об интернет-маркетинге - Раздел: Google AdSense (там поиском воспользуйтесь)
    Вот ещё тема оттуда Уплата налогов с AdSense и заполнение налоговой декларации: подробный мануал
    Форум ФНС - Например, Доходы с AdSense
  15. Like
    Pax Beach отреагировална AngryOwl в Как запустить приложение на планшете с Windows10 ?   
    Установить PAServer на удаленной машине (ПК/планшет) и все.
    Как сделать тут и тут. И вообще много в сети примеров, в том числе и на этом форуме где-то было.
  16. Like
    Pax Beach получил реакцию от Kitty в После "сна" программа с сервисом не стартует   
    Я пробовал убивать процесс, вместе с сервисом соответственно, чистил Recently Apps — не помогает.
    А была сборка, где работало все идеально.
    Копаю в сторону настройки SDK.
  17. Like
    Pax Beach получил реакцию от Просто Проги в Как правильно загружать аватары пользователей по типу как это делают мобильные приложения.   
    Да, нужно докачать Berlin, или отпилить DynamicAppearance.
     
  18. Like
  19. Like
    Pax Beach отреагировална Alexander в Toshiba представляет подключаемый модуль BLE для Bluetooth Developer Studio   
    В качестве новости, кому интересна данная тема
    Toshiba представляет подключаемый модуль BLE для Bluetooth Developer Studio
  20. Like
    Pax Beach отреагировална rareMax в Передать значение в ITask   
    О мне ответили)
    Скорее всего я что то не так понял - но Таск получает только последнюю итерацию цикла(почему?)
    (В принципе я свою задачу решил - воспользовался TParallel.For, но для себя все же интересно - можно ли передавать параметры, если да - то как)
    и так - пример для запуска:
    program Project1; {$APPTYPE CONSOLE} {$R *.res} uses FMX.Types, System.SysUtils, System.Threading; Const TEST_COUNT = 5; var Tasks: TArray<iTask>; I: Integer; begin try { TODO -oUser -cConsole Main : Insert code here } SetLength(Tasks, TEST_COUNT); // Смотри с этой строки for I := Low(Tasks) to High(Tasks) do Tasks[I] := TTask.Create( Procedure Begin Log.d(I.ToString); End); Tasks[I].Start; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; Readln; end.  
  21. Like
    Pax Beach отреагировална Brovin Yaroslav в [RX] [FGX] Описание версии 0.7.1.118   
    Ссылка на скачивание (Только для RAD Studio Berlin?fgx_0.7.1.118.zip Инструкция по установке: "Инструкция по установке набора компонентов FGX" Описание
    Эта версия включает в себя следующий набор компонентов:
    Дизайнер итемов - дизайнер итемов. TfgToast (UPDATED) - класс отображения быстрых сообщений TfgFlipView - слайдер изображений. Поддерживает несколько способов переключения фотографий при помощи эффектов и сдвигов. При первом использовании ОБЯЗАТЕЛЬНО прочитать инструкцию "TfgFlipView - Инструкция загрузки стиля" TfgPositionAnimation - анимация свойств типа TPosition TfgPosition3DAnimation - анимация свойств типа TPosition3D  TfgBitmapLinkAnimation - анимация свойств типа TBitmapLink  TfgProgressDialog (UPDATED) - Компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения фоновой операции можно оценить. TfgActivityDialog (UPDATED) - компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения операции не возможно адекватно оценить. TfgActionSheet (UPDATED) - Аналог контекстного меню для мобильных платформ. TfgColorsPanel - Палитра цветов с возможностью выбора цвета. TfgGradientEdit (UPDATED) - Компонент выбора градиента. TfgLinkedLabel  - Метка поддерживающая открытие Web ссылки в браузере по умолчанию. TfgApplicationEvents - компонент с возможностью легко задать обработчики на основные события приложения: Отслеживание смены состояния приложения, простой, обновление и выполнение действий Actions, Изменение ориентации устройства и тд. TfgVirtualKeyboard - компонент облегчающий работу с виртуальной клавиатурой. Позволяет задать пользовательские кнопки над виртуальной клавиатурой под iOS, а так же отлавливать события по отображению и скрытию клавиатуры. (UPDATED) Зарегистрированы все стилевые объекты на вкладке "FGX: Style objects" Список изменений
    TfgActionSheet: Добавлен новый вариант темы Theme = Custom и свойство ThemeID, позволяющий для андроида указать идентификатор своей темы диалога. Теперь доступна возможность создать свой вариант диалога для андроида. Изменен порядо срабатывания событий OnCancel, OnHide в реализации на iOS. Раньше срабатывали OnHide -> OnCancel, Теперь: OnCancel -> OnHide Обновлен пример Общие улучшения в читабельности кода TfgProgressDialog, TfgActivityDialog: Добавлен новый вариант темы Theme = Custom и свойство ThemeID, позволяющий для андроида указать идентификатор своей темы диалога. Обновлен пример Общие улучшения в читабельности кода TfgGradientEdit: Добавлено событие OnPointRemoved, срабатывающее, когда точка удалена из градиента. Обновлен пример TfgToast: Исправлена ошибка на iOS, приводящая к AV при многочисленном отображении тостов. (Спасибо Сергею Пьянкову за найденную ошибку) Регистрация стилевых объектов: Теперь регистрируются только те объекты, которые не добавлены в палитру.
  22. Like
    Pax Beach отреагировална Евгений Корепов в баг в компоненте TBluetoothLE   
    Это не баг, а фича. Так и должно работать. При использовании протокола GATT, максимальные пользовательские данные в пакете составляет 20 байт.  Если нужно больше, дробите на пакеты.
     
  23. Like
    Pax Beach отреагировална Andrey Efimov в [Android] Как узнать мой IP адрес?   
    Посмотрите вот эту страничку http://stackoverflow.com/questions/6064510/how-to-get-ip-address-of-the-device
  24. Like
    Pax Beach отреагировална Igorek в Как узнать мой IP адрес?   
    Как узнать свой айпи? Платформа андроид, но лучше, если  мультиплатформенную ф-цию.
  25. Like
    Pax Beach получил реакцию от zairkz в Андроид-фейсбук-вконтакте   
    Бандл — это пакет параметров.
    Спасибо за подсказку. Использовать нужно так: 
    TJnet_Uri.JavaClass.fromFile(TJFile.JavaClass.init(StringToJString(path))).toString;  
×
×
  • Создать...