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

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

Шаблон проекта с кастомным шрифтом 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 эмодзи.

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

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

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


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

    • От slav_z
      Все разработчики при работе с FMX рано или поздно сталкиваются с одной и той же проблемой: необходимо исключить "случайное" срабатывание нажатий элементов внутри скроллбокса во время его скроллинга. Идут годы, а решения так и нет. Давайте попробуем это исправить. Поехали!
      Запускаем IDE, создаем новый проект, кидаем на форму TVertScrollBox и на него чего-нибудь побольше... запускаем на мобильном устройстве, пытаемся скроллировать,

      получаем проблемы в виде срабатывания разных событий типа OnClick элементов.
      Решение состоит в том, чтобы сделать элементы "невидимыми" для событий связанных с действиями пользователя с экраном во время скроллинга.
      Делаем следующее:

      Все. Переносим код в базовую форму, делаем его более гибким, убираем все те костыли, которые мы уже успели сделать ранее...
      Удачи!
      https://github.com/slav-libx/scroll-click.git
    • От Вадим Смоленский
      В FireMonkey приходится перехватывать сообщения Windows, чтобы обеспечить корректное сворачивание и разворачивание окон. Это здесь уже обсуждалось. Я в итоге сделал у себя так:
      var TheFormIsMinimized: Boolean = False; TheFormWasMaximized: Boolean = False; function NewWndProc(Wnd: HWND; Msg: UINT; WParam: WPARAM; LParam: LPARAM): LRESULT; stdcall; begin if (Msg = WM_SHOWWINDOW) and (LParam = SW_PARENTCLOSING) and (not TheFormIsMinimized) then begin TheFormIsMinimized := True; TheFormWasMaximized := (MainForm.WindowState=TWindowState.wsMaximized); SendMessage(FormToHWND(MainForm), WM_SYSCOMMAND, SC_MINIMIZE, 0); MainFormp.WindowState := TWindowState.wsMinimized; end else if (Msg = WM_SHOWWINDOW) and (LParam = SW_PARENTOPENING) and (TheFormIsMinimized) then begin TheFormIsMinimized := False; SendMessage(FormToHWND(MainForm), WM_SYSCOMMAND, SC_RESTORE, 0); if TheFormWasMaximized then begin SendMessage(FormToHWND(MainForm),WM_SYSCOMMAND,SC_MAXIMIZE,0); LookUp.WindowState:=TWindowState.wsMaximized; end else begin SendMessage(FormToHWND(MainForm),WM_SYSCOMMAND,SC_RESTORE,0); LookUp.WindowState:=TWindowState.wsNormal; end; end else Result:=CallWindowProc(OldWndProc, Wnd, Msg, WParam, LParam); end; Это работает — но восстановленное из трея окно находится не в фокусе. Пользователь должен дополнительно щелкнуть по нему мышкой. Вставка оператора SetFocus(FormToHWND(MainForm)) непосредственно сюда же ничего не дает — равно как и операторов SendMessage(FormToHWND(MainForm),WM_ACTIVATE,WA_ACTIVE,0),   Winapi.Windows.SetActiveWindow(FormToHwnd(MainForm)) или SetForegroundWindow(FormToHWND(MainForm)). Мне приходится запускать из этого места специальный таймер — и уже в обработчике таймера, после некоторой задержки, вызывать SetFocus(FormToHWND(MainForm)). Но и это работает не всегда. Например, если окно было развернуто на весь экран, а свернуто было щелчком по кнопке «Свернуть все окна», то после его разворачивания опять фокуса нет (насколько могу судить, в этом случае не запускается таймер). Нет ли более изящного и надежного способа наладить фокус?
    • От uakmal
      Здравствуйте!
      Создаю медиаплеер для Android TV. 
      Запускаю плеер, нажимаю на условную кнопку, которая делает следующее: 
      MediaPlayer1.FileName:='/storage/emulated/0/download/1.mp4'; После нажатия вылетает окошко с надписью:
      java.lang.java.lang.illegalargumentexception после закрытия окошки нажимаю на play, но ничего не происходит.
      Подскажите, пожалуйста как исправить это?
    • От Yarpda
      Добрый день всем!
      Стоит задача сделать информационный киоск (управлений только через тачскрин) под управлением Windows. Фактически нужно на экран вывести сайт компании, но проблема в том что управление должно быть таким же как в мобильных устройствах.
      Т.е. реакция на касание как Pan (прокрутка). Если же собирать проект под винду, то при нажатии на экран и движении пальца прокрутка страницы в браузере не происходит, а происходит выделение текста на станице, а нужно максимально сделать как на мобильных платформах. Посмотрел настройки TWebBrowser и на VCL и на FMX, но ничего похоже не нашел, чтобы позволило так сделать. Если у кого-то была такая практика, или хотя бы знаете как это можно реализовать (желательно наиболее просто), прошу подсказки.
    • От Delpher-X
      Итак, я пробовал использовать компоненты AppTethering для передачи данных между VCL-приложением работающим под Windows и мобильным FMX-приложением и потерпел неудачу, так как выяснилось что потоки данных данные компоненты на деле не передают. И у меня возник вопрос: а нет ли каких других компонентов в современной Embarcadero Studio, которые бы позволяли передавать как строковые данные, так и файлы между приложениями? Особенно меня интересуют все же файлы. 
    • От Delpher-X
      Доброе время суток. У меня есть код, который отправляет данные, в частности файлы, из одного приложения в другое, используя технологию AppTethering. Вот код, который отправляет данные: 
      var ImageToStream : TMemoryStream; begin ImageToStream := TMemoryStream.Create; ImageToStream.LoadFromFile('Здесь находится путь к файлу'); ImageToStream.Position := 0; TetheringAppProfile1.Resources.FindByName('ImageTransfer').Value := ImageToStream; ImageToStream.Free; end; А вот который принимает: 
      procedure TForm1.TetheringAppProfile1Resources3ResourceReceived( const Sender: TObject; const AResource: TRemoteResource); var GetImage : TMemoryStream; begin GetImage := TMemoryStream.Create; GetImage.Position := 0; GetImage.LoadFromStream(AResource.Value.AsStream); ImageViewer1.Bitmap.LoadFromStream(GetImage); GetImage.Free; end; Пока передача данных идет между двумя Windows-приложениями, все работает прекрасно. Однако, когда я пытаюсь отправить данные от Windows-приложения в Android-приложение, которое исполняется на смартфоне, подключенном к компьютеру через USB-шнур, данные не проходят.  
    • От Delpher-X
      Есть код для копирования файлов:
      procedure TForm1.Timer2Timer(Sender: TObject); var FileIndex, FileName : String; I : Integer; begin randomize; FileIndex := IntToStr(random(5000)); for I := 0 to ListBox1.Items.Count-1 do begin FileIndex := IntToStr(StrToInt(FileIndex) + 1); FileName := FileIndex + Exp; TFile.Copy(ListBox1.Items[I], FileName); end; Timer2.Enabled := False; end; Когда я его запускаю, все работает, однако постоянно выскакивает сообщение об ошибке: specified file already exists, то есть копируемый файл уже существует. То есть, программа пытается каждый файл скопировать дважды. Вопрос: почему? С чем это связано и как от этого избавиться? 
    • От Delpher-X
      Здравствуйте. У меня такая проблема. 
      Пытаюсь скачать файл:
       
      var S : TMemoryStream; begin S := TMemoryStream.Create(); IdHTTP1.Get('http://sitename.com/7UlmBU7IXHA.jpg', S); S.SaveToFile('/storage/emulated/0/ImageFile.jpg'); S.Free; end;
      Проблема возникает на последней стадии - при сохранении файла. Android пишет, Cannot create file: '/storage/emulated/0/ImageFile.jpg'. Permission denied, то есть доступ запрещен. Но как его разрешить? Когда я устанавливаю приложение, система пишет, что никаких разрешений данная программа не требует.
  • Последние посетители   0 пользователей онлайн

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

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