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

Hevard

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

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

  • Посещение

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

    7

Сообщения, опубликованные Hevard

  1. Для переноса (компилирования) проектов из более ранней версии необходимо провести действия для Android 32-bit и Android 64-bit.

    В окне Projects (справа) выбрать Target Platforms -> Правой кнопкой щёлкнуть по Libraries и выбрать Revert System Files to Default.

    И не забудьте перенести debug.keystore из c:\Users\<USER>\AppData\Roaming\Embarcadero\BDS\21.0\ в папку ...\22.0\

    Delphi: Community Edition - Embarcadero

     

    2023-05-01.png

  2. Сам спросил, сам ответил:

    var
      PackageManager: JPackageManager;
      ApplicationInfo: JApplicationInfo;
      VersionPackage,PackageName, Name_APK: JString;
    begin
    // APK Version
       PackageManager := SharedActivity.getPackageManager;
       ApplicationInfo := SharedActivity.getApplicationInfo;
       PackageName := SharedActivityContext.getPackageName;
       VersionPackage := PackageManager.getPackageInfo(PackageName, 0).versionName;
       Name_APK := PackageManager.getApplicationLabel(ApplicationInfo).toString;

  3. В 12.12.2015 в 10:22, sdn31 сказал:

    Спасибо. взял ключ из "C:\Users\{username}\AppData\Roaming\Embarcadero\BDS\17.0\debug.keystore" и все заработало. Теперь со временем нужно сделать файл KeyStore. 

    Сменил ноутбук, переустановил Embarcadero и столкнулся с подобной ошибкой. Благо, старый диск в наличии. Перенёс этот debug.keystore, всё наладилось.

  4. В 06.04.2017 в 13:20, Олег Киреев сказал:

    Правильно ли я понимаю что для того чтобы обновить файл базы всё равно надо переустанавливать приложение хотя и не удаляя его перед этим? Тогда какой смысл переустанавливать если само приложение не изменилось а только база пополнилась? Логичнее было бы указать местонахождение приложению новоскачанный файл apk и оттуда взять файл базы или просто без apk сам файл базы?

    Использовал такой пример:

    procedure TForm1.Button2Click(Sender: TObject);
    var
     zip: TZipFile;
     PackageName: JString;
    begin
     // Отключаемся от базы
     test_connect.Connected := False;
     // Получаем имя apk файла
     PackageName := SharedActivityContext.getPackageResourcePath;
     if TFile.Exists(JStringToString(PackageName)) then
     begin
      // Удаляем старый файл базы
      TFile.Delete(TPath.GetHomePath + PathDelim + 'test.db');
      // Извлекаем новый файл базы
      zip := TZipFile.Create;
      zip.Open(JStringToString(PackageName), TZipMode.zmRead);
      zip.Extract('assets/internal/test.db', TPath.GetDocumentsPath, False);
      zip.Close;
      zip.free;
     end
     else
      showmessage('False');
     // Подключаемся к базе
     test_connect.Connected := True;
    end;

    (взято от сих: Delphi разработка под Android: Обновляем файл базы данных без перезапуска приложения (delphifmandroid.blogspot.com))

    Суть проблемы была в том, что были изменения и в базе, и в приложении. Но все новые версии устанавливались без переустановки новых *.db файлов. Собственно, данным примером положение исправилось.

  5. 13 часов назад, OnePeople сказал:

    В чем разница между человеком и ногой?

    Вам к психологу обратиться не мешало бы! Тоже мне, доктор Хаус очередной.

    А если отвечать на Ваш вопрос по теме, то без разницы - и там, и там можно сделать запись татуировкой.

  6. В 02.04.2018 в 23:27, krapotkin сказал:

    Храните в БД или хотя бы в JSON. Вот тут я расписывал подходы

    Подскажите, а в чём принципиальная разница между типизированным файлом и JSON? Как это влияет на сохранение небольшого количества данных и использование в дальнейшем? Для записи в типизированный файл не нужны дополнительные библиотеки, в отличии от использования JSON.

  7. Доброго дня!

    Есть динамический массив, который надо выгрузить в файл. Не могу понять, каким методом.

    Под Win делал так:

    ...

       AssignFile(IndexFile, 'DB\Index.tmp');
       Rewrite(IndexFile);

    ...

     (в динамическом цикле)

      // Запись в файл

        Writeln(IndexFile,IntToStr(I)+', '          // номер по порядку
                         +IntToStr(QNum)+', '          // номер вопроса
                         +IntToStr(URes)+', '            // ответ
                         +IntToStr(RAns));               // правильный ответ
       //  Запись массива

       IndexData[I,1] := I;                 //  I строка, 1 столбец - номер по порядку
       IndexData[I,2] := QNum;       //  I строка, 2 столбец - номер вопроса
       IndexData[I,3] := URes;         //  I строка, 3 столбец - ответ
       IndexData[I,4] := RAns;         //  I строка, 4 столбец - правильный ответ
       end;
       CloseFile(IndexFile);

    Параллельно возник ещё вопрос: А закрывать файл после записи не надо теперь?

    Не нашёл ничего похожего на CloseFile.

  8. Добрый день!

    В RAD есть шаблоны на 5" и на 7". Как приложение определяет дюймовку экрана?

    Есть 2 телефона:

    1. Разрешение (пикс): 1920x1080 (5.2")
    2. Разрешение (пикс): 2340x1080 (6.3")

    В первом - шаблон 5", во втором - 7"

    Как так получается?

  9. Деплоим в assets\internal\ файл звука (мр3 или ogg), размещаем на Форме компонент MediaPlayer1 и используем:

    procedure TMainForm.MakeSound;
    begin
      {$IFDEF ANDROID}
       MediaPlayer1.FileName := TPath.Combine(TPath.GetDocumentsPath, 'Button.ogg');
       MediaPlayer1.Play;
      {$ENDIF}
    end;

    К примеру:

    procedure TMainForm.Button2Click(Sender: TObject);
    begin
    //====================
    ...

    ...
      MakeSound;
    //======================
    end;

     

  10. В 09.01.2023 в 15:56, OnePeople сказал:

    Проверьте на наличие символов #13 на windows и android они немного по разному переносятся, может у вас там типо такого точно не помню как именно, но например #13 в windows не переносит так как нет #10, а в android переносит, hex редактором проверьте, точно не помню но есть такая байда

    Глаза сломал в HEX редакторе... 

    Вопрос решился изменением типа поля (в SQLite Studio) с Text на RTL Text. 

  11. Доброго дня!

    Не могу понять, откуда возникают пустые строки в списке? В самой ячейке таблицы SQLite текст выглядит как:

    ~ при обнаружении на пути или в тоннеле препятствия или неисправности, угрожающей безопасности движения;
    ~ при необходимости подать напряжение на контактный рельс;
    ~ при крушении поезда и в других случаях, когда требуется помощь;
    ~ при потере поездом тормозного эффекта, если создается угроза наезда на препятствие или людей;

    В Win приложении отображается корректно, а под Андроид - возникают разрывы между предложениями.

    (пункт 2 был написан в "одну строку"... )

    Screenshot_20211212-224428.jpg.3f83cfd94810c9ef22bf7123ef8485dc.jpg

  12. Выбрано было всё верно, но работает оно, как-то странно. Я закрыл проект, открыл снова и стиль применился. Не знаю, от чего это зависит...

    (Бывает, что Панель компонентов живёт своей жизнью. 🙂

    И параллельно возник ещё вопрос - как сделать тему в цвет платформы? В Win установлена тёмная тема, а приложение - светлое. 

    Безымянный.png

  13. 8 часов назад, Tumaso сказал:

    Также попробуй запустить приложение без стиля, будет запускаться?

    Без стиля всё прекрасно работало. Если удалить StyleBook - работает, если добавить в свойства Формы StyleBook1 - работает, но без стиля. А если прописать путь в FileName - повторяется прежняя котовасия с зависанием (х32) и вылетом(х64).

  14. Доброго дня!

    Не могу победить применение стиля в приложении FMX.

    Положил на Форму TStyleBook, выбрал 0-Android, открыл и применил стиль Transparent.Style, в свойстве Формы добавил StyleBook = StyleBook1... В окне Design всё изменилось, всё красивое.

    В Win10 приложение запускается в стиле, на телефоне при параметре Android x32 зависает сплэш, при х64 вылетает.

    (Delphi 10.4, Samsung A30, Android 11)

    Подскажите, что я делаю не так?

×
×
  • Создать...