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

Лидеры

  1. Andrey Efimov

    Andrey Efimov

    Модераторы


    • Баллы

      2

    • Постов

      842


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

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

    Модераторы


    • Баллы

      2

    • Постов

      2 517


  3. masmat

    masmat

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


    • Баллы

      2

    • Постов

      75


  4. Brovin Yaroslav

    Brovin Yaroslav

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


    • Баллы

      1

    • Постов

      2 124


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

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

  1. Kitty

    Движок форума надо заменить

    Не возможно пользоваться форумом с мобильных устройств - режет сообщения - закрывает клавиатурой текст сообщения и т.п. Форум бесценен. Интерфейс ужасен.
    1 балл
  2. Я бился над этим в своё время, в итоге забил и сделал просто кликабельную панель сбоку от этого компонента.
    1 балл
  3. Andrey Efimov

    Помогите начать

    спасибо. вроде понятно что проблема просто в версии android. сейчас попросил запустить приложение человека с android 4 - у него работает. Проблема в поддержке версии Андроид, в данном случае, XE5 не поддерживает разработку приложений под Android 5. Как уже сказал Zuby, чтобы разрабатывать под пятый Андроид, необходимо установить более свежую версию RAD Studio. Поддержка появилась с версии XE7 Upd 1, ставьте её, а ещё лучше, сразу последнюю, RAD Studio Seattle и будет вам счастье. Справка по поддерживаемым версиям Android: XE5: http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Application_Development XE6: http://docwiki.embarcadero.com/RADStudio/XE6/en/Android_Devices_Supported_for_Application_Development XE7 (для Android 5, выпущен ап): http://docwiki.embarcadero.com/RADStudio/XE7/en/Android_Devices_Supported_for_Application_Development XE8: http://docwiki.embarcadero.com/RADStudio/XE8/en/Android_Devices_Supported_for_Application_Development Seattle: http://docwiki.embarcadero.com/RADStudio/Seattle/en/Android_Devices_Supported_for_Application_Development p.s. Разрабатывать на XE5, самое неблагодарное дело (как вспомню, сколько там багов было, даже в дрожь бросает), переходите на новую версию.
    1 балл
  4. haword

    Потоки и процедуры

    procedure potoc1 begin // выполняем действия связанные с визуальными компонентами end procedure potoc begin // выполняем загрузку файла из интернета; TThread.Synchronize(nil, potoc1); end; TTask.Run(potoc); так лучше?
    1 балл
  5. При указанном мной способе, файл перезаписывается на УРА
    1 балл
  6. Под Android я делаю так. Вставляю изначально файл БД в Deploy. Потом вызываю при необходимости процедуру procedure TForm1.RefreshBD; { TODO -cKod : RefreshBD - обновление БД } var PackageName: JString; zip: TZipFile; begin // Отключаемся от базы FDConnection1.Connected := False; // Получаем имя apk файла PackageName := SharedActivityContext.getPackageResourcePath; if TFile.Exists(JStringToString(PackageName)) then begin // Удаляем старый файл базы TFile.Delete(TPath.GetHomePath + PathDelim + 'DBGK.db'); // Извлекаем новый файл базы zip := TZipFile.Create; zip.Open(JStringToString(PackageName), TZipMode.zmRead); zip.Extract('assets/internal/DBGK.db', TPath.GetDocumentsPath, False); zip.Close; zip.free; end; // Подключаемся к базе FDConnection1.Connected := True; end; Под iOS вставляю в ресурсы, потом вот так procedure TForm1.RefreshBD; { TODO -cKod : RefreshBD - обновление БД } begin // Отключаемся от базы FDConnection1.Connected := False; if FindResource(0, 'res_bd', PChar(RT_RCDATA)) <> 0 then rs_bd := TResourceStream.Create(0,'res_bd',PChar(RT_RCDATA)); if TFile.Exists(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db') then begin TFile.Delete(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db'); rs_bd.SaveToFile(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db'); end else begin rs_bd.SaveToFile(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db'); end; FDConnection1.Connected := True; end;
    1 балл
  7. использовать такую конструкцию //uses System.Threading; TTask.Run( procedure begin // выполняем загрузку файла из интернета; TThread.Synchronize(nil, procedure begin // выполняем действия связанные с визуальными компонентами end); end); но помнить что из доп. потока нельзя запустить доп. поток
    1 балл
  8. idhttp1.Create(Application); - что это за бред? IdHTTP - это откуда взялось? никогда и никому этот код не показывай берем файлик во вложении подключаем в проекте и пишем with ListView1.Items.Add do begin Text := 'Text'; Bitmap.LoadFromUrl('http://site.ru/icons/icon.png'); end; не проверял, но должно работать. не нужно пихать в поток, там итак уже используется FMX.Features.Bitmap.Helpers.zip
    1 балл
  9. Допустим ситуацию: Имеем 164 картинки (может быть больше. Размер примерно 128х128), данные картинки нужно добавить в приложение перед компиляцией apk-файла. У всех картинок уже заданы разные имена, например по такой схеме: 10 картинок (фрукты) – имя = fruit_1..10 26 картинок (овощи) – имя = vegetables_1..26 и т.п. при добавлении в Rad Studio необходимо сохранить эти имена, чтобы потом можно было по ним обращаться к картинкам. В приложении, список имён хранится в ComboBox'е, также как и количество картинок для каждой категории. Я вижу четыре варианта хранения: StyleBook (минусы: неудобно добавлять по одной штуке, каждой картинке нужно присвоить имя) Хранить в ресурсах (плюсы: можно добавить сразу все картинки. Минусы: нужно задать каждой картинке имя) Задеплоить (главный минус: прописывать настройки (путь и т.п.) для каждого файла (Kikoma просветил меня, оказывается можно массово задавать конечный путь)) единственное что теперь смущает, так это куча файлов в окне для деплоя Хранить все картинке в zip-архиве (плюсы: один файл, извлечь архив можно в любой момент) Это пока экспериментальный вариант, к нему я склоняюсь больше всего. Смысл данного варианта заключается в том что я запихну все картинки в один архив, сам архив в приложение, и когда придёт время извлеку все картинки по нужному пути, т.е. деплой в рантайме Минусы: Размер приложения в конечном итоге, после извлечения архива будет чуток больше. Картинки у меня в png формате, к ним я применяю сжатие при помощи PNGGauntlet, чтобы уменьшить размер. У кого есть ещё какие-нибудь варианты? Суть вопроса заключается в том, чтобы найти максимально простой и наименее затратный по времени вариант добавления картинок. Чтобы не задавать новые имена, а использовать уже существующие, чтобы можно было в один клик добавить все картинки, чтобы можно было в один клик прописать путь (если нужно) для всех картинок.
    1 балл
  10. Добрый вечер, Тут есть два способа: Работа с Deployment менеджером. Он довольно подробно описан на Embarcadero Doc Wiki: http://docwiki.embarcadero.com/RADStudio/XE5/en/Deployment_Manager Работа через менеджер ресурсов и их получение через ResourceStream. Этот способ описал MyDelphiPw в сообщении выше тут. 1. Deployment Manager Специальная настройка проекта, которая позволяет указать, какие файлы нужно включить в состав пакета (Андроид) или бандла (iOS). Суть его работы простая, вы указываете какие файлы с вашего компьютера нужно перенести на устройство (в какое место). А далее работаете с ними из приложения так, как при обычной работе с файлами под Windows. На мобильных платформах нужно учесть специфику возможных местоположений файла. Пакет/Бандл (приложение) не допускает изменения внутренних файлов, потому что подписывается сертификатом. Поэтому теоретически при изменении файлов приложения, вы нарушаете целостность подписи. Именно по этому файлы внутри пакета/бандла доступны только на ЧТЕНИЕ. Однако, мобильные платформы предлагают широкий круг специальных мест для хранения (временные папки, песочницы, документы, карточка памяти и тд) изменяемых файлов (например файл локальной базы данных, или настройки в ini файле и тд). Описание всех вариантов местоположений с описанием путей есть в записе TPath (RTL): http://docwiki.embarcadero.com/RADStudio/XE5/en/Standard_RTL_Path_Functions_across_the_Supported_Target_Platforms. Общие действия для использования менеджера развертывания такие: 1. Открываем менеджер развертывания: Системное Меню -> Project -> Deployment. 2. Выбираем в верхнем выпадающем меню платформу и конфигурацию сборки. 3. Нажимаем кнопку добавить файл и выбираем нужный файл. 4. Указываем местоположение файла, куда он должен поместиться после развертывания приложения на устройстве. Тут есть особенность, если файл нужен только на чтение, то пути менять не надо. Если возможна ситуация, когда файл может быт изменен, то файл нужно поместить под iOS в Startup\Documents\ (регистр важен) Под Андроид в assets\internal (регистр важен) - для внутреннего доступа из пакета приложения или assets - для внешнего доступа 5. Получаем пути к расположению файлов: Под iOS: TPath.Combine(TPath.GetDocumentsPath, 'filename') Под Андроид: TPath.Combine(TPath.GetDocumentsPath, 'filename') { Внутренний доступ} TPath.Combine(TPath.GetSharedDocumentsPath, 'filename') { Внешний доступ } Полезные ссылки Подробное руководство по добавлению файлов для iOS: http://docwiki.embarcadero.com/RADStudio/XE5/en/Creating_an_iOS_App#Loading_and_Deploying_Files Подробное руководство по добавлению файлов для Android: http://docwiki.embarcadero.com/RADStudio/XE5/en/Creating_an_Android_App#Loading_and_Deploying_Files
    1 балл
  11. Да, можно. В файл проекта dpk добавляем строку program YouSoft; {$R 'resource.res' 'resource.rc'} в файле resource.rc создаем такое содержимое: YouRes RCDATA .\Resources\твой_файл.txt и далее в программе загружать примерно так: var Stream: TResourceStream; begin Stream:= TResourceStream.Create(hInstance, 'YouRes', RT_RCDATA); try //Работаем с потоком finally Stream.Free; end; Как-то так. Удачи!
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...