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

Brovin Yaroslav

Администраторы
  • Постов

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

  • Посещение

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

    390

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

  1. Like
    Brovin Yaroslav отреагировална Kitty в Запуск видео по расписанию в плеере на Андроиде   
    Большое спасибо за развернутые ответы!
     
     
    Да, именно так и планируется. Закуплены однотипные устройства: http://rozetka.com.ua/iconbit_movie_3d_iptv/p387929/ и сугубо для этих целей - играть по одному видео по расписанию. Сейчас вместо программы, в назначенное время ходит человек и запускает нужные видео.
     
    Конкретно на этих устройствах еще не тестировала программу т.к. пока все в разработке. На моем же PIPO M7 Андроид 4.4.2 похоже, что работает. Обидно будет, что возможно на этих устройствах программа не заработает как надо, но плюс по любому есть - изучение FM.
  2. Like
    Brovin Yaroslav получил реакцию от Andrey Efimov в Запуск видео по расписанию в плеере на Андроиде   
    Если такая опция и есть, то она скорее всего носит рекомендательный характер для системы, а не обязательный. Например, есть опция largeHeap в манифесте, которая говорит о том, что нужно выделять приложению больше памяти largeHeap. Но официально указано, что нет гарантии ее выполнения. Что в общем и ожидаемо. Так как если на устройстве нет свободной памяти, то больше ее брать не от куда.
     
    Тоже касается и этой опции. Так как - это будет потенциальный риск написания вредоносного приложения или сервиса, который будет занимать все ресурсы и не давать ничего загрузить.
  3. Like
    Brovin Yaroslav отреагировална Nix0N в [Отклонение] Программа не отвечает после вращения устройства   
    Данные "косяки" присутствовали в RAD Studio XE5. В XE6 полёт нормальный. Android 4.1
    Предполагаю, что в Вашем случае проблема кроется в перерисовке стиля. Попробуйте realigncontent, update и т.д.
  4. Like
    Brovin Yaroslav отреагировална Nix0N в Запуск видео по расписанию в плеере на Андроиде   
    Да, необходимо завершить предыдущую активити с MXPlayer
     
    Используйте JNI и переделайте под Ваши нужды:
    ActivityManager.killBackgroundProcesses(String packageName) Где packageName - название пакета MXPlayer
     
    Если видео запускается в том же экземпляре программы MXPlayer, то этого делать не нужно.
     
    Можете подсмотреть здесь
  5. Like
    Brovin Yaroslav отреагировална Andrey Efimov в Горизонтальная линия в целых координатах рисуется двойной   
    Посмотрите вот эту статью: http://roman.yankovsky.me/?p=1018
     
    upd от "konung": Русская версия статьи: http://roman.yankovsky.me/?p=996
  6. Like
    Brovin Yaroslav отреагировална konung в [Руководство] Отладка программы на Android устройстве через Wi-Fi   
    Чуток добавлю (тоже интересовался), но сразу оговорюсь - ещё не пробовал:
     
    От тут про отладку по wifi несколько ссылок (android вообще, не к BDS привязано):
    http://vadimrm.livejournal.com/179949.html
     
    И в частности комрад дает ссылки на ADB коим не нужен root:
    https://play.google.com/store/apps/details?id=com.sherdle.adbwireless
    http://sherdle.com/adb/
  7. Like
    Brovin Yaroslav отреагировална konung в [Руководство] Отладка программы на Android устройстве через Wi-Fi   
    2 Nix0N
     
    Эт я не спорю. Просто хотел дать ссыль на вариант без root-а. Но подчеркнул, что не проверял это всё на BDS.
  8. Like
    Brovin Yaroslav отреагировална Nix0N в [Руководство] Отладка программы на Android устройстве через Wi-Fi   
    Если вас, как и меня, не устраивает скорость работы эмулятора Android и в вашей системе нет свободных USB чтобы подключить устройство для отладки, то эта инструкция для вас. Внимание ! Перед дальнейшим выполнением необходимо получить root на устройстве ! Как это сделать описано здесь
     
    *статья написана на основе RAD Studio XE6 с путями по умолчанию
    **подразумевается что драйвера на устройство установлены, оно определяется в системе и успешно работает по USB кабелю с IDE
     
    Итак, начнем:
     
    1. Устанавливаем на устройство ADB over WIFI Widget. Вообще подобных программ множество, но я выбрал именно эту за её удобство. Исполнена в виде виджета, по клику активируется или деактивируется.
     
    2. Перезагружаем устройство
     
    3. Идём в раздел "Виджеты" и выносим виджет на рабочий стол (настройки виджета не меняем)
     
    4. Включаем Wi-Fi на устройстве (если еще не включен) и кликаем по виджету. Если на виджете появилась информация в виде "IP адрес : порт" и цвет виджета из серого сменился на зеленый - программа успешно запущена и можно переходить ка настройкам на ПК.
     

     
    5. Теперь необходимо подключить ADB к устройству. Для этого идем в каталог c:\Users\Public\Documents\Embarcadero\Studio\14.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\platform-tools\ и создадим там BAT-файл следующего содержания:
    adb connect 192.168.1.3:8000 (IP адрес и порт, которые изображены на виджете вашего устройства) pause (чтобы окно CMD не закрывалось и можно было отследить результат работы ADB) 6. Запускаем BAT-файл
     
    В случае успешного выполнения ADB подключится к устройству. Всё, можно запускать IDE.

  9. Like
    Brovin Yaroslav получил реакцию от Andrey Efimov в Как получить объект стиля?   
    Еще можно через StylesData. Но в этом случае вначале идет название (StyleName) внутреннего объекта стиля, а потом через точку название свойства. 
    Вы пытались задать, но не правильно указали название элемента. Если итем лист бокса принимает стиль "listboxitemlabel", то чтобы добраться например до внутреннего объекта icon. Нужно написать так:
    ListBoxItem.StylesData['icon.width'].asInteger
  10. Like
    Brovin Yaroslav отреагировална konung в Как правильно запустить видео в плеере из своей программы?   
    2 Kitty
     
    Не уверен что так можно делать а Android. Тут, как и многое другое, надо юзать через Intent-ы (намерения).
    Рыться надо по сему поводу на сайтах/форумах по программированию на Android. Ибо в мануалах и демках BDS это скудно освещено.
  11. Like
    Brovin Yaroslav отреагировална Andrey Efimov в Как получить объект стиля?   
    Вроде как можно искать объект стиля, например иконку в ListBoxItem:
    var   StyleObject: TFmxObject;   StyleIcon: TControl; begin   // Ищем объект стиля - картинка. Лучше закешировать один раз, избежав постоянный поиск картинки    StyleObject := Item.FindStyleResource('icon');   if (StyleObject <> nil) and (StyleObject is TControl) then   begin     StyleIcon := TControl(StyleObject);     // и дальше работаем как с обычным контролом   end; end; попробуйте, может поможет.
  12. Like
    Brovin Yaroslav получил реакцию от Nix0N в Как изменить стиль по умолчанию для андроида?   
    Если задача стоит просто изменить стандартный платформенный стиль. То, чтобы измененный стиль не занимал дополнительное место в приложении, нужно им заменить стандартный.
     
    Я писал давно статью на эту тему тут: FMX 2.0. Глобальная замена платформенного стиля по умолчанию без TStyleBook
     
    Идея простая, заменить ресурс стандартного стиля на ваш.
     
    Дополнение для названия ресурсов в приложении. Вначале указано название ресурса в приложении, затем платформа
    iphonestyle - iPhone iOS < 7.0  ipadstyle -  iPad iOS < 7.0 iphonepadstyle_Modern - iOS >= 7.0 androidstyle - Android win7style -  WIndows 7 win8style - Windows 8 lionstyle - OSX Если же вы создаете новые стили (кастомный стиль итемов и тд), то их нужно грузить обычным способом через стиль бук. И поскольку они новые, ваши, то они включаются в ресурсы формы и увеличивают размер приложения.
  13. Like
    Brovin Yaroslav получил реакцию от Nix0N в Обновление списка ListBox, как в приложении ВКонтакте   
    Мне кажется, что через обычный MouseMove, MouseDown, MouseUp будет проще. Через них как раз можно определить высоту сдвига.
    В начале сдвига, на основании ScrollViewPos отображаем стрелку с надписью. В MouseMove следим за величиной сдвига При достижении требуемой величины сдвига, меняем надпись и направление стрелки. При отпускании скрываем надпись, стрелку и отображаем TAniIndicator.
  14. Like
    Brovin Yaroslav отреагировална Nix0N в Обновление списка ListBox, как в приложении ВКонтакте   
    Давайте поразмыслим как такого эффекта можно добиться для ListBox. Первое что приходит в голову это:
    Добавляем Item в ListBox (обязательно первым) и выставляем его свойство Height = 0 В тексте Item'a введем что-то похожее на "Тяните для обновления..." Добавляем GestureManager и в жестах отмечаем Down Необходимо отловить тап по экрану и если движение идёт сверху-вниз соответственно увеличивать Height нашего первого Item'a Как только высота item'a достигла определенного значения, сменим текст на "Отпустите для обновления" и считаем что жест успешно выполнен, иначе перекрываем обработчик жестов По окончании жеста вызывается обработчик менеджера жестов и т.д.... Каким образом реализовать 4-й и 5-й пункт ?

  15. Like
    Brovin Yaroslav отреагировална brunnengi в Куда делся TJSONObject в XE6?   
    Спасибо.
  16. Like
    Brovin Yaroslav получил реакцию от brunnengi в Куда делся TJSONObject в XE6?   
    TJSONObject был перемещен в другое место из Data.DBXJSON в System.JSON. Подробнее тут: What's New in Delphi and C++Builder XE6 Работать так же, как и раньше. Просто изменить название подключаемого модуля на System.JSON.
  17. Like
    Brovin Yaroslav отреагировална Andrey Efimov в Как получить путь к файлу в Андроид приложении?   
    Прочитайте эту тему на форуме: Включение своих файлов в приложение
     
    Для сохранения логов, отладочной информации можно использовать открытые для доступа папки вашего приложения, которые при удалении приложения также удаляются и не оставляют мусора, подробности вы можете найти в этой статье: Deployment Manager или куда ещё можно задеплоить файлы
     
     
    А здесь (в комментариях), я объясняю, почему не стоит создавать папки в корне карты памяти: Обновляем файл базы данных без перезапуска приложения
     

  18. Like
    Brovin Yaroslav отреагировална konung в Как получить путь к файлу в Андроид приложении?   
    Я так понимаю - вам надо получить путь к каталогу где "лежит" само приложение для сохранение конфигов и т.п.
    Для эти целей воспользуйтесь GetHomePath.
     
    Однако учтите, что доступ к данному каталогу (если телефоне не root-ован) имеет только сама ваша программа (ну естественно и ось и т.п.). Т.е. зайти туда (без рута) вы не сможете.
    Для хранения настроек программы, ресурсов - это вполне удобно. Однако для логов, или выгрузки результатов работы - лучше определить для себя иной каталог.
  19. Like
    Brovin Yaroslav получил реакцию от Kitty в FGX. Индикация хода выполнения длительных операций, виртуальная клавиатура и ActionSheet   
    Добавлена новая версия расширения компонентов FireMonkey. Новый пакет поддерживается только для XE6. 
     
    Список возможностей:
    Progress Dialog - Добавлены события OnShow, OnHide. Progress Dialog - Исправлены утечки памяти на Андроид и IOS TfgProgressDialog - Добавлен метод для немедленного сброса прогресса без анимации ResetProgress. TfgActionSheet - Добавлена поддержка действий TAction. Так же теперь можно указать только по одной кнопке деструктивного и отменного типа. TfgColorsPanel - Добавлен новый контрол для выбора цветов из готовых пресетов. Поддерживает следующие наборы цветов: WebSafe, X11. Позволяет указывать свои наборы цветов. TfgGradientEdit - Добавлен новый контрол для задания градиента. TfgLinkedLabel - Добавлен новый контрол - метка со ссылкой. Открывает указанную ссылку в стандартном браузере. Поддерживает все платформы. Добавлены и улучшены примеры каждых контролов. Добавлен набор хелперов И другие улучшения на уровне кода. TfgActivityDialog
    Работа под iOS:

    Работа под Андроид (Выше, чем GingerBread 2.3):

    Работа под Андроид (GingerBread 2.3):

    TfgProgressDialog
    Работа под iOS:

    Работа под Андроид (Выше, чем GingerBread 2.3):

    Работа под Андроид (GingerBread 2.3):
    TfgActionSheet


    TfgColorsPanel

    TfgLinkedLabel

  20. Like
    Brovin Yaroslav получил реакцию от Владимир в [TTabControl] Красивое 3D переключение вкладок в TabControl   
    Можно сделать так:
    Делаем поворот TTabControl на от 0 до 90 градусов, чтобы он повернулся к пользователю ребром. По окончании первой анимации меняем активную вкладку в TTabControl. Делаем поворот TTabControl еще на 90 градусов от 270 до 360. В итоге TTabControl поворачивается к нам уже новой вкладкой.  Видео эффекта в действии: 

     
    Проект: TTabControl_3DRotationDemo.zip
  21. Like
    Brovin Yaroslav получил реакцию от CrazyUser в Нестандартные шрифты, какие изменения нужно сделать, что сделать переход с XE5 на XE6?   
    Так же обратите внимание на страницу "What's New in Delphi and C++Builder XE6", на которой полностью указаны все изменения от XE5 до XE6. 
  22. Like
    Brovin Yaroslav получил реакцию от CrazyUser в Как использовать Toast уведомления?   
    На будущее, "Одна тема - один вопрос". Это облегчает поиск решения своей задачи, когда заголовок содержит один вопрос и ответы на него. А не одну тему внутри которой, сидит несколько вопросов.
     
    Toast уведомления
    Дополнительная информация о том, что такое Toast можно прочитать на официальном сайте Андроида: Toasts
     
    Диалоговое окно ввода
    Диалоговое окно с эдитом во все время в Delphi вызывалось одной из двух процедур. Для FireMonkey они находятся FMX.Dialogs, в VCL - VCL.Dialogs:
    function InputBox(const ACaption, APrompt, ADefault: string): string; function InputQuery(const ACaption: string; const APrompts: array of string; var AValues: array of string; CloseQueryFunc: TInputCloseQueryFunc = nil): Boolean; function InputQuery(const ACaption: string; const APrompts: array of string; var AValues: array of string; CloseQueryEvent: TInputCloseQueryEvent; Context: TObject = nil): Boolean; function InputQuery(const ACaption, APrompt: string; var Value: string): Boolean; InputQuery - отображает модальное диалоговое окно с поле ввода для ввода текстового значения

    InputBox - Отображает модальное диалоговое окно с несколькими полями ввода для множественного ввода значений.

  23. Like
    Brovin Yaroslav получил реакцию от Andrey Efimov в Нестандартные шрифты, какие изменения нужно сделать, что сделать переход с XE5 на XE6?   
    Так же обратите внимание на страницу "What's New in Delphi and C++Builder XE6", на которой полностью указаны все изменения от XE5 до XE6. 
  24. Like
    Brovin Yaroslav отреагировална konung в Что нужно использовать вместо ShowMessage на Андроиде?   
    Сами пишем - сами отвечаем
     
    Workaround
    Решение: On Android, Use TPopup Instead of ShowMessage
     
    Хотя в QC висит всё же как не решенное http://qc.embarcadero.com/wc/qcmain.aspx?d=119285
     
    Благодарю за ответ(ы)
  25. Like
    Brovin Yaroslav отреагировална konung в Нестандартные шрифты, какие изменения нужно сделать, что сделать переход с XE5 на XE6?   
    В XE6 произошли следующие изменения:
    StringToJString вынесено в Androidapi.Helpers. TPixelFormat теперь в FMX.Types и выглядит так: TPixelFormat = (None, RGB, RGBA, BGR, BGRA, RGBA16, BGR_565, BGRA4, BGR4, BGR5_A1, BGR5, BGR10_A2, RGB10_A2, L, LA, LA4, L16, A, R16F, RG16F, RGBA16F, R32F, RG32F, RGBA32F); хотя в XE5 сидел в FMX.PixelFormats и имел иной вид...
×
×
  • Создать...