Шрифт формы - как получить?

Автор Злоп, 12 октября 2024, 22:35

« назад - далее »

Злоп

Как через Formex получить шрифт формы?
Через объект "НастройкиПользователей" - можно получить НАСТРОЙКУ через атрибут "ШрифтФорм".
Но это - настройка по умолчанию, а на форму в конфигураторе может быть назначен другой шрифт.
Получить шрифт формы через шрифт какого-либо реквизита формы (например, кнопки кнЗакрыть - не пойдет, т.к. на кнопку может программно быть назначен свой шрифт) - какой реквизит формы брать, который есть всегда?
.
Собственно вот что хотелось: получить шрифт формы, вытащить оттуда размер и, например, на ТЗ назначить типа ШрифтФормы.Размер + 2 (или -2, размер может и в отрицательных значениях задаваться).

PS
Кстати, в 148 релизе код работает, а в 199 - ломается
НП = СоздатьОбъект("НастройкиПользователя");
Предупреждение(НП.ШрифтФорм); // MS SansSerif,-11
Предупреждение(НП.Шрифт); // Arial,-11 ---- Что это за атрибут "Шрифт", в 199 релизе дает ошибку....

Arbuz

РасшФормы.ВнутреннееПредставление

Но придётся парсить — там элемент Frame.

Злоп

хм.. надо посмотреть что там такое...

Злоп

Цитата: Arbuz от 14 октября 2024, 16:30РасшФормы.ВнутреннееПредставление
парсингом никогда не занимался, так что втупую...

РасшФормы = СоздатьОбъект("РасширениеФормы"); ВП = РасшФормы.ВнутреннееПредставление; //ОТЛАДКА Сообщить(РазделительСтрок+ВП); //{"Dialogs", //{"Frame", //{"-11","0","0","0","400","0","0","0","204","1","2","1","34","MS Sans Serif","320","165"," ","","","128","","1","1","6","29","-1","0","128", ВП = СтрПолучитьСтроку(ВП,3); //ОТЛАДКА Сообщить(РазделительСтрок+ВП); ВП = СокрЛП(СтрЗаменить(ВП,"{",РазделительСтрок)); ВП = СтрЗаменить(ВП,",",РазделительСтрок); ВП = СтрЗаменить(ВП,"""",""); ШрифтПоУмолчанию = Число(СтрПолучитьСтроку(ВП,22)); ШрифтИмя = СтрПолучитьСтроку(ВП,14); ШрифтРазмер = Число(СтрПолучитьСтроку(ВП,1)); ШрифтЖирный = Число(СтрПолучитьСтроку(ВП,5)); ШрифтНаклонный = Число(СтрПолучитьСтроку(ВП,6)); ШрифтПодчеркнутый = Число(СтрПолучитьСтроку(ВП,7)); ШрифтЗачеркнутый = Число(СтрПолучитьСтроку(ВП,8)); ШрифтРазмерПриведенный = ШрифтРазмер * (-0.77273); ШрифтРазмерПриведенныйДробь = ШрифтРазмерПриведенный - Цел(ШрифтРазмерПриведенный); ШрифтРазмерПриведенныйДробь = ?(ШрифтРазмерПриведенныйДробь<0.5,0,0.5); ШрифтРазмерПриведенный = Цел(ШрифтРазмерПриведенный)+ШрифтРазмерПриведенныйДробь; Сообщить("Форма, шрифт: |"+СимволТабуляции+"шрифт по умолчанию: "+?(ШрифтПоУмолчанию<>0,"да","нет")+" |"+СимволТабуляции+"имя: "+ШрифтИмя+" |"+СимволТабуляции+"размер: "+ШрифтРазмер+"(?"+ШрифтРазмерПриведенный+"пт) |"+СимволТабуляции+"начертание: "+?(ШрифтЖирный=400,"нормальный","жирный")+" |"+СимволТабуляции+"наклонный: "+?(ШрифтНаклонный<>0,"да","нет")+" |"+СимволТабуляции+"подчеркнутый: "+?(ШрифтПодчеркнутый<>0,"да","нет")+" |"+СимволТабуляции+"зачеркнутый: "+?(ШрифтЗачеркнутый<>0,"да","нет")+" |");

Злоп

Тут еще вопрос:
как размеры шрифтов, которые выдает Formex (система) в виде отрицательных чисел, привести к привычному указанию размера шрифта, который выбирается в диалоге выбора размера шрифта обычно..?

Злоп