Часто у пользователей, разработчиков конфигурации возникает потребность изменить цвет и начертание шрифта элементов управления:
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.
Предлагаю использовать выделение логически важных элементов при помощи шрифтов в базовой версии и проектных решениях. Как один из вариантов - выделение логически важных (но не обязательных для заполнения) полей карточек.
Еще один пример
Примеров полезного использования - множество!
Кто за ?
Я против.
Здесь я уже писал по поводу раскраски реестра.
Раскраска надписей в карточке - это конечно хорошо, но главное не переусердствовать, как в приведенном примере :)
Сергей, мы идем навстречу пожеланиями пользователей. Неоднократно к нам поступали пожелания добавить такую функциональность. Александр показал возможности, которые теперь появились.
Согласен с Сергеем в том, что главное - использовать эту возможность в меру :)
Иногда это действительно необходимо, например, когда окно строится на обычных компонентах (не связанных с датасет), а пользователю необходимо указать обязательность заполнения некоторых полей.
--------------------------------------------
Лабитек
Центр разработки приложений
Согласен, возможность ценная. Использовать ее нужно в меру. Часто сталкиваемся с пожеланиями клиентов по раскраске особо важных элементов окна.
Гламурно выходит:cool:
Готов заняться подготовкой версии Terrasoft Blond - розовый интерфейс - хит сезона:wink:
Если серьезно - красного/зеленого цвета более чем достаточно будет...
"Виталий Ковалишин aka samael" написал:Да, карточка контакта страшненькая....
Целью этого поста была демонстрация возможностей раскраски шрифтов.
Конечно я не предлагаю использовать именно такую карточку контакта. Но сама идея, думаю неплохая.
--
Александр Лучкив
Разработчик базовых продуктов
"Лучкив Александр" написал:сама идея, думаю неплохая
Согласен, я и проголосовал. Спасибо за примеры!
"Лучкив Александр" написал:Целью этого поста была демонстрация возможностей раскраски шрифтов.Конечно я не предлагаю использовать именно такую карточку контакта. Но сама идея, думаю неплохая.
Да, идея хорошая! Просто карточка очень понравилась :lol: Не в обиду....
Возможность бесспорно ценная. А на счет переусердствовать с количеством цветов, так это уже дело каждого, ведь можно переусердствовать и с расположением и количеством элементов управления в окне, так никто же не отменяет возможность создания и произвольного их расположения.
Супер! Я за такое расширение возможностей. Никогда ограничение разработки меня не привлекало. Это давно нужно было сделать. :)
"Валерий Андрусик" написал:Иногда это действительно необходимо, например, когда окно строится на обычных компонентах (не связанных с датасет), а пользователю необходимо указать обязательность заполнения некоторых полей.
Это можно сделать таким "старым" способом (работает с 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:
"genekogo" написал:- Будет беда.
Это не предложение реализовать в такое базовой версии.
Но если это необходимо, компании, использующей CRM систему это будет удобно - то это легко можно реализовать: настраивать отображение для каждого пользователя
--
Александр Лучкив
Разработчик базовых продуктов
"genekogo" написал:Валерий Андрусик пишет:
Это работает не со всеми компонентами (по-моему только с Label и Edit, а часто нужно для LookupControl или других).Это работает с LookupControl.
Да, действительно, был неправ... Работает и в 3.2, и в 3.1...
Почему-то был уверен, что не работает - видимо в более ранней версии такое было.
--------------------------------------------
Лабитек
Центр разработки приложений
Возможность должна быть. А пользоваться ей или нет - это уже дело разработчика, а точнее клиента.
Супер! Спасибо за информацию.
Частоту подобных просьб от клиентов себе просто сложно представить.
Не хватает только возможности заливки фона поля. Например, при некорректном заполнении делать его не белым, а красным.
"Старун Юлия" написал:Супер! Спасибо за информацию.
Частоту подобных просьб от клиентов себе просто сложно представить.
Не хватает только возможности заливки фона поля. Например, при некорректном заполнении делать его не белым, а красным.
В версиях 3.4.0+ есть см. линк