:: Visual Foxpro, Foxpro for DOS
Замена шрифта на всех объектах формы
rud
Автор

Сообщений: 640
Откуда: Москва
Дата регистрации: 02.09.2000
Здесь уже обсуждалась проблема шрифта MS Sanf Serif и Windows 10. Она решаема, но не всегда удобно для удаленных пользователей. Поэтому хочется залезть в проект, и заменить в каждой форме во всех объектах этот шрифт на Arial, например. Понятно, что потом придется местами менять размеры объектов, но хотелось бы какой то простой командой заменить всюду на форме этот шрифт, чтобы меньше работать руками. Такое возможно?
Ratings: 0 negative/0 positive
Re: Замена шрифта на всех объектах формы
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
Любая форма или библиотека по сути таблица.
Открывай как таблицу, сканируй, правь поле Properties.
Ratings: 0 negative/0 positive
Re: Замена шрифта на всех объектах формы
rud
Автор

Сообщений: 640
Откуда: Москва
Дата регистрации: 02.09.2000
Спасибо! Я что-то не сообразил. Написал коротенькую прогу, которая открывает в заданной папке все формы как таблицы, и заменяет MS Sans Serif на Arial. Еще раз спасибо за подсказку!
Ratings: 0 negative/0 positive
Re: Замена шрифта на всех объектах формы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Насколько я помню, если явно не меняли шрифт, то строчки с FontName=... вообще не будет в scx/vcx файле.
Ну а так - если изначально задумывались хоть чуть об архитектуре приложения, то не использовали бы штатные фоксовые классы, а только их наследники. И тогда достаточно было бы поменять шрифт всего в десятке классов в базовой библиотеке...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Замена шрифта на всех объектах формы
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Нет, просто исходники форм подправить мало. Как-то компильнуть формы надо. Не знаю как.
В рантайме это не сделаешь.
Хотя, проперти, может, и не надо



Исправлено 1 раз(а). Последнее : Ydin, 04.02.20 23:39
Ratings: 0 negative/0 positive
Re: Замена шрифта на всех объектах формы
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
Ydin
Нет, просто исходники форм подправить мало. Как-то компильнуть формы надо. Не знаю как.
В рантайме это не сделаешь.
Хотя, проперти, может, и не надо

Так никто не запрещает после исправлений шрифта выполнить
Compile form...
Хоть это и действительно лишнее.
Ratings: 0 negative/0 positive
Re: Замена шрифта на всех объектах формы
rud
Автор

Сообщений: 640
Откуда: Москва
Дата регистрации: 02.09.2000
Я после исправлений шрифта заново построил exe файл, поэтому все нормально работает.
А замечание Igor Korolyov верное, согласен, что раньше думать надо было. Но тут, как говорится "знать бы прикуп, жить бы в Сочи".
Ratings: 0 negative/0 positive
Re: Замена шрифта на всех объектах формы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Проблема такого подхода в том, что шрифт может быть попросту не задан для объектов на формах - и тогда "заменой" ничего не получится сделать, а написать анализатор который не только заменить, но и добавить свойство сможет - это задача в общем случае очень непростая - поскольку фокс весьма своеобразно прописывает свойства к примеру для контейнерных классов из библиотеки, или даже для банальных гридов и пейджфреймов.
Правда есть хитрый способ - к открытому в редакторе форм/классов объекту (форме в частности) можно получить програмный доступ. ASELOBJ() и рекурсивно обходить все вложенные объекты, прописывая тот самый FontName - а уж форм/класс дизайнер сам всё правильно пропишет в vcx/scx файлы. Это пол-шага к самописному Builder-у, но и этого зачастую вполне достаточно для подобных рутинных операций со старой кодовой базой.


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 18 (Гостей: 18)

© 2000-2024 Fox Club 
Яндекс.Метрика