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

dnekrasov

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

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

  • Посещение

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

    52

Весь контент dnekrasov

  1. Теперь понял Не через Deploymet, а через пункт меню Project->Resources and Images
  2. Судя по коду - у Вас стиль в базе хранится (хотя тоже под вопросом - что такое dm, dm.UniConnection1, AppStyleParamName и что делает dm.GetOption2Param). Если так - то как они туда попадают? Так что не зная логики проекта или не видя исходники - трудно сказать. А само применение стиля - это последняя строчка - TStyleManager.SetStyle(aStyle)
  3. Хм... Странно... Ведь стиль с названием "Windows 10 Desktop" создаётся автоматически именно в момент создания view "Windows Desktop"
  4. А это уже на Ваше усмотрение. Есть 2 возможности применения стилей - через StyleBook на главной форме и пользуясь методами TStyleManager, загружая стили из ресурсов. Судя по всему у Вас используется второй метод. Просто поищите по всем файлам проекта (Ctrl+Shift+F) строку "TStyleManager." - я думаю Вы найдёте где применяется стиль.
  5. А вы удалите "Windows 10 Desktop". И что у Вас в дизайнере форм? Я подозреваю, что создана view-шка "Windows Desktop" и она сильно отличается от "Master". Это тоже может создавать проблемы (я думаю что в этом всё и дело).
  6. Про это можно почитать здесь Как я понял: Metrics.tmAscent = unitsPerEm / Font.Size * uWinAscend
  7. Говорит, что слышала - однокурсники нахваливают, а преподаватели советуют. Посмотрите раздел "Baseline to Baseline Distances". Метрики шрифта я вытягивал с помощью редактора FontForge - как это сделать программно - не знаю, надо досконально разбираться в формате.
  8. @Вадим Смоленский, а можно как-то увидеть Ваш проект - а то дочка японский учит - сказала, что хороший словарик всегда пригодится
  9. Во как! Значит GetTextMetrics неправильно рассчитывает tmExternalLeading и tmInternalLeading. Сам расчет описан здесь.
  10. @Вадим Смоленский, попробуйте для шрифта Yu Gothic рассчитывать смещение как Font.Size * 0.408576 а для Kozuka Gothic Pr6N B - Font.Size * 1.0033 (мне просто интересно - правильно ли я рассчитал коэффиценты)
  11. Вообще, судя по спецификации, смещение надо вычислять так Metrics.tmAscent + Metrics.tmDescent + Metrics.tmExternalLeading - F.Size
  12. А ещё загляните сюда - здесь много того, что не помешает знать при работе со шрифтами.
  13. Выложите шрифты, которые используете и кусочек кода, где задаёте размер, стиль и как выводите.
  14. Кстати, тут, скорее всего, надо еще и учитывать и Metrics.tmInternalLeading
  15. Как-то так: function FontVertShift (F: TFont): Single; var Metrics: TTextMetric; DC: HDC; HF: HFont; begin DC := CreateCompatibleDC(0); try HF := CreateFont(-Round(F.Size * GetDCScale(DC)), 0, 0, 0, FontWeightToWinapi(F.StyleExt.Weight), Cardinal(not F.StyleExt.Slant.IsRegular), 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH or FF_DONTCARE, PChar(F.Family)); if HF = 0 then Exit(0); try SelectObject(DC, HF); GetTextMetrics(DC, Metrics); finally DeleteObject(HF); end; Result := Metrics.tmExternalLeading finally DeleteDC(DC); end; end;
  16. Это использование WinAPI. В частности функция GetTextMetrics. Смотреть лучше всего в MSDN В модуле FMX.FontGlyphs.Win в методе TWinFontGlyphManager.LoadResource просто хорошо видно как с ней работать.
  17. А как Вы его используете? TextMetric надо предварительно загрузить для выбранного шрифта API-шными функциями (посмотрите FMX.FontGlyphs.Win.TWinFontGlyphManager.LoadResource)
  18. Это конечно интересно, вот только воспроизвести у меня не получается... Так что, пока, исправить не могу
  19. Демка сама должна регистрировать шрифты. Если нет - то где-то проблема
  20. Проблема с регистрацией шрифтов. Какая винда? Рядом с ехе-шником папка Fonts создалась? Если да - попробуйте руками установить шрифты, находящиеся в ней.
  21. Попробуйте сместить вверх на TTextMetric.tmExternalLeading
  22. Механизм, который позволяет использовать иконку символьного шрифта вместо картинки на кнопках. Уж очень мне не нравится стандартный механизм добавления картинки на кнопку, поэтому, пару лет назад, начал искать альтернативу и остановился на символьных шрифтах (таких как FontAwesome). Вот что из этого получилось: IconicFontGlyph.zip Под Windows работает без проблем - на других системах не пробовал. Как это работает Добавляем в проект модуль UIExt.IconicFont.pas Добавляем в проект модули описания шрифтов, которые будут использоваться (см. ниже) Описываем символ, который будет использоваться в качестве иконки (см. ниже) В обработчике события OnApplyStyleLookup кнопки пишем одну строчку - TIconicFont.ApplyButtonStyle(TCustomButton(Sender)); Модули описания шрифтов UIExt.IconicFont.FA.pas - Font Awesome UIExt.IconicFont.IM.pas - IcoMoon UIExt.IconicFont.IML.pas - IcoMoon Lindua UIExt.IconicFont.IMLN.pas - IcoMoon Linear UIExt.IconicFont.MDI.pas - Material Design Icons UIExt.IconicFont.WHHG.pas - WebHostingHub Glyphs Описание символа Для описания символа используется свойство StyleName (не знаю как остальные - лично я его нигде не использую). Само описание - это строка в определённом формате: [Короткое имя шрифта];[код символа];[размер шрифта];[цвет] 2 первых поля - обязательны. Короткое имя шрифта можно увидеть в его модуле описания (TIconicFont.Short) Примеры можно увидеть на скриншотах выше (текст над кнопками). Ну и напоследок - небольшая демка IconicFontDemo.zip
  23. Tools->Options - Formatter->Delphi->Line breaks - General->Right margin
  24. FMX.Platform.Win.ApplicationHWND или можете использовать Wnd := GetDesktopWindow function GetScreenScale: Single; var ISS: IFMXScreenService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, ISS) then Exit(ISS.GetScreenScale); Result := 1; end;
  25. И ещё не забывайте о FMX.Platform.IFMXScreenService у которого есть метод GetScreenScale
×
×
  • Создать...