FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9210
Вход
Автоматическое изменение заданного свойства для всех объектов формы.

Класс предназначен для автоматического изменения заданного свойства для всех объектов на форме. Его удобно применять для изменения свойств группы font, цветовых настроек, св-в Enabled, Visible, ReadOnly и т.д. для всех (или части) объектов на форме.


 
Прислал: ElenaB   Категория: Интерфейс


Описание:

Библиотека SET_PROP содержит единственный одноименный класс, предназначенный для автоматического изменения заданного свойства для всех объектов на форме. Его удобно применять для изменения свойств группы font, цветовых настроек, св-в Enabled, Visible, ReadOnly и т.д. для всех (или части) объектов на форме.
Пропяти объектов изменяются по мере выполнения программы.


Свойства класса:

prop_name - Название свойства, значение которого хотим изменить
prop_type - Type() свойства: C, N или L
prop_val - Новое значение свойства
changebaseclass - Базовые классы, кот. включаем (исключаем) в обработку
baseclass_in_out- .T. - классы, перечисленные в changebaseclass включаем в обработку, .F. - исключаем


Использование:

Положить класс на форму, в ее Init'е написать - Thisform.set_prop1.set_prop. После программного добавления объектов снова писать Thisform.set_prop1.set_prop, если это необходимо. Ну и, само собой, в процессе выполнения программы можно задавать самые разные настройки.


Значения свойств по умолчанию:

prop_name = FontCharSet
prop_type = N
prop_val = 204
changebaseclass = ''
baseclass_in_out = .F.



Примечание:

Обработка ошибок для некорректного задания новых значений для указанного свойства (prop_val) в классе не реализована.

Пример 1:
prop_name = BackColor
prop_type = N
prop_val = 128 changebaseclass = Form
baseclass_in_out = .F.

Результат - BackColor всех объектов на форме, кроме самой формы изменят значения на 128.
Пример 2:
prop_name = FontSize
prop_type = N
prop_val = 12
changebaseclass = ''
baseclass_in_out = .F.

Результат - FontSize всех объектов на форме примет значени 12.
Пример 3:
prop_name = FontName
prop_type = C
prop_val = Arial
changebaseclass = ''
baseclass_in_out = .F.

Результат - Везде будет использован шрифт 'Ariel'
Пример 4:
prop_name = ReadOnly
prop_type = L
prop_val = T (допускается .T.)
changebaseclass = Textbox Editbox
baseclass_in_out = .Т.

Результат - Во всех текстбоксах и эдитбоксах формы будет запрещено редактирование данных

 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.843) Вложение [6.48]kb
Дополнения пользователей
Автоматическое изменение заданного свойства для всех объектов формы.
[+][?]
Белюкова Е.В.
12.01.03 15:56:00

Дополнение к написанному:

В примерах значения свойств надо заключать в кавычки. В табличке это не сделано, т.к. при
просмотре страницы со значениями в кавычках выяснилось, что они отображаются как /' . Чтобы никого
не вводить в заблуждение, пришлось их убрать.
Александр
08.04.03 18:42:08

А Container.SetAll(cProperty, Value [, cClass]) чем не так. А тип свойства не надо указвать. И не
только для формы. И шрифт называется Arial, а не Ариэль
Игорь Королёв
11.06.03 18:23:48

SetAll далеко не всё может... В частности он не может сам ходить по иерархии наследования - т.е.
работать скажем только с классами-наследниками класса txtCool. Вообще для этой цели в VFP7 есть
FFC класс SetAllX, но он тоже не сильно крут (хоть и позволяет присвоить одному свойству объекта
не просто значение, а выражение, включающее другие свойства этого объекта :)). Я было дело
расширил этот класс (и упростил немного :)) Вот сейчас попытаюсь сюда закинуть...
Bykov V. Konstantin
14.11.03 10:38:37

Архив-то пропал аки? ;)
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика