Изменение цвета стиля шрифтов элементов управления

 

Часто у пользователей, разработчиков конфигурации возникает потребность изменить цвет и начертание шрифта элементов управления:

1. Необходимо логически выделить некоторые элементы.

2. Сделать важную информацию более заметной, выделив соответствующие контролы в окне редактирования среди остальных.

3. Указать цветом \ стилем неправильно заполненные поля и многое другое.

 

Начиная с версии 3.3.2.46 появилась возможность задавать для элементов управления цвет надписей, размер шрифта, стиль (полужирный \ подчекрнутый \ курсив) и начертание шрифта.

 

Таким образом можно исходя из задачи логически выделить ключевые поля, обозначить действие кнопок (например кнопка "Удалить" красного цвета исключит вероятность случайного нажатия на нее).

 

Пример использования - окно редактирования Контакта.
Выделены некоторые поля и кнопки окна редактирования

Ниже приведен соответствующий код:

function InitializeLayout() {

       // Увеличим размер шрифта для поля "ФИО"

edtName.Font.Size = 10;

// Поле "Приветствие" сделаем жирным и выделим цветом

edtSalutation.CaptionColor = clPurple;

edtSalutation.Font.Bold = true;

// "Ответственнй" - выделяем жирным

edtOwner.Font.Bold = true;

// "Должность"

edtJobName.Font.Italic = true;

edtJobName.Font.Bold = true;

edtJobName.CaptionColor = 0x00cc00ff;

// "Не звонить" - меняем начертание шрифта и размер крупнее

edtDoNotCall.Font.Name = 'Comic Sans MS';

edtDoNotCall.Font.Size = 10;

// "Страна"

edtCountryName.Font.Bold = true;

edtCountryName.CaptionColor = 0x00bbcc00;

// "Часовой пояс"

edtTimeZone.Font.Underline = true;

// "Не включать в рассылку"

edtEmailOptOut.CaptionColor = 0x0000cc00;

// "Тип контакта"

edtContactType.CaptionColor = 0x0040c2e3;

edtContactType.Font.Bold = true;

// Кнопки "ОК" и "Отмена"

btnOK.Font.Size = 10;

btnOK.CaptionColor = 0x0010dd10;

btnCancel.CaptionColor = clFuchsia;

В следующих версиях вероятно настройка шрифтов элементов управления будет доступна также и в design time.

Предлагаю использовать выделение логически важных элементов при помощи шрифтов в базовой версии и проектных решениях. Как один из вариантов - выделение логически важных (но не обязательных для заполнения) полей карточек.

Еще один пример

Примеров полезного использования - множество!
Кто за ?

Нравится

Поделиться

24 комментария

Я против.
Здесь я уже писал по поводу раскраски реестра.
Раскраска надписей в карточке - это конечно хорошо, но главное не переусердствовать, как в приведенном примере :)

Сергей, мы идем навстречу пожеланиями пользователей. Неоднократно к нам поступали пожелания добавить такую функциональность. Александр показал возможности, которые теперь появились.

Да, карточка контакта страшненькая....

--
www.it-sfera.com.ua

Согласен с Сергеем в том, что главное - использовать эту возможность в меру :)
Иногда это действительно необходимо, например, когда окно строится на обычных компонентах (не связанных с датасет), а пользователю необходимо указать обязательность заполнения некоторых полей.
--------------------------------------------
Лабитек
Центр разработки приложений

Согласен, возможность ценная. Использовать ее нужно в меру. Часто сталкиваемся с пожеланиями клиентов по раскраске особо важных элементов окна.

Гламурно выходит:cool:
Готов заняться подготовкой версии Terrasoft Blond - розовый интерфейс - хит сезона:wink:
Если серьезно - красного/зеленого цвета более чем достаточно будет...

 

"Виталий Ковалишин aka samael" написал:Да, карточка контакта страшненькая....

Целью этого поста была демонстрация возможностей раскраски шрифтов.

Конечно я не предлагаю использовать именно такую карточку контакта. Но сама идея, думаю неплохая.

--

Александр Лучкив
Разработчик базовых продуктов

"Лучкив Александр" написал:сама идея, думаю неплохая

Согласен, я и проголосовал. Спасибо за примеры!

 

"Лучкив Александр" написал:Целью этого поста была демонстрация возможностей раскраски шрифтов.

Конечно я не предлагаю использовать именно такую карточку контакта. Но сама идея, думаю неплохая.

Да, идея хорошая! Просто карточка очень понравилась :lol: Не в обиду....

--
www.it-sfera.com.ua

Возможность бесспорно ценная. А на счет переусердствовать с количеством цветов, так это уже дело каждого, ведь можно переусердствовать и с расположением и количеством элементов управления в окне, так никто же не отменяет возможность создания и произвольного их расположения.

Супер! Я за такое расширение возможностей. Никогда ограничение разработки меня не привлекало. Это давно нужно было сделать. :)

"Валерий Андрусик" написал:Иногда это действительно необходимо, например, когда окно строится на обычных компонентах (не связанных с датасет), а пользователю необходимо указать обязательность заполнения некоторых полей.

Это можно сделать таким "старым" способом (работает с 3.2.0, а может и с еще более старой версии):

edtName.CaptionColor = LayoutLookAndFeelRequiredItemColor;

А что будет, если раскраску элементов окна вынести на клиентскую сторону? :smile: :wink: :sad:

"genekogo" написал:А что будет, если раскраску элементов окна вынести на клиентскую сторону?

Можно предусмотреть настройки для каждого пользователя и раскрашивать карточку согласно сделанным настройкам, хранящимся например в профиле.

--

Александр Лучкив
Разработчик базовых продуктов

"genekogo" написал:Это можно сделать таким "старым" способом (работает с 3.2.0, а может и с еще более старой версии):

edtName.CaptionColor = LayoutLookAndFeelRequiredItemColor;

Это работает не со всеми компонентами (по-моему только с Label и Edit, а часто нужно для LookupControl или других).

--------------------------------------------
Лабитек
Центр разработки приложений

Супер мне нравится! :)

"Валерий Андрусик" написал:Это работает не со всеми компонентами (по-моему только с Label и Edit, а часто нужно для LookupControl или других).

Теперь работает со всеми :wink:
--

Александр Лучкив
Разработчик базовых продуктов

"genekogo" написал:А что будет, если раскраску элементов окна вынести на клиентскую сторону? :smile: :wink: :sad:

- Будет беда. :smile:
А потом добавите в настройка профиля возможность редактирования порядка расположения элементов в окне, и превратиться Terrasoft в игру с названием «Найди контрол». :smile:

"Валерий Андрусик" написал:Это работает не со всеми компонентами (по-моему только с Label и Edit, а часто нужно для LookupControl или других).

Это работает с LookupControl. :smile:

"genekogo" написал:- Будет беда.

Это не предложение реализовать в такое базовой версии.
Но если это необходимо, компании, использующей CRM систему это будет удобно - то это легко можно реализовать: настраивать отображение для каждого пользователя

--

Александр Лучкив
Разработчик базовых продуктов

Лично мне нравится возможность раскраски элементов окна и я «За». Но фантазии клиентов боюсь больше ― не давайте им таких возможностей в настройках профиля. :smile:

"genekogo" написал:Валерий Андрусик пишет:
Это работает не со всеми компонентами (по-моему только с Label и Edit, а часто нужно для LookupControl или других).

Это работает с LookupControl.

Да, действительно, был неправ... Работает и в 3.2, и в 3.1...
Почему-то был уверен, что не работает - видимо в более ранней версии такое было.

--------------------------------------------
Лабитек
Центр разработки приложений

Возможность должна быть. А пользоваться ей или нет - это уже дело разработчика, а точнее клиента.

Супер! Спасибо за информацию.
Частоту подобных просьб от клиентов себе просто сложно представить.
Не хватает только возможности заливки фона поля. Например, при некорректном заполнении делать его не белым, а красным.

"Старун Юлия" написал:

Супер! Спасибо за информацию.

Частоту подобных просьб от клиентов себе просто сложно представить.

Не хватает только возможности заливки фона поля. Например, при некорректном заполнении делать его не белым, а красным.

В версиях 3.4.0+ есть см. линк

Показать все комментарии