Перейти к содержанию

Рекомендуемые сообщения

Шаблон проекта с кастомным шрифтом FontAwesome

Намного удобней и менее затратно использовать Шрифт с Иконками, чем заботиться о качестве картинок, скейлах, их хранении и загрузке

Поэтому давно перешел на шрифты, пару скриншотов (без использования картинок)

Screenshot_20160402-191733.png2016-04-02_19-23-44.png

Seattle CustomFont.7z

Berlin CustomFont(Berlin).zip

 

WINDOWS/MACOS - установить шрифт в систему

IOS - в деплой добавить шрифт и с помощью IOS9Fix прописать в .plist следующее:

Цитата

<key>UIAppFonts</key>
<array>
    <string>FontAwesome.ttf</string>
</array>

ANDROID - в деплой добавить шрифт (Remote Path -> assets\internal) и подключить к проекту измененные файлы FMX.FontGlyphs.Android.pas, FMX.FontGlyphs.pas

Отредактировал ZuBy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, это удобно. Тоже использую FontAwesome. Но понадобилось мне добавить свою картинку в шрифт и тут затык - программы редакторы не могут отредактировать этот шрифт. Кто-нибудь пробовал добавить свой символ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 04.04.2016 в 10:05, Rusland сказал:

Да, это удобно. Тоже использую FontAwesome. Но понадобилось мне добавить свою картинку в шрифт и тут затык - программы редакторы не могут отредактировать этот шрифт. Кто-нибудь пробовал добавить свой символ?

http://fontello.com

Поищите здесь то что Вам нужно и скачайте себе шрифт только с необходимыми символами

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Похоже я не сразу въехал что предлагает этот сервис! Тут же можно накидать свои svg-файлы, выделить в имеющихся шрифтах символы которые нужны и скачать готовый шрифт! Класс!

Отредактировал Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите вот такой глюк  наблюдаю меню изначально скрыто как на телефоне так и на win иконка не прорисовывается  при событии  FormResize главной формы появляется с чем может быть связано и второй вопрос у вас все элементы создаются динамически а как сразу иконку вставить в text ?

 

2016-04-07_14-48-39.png

использую listbox иконку добавляю в detail  при создании формы, также проблемы  делаю смену языка иконки пропадают нужно по новой переписывать

Отредактировал master webs

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если это ListBox, то нужно всем стиль обновить и каждому элементу назначить шрифт

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

использую код с вашего примера

FontAwesomeApply(ListBox3);
ListBoxItem18.ItemData.Detail:=fa_list;
ListBoxItem19.ItemData.Detail:=fa_list;
ListBoxItem20.ItemData.Detail:=fa_list;
ListBoxItem11.ItemData.Detail:=fa_list;
ListBoxItem22.ItemData.Detail:=fa_list;
ListBoxItem23.ItemData.Detail:=fa_list;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

попробуйте вот так

procedure FontAwesomeApply(const Control: TControl);
var
  i: Integer;
begin
  if Control is TControl then
  begin
    FontAwesomeAssign(TControl(Control));
    if Control is TStyledControl then
      TStyledControl(Control).ApplyStyleLookup;
  end;
  for i := 0 to Control.ControlsCount - 1 do
    FontAwesomeApply(Control.Controls[i]);
end;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, master webs сказал:

заработало все ) спасибо

не за что, старайтесь меньше использовать TListBox. там в примере есть настройка для ListView с таким же отображением

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день переношу проект на 10.1 berlin  получил ошибку в файле FMX.FontGlyphs заменил оригинальным там изменений практически нет проект  компилируется но иконок нет также заметил что iOS9Fix не делает запись так как должен  шрифт вообще не вписан в файл

может  в Берлине что изменилось со шрифтами

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, master webs сказал:

Добрый день переношу проект на 10.1 berlin  получил ошибку в файле FMX.FontGlyphs заменил оригинальным там изменений практически нет проект  компилируется но иконок нет также заметил что iOS9Fix не делает запись так как должен  шрифт вообще не вписан в файл

может  в Берлине что изменилось со шрифтами

