ПОНЯТНО О Visual Basic NET (том 2)

Функция FromArgb


В VB существует 16 миллионов цветов с лишним (точнее - 16777216)!  Их имен мы не знаем, да имен этих и не существует. Тем не менее, мы должны научиться управлять этими цветами. Чтобы навести порядок в этой массе цветов, VB предлагает функцию FromArgb. Она принадлежит структуре Color. Суть ее вот в чем.

Вспомним, что любую краску можно получить, смешав в определенной пропорции красную (Red), зеленую (Green) и синюю (Blue) краски. В VB каждой краски в смесь можно положить от 0 до 255 единиц. Функция FromArgb как раз и смешивает эти краски. Пусть мы хотим покрасить форму краской, в которую мы положили и смешали 200 единиц красной, 40 единиц зеленой и 250 единиц синей краски. Для этого пишем такой оператор:

        Me.BackColor = Color.FromArgb(200, 40, 250)

Здесь мы использовали вариант функции FromArgb с тремя параметрами.

Примеры:



FromArgb (255, 0, 0)

Красный цвет

FromArgb (0, 255, 0)

Зеленый цвет

FromArgb (0, 0, 255)

Синий цвет

FromArgb (255, 255, 0)

Желтый цвет

Вы видите, что желтый цвет – это смесь красного с зеленым.

Чем меньше каждой краски мы положим, тем темнее будет цвет, чем больше – тем светлее:

FromArgb (70, 90, 88)

Темный цвет  (потому что числа маленькие)

FromArgb (210, 250, 202)

Светлый цвет  (потому что числа большие)

FromArgb (0, 0, 0)

Черный цвет

FromArgb (255, 255, 255)

Белый цвет

Если каждой краски положить поровну, получится серый цвет:

FromArgb (90, 90, 90)

Темно-серый цвет

FromArgb (220, 220, 220)

Светло-серый цвет

Вот программа, которая красит форму, рисует и заливает эллипс, как на Рис. 12.20:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim Цвет1, Цвет2 As Color

        Цвет1 = Color.FromArgb(250, 230, 252)

        Цвет2 = Color.FromArgb(220, 170, 240)

        Me.BackColor = Цвет1                                                                 'Красим форму

        Dim Перо As New Pen(Color.FromArgb(140, 120, 90), 40)

        Dim Кисть As New SolidBrush(Цвет2)

        Dim Гр As Graphics = Me.CreateGraphics

        'Рисуем и заливаем эллипс:

        Гр.DrawEllipse(Перо, 50, 30, 300, 200)

        Гр.FillEllipse(Кисть, 50, 30, 300, 200)

End Sub

Здесь цвет формы, пера и кисти выбран при помощи функции FromArgb.

Рис. 12.20



Содержание раздела