Практические занятия для опытных пользователей. Получение нужного цвета
Получение нужного цвета
Если задавать цвет только с помощью ключевых слов, таких как vbRed, vbWhite и vbYellow, вы обделите себя. Существует множество пастельных тонов и волнующих оттенков, только и ждущих применения в вашем коде на языке Visual Basic. К сожалению, для задания этих цветов нельзя использовать ключевые слова. Вместо них придется применять числовые коды цветов.
Чаще всего вы не будете знать правильного числового кода для цвета, который хотите использовать. Но эту проблему можно решить с помощью удобной функции RGB, включенной в язык Visual Basic (как и функция MsgBox, которая применялась раньше). Функция RGB принимает три отдельных числа, представляющих красную, зеленую и синюю составляющие цвета, и преобразует их в код цвета, который можно использовать для задания свойств ForeColor или BackColor.
3 На рис. 16.8 текст сообщения выводится на английском языке. Вы, разумеется, можете тоже выводить текст на английском. — Ред.
Далее приведен пример, использующий описанный метод, для применения оттенка светлого оранжево-розового цвета:
Detail.BackColor = RGB(266, 160, 122)
Этот оператор выполняется в два этапа. Сначала программа Access выполняет функцию RGB для создания кода цвета. Затем она заносит код цвета в свойство BackColor. На первый взгляд преимущество применения функции RGB может показаться не столь очевидным, поскольку она требует указания трех отдельных чисел. На самом деле RGB-обозначение цвета — общепринятый стандарт, применяемый в Web-пространстве и в большинстве Windows-приложений. Найти цвет можно даже в указателе цвета программы Access, а затем определить нужные RGB-компоненты, выполнив следующие действия.
1. Откройте форму в Конструкторе.
2. Выберите элемент управления и затем в Окне свойствщелкните кнопкой мыши поле Цвет текста(ForeColor) или Цвет фона(BackColor).
3. Щелкните мышью кнопку с многоточием (...) в поле цвета для перехода в окно быстрого выбора цвета, в котором отображаются некоторые распространенные и недавно использовавшиеся цветовые варианты.
4. Выберите кнопку Другие цвета(More Colors) для отображения полного набора цветов.
5. Щелкните кнопкой мыши вкладку Спектр (Custom).
6. Выберите цвет, как показано на рис. 16.9.
7. Запишите RGB-значения. Их можно использовать в вашем программном коде.
8. Щелкните мышью кнопку Отмена(Cancel) для возврата в программу Access.
У формы в этот момент обнаруживается дефект. Когда выполняется первое изменение, появляется подпись и меняется цвет фона, как и должно быть. Однако, после того как вы зафиксировали изменение, перейдя к другой записи, сообщение и цвет фона сохраняются. Полученный результат, очевидно, — не то, что вам нужно.
Для устранения ошибки необходимо отреагировать на другое событие: событие формы После обновления (After Update). Оно возникает после того, как программа Access успешно зафиксирует изменение в БД. Далее приведен код, необходимый для возврата обычного внешнего вида формы:
Private Sub Form_AfterUpdate ()
Detail.BackColor = vbWhite
InfoMessage.Caption = "" End Sub
Примечание
He следует использовать событие До обновления(Before Update), поскольку оно возникает как раз перед фиксацией изменений. В этот момент вы не знаете, найдет ли программа Access некорректные данные, отобразит ли сообщение об ошибке и помешает ли обновлению (а в этом случае красный цвет фона следует сохранить).
Рис. 16.9.Для выбора цвета щелкните кнопкой мыши в цветовой сетке. (Перекрестье указывает вашу текущую позицию.) Затем используйте вертикальный ползунок для регулировки яркости цвета. Вы увидите, что по мере изменения цвета будут меняться значения Красный(Red), Зеленый(Green) и Синий(Blue)
Пример все еще не закончен. Помимо фиксации изменений пользователь может также нажать клавишу <Esc> для их отмены. На эту возможность тоже следует отреагировать и применить тот же код для возврата к обычному состоянию формы. В данном случае используется событие Отмена(On Undo):
Private Sub Form_Undo () Detail.BackColor = vbWhite InfoMessage.Caption = ""
End Sub
Этот шаг завершает пример. Для того чтобы увидеть все три процедуры вместе и испытать их в действии, загрузите из Интернета пример БД для данной главы (в разд. "Примеры" во введении объясняется, как обращаться с примерами БД).
Часто задаваемый вопрос.