Программирование Visual Basic

Автор: Пользователь скрыл имя, 20 Декабря 2011 в 19:33, лабораторная работа

Краткое описание

Задание
Поместить на форму два текстовых поля и командную кнопку. Свойству Name первого поля задать значение Field1, второго — Field2. Свойству Text первого поля задать значение Иванов, другого — Петров.

Оглавление

1. Работа с текстовыми данными………………………………………………2
2. Работа с датами……………………………………………………………… 5
3. Построение треугольника из частей отрезка………………………………11
4. Изменение цвета текстового поля………………………………………….17
5. Список использованных источников информации………………………..22

Файлы: 1 файл

лаб basic.doc

— 218.50 Кб (Скачать)
  1. Изменение цвета текстового поля

    Задание

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

          Создать на форме две кнопки. Нажатие одной  запускает плавное изменение цвета фона текстового поля, нажатие другой — цвета символов. Для задания цвета фона и цвета символа использовать функцию RGB().

          Для систематических сигналов на изменение  цвета использовать объект Timer.

    Вопросы к заданию

    1. Разработать интерфейс пользователя. Привести в отчёте список объектов интерфейса и их назначение.

    Ответ: интерфейс пользователя приведен на рисунке 9

    1—кнопка; 2—текстовое поле; 3 кнопка

    Рисунок  9. − Интерфейс пользователя 
     

    1.  Для перехода цвета аргументы функции RGB() изменять в цикле с определённым шагом. В отчёте привести алгоритм перехода цвета.
 

    Ответ:

       При нажатии на клавишу устанавливаем  необходимый цвет (для текста –  белый, для фона – синий). Для этого  задаем значение функции RGB()  параметры   RGB(0,0,255) – для синего и RGB(255,255,255) для белого. Затем в цикле с шагом 5 делаем следующее:

    1. Для перехода из синего в красный добавляем в цикле в первый параметр функции RGB() 5 едеиниц, а третий уменьшаем на 5 единиц. Присваиваем свойству BackColor текстового поля текущее значение функции RGB(). Для обновления цвета нужно обновить свойства текстового поля. Это достигается метода Refresh. При каждом прохождении цикла значения функции будут изменяться и соответственно им будет изменяться цвет фона. Для плавного перехода цвета нужно добавить в цикл еще один пустой цикл для задержки, в противном случае происходящие изменения будут не заметны глазу.
    2. Для перехода из белого в зеленый нужно уменьшать первый и третий параметр на 5 единиц за каждый проход цикла. Значение этой функции присвоить свойству ForeColor текстового поля. Затем обновить свойства текстового поля. Для плавного перехода цвета нужно добавить в цикл еще один пустой цикл для задержки, в противном случае происходящие изменения будут не заметны глазу.
 
    1.  Изменить программу так, чтобы цвет при первом щелчке на кнопке менялся в одном направлении, а при следующем щелчке — в обратном. В отчёте описать сущность требуемых изменений.

    Ответ:

       Для добавления возможности изменения  цвета в противоположных направлениях необходимо добавить переменные, которые будут использоваться в виде флагов изменения цвета. При повторном нажатии на кнопку флаги должны изменять свое значение. В цикле нужно добавить условия, в которых будет проверяться значение флага. От того, какой флаг установлен будет выбираться направление изменения цвета. Если флаг имеет значении 1, то цвет меняется от синего к красном на фоне и от белого к зеленому на тексте. Если флаг имеет значение 2, то цвета изменяются в обратном направлении. 

       Листинг программы:

       Option Explicit

       Dim x, y, z, a, b, c, i, j, varFont, varTxt As Integer 
     

       Private Sub cikl2_Click()

           x = 0

           y = 0

           z = 255

           For i = 0 To 254 Step 5

              

               x = x + 5

               z = z - 5

               Text1.Refresh

               For j = 0 To 2000000

               Next j

               Text1.BackColor = RGB(x, y, z)

           Next i

       End Sub 

       Private Sub cikltxt_Click()

           a = 255

           b = 255

           c = 255

           For i = 0 To 254 Step 5

              

               a = a - 5

               c = c - 5

               Text1.Refresh

               For j = 0 To 2000000

               Next j

               Text1.ForeColor = RGB(a, b, c)

           Next i

          

       End Sub 

       Private Sub txtcol_click()

       ' устанвливаем флаг изменения цвета

           varTxt = varTxt + 1

           If varTxt > 2 Then

               varTxt = 1

           End If

           Select Case varTxt

               Case 1

                   c = 255

                   b = 255

                   a = 255

                  

               Case 2

                   c = 0

                   a = 0

                   b = 255

           End Select

       End Sub 

       Private Sub foncol_click()

       ' устанвливаем флаг изменения  цвета

           varFont = varFont + 1

           If varFont > 2 Then

               varFont = 1

           End If

           Select Case varFont

               Case 1 ' синий цвет

                   z = 255

                   x = 0

                  

               Case 2

                   z = 0 ' красный цвет

                   x = 255

           End Select

                    

       End Sub 
     
     

       Private Sub Form_Load()

           Timer1.Interval = 10   ' Set interval.

       End Sub 

       Private Sub Timer1_Timer()

            Select Case varFont

               Case 1

               If x = 255 And z = 0 Then ' останавливаем переход  цветов в крайней точке

                   x = x

                   z = z

                   Else

                       x = x + 1

                       z = z - 1

                       Text1.BackColor = RGB(x, y, z)

               End If

              

               Case 2

               If x = 0 And z = 255 Then ' останавливаем переход цветов в крайней точке

                   x = x

                   z = z

                   Else

                       x = x - 1

                       z = z + 1

                       Text1.BackColor = RGB(x, y, z)

               End If

              

           End Select

           Select Case varTxt

               Case 1

               If a = 0 And c = 0 Then ' останавливаем переход цветов в крайней точке

                   a = a

                   b = b

                   c = c

                  

                   Else

                       a = a - 1

                       c = c - 1

                       Text1.ForeColor = RGB(a, b, c)

               End If

              

               Case 2

               If a = 255 And c = 255 Then ' останавливаем переход цветов в крайней точке

                   a = a

                   b = b

                   c = c

                   Else

                       a = a + 1

                       c = c + 1

                      'b = b - 1

                       Text1.ForeColor = RGB(a, b, c)

               End If

              

           End Select

       End Sub 
     
     
     
     
     

Информация о работе Программирование Visual Basic