В теме 30 сообщений

Шаблон проекта с кастомным шрифтом 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 и иконки кнопок не отображаются (хотя наверное эмулятор особо ни о чем не говорит)

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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

    • От Mohamed BEN AMMAR
      hello 
      i'm using delphi fmx for building android App
      i have this code for Activating The WI-FI icon from android device:
      This could be found here .
      =========== code ==================
      uses
        Androidapi.Helpers,
        Androidapi.JNI.JavaTypes,
        Androidapi.JNI.GraphicsContentViewText,
        Androidapi.JNIBridge,
        Androidapi.JNI.WifiManager;
       
      // Uses Permissions> Change wifi state
      procedure SetWifiEnabled (AEnable: Boolean);
      var
        Obj: JObject;
        WifiManager: JWifiManager;
      begin
        Obj: = SharedActivityContext.getSystemService (TJContext.JavaClass.WIFI_SERVICE);
        if Obj = nil then
          Exit;
       
        WifiManager: = TJWifiManager.Wrap ((Obj as ILocalObject) .GetObjectID);
        WifiManager.setWifiEnabled (AEnable);
      end; 
      ============ end code =============
       
       My question is About Activating Android location:
        Is it possible to activate the service location icon from android device
       programatically without using the Location or TLocationSensor component ....?
      however I know exactly that google has been Deactivate this API since android "4" just for security reasons .....
      but i have seen many apps in playstore can activate the service without using 
      the putextra intent (ask the user for activate the location manually ....) maybe with showing just the
      Allow Permission system dialog timer ....( Asking the user for Allowing this App to Activate the service location ......) 
      I have an android device with lolipopup version and i try to execute the location EMBARCADERO sample but 
      this one can not activate the service location ICON even  my device show me the Allow permission dialog where i choose yes allow
      with never ASK....
      Finally ,  I like the WI-FI code above .....
      and i'm wondering if someone here can do this task for me (i need a unit as the WI-FI code above which can offer me
      the option to activate the Service Location ICON )
      I'm ready to paid for that task .....
       
      Sincerelly: Brave.
    • От Алиса Романец
      Доброго времени суток, форумчане!
      Есть программка, которая имеет свой конфиг. И если на винде, я могу спокойно складировать этот конфиг в папку C:\ProgramData, то с маком всё сложнее. Просто так записать конфиг и папку в /Library/Application Support/ не получится, требуются права администратора. Замучавшись с попытками сохранения конфига в эту папку, я решила пойти другим путём и заставила программу сохранять этот конфиг (вместе с последующими генерируемыми программой файлами) внутрь себя (MyProgramm.app/Contents/MacOS). Первое время всё работало нормально, файлы сохранялись, генерировались в саму программу. Но, как обычно бывает, что-то пошло не так и... В результате, сейчас я имею то, что программа при первом запуске из RAD генерирует первый конфиг в себя (MyProgramm.app/Contents/MacOS/Config.cfg), запускается при запуске из RAD. НО, стоит мне запустить её независимо от студии (в надеждах, что она считает конфиг внутри себя, как она делала раньше), как она просто падает. Добавив небольшое ShowMessage(FileExists('Config.cfg').ToString()); в качестве отладки, я узнаю, что она падает из-за того, что НЕ МОЖЕТ НАЙТИ ФАЙЛ КОНФИГА, ЧТО НАХОДИТСЯ В НЕЙ САМОЙ. Затем, методом тыка было обнаружено, где именно он пытается найти этот файл - в корне диска с системой. Вопрос к вам, как пофиксить это дерьмо? 
      Сразу скажу, код со вчерашнего дня вообще не менялся. Фрагмент работы с конфигом я приложила ниже.
      procedure TForm1.FormCreate(Sender: TObject); var PRGP, OUTP: String; i: Integer; begin {тут находится код для MSWINDOWS} {$IFDEF POSIX} AssignFile (CFG, 'AErenderConfiguration.cfg'); //Привязка файла, что по идее должен быть внутри софта if FileExists ('AErenderConfiguration.cfg') then //Тут ошибка вылезает, потому что он не может найти файл в корне диска begin //Чтение самого конфига Reset (CFG); Readln (CFG, LANG); Readln (CFG, PRGP); Readln (CFG, OUTP); Readln (CFG, AERPATH); Readln (CFG, DEFPRGPATH); Readln (CFG, DEFOUTPATH); projectPath.Text := PRGP; outputPath.Text := OUTP; Lang1.Lang := LANG; CloseFile (CFG); end else begin //Действия, если конфиг не существует. Тоже ошибка, потому что в macOS корень диска заблокирован для записи. Rewrite (CFG); for i := 1 to 6 do Writeln (CFG, ' '); LANG := 'EN'; Lang1.Lang := LANG; CloseFile (CFG); end; {$ENDIF POSIX} RAD Studio 10.3 Rio (26.0.32429.4364), PAServer 20.0, macOS 10.13.6 High Sierra (MacBook 13" Mid 2010). 
    • От void
      Добрый день.
      (Delphi 10.3)
      (XCode 10.1)

      Подключил статический framework на версии SDK 11.2 (macMini)
      как описано в:
      ВСЕ ЗАРАБОТАЛО!
       
       

      После обновления:
      1) macMini к
              XCode 10.1
              SDK 12.1
              PAServer 20.0
      2) windows
              PAServer 20.0
      3) PAServer - конектится
      4) прописал дополнительные SDK  (Delphi -> SDK Manager -> Properties)
      5) Получил SDK 12 на windows (Delphi -> Update Local File Cache)
      6) Пути в Linking изменил для SDK12

      При сборке выдает ОШИБКУ:
      [DCC Error] E2597 Undefined symbols for architecture arm64 (для 32 - armv7):...

      [DCC Fatal Error] F2588 Linker error code: 1 ($00000001)

      Кто нибудь сталкивался с такой ошибкой после обновления?
       
    • От GMX
      Android 6 MIUI
       ни стандартные примеры не работают, ни попытки что-то свое создать... 
      LastDiscoveredDevices - всегда 0, хотя из настроек устройства находятся. 
      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.Bluetooth, System.Bluetooth.Components, FMX.Controls.Presentation, FMX.StdCtrls; type TForm1 = class(TForm) Button1: TButton; Bluetooth1: TBluetooth; Label1: TLabel; AniIndicator1: TAniIndicator; procedure Button1Click(Sender: TObject); procedure Bluetooth1DiscoverableEnd(const Sender: TObject); procedure Bluetooth1DiscoveryEnd(const Sender: TObject; const ADeviceList: TBluetoothDeviceList); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.Bluetooth1DiscoverableEnd(const Sender: TObject); begin Label1.Text := IntToStr(Bluetooth1.LastDiscoveredDevices.Count); end; procedure TForm1.Bluetooth1DiscoveryEnd(const Sender: TObject; const ADeviceList: TBluetoothDeviceList); begin Label1.Text := IntToStr(ADeviceList.Count); AniIndicator1.Enabled :=False; end; procedure TForm1.Button1Click(Sender: TObject); begin Bluetooth1.DiscoverDevices(10000); AniIndicator1.Enabled :=True; end; procedure TForm1.FormCreate(Sender: TObject); begin while not Bluetooth1.Enabled do Bluetooth1.Enabled := True; end; end. В разрешениях bluetooth, bluetooth admin, coarse location, fine location включены... 
    • От Barbanel
      Всем привет!
      Поясните мне плиз, такую вещь как TTouchAnimation, на примере Android.
      Как я это понимаю:
      Есть к примеру некая кнопка, которая имеет несколько состояний, из которых важны: не нажатая и нажатая.
      В момент нажатия, TTouchAnimation пускает расходящийся круг, причем четко из центра нажатия.
      Ок, пусть на самом деле не круг, а картинку, указанную в... собсно, где???
      Как задать эту область, которая должна отображаться как реакция на нажатие?В редакторе среды, у объектов TButtonStyleObject есть свойство TouchAnimation: (TTouchAnimationAdapter), у которого в свою очередь есть свойство Link: (TBitmapLinks), которое как я считал и отвечает за эту область.
      Однако, при клике на это поле ничего не происходит.
      Баг среды, или моя удача???
      Как вы с этим боретесь?
      Других полей, где могли бы быть эти координаты я не нахожу.
      Заранее спасибо!

    • От Yarpda
      Подскажите пожалуйста есть ли какая-то информация по работе с Google календарем из FMX?
      Может быть у кого-то есть практика работы с ним? На форуме информации по этому поводу никакой не нашел.
      Интересует вопрос чтения и создания событий в календаре.
      Заранее благодарю.
    • От Вадим Смоленский
      Узнал, что в UWP API включены средства для получения уникального идентификатора компьютера. Это юнит Windows.System.Profile, класс HardwareIdentification, метод getPackageSpecificToken. Существуют ли способы обратиться к этим средствам из Delphi?
      Вообще, я привык считать, что такая идентификация компьютера в принципе невозможна, в отличие от мобильных устройств. Но прогресс, как известно, не остановить.
    • От Tarik Live
      Здравствуйте! Уже почти неделю пытаюсь завести библиотеку org.eclipse.paho.client.mqttv3-1.2.0 в своём приложении. Я знаю о существовании компонента от TMS, но он не умеет работать в фоновом сервисе.
      Вот код который я использую для тестов:
       
      Стандартная библиотека org.eclipse.paho.client.mqttv3-1.2.0 выпадает в ошибку initializer error сразу на строчке 
      mqtt:=TJMqttClient.JavaClass.init(StringToJString('tcp://m23.cloudmqtt.com:11021'), StringToJString('java')); по логам с телефона стало понятно, что проблема в логах 😐 а конкретно когда библиотека пытается создать логгер выпадает ошибка что не найден файл локализации ru_RU для logcat (сами файлы там вроде как есть). Ладно. Скачал исходники почистил код библиотеки от упоминаний логгера, собрал ииии и ничего. Продвинулся до строчки 
      mqtt.connect(); также пробивал 
      mqtt.connect(mqttconopt); ничего не помагает, получаю ошибку сегментации класса 
      Пока не понятно куда копать дальше? Возможно что не все библиотеки можно использовать в delphi приложениях? 

      P.S Старая версия 1.1.1 тоже не завелась :(
      service test2.rar
    • От FREEFAR
      Всем доброго времени суток. 
      Казалось бы. Во время разработки и перед тем как подписали приложение сертификатом Distribution, пуши приходили норм. Но после того как прошли аудит Apple пуши куда-то пропали. FCM возвращал ошибку InvalidRegistration.
      Оказалось все достаточно просто. На сервере с которого мы отправляем пуш, В php скрипте, который отправляет пуши надо выставить
      sandbox = false
      Ура! Всем удачи)
    • От Вадим Смоленский
      Для задач, связанных с вводом японского текста, мне нужно научиться перехватывать системное сообщение WM_IME_NOTIFY. Насколько могу судить, в FireMonkey эти вещи делаются (если вообще делаются) принципиально иначе, нежели в VCL. Конкретного ничего не нагуглил. Не поможет ли кто?
  • Последние посетители   0 пользователей онлайн

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