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

Andrey Efimov

Модераторы
  • Постов

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

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

    123

Весь контент Andrey Efimov

  1. Вот посмотрите справку System.Classes.TThread.Synchronize Примеры на С++: ThreadSynchronize (C++) и TThreadYield (C++)
  2. Так вам не предлагают сдаваться, вам предлагают обновить студию, т.к. в новых версиях исправлены серьёзные ошибки первых версий. Вы просто обновите средство позволяющее достичь ваших целей, при этом избежите возможного геморроя со старыми версиями. Так что тут одни плюсы только Смысла искать проблему в приложении написанном на XE5 не вижу вообще, т.к. проблема может быть скрыта в глубинах студии и вы больше времени потратите на поиски и исправление (если это будет возможно). Ставьте Berlin, пишите приложение Hello World :), давайте друзьям на тест, если не заведётся у них, то выложите сюда apk файл и попросите народ протестить. Я лично, всегда могу посмотреть на Android 4.4.2, иногда ещё на Android 6.
  3. Не используйте XE5, это первая версия с поддержкой Android, поэтому было очень много багов. Поставьте одну из последних версий (RAD Studio Brelin Update 1 - самая последняя, список поддерживаемых версий Android http://docwiki.embarcadero.com/RADStudio/Berlin/en/Android_Devices_Supported_for_Application_Development).
  4. Ссылка: http://delphifmandroid.blogspot.ru/2016/09/delphi-android.html Автор: Андрей Ефимов Описание: Это маленькая заметка о том, какие события происходят, когда мы запускаем приложение на Android. В ней я покажу логи из LogCat (с описанием тестов, которые провёл) и мы выясним, какие же события происходят всегда, а какие нет.
  5. Можно использовать возможности Android API, а можно сделать всё самостоятельно, через какой-нибудь ini файл например Пример использования АПИ: Автоматическая смена названия приложения в зависимости от языка системы Пример нужно немного расширить: добавляем переводы меню и всего, что хотим в strings.xml, после этого, при запуске приложения получаем ресурсы из автоматически выбранного strings-**.xml. Вот так выглядит функция получения ресурса: class function TLoadR.LoadRString(const value: String): String; var resourceId: integer; begin resourceId := TAndroidHelper.Activity.getResources.getIdentifier (StringToJString(value), StringToJString('string'), TAndroidHelper.Activity.getPackageName); Result := JStringToString(TAndroidHelper.Activity.getResources.getString(resourceId)); end; Внимание! Не пытайтесь использовать функцию TAndroidHelper.GetResourceID, в ней я обнаружил багу. В след. релизе поправят. Предложенный выше код, полностью рабочий.
  6. Persistent работает только для системных приложений. Попробуйте largeHeap установить в True, тогда памяти под ваше приложение будет выделено больше. И проведите тест с событиями. А вообще, вам уже подсказали Vitaldj и Rusland, любые длительные операции пихаем в сервис.
  7. Не на всех устройствах есть родной файловый менеджер. Поэтому интенты не считаю идеальным вариантом. Идеальным будет вызов своего диалога для выбора файлов или попробуйте подключить уже готовые java-либы с диалогом для выбора файлов.
  8. 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
  9. Попробуйте при переходе в другой Edit переоткрывать клавиатуру. (хотя тоже костыль получается...)
  10. База: SQLite, либо файлы xml - тут от задачи зависит. Файлы: Деплой (если их немного), файл (.RC или .RES) - удобнее, если файлов много (для авто - генерации, писал утилитку Приложение для создания файла ресурсов (RC, RES)). Либо стягивание с сервера в инете, при необходимости.
  11. Здравствуйте. Это баг, я сообщил о нём ещё в мае (RSP-14928 и RSP-14929), в тех. поддержке предложили временное решение (ответ ниже). (Тема В TEdit стирается предыдущий текст аналогичная). find FMX.Platform.Android.pas find procedure TTextServiceAndroid.SetCaretPosition(const Value: TPoint); change code to: procedure TTextServiceAndroid.SetCaretPosition(const Value: TPoint); var SelStart, SelEnd: Integer; begin if FCaretPosition <> Value then begin FCaretPosition := Value; CalculateSelectionBounds(SelStart, SelEnd); if (FTextView <> nil) and not FInternalUpdate then PlatformAndroid.SynchronizeOnUIThread( procedure begin //Fix By [龟山]Aone(1467948783) //https://quality.embarcadero.com/browse/RSP-14928 // if (SelEnd - SelStart) > 0 then // FTextView.setSelection(SelStart, SelEnd) // else FTextView.setCursorPosition(CaretPosition.X); end); end; end;
  12. По ссылке, в первом посте, я как раз упоминал Zip4J, более того даже пример выкладывал. Но Zip4J подходит для андроида. Про Winsoft, опять же с того момента, когда писал заметку, ничего не изменилось, всё также не понятно за что платить им, если они используют в своём компоненте только эту либу, проще скачать её и добавить в проект самостоятельно. Пример использования можно глянуть тут Расширенные возможности работы с zip файлами, бесплатно и без СМС (заметка негодования, так что можно не читать, просто скачать пример p.s. Тут похоже ТС'у желательно найти универсальную либу, но я таких не встречал.
  13. С соединением у вас проблемы какие то... Подробнее тут ERROR_CODE_NETWORK_ERROR Вот ещё рекомендация, всегда проверяйте подключение к интернету, перед загрузкой баннера. (в своей статье тоже забыл об этом написать...)
  14. Надо поискать в интернетах, вроде даже где-то видел обсуждение этой темы. p.s. почистил от лишнего
  15. Всё, что касается рекламы, продвижения, уплаты налогов и т.п. можно почитать тут: Форум об интернет-маркетинге - Раздел: Google AdSense (там поиском воспользуйтесь) Вот ещё тема оттуда Уплата налогов с AdSense и заполнение налоговой декларации: подробный мануал Форум ФНС - Например, Доходы с AdSense
  16. Из описания вебинара: Как уже говорил, не имею Apple девайсов, но надеюсь кто-то напишет подобную статейку.
  17. Есть раздел "Ищу подрядчика", вполне сойдёт для публикации вакансии или разовой подработки.
  18. Andrey Efimov

    CurrentTime

    FMX.Media.TMediaPlayer.CurrentTime Там написано:
  19. Ну, про настройку, вывод и уплату налогов, полно статей в интернете. У меня была цель, описать интеграцию рекламы в приложение, а не общую инструкцию по использованию сайта AdMob. p.s. Про сервисы Firebase (Analytics, Cloud Messaging и т.д.), ещё не успел рассмотреть эту тему, но в планах есть.
  20. Ссылка: http://delphifmandroid.blogspot.ru/2016/07/admob.html Автор: Андрей Ефимов Описание: Подробная инструкция по добавлению рекламного блока в приложение, разработанное в RAD Studio.
  21. Речь шла о том, что нет смысла плодить подобные темы, а не про удаление. Хорошо, что вы поделились решением. Если ваше решение сработало для темы Уничтожение приложения из него самого, то туда его и надо было запостить, а не создавать отдельную тему для публикации. ИМХО. А если вы хотите выложить библиотеку или обёртку, то необходимо тогда максимально описать (методы и т.д.) работу с тем, что выложили. Я бы ещё понял, если бы вы описали все методы из класса, а так получается можно 1000 тем создать по каждому классу (из стандартной библиотеки android.jar) и указать строчку кода для использования какого-нибудь метода из каждого класса, вроде получается полезно, но с другой стороны, все методы не описаны, а обёртки можно скачать или сгенерить самостоятельно, получается просто забили форум темами... Посмотрите как делают другие: Вопрос - решение (в одной теме) - GCMIntentService или Multiline Push and Local Notification Публикация библиотеки - Telega π - Библиотека для работы с Telegram Bot API в Delphi Обёртки для стандартной библиотеки android.jar опубликованы в таком виде Полностью транслированное Android API 7-23 уровня
  22. Тема будет перенесена в раздел TLabel Вы вроде не первый день на форуме... Давайте помогу: На форуме есть раздел TLabel, заходим и видим несколько похожих вопросов: [Android] TLabel и открытие URL Как сделать из Label гиперссылку? [TLabel]OnClick в Android Читаем, думаем. Хочется быстрого результата, но не устанавливая компоненты - заходим во 2 тему, видим ссылку на компоненты от Ярослава [RX] [FGX] Описание версии 0.7.1.74, скачиваем, открываем исходники TfgLinkedLabel и смотрим как всё устроено. Или просто устанавливаем и пользуемся компонентом. Ап. тема перенесена
  23. Не очень понимаю цель создания отдельной темы... У вас же была тема Уничтожение приложения из него самого, если хотели поделиться решением, то запостили бы туда или сюда Как закрыть процесс стандартного приложения? Дальше, касательно "портирования" 1) Все классы портированны уже очень давно, лежат тут [GitHub]android-object-pascal-wrapper 2) Есть утилита Java2Op (идёт вместе со студией или можно скачать отдельно), которая позволяет портировать любые классы, собственные или из сторонних библиотек. Сгенерить обёртку проще простого... 3) Если вы выкладываете файл (обёртку), то всегда указывайте версию АПИ или версию библиотеки для которой создана обёртка.
  24. Прошивка и драйвер совершенно разные вещи, прошивка на устройстве, драйвер на ПК, я говорил про драйвер. Раз уже прошивали через провод, значит драйвера стоят правильные. Тут похоже дело в SDK, либо с планшетами что-то... Во всех темах про прошивки есть драйвера для установки, которые с вероятностью 99% - рабочие. Да, это уже можно было не проверять. Раз adb не хочет ставить, значит дело не в студии.
  25. Хм... Попробуйте переустановить SDK и попробовать снова. В SDK Manager установите все пункты со скриншота, только SDK Platform выберите тот который вам нужен. Если не поможет, то попробуйте написать о проблеме сюда https://quality.embarcadero.com/secure/Dashboard.jspa
×
×
  • Создать...