Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема СоздатьШрифт - создаёт не все шрифты (число прочтений - 3765 )
albiel
YaBB Newbies
*
Отсутствует



Сообщений: 6
Зарегистрирован: 28. Мая 2013
Пол: Мужской
СоздатьШрифт - создаёт не все шрифты
28. Мая 2013 :: 20:35
Печать  
СоздатьШрифт - создаёт не все шрифты

Результат метода СоздатьШрифт зависит от пользовательского шрифта по умолчанию. И в зависимости от значения параметра "Шрифт форм" может вести себя не вполне адекватно.

 
Если в параметрах пользователя установлен Шрифт форм = MS Sans Serif, то метод СоздатьШрифт не создаёт шрифты Arial, Courier, System. Размер и прочее меняется, но шрифт остаётся пользовательским, т. е. MS Sans Serif.

При этом другие шрифты метод создаёт, в том числе Arial Black, Arial Narrow, Courier New.
Если же в параметрах пользователя установить шрифт форм = MS Serif, то шрифты Arial, Courier, System создаются.
Если менять шрифты в параметрах пользователя на разные другие, то после этого одни шрифты создаются, а другие нет.

Поведение метода немного зависит от операционной системы. В Windows XP метод создаёт (вроде бы) все шрифты в заголовке Многострочной Части, но сбоит вышеуказанным способом в строках Многострочной Части и на кнопках (другие элементы форм не пробовал). В Windows 7 сбоит на всём.

Аналогично поведение шрифта и в Плане раскраски таблиц.

Пример моего кода:

Шрифт=СервисРасшФормы.СоздатьШрифт(ШрифтИмя,ШрифтРазмер, Жирность, ШрифтНаклонный, ШрифтПодчеркивание, ШрифтЗачеркивание, 0);
ФормаРасш.МногострочнаяЧасть.Шрифт=Шрифт;
ФормаРасш.кнШрифт.Шрифт=Шрифт;


Видимо, проблема связана с тем, что метод СоздатьШрифт создаёт шрифт на основании пользовательского, и часть шрифтов на основании других не создаются, а я не в курсе этой механики. Пробовал играться методом СоздатьШрифтНаОсновании - но безрезультатно.

Если кто сталкивался с проблемкой и решил - просьба рассказать как. Оно не особо значимо, но хочется идеала.

Прикрепил пример использования метода во внешней обработке.
Атрибут "Образец" меняет (или не меняет) шрифт в соответствии с выбираемым в обработке.

Update
Проблема решена. Нужно нуль в конце убратьУлыбка

Шрифт=СервисРасшФормы.СоздатьШрифт(ШрифтИмя,ШрифтРазмер, Жирность, ШрифтНаклонный, ШрифтПодчеркивание, ШрифтЗачеркивание)
« Последняя редакция: 06. Июня 2013 :: 18:07 - albiel »  

____________009.ert ( 12 KB | Загрузки )
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: СоздатьШрифт - создаёт не все шрифты
Ответ #1 - 29. Мая 2013 :: 05:27
Печать  
Ты где шрифты то создаешЬ, для начала ?
Создай их один раз в ПриНачалеРаботыСистемы.

ЗЫ: + если пишешь СервисРасшФормы в имени переменных, то поди пользуешься древней 1cpp со встроенным формексом еще поди, да ?
Формекс какой версии у тебя ?
  
Наверх
 
IP записан
 
albiel
YaBB Newbies
*
Отсутствует



Сообщений: 6
Зарегистрирован: 28. Мая 2013
Пол: Мужской
Re: СоздатьШрифт - создаёт не все шрифты
Ответ #2 - 29. Мая 2013 :: 17:15
Печать  
Шрифт создаю  в форме журнала документов. Идея в том, чтобы пользователь сам выбирал шрифты для разных журналов и списков справочников. Это не должен быть фиксированный шрифт.

Использую Formex последней версии 2.0.5.108.

Попробую создать шрифт При начале работы системы, а затем на его основании.
  
Наверх
 
IP записан
 
albiel
YaBB Newbies
*
Отсутствует



Сообщений: 6
Зарегистрирован: 28. Мая 2013
Пол: Мужской
Re: СоздатьШрифт - создаёт не все шрифты
Ответ #3 - 29. Мая 2013 :: 17:31
Печать  
Не-а, не прокатило. Arial = Courier = MS Sans Serif хоть тресни.
А метода, меняющего пользовательские настройки шрифтов, вроде нету. Тот что есть, вроде, только для чтения.
  
Наверх
 
IP записан
 
albiel
YaBB Newbies
*
Отсутствует



Сообщений: 6
Зарегистрирован: 28. Мая 2013
Пол: Мужской
Re: СоздатьШрифт - создаёт не все шрифты
Ответ #4 - 29. Мая 2013 :: 21:43
Печать  
Прикрепил к теме пример использования метода во внешней обработке. Атрибут "Образец" меняет (или не меняет) шрифт в соответствии с выбираемым в обработке.
  
Наверх
 
IP записан
 
albiel
YaBB Newbies
*
Отсутствует



Сообщений: 6
Зарегистрирован: 28. Мая 2013
Пол: Мужской
Re: СоздатьШрифт - создаёт не все шрифты
Ответ #5 - 06. Июня 2013 :: 18:08
Печать  
Проблема решена. Нужно нуль в конце убратьУлыбка

Шрифт=СервисРасшФормы.СоздатьШрифт(ШрифтИмя,ШрифтРазмер, Жирность, ШрифтНаклонный, ШрифтПодчеркивание, ШрифтЗачеркивание)
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать