Один размер шрифта в Windows- и Linux-программах
Модератор: Модераторы
Один размер шрифта в Windows- и Linux-программах
Здравствуйте, уважаемые.
Начинающий, с простецкими вопросами. Поиском пользовался.
Под Вин и под Лин у Лазаря два разных шрифта для визуальных компоненов (упрощенно выражаясь).
Скомпоновав форму под одну ОС, в другой это выглядит совершенно неприемлемо.
Как задать шрифт для всех компонентов сразу? И чтобы одинаковый был и там, и там.
Спасибо.
Начинающий, с простецкими вопросами. Поиском пользовался.
Под Вин и под Лин у Лазаря два разных шрифта для визуальных компоненов (упрощенно выражаясь).
Скомпоновав форму под одну ОС, в другой это выглядит совершенно неприемлемо.
Как задать шрифт для всех компонентов сразу? И чтобы одинаковый был и там, и там.
Спасибо.
Re: Один размер шрифта в Windows- и Linux-программах
Эту проблему обычно решают по другому: делают так, чтобы форма выглядела абсолютно приемлемо при любом шрифте. Например, с помощью редактора привязок.
Если же отвечать на поставленный вопрос
Для этого нужно:
* выбрать шрифт,
* носить файлы этого шрифта вместе с программой,
* устанавливать эти файлы в систему перед запуском программы, либо подгружать их динамически.
При этом возникает сразу куча проблем:
- проблема легальности распространения шрифта,
- проблема установки шрифта в систему без прав администратора, либо проблема динамической загрузки шрифта и отрисовки текста именно этим шрифтом.
- проблема непривычного для пользователя внешнего вида приложения (когда одно приложение среди остальных выглядит как белая ворона).
Если же отвечать на поставленный вопрос
Как задать шрифт для всех компонентов сразу? И чтобы одинаковый был и там, и там.
Для этого нужно:
* выбрать шрифт,
* носить файлы этого шрифта вместе с программой,
* устанавливать эти файлы в систему перед запуском программы, либо подгружать их динамически.
При этом возникает сразу куча проблем:
- проблема легальности распространения шрифта,
- проблема установки шрифта в систему без прав администратора, либо проблема динамической загрузки шрифта и отрисовки текста именно этим шрифтом.
- проблема непривычного для пользователя внешнего вида приложения (когда одно приложение среди остальных выглядит как белая ворона).
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Re: Один размер шрифта в Windows- и Linux-программах
Нужно использовать (и установить в Линуксе) 1) общепринятые TrueType-шрифты (из поставки Выни) и 2) назначать эти шрифты комапонентам явно ("Times New Roman", "Verdana",..), а не через алиасы ("Serif", "Helvetica"..), которые (в случае Линукса) могут быть назначены совсем другим шрифтам.
Re: Один размер шрифта в Windows- и Linux-программах
Я вам обоим ужасно благодарен.
Про привязки - вообще не знал.
Про привязки - вообще не знал.
Re: Один размер шрифта в Windows- и Linux-программах
так это ж fpGUI. там везде выглядит одинаково. Не только шрифты, а вообще всё до мелочей
Re: Один размер шрифта в Windows- и Linux-программах
hinst писал(а):так это ж fpGUI. там везде выглядит одинаково. Не только шрифты, а вообще всё до мелочей
Прошу прощения, что-то я смысла фразы не уловил. Можно переформулировать?
Re: Один размер шрифта в Windows- и Linux-программах
есть такая библиотека юзверьского интерфейса для freepascal, называется fpGUI. Вот, если пользуешься ею, получаешь гарантированный одинаковый внешний вид интерфейса на всех платформах. Потому, что она все элементы управления рисует сама. В этом есть свои плюсы. Ну и минусы, конечно, тоже
Re: Один размер шрифта в Windows- и Linux-программах
RustemNur
- 1 http://wiki.freepascal.org/fpGUI
- 2 http://wiki.freepascal.org/fpGUI_Interface
- 3 http://fpgui.sourceforge.net/
- 4 Рано на него ориентироваться.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Re: Один размер шрифта в Windows- и Linux-программах
Про привязки - вообще не знал.
Весьма сложная тема - FONTCONFIG (с его конфигурационными файлами - в которых применено бессчетное число трюков). В последних дистрах дженерик-фонты Helv[etica]/Sans, Serif и Mono по дефолту привязаны как правило не к TrueType, a к PS (Type1) шрифтам. Последние теперь тоже юникодные (хранят больше чем 256 символов - то есть все основые алфавиты и кодировки) - то есть ни в чем не уступают TrueType. Но начертания могут отличаться от ближайших TrueType аналогов - иногда весьма значительно. Иногда в системе установлено мало шрифтов, и FONTCONFIGу приходится использовать самые крайние фоллбэки. FONTCONFIG кстати очень классный механизм, по сравнению с которым Font-механизм Выни - лишь жалкое мяуканье. Но для его нормальной работы ("что вижу на экранге, то получаю и на бумаге") в системе должны быть установлены для текущей локали следующие наборы шрифтов - type1-fonts-x11, freefont-ttf, microsoft-ttf и кажется dejavu-ttf.
Re: Один размер шрифта в Windows- и Linux-программах
Повозился с редактором привязок. Кажется это то, чего мне порой ужасно не хватало в Дельфи7. Правда должен оговориться, что это только первое осторожное впечатление.
FONTCONFIG - тут мне опять нужно пояснение. Что имеется в виду?
По поводу fpGUI: почитал по ссылкам, скачал, но так и не решился поставить. Правильно ли я понял, что там полностью своя палитра компонентов? И ничего уже не добавить?
ЗЫ: Опять-таки, очень благодарю за ответы.
FONTCONFIG - тут мне опять нужно пояснение. Что имеется в виду?
По поводу fpGUI: почитал по ссылкам, скачал, но так и не решился поставить. Правильно ли я понял, что там полностью своя палитра компонентов? И ничего уже не добавить?
ЗЫ: Опять-таки, очень благодарю за ответы.
Re: Один размер шрифта в Windows- и Linux-программах
RustemNur писал(а):Правильно ли я понял, что там полностью своя палитра компонентов? И ничего уже не добавить?
Палитра - своя. Существующие компоненты для Lazarus без переписывания туда добавить не получится. Самому писать новые компоненты, разумеется, можно.
В целом, библиотека fpGUI сейчас на относительно ранней стадии развития (по сравнению с LCL). Имеет смысл к ней присмотреться, если:
* есть опыт, либо хочется его получить. Архитектура и исходный код библиотеки весьма хороши, а заглядывать в код в процессе работы с ней скорее всего придётся;
* пользовательский интерфейс приложения - относительно простой;
* важен малый размер исполняемого файла;
* хочется одинакового внешнего вида под всеми ОС;
* не хочется внешних зависимостей от GTK2 и QT под Linux.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Re: Один размер шрифта в Windows- и Linux-программах
FONTCONFIG - тут мне опять нужно пояснение. Что имеется в виду?
Система управления шрифтами в Линуксе.
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
Re: Один размер шрифта в Windows- и Linux-программах
RustemNur писал(а):Здравствуйте, уважаемые.
Начинающий, с простецкими вопросами. Поиском пользовался.
Под Вин и под Лин у Лазаря два разных шрифта для визуальных компоненов (упрощенно выражаясь).
Скомпоновав форму под одну ОС, в другой это выглядит совершенно неприемлемо.
Как задать шрифт для всех компонентов сразу? И чтобы одинаковый был и там, и там.
Спасибо.
Тоже крячился с этой проблемой. Решил так - как пользователяю надо - пусть так и настроит. Примерно так:
Код: Выделить всё
procedure SetApplicationFont(FontSize: byte; SetFont: boolean; OneForm: tForm = nil);
var i, j, k: integer;
...
begin
...
for J:= 0 to Application.ComponentCount-1 do begin
if Application.Components[j].ClassParent.ClassType = tForm then begin
...
if SetFont
then tForm(Application.Components[j]).Font.Size:= FontSize
else tForm(Application.Components[j]).Font.Size:= 8;
...Добавлено спустя 49 секунд:
Под линукс не могу в данный момент скрина сделать, но там то же самое.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Один размер шрифта в Windows- и Linux-программах
dunin писал(а):Под линукс не могу в данный момент скрина сделать, но там то же самое.
Ну да, понятно, спасибо.
Этот "редактор привязок", как я, собственно, и ожидал, работает в моих руках несколько своеобразно.
И у меня по ходу мелкий вопрос: как заставить кнопки в компоненте ButtonPanel разместиться по центру окна?
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Re: Один размер шрифта в Windows- и Linux-программах
dunin
Спасибо за подсказку, а то я уже думал выкинуть из портируемого проекта этот кусок
Спасибо за подсказку, а то я уже думал выкинуть из портируемого проекта этот кусок