Скопируйте файл FMX.FontGlyphs из 10.1 в папку своего проекта и отредактируйте его.

Запускаемая программа должна искать шрифт в TPath.GetDocumentsPath (шрифт деплойдится в .\assets\internal) поскольку файл шрифта не найден символы не отображаются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 минуты назад, pvmmpv сказал:

Скопируйте файл FMX.FontGlyphs из 10.1 в папку своего проекта и отредактируйте его.

Запускаемая программа должна искать шрифт в TPath.GetDocumentsPath (шрифт деплойдится в .\assets\internal) поскольку файл шрифта не найден символы не отображаются.

вы посты набираете ? или читать сообщение  нет необходимости ? iOS9Fix  на ведре нет !!! разговор шел об ios 

переношу проект на 10.1 berlin  получил ошибку в файле FMX.FontGlyphs заменил оригинальным 

Отредактировал master webs

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 минуты назад, master webs сказал:

вы посты набираете ? или читать сообщение  нет необходимости ? iOS9Fix  на ведре нет !!! разговор шел об ios 

переношу проект на 10.1 berlin  получил ошибку в файле FMX.FontGlyphs заменил оригинальным 

Действительно бегло прочел Ваш пост и iOS9Fix не заметил.
Сам переносил свой проект (под ведро) на 10.1 berlin, - была схожая проблема, думал помогу...

Вместе с тем, если бы Вы соблюдали правила форума, то претензий и обвинений за мое желание помочь Вам, у Вас не было бы.

Цитата

Пункт.2: Одна тема — один вопрос. Два вопроса в одной теме задавать запрещено.


Может будет кому полезно (константы кодов символов по названиям иконок):

FontAwesomeCodes.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, pvmmpv сказал:

Действительно бегло прочел Ваш пост и iOS9Fix не заметил.
Сам переносил свой проект (под ведро) на 10.1 berlin, - была схожая проблема, думал помогу...

Вместе с тем, если бы Вы соблюдали правила форума, то претензий и обвинений за мое желание помочь Вам, у Вас не было бы.


Может будет кому полезно (константы кодов символов по названиям иконок):

FontAwesomeCodes.zip

правила форума не нарушены тема одна и по ней вопрос

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 часа назад, master webs сказал:

Добрый день переношу проект на 10.1 berlin  получил ошибку в файле FMX.FontGlyphs заменил оригинальным там изменений практически нет проект  компилируется но иконок нет также заметил что iOS9Fix не делает запись так как должен  шрифт вообще не вписан в файл

может  в Берлине что изменилось со шрифтами

получилось? изменение в исходниках нужны для android, для ios достаточно прописать в .plist

кстати читал что в берлине появилась работа Custom Fonts, кто испробовал поделитесь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, ZuBy сказал:

получилось? изменение в исходниках нужны для android, для ios достаточно прописать в .plist

кстати читал что в берлине появилась работа Custom Fonts, кто испробовал поделитесь

для ios достаточно прописать в .plist  прописал руками все заработало.

 iOS9Fix в berline не работает 

документацию по Custom Fonts не нашел  хотя тоже читал что есть такая возможность

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 часов назад, ZuBy сказал:

кстати читал что в берлине появилась работа Custom Fonts, кто испробовал поделитесь

Тут сказано:

Цитата

Support for Extended Font Styles

TFont gains a new property, StyleExt, to handle fonts that have extended types of weight, slant, or stretch

Но как это использовать не знаю

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это не сторонние шрифты, а дополнительные режимы отрисовки

для наглядности

2016-05-03_19-13-48.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, Rusland сказал:

ZuBy, а где вы читали про Custom Fonts?

я тоже не правильно понял, подумал что сторонние шрифты прикрутили. ан-нет всего лишь стили

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Внедрил себе в приложение подобный шрифт (http://fire-monkey.ru/topic/3113-uchebnoe-prilozhenie-slesarnoe-delo/), в котором нарисовал себе все нужные мне иконки. Лично у меня на Android 5.1.1 и Android 4.1.2. все показывает нормально, но вот сегодня подошел мой студент и показал, что на его LG K10 LTE с Android 6 вместо иконок японские или китайские (не важно) иероглифы. Как я понял, шрифт у него не подхватился, хотя в Дэплойменте он указан как нужно (assets\internal, да и на моих же телефонах нормально ведь все). Имя у шрифта "уникальное" - locksmithery_icons. Неужели на Android 6 этот код, что в шаблоне представлен, не работает? Или это просто особенности конкретного пользователя телефона? Лично у меня, к сожалению, нет устройства на Android 6

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, sinuke сказал:

Внедрил себе в приложение подобный шрифт (http://fire-monkey.ru/topic/3113-uchebnoe-prilozhenie-slesarnoe-delo/), в котором нарисовал себе все нужные мне иконки. Лично у меня на Android 5.1.1 и Android 4.1.2. все показывает нормально, но вот сегодня подошел мой студент и показал, что на его LG K10 LTE с Android 6 вместо иконок японские или китайские (не важно) иероглифы. Как я понял, шрифт у него не подхватился, хотя в Дэплойменте он указан как нужно (assets\internal, да и на моих же телефонах нормально ведь все). Имя у шрифта "уникальное" - locksmithery_icons. Неужели на Android 6 этот код, что в шаблоне представлен, не работает? Или это просто особенности конкретного пользователя телефона? Лично у меня, к сожалению, нет устройства на Android 6

у меня 6.0.1, все работает.

скиньте или на форум или в личку ваш файлик (apk). я проверю

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
49 минут назад, ZuBy сказал:

у меня 6.0.1, все работает.

скиньте или на форум или в личку ваш файлик (apk). я проверю

locksmithery.zip

попробовал запустить в BlueStacks и иконки кнопок не отображаются (хотя наверное эмулятор особо ни о чем не говорит)

Отредактировал sinuke

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, sinuke сказал:

locksmithery.zip

попробовал запустить в BlueStacks и иконки кнопок не отображаются (хотя наверное эмулятор особо ни о чем не говорит)

действительно не работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Похожий контент

    • От Martifan
      здравствуйте, я пытаюсь сделать push уведомление на iOS делаю следующим образом:
      unit Unit1; interface uses   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,   System.PushNotification, FMX.Controls.Presentation, FMX.StdCtrls,   FMX.PushNotification.iOS, FMX.ScrollBox, FMX.Memo; type   TForm1 = class(TForm)     Button1: TButton;     Memo1: TMemo;     procedure Button1Click(Sender: TObject);   private     { Private declarations }     FDeviceID: string;     FDeviceToken: string;     FPushService: TPushService;     FPushServiceConnection: TPushServiceConnection;     procedure OnReceiveNotificationEvent(Sender: TObject;        const ANotification: TPushServiceNotification);     procedure OnServiceConnectionChange(Sender: TObject;        AChange: TPushService.TChanges);   public     { Public declarations }   end; var   Form1: TForm1; implementation {$R *.fmx} procedure TForm1.Button1Click(Sender: TObject); begin   FPushService := Nil;   FPushServiceConnection := Nil;   FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS);   if Assigned(FPushService) then     begin       FPushServiceConnection := TPushServiceConnection.Create(FPushService);       FPushServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;       FPushServiceConnection.OnChange := OnServiceConnectionChange;       FPushServiceConnection.Active := True;     end else     Begin       ShowMessage('False');     End; end; procedure TForm1.OnReceiveNotificationEvent(Sender: TObject;   const ANotification: TPushServiceNotification); begin //  ShowMessage('OnReceiveNotificationEvent'); end; procedure TForm1.OnServiceConnectionChange(Sender: TObject;   AChange: TPushService.TChanges); begin   Memo1.Lines.Clear;   if (TPushService.TChange.DeviceToken in AChange) and        Assigned(FPushServiceConnection) then      begin        FDeviceID := FPushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID];        FDeviceToken := FPushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];        // save token and ID to  remote db here        Memo1.Lines.Add('DeviceID: '+FDeviceID);        Memo1.Lines.Add('DeviceToken: '+FDeviceToken);      end; end; end. все проходит нормально но получаю значение FDeviceID а значение FDeviceToken пустой все сертификаты установлены правильно и соответственно указана все правильно как я говорил перемен FDeviceID получает значение а
      FDeviceToken возвращается пустым на форумах тоже видел такую проблему но может кто то решал эту проблему?
      поделитесь пожалуйста
      заранее спасибо 
    • От Вадим Смоленский
      Проблема обозначена в заголовке. Подробнее: при дефолтных установках TFDConnection.ResourceOption  (включенных EscapeExpand, MacroCreate, MacroExpand, ParamCreate, ParamExpand) функция Locate возвращает False. При отключении этих параметров Locate падает с сообщением "Unrecognized token {"
      Вынужден вместо Locate использовать Filter, очень сильно проигрывая в скорости. Хотелось бы все-таки понять, в чем тут дело.
       
    • От ComAlex
      Господа Delphi-программисты под Android (FireMonkey),
      Нужна ваша помощь или совет в направления решения в несложной, достаточно типичной и прозрачной задаче:
      Я хочу выполнять некоторые вычисления (или выдавать Toastы) через каждые 30 сек. в Android-приложении.
      Что-то типа сервиса (службы): Приложение запускает задание и может закрываться, 
      но периодические вычисления продолжаются (результат сохраняется, допустим, в ini - не важно пока), т.е. служба работает.
      Я не знаю, как это решить:
      1. Организовал как сервис.
          Сервисы убиваются androidом ... И это политика androidов: экономить батарию и т.д.
      2. Сделал через AlarmManager.
          Тоже это не работает на MI 9T (Android 10: API 29). На старых (Android 4...: API 19) всё работает.
      3. Хотел использовать job scheduler: добавлять задания и удалять исполненные. Но не знаю как. ничего не нагуглил под Firemonkey. Может кто знает?
      Какие ещё варианты и вообще, это решается на Firemonkey Delphi XE 10.3.3?
      На поиск решения мною потрачено много время - сдвинуться не могу.
      Если Delphi это не умеет, так и скажите - перепрыгну на другую платформу.
          Может Delphi об этом думает, чтоб это скоро реализовать? В интернете тишина.
      Если Delphi это умеет, просьба дать идею или совет или пример ...
    • От Эрик Шакиров
      Подскажите пожалуйста, возможно ли сделать выбор файла в IOS. Например, также как в Android 
    • От Игорь Маринин
      поделитесь пожалуйста пустым проектом, готовым к публикации для TV устройств.
      что-то никак не получается опубликовать, сейчас отклонили с такими ошибками:
      APK:8
      No Now Playing notification [card]"
      Your App does not contain a “Now Playing” notification [card] for when the user has selected the HOME button within the app. Please refer to our Displaying a Now Playing Card documentation for more details.
      APK:8
      Play/Pause key event is not respected during playback
      Your media apps that play video or music content must respect the play/pause key during playback. Please refer to our Media Play/Pause documentation and Update the Playback State documentation for details.
      Missing DPad functionality
      Your app requires user interaction for menus or app navigation. Please make sure that all menus and app navigation are fully functional using a DPad. Please refer to our DPAD Control and Hardware Declaration documentation.
      ну и баннер не прилепил
      No full-size app banner
      Your app does not contain a full-size app banner or is it not visible in the launcher. We are targeting 1080P, which we consider xhdpi. Apps should include the banner in the xhdpi (320 dpi) drawables folder with a size of (320px × 180px). Please refer to our Home Screen Banner and UI Patterns documentation.
      The title should help users identify apps in the launcher. Please refer to our Visual Design and User Interaction documentation for more information.
      был бы очень благодарен за рабочий пустой костяк с манифестом.
       
    • От krapotkin
      В процессе разработки столкнулся с очень странной ситуацией, корни которой до сих пор неясны, но решение нашлось.
      Итак. Делфи 10.3.3. Чистое приложение - пустая форма и кнопка. Отлично работает на разных устройствах кроме Samsung Galaxy Tab A (2016). Android 5.1.1
      Программа падает, не успев даже загрузиться. Любая. При этом она же, скомпилированная на другом компе, запускается нормально. И даже после изменения SDK/NDK на нем, ничего не падает.
      LogCat дает крайне странную картину
      java.lang.IllegalArgumentException: Unable to load native library: /data/app-lib/com.embarcadero.Project1-1/libProject1.so
      Начинаем экспериментировать с SDK, NDK и т.д. Поставил также хотфиксы для 10.3.3.
      Сразу скажу, SDK/NDK ставились отдельно через Android studio, не скачивались вместе с Delphi. Не торопитесь бросать чтение на этом месте!)) На другом компе, где все работает, все ставилось точно так же.
      Короче, очень много комбинаций версий SDK/NDK проверено.
      Результат такой. При постепенном понижении версии NDK все взлетело при NDK v22.

      При этом версия SDK видимо такого большого влияния не имеет, потому что этот вариант нормально работает

      Повторюсь. На других устройствах все работало и на более новых Ndk. Xiaomi Mi Pad4 , Samsung Galaxy Tab A (2019), Xiaomi Redmi 5 и 5Plus
       
      Спасибо за участие и помощь в разборе завалов @Andrey Efimov
       
    • От krapotkin
      У меня в работе два приложения, и оба они не предназначены для Play market, так как имеют ограниченный круг использования, по сути, чисто внутрикорпоративные. Так что нежелательно и выкладывание их и на альтернативные магазины приложений. 
      Автоматически возникает вопрос обновления. Если в  первый раз мы можем установить приложение сами при помощи админов, то обновлять их не так просто. А контингент пользователей не справится с "скачайте APK по ссылке, найдите, куда его скачал браузер, и запустите вручную именно последний скачанный, а не какой попало"...
      Простейший способ - дать приложению скачать свежую копию с сайта и натравить на полученный файл системный инсталлер.
      Вот только свежие Andoird делать это напрямик запрещают. Нужен filepropvider. Целый день шуровал по мануалам и YT,
      Вот то что получилось  в результате.
      Если у вас 10.3.3 как у меня, уже можно не вносить <provider>...</provider> в манифест и свой файл file_paths.xml (или как вам его советуют назвать в интернетах) в деплой.
      Теперь все это делается хоть несколько странно и однобоко, но автоматически, путем установки галочки Secure File Sharing

      после этого в манифесте автоматически пропишется один из вариантов размещения файлов, которые вы можете найти в интернете. Используется алиас external-path
      файл, показанный на рисунке, создается автоматически самой делфи.

      теперь остается отгадать, какой путь реально подставится вместо "."
      Как показала практика, все пути выглядят не так, как кажется, если исходить из простого здравого смысла. Целый день использования GetHomeDir и других полезных методов TPath завел меня совсем в тупик.
      Оказалось все проще (?)
      st:TMemoryStream; OutputDir: JFile; ApkFile: JFile; ApkUri: Jnet_Uri; path, filename: string; ... OutputDir := TAndroidHelper.Context.getExternalCacheDir(); path := JStringToString(OutputDir.getAbsolutePath); filename := path+'/ASDroid2.apk'; ApkFile := TJfile.JavaClass.init( StringToJstring(filename)); FApkUri := TAndroidHelper.JFileToJURI(ApkFile); st.Position := 0; st.SaveToFile(filename); обратите внимание, в provider_paths мы задаем external-paths, а в коде ищем ExternalCacheDir.!!!  (For.Unbelievably.Creative.Knowers!)
      Потом все просто. FApkUri передаем в интент и запускаем 
      итоговый код примерно таков. (скачивание в потоке с использованием небольшого собственного API, но там ничего важного, можно не обращать внимания)
      procedure TasdSettingsFrame.bDownloadClick(Sender: TObject); begin {$IFDEF ANDROID} bDownload.Enabled := False; DownloadAndRun(); {$ENDIF} end; {$IFDEF ANDROID} procedure TasdSettingsFrame.DownloadAndRun(); begin ttask.Run(procedure var aapi:TasdAPI; st:TMemoryStream; OutputDir: JFile; ApkFile: JFile; ApkUri: Jnet_Uri; path, filename: string; begin st := TMemoryStream.Create; aapi := TasdAPI.Clone(_API); try aapi.OnReceiveData := OnReceiveData; aapi.getApk(st); if aapi.Err.Code=0 then begin OutputDir := TAndroidHelper.Context.getExternalCacheDir(); path := JStringToString(OutputDir.getAbsolutePath); filename := path+'/ASDroid2.apk'; ApkFile := TJfile.JavaClass.init( StringToJstring(filename)); FApkUri := TAndroidHelper.JFileToJURI(ApkFile); st.Position := 0; st.SaveToFile(filename); TThread.Synchronize(nil,procedure begin bDownload.Enabled := true; StartActivity(FApkUri); end); end; finally st.Free; aapi.Free; end; end); end; procedure StartActivity(ApkUri: Jnet_Uri); var Intent: JIntent; begin Intent := TJIntent.Create(); Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK or TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP or TJIntent.JavaClass.FLAG_GRANT_WRITE_URI_PERMISSION or TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); Intent.setDataAndType(apkuri, StringToJString('application/vnd.android.package-archive')); TAndroidHelper.Activity.startActivity(Intent); end; procedure TasdSettingsFrame.OnReceiveData(const Sender: TObject; AContentLength: Int64; AReadCount: Int64; var Abort: Boolean); begin tthread.Synchronize(nil, procedure begin pb1.Max := AContentLength; pb1.Value := AReadCount; end); end; {$ENDIF} Вопросы остались конечно, почему так странно с каталогами, но выяснять пока нет желания. Работает - не трожь.
      Всем удачи.
      UPD.
      Для того, чтобы системный инсталлер запускался, нужно не забыть отметить еще одну галочку

       
       
       
       
       
    • От Дмитрий Потапов
      Приветствую. На просторах интернета нашел BASS-библиотеку для Android и соответственно обертку для нее под Delphi.

      Вроде бы все работает нормально, но вот при настройке библиотеки при помощи методов
      BASS_GetConfigPtr, BASS_SetConfigPtr для работы со строковыми параметрами возникает проблема.
      На Windows с этим я легко работал, там достаточно использовать такую конструкцию

       
      PAnsiChar(BASS_GetConfigPtr(configId)) и получаем значение. BASS_SetConfigPtr(configId, PAnsiChar(value)) и задаем значение. Но вот под Android такой способ не проходит, как минимум по одной причине - он не понимает, что такое PAnsiChar. На docwiki.emarcadero.com, есть вот такая статейка. В которой написано, что PAnsiChar нужно заменить одним из трех: System.String, System.MarshalledString или System.SysUtils.TStringBuiler
      Только вот, если использовать MarshalledString, то при попытке получить значение приложение просто намертво зависает и все.
      Потом я подумал, так как библиотека написана на Java (вероятно), то может стоит попробовать использовать JNI в работе с ней, так как в Java файле, который прилагался вместе с библиотекой. Там я нашел объявления этих функций и заметил, что тип возвращаемого значения Object (ну, не зная Java я просто предположил, что это тоже просто ссылка на значение, например как PAnsiChar в Delphi на Windows).

      Но, при попытке как-либо использовать это натыкаюсь на проблемы в виде ошибки компиляции, либо очередном зависании приложения.
      Так как возвращается Object, то решил попробовать вариант с JObject и JString, но ни один вариант не хочет работать, опять ошибки на стадии компиляции, либо зависание приложение. Может быть, я что-то не так делаю.

      В общем, буду признателен за помощь!
    • От Yarpda
      Доброго времени!
      Есть идея сделать возможность резервирования данных приложения на Google drive под текущим аккаунтом пользователя. Ничего подобного я на форуме не нашел, может быть кто-то уже пытался решать подобную задачу? Интересует работа с Gdrive  в первую очередь.
    • От Ali Ezzeddine
      65/5000       Уважаемые,
      Есть ли способ вызвать сервис Java из приложения Delphi FMX?
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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