-
Постов
317 -
Зарегистрирован
-
Посещение
-
Победитель дней
52
Весь контент dnekrasov
-
Теперь понял Не через Deploymet, а через пункт меню Project->Resources and Images
-
Судя по коду - у Вас стиль в базе хранится (хотя тоже под вопросом - что такое dm, dm.UniConnection1, AppStyleParamName и что делает dm.GetOption2Param). Если так - то как они туда попадают? Так что не зная логики проекта или не видя исходники - трудно сказать. А само применение стиля - это последняя строчка - TStyleManager.SetStyle(aStyle)
-
Хм... Странно... Ведь стиль с названием "Windows 10 Desktop" создаётся автоматически именно в момент создания view "Windows Desktop"
-
А это уже на Ваше усмотрение. Есть 2 возможности применения стилей - через StyleBook на главной форме и пользуясь методами TStyleManager, загружая стили из ресурсов. Судя по всему у Вас используется второй метод. Просто поищите по всем файлам проекта (Ctrl+Shift+F) строку "TStyleManager." - я думаю Вы найдёте где применяется стиль.
-
А вы удалите "Windows 10 Desktop". И что у Вас в дизайнере форм? Я подозреваю, что создана view-шка "Windows Desktop" и она сильно отличается от "Master". Это тоже может создавать проблемы (я думаю что в этом всё и дело).
-
Про это можно почитать здесь Как я понял: Metrics.tmAscent = unitsPerEm / Font.Size * uWinAscend
-
Говорит, что слышала - однокурсники нахваливают, а преподаватели советуют. Посмотрите раздел "Baseline to Baseline Distances". Метрики шрифта я вытягивал с помощью редактора FontForge - как это сделать программно - не знаю, надо досконально разбираться в формате.
-
@Вадим Смоленский, а можно как-то увидеть Ваш проект - а то дочка японский учит - сказала, что хороший словарик всегда пригодится
-
Во как! Значит GetTextMetrics неправильно рассчитывает tmExternalLeading и tmInternalLeading. Сам расчет описан здесь.
-
@Вадим Смоленский, попробуйте для шрифта Yu Gothic рассчитывать смещение как Font.Size * 0.408576 а для Kozuka Gothic Pr6N B - Font.Size * 1.0033 (мне просто интересно - правильно ли я рассчитал коэффиценты)
-
Вообще, судя по спецификации, смещение надо вычислять так Metrics.tmAscent + Metrics.tmDescent + Metrics.tmExternalLeading - F.Size
-
А ещё загляните сюда - здесь много того, что не помешает знать при работе со шрифтами.
-
Выложите шрифты, которые используете и кусочек кода, где задаёте размер, стиль и как выводите.
-
Кстати, тут, скорее всего, надо еще и учитывать и Metrics.tmInternalLeading
-
Как-то так: 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;
-
Это использование WinAPI. В частности функция GetTextMetrics. Смотреть лучше всего в MSDN В модуле FMX.FontGlyphs.Win в методе TWinFontGlyphManager.LoadResource просто хорошо видно как с ней работать.
-
А как Вы его используете? TextMetric надо предварительно загрузить для выбранного шрифта API-шными функциями (посмотрите FMX.FontGlyphs.Win.TWinFontGlyphManager.LoadResource)
-
Это конечно интересно, вот только воспроизвести у меня не получается... Так что, пока, исправить не могу
- 14 ответов
-
Демка сама должна регистрировать шрифты. Если нет - то где-то проблема
- 14 ответов
-
Проблема с регистрацией шрифтов. Какая винда? Рядом с ехе-шником папка Fonts создалась? Если да - попробуйте руками установить шрифты, находящиеся в ней.
- 14 ответов
-
Попробуйте сместить вверх на TTextMetric.tmExternalLeading
-
Механизм, который позволяет использовать иконку символьного шрифта вместо картинки на кнопках. Уж очень мне не нравится стандартный механизм добавления картинки на кнопку, поэтому, пару лет назад, начал искать альтернативу и остановился на символьных шрифтах (таких как 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
- 14 ответов
-
Tools->Options - Formatter->Delphi->Line breaks - General->Right margin