Страница 1 из 4

Шрифт для окна

Добавлено: 05 Октябрь 2020, 7:36
Игорь Столяров
Привет всем !

Это снова я и у меня опять детский вопрос. :)
Есть приложение ABC и в нём обычное MDI окно (размер шрифта 11).
Выполняем:

Код: Выделить всё

  ! Open the window
  SELF.Open(Window)  ! Open window
  ! [Priority 8005]
  
  SETFONT(Window,,14)
  !Window{Prop:FontSize} = 14  ! Ещё один вариант
И ... ничего не происходит. :( Совсем. Абсолютно. Разве так должно быть ?
Ожидания таковы, что текущий шрифт окна изменится, да и вообще-то размер окна тоже.
Почему не меняется размер шрифта окна ? Заранее спасибо !

Шрифт для окна

Добавлено: 05 Октябрь 2020, 7:51
finsoftrz
Шрифт надо менять у всех контролов. А размер контролов и окна как раз изменяет anyfont. Можете в сырцах глянуть, там не мало нюансов. Например, еще ширина колонок корректируется, если есть list.

Шрифт для окна

Добавлено: 05 Октябрь 2020, 8:05
Игорь Столяров
finsoftrz писал(а): 05 Октябрь 2020, 7:51 А размер контролов и окна как раз изменяет anyfont.
Вот ! Я же потому и попросил AnyFont ... ;) Займусь !
Но осадочек-то остаётся. Зачем оператор SetFont(Window) если он ничего не делает ?
Чего-то я здесь не понимаю ... :(

Шрифт для окна

Добавлено: 05 Октябрь 2020, 8:58
finsoftrz
SetFont(Window) устанавливает дефолтный шрифт у окна. В Anyfont если ставите, например, у окна размер 12, а был размер 10, то все контролы и окно пропорционально изменят свой размер. Это очень хорошая библиотека. Главное, в сырцах, без внешних зависимостей и понятно написанная. Можно использовать только класс, можно класс+шаблоны. Вы скорее всего, сможете свое приложение запустить и на разрешении 800х600.

Шрифт для окна

Добавлено: 05 Октябрь 2020, 9:02
Игорь Столяров
Кстати, интересная информация по этому вопросу в FAQ AnyFont:
The controls on my MDI child window don't resize ?

Answer: This is probably caused by setting the font directly in the child window.
The correct way of setting the font in an MDI application is to do it in the MDI menu.
Т.е. получается, что если мы задаём размер шрифта в MDI окне ... то изменить его уже не можем ? Во блин новости ! :(

Шрифт для окна

Добавлено: 05 Октябрь 2020, 9:37
finsoftrz
Anyfont использует те же операторы, что и Вы в ручном коде. Просто вычисляет и применяет пропорции. Вы можете модифицировать в рантайм свои контролы как обычно. Просто надо понимать принцип работы. Не все можно корректно сделать автоматически. Поэтому в anyfont можно для отдельных контролов отключать изменение размера и шрифта. Это только в специфических случаях надо, в стандартных ситуациях все отрабатывает автоматически. Речь про изменение размера шрифта. С типом шрифта смена не очень хорошо может проходить, так как там разное между буквенное расстояние.

Шрифт для окна

Добавлено: 05 Октябрь 2020, 9:42
finsoftrz
Считайте, что anyfont это те же самые prop:font, prop:width и т.п., только применяемые сразу ко всем контролам окна (с возможными исключениями) и по определенным правилам.

Шрифт для окна

Добавлено: 05 Октябрь 2020, 14:53
Игорь Столяров
finsoftrz писал(а): 05 Октябрь 2020, 8:58 Вы скорее всего, сможете свое приложение запустить и на разрешении 800х600.
Удивительно, но жись ставит задачу с точностью до наоборот.
Состоятельные, но уже подслеповатые Заказчики требуют, что бы программы полностью (в буквальном смысле)
использовали их инвестиции в большие мониторы с разрешением Full HD. Я же не зря в вопросе пытался сменить
размер шрифта с 11 на 14. Т.е. окна будем растягивать, а не сжимать ... ;) Будь проклята эта бедность ! :)

Шрифт для окна

Добавлено: 05 Октябрь 2020, 15:08
finsoftrz
Я с в 8 до 10 подключал. Все хорошо работает.
Попробуйте с с11 на таком мониторе поработать, если есть возможность. А то я уже хотел большой телевизор поставить на пробу. :-)

Шрифт для окна

Добавлено: 05 Октябрь 2020, 15:22
finsoftrz
Только такой нюанс. Я поднимал размер шрифта в дочерних окнах. Во фрейме как-то коряво с меню получалось, но мне это особо не надо было, не стал докапываться.

Шрифт для окна

Добавлено: 05 Октябрь 2020, 15:54
kreator
Интересно, а как подслеповатые заказчики в Office работают? Там нет широких возможностей по изменению размера шрифта.
И чем не нравиться изменение общего масштаба Винды?

Шрифт для окна

Добавлено: 05 Октябрь 2020, 16:04
finsoftrz
Щурутся. :-)

Шрифт для окна

Добавлено: 05 Октябрь 2020, 16:12
finsoftrz
В экселе масштабирование есть.

Шрифт для окна

Добавлено: 05 Октябрь 2020, 16:29
kreator
Я имею ввиду ленту. Вроде никаких настроек.

Шрифт для окна

Добавлено: 05 Октябрь 2020, 16:42
finsoftrz
У меня была ситуация, когда большинство программ ориентируются на размер шрифта 10, а у меня 8. Если увеличивать средствами винды, то пользователям будет не комфортно работать в других программах. Если оставлять 8, то для кого-то мелковато, кому-то, наоборот, нравится. Поэтому была подключена возможность увеличения шрифта с 8 до 10 средствами настройки программы. Причем только дочерних окон. Само меню фрейма, тулбар, тулбоксы остались без изменения, это не напрягает, скорее наоборот. Расчет был такой, что для больших мониторов будут уже масштабировать средствами винды.