ТЕМА № 23. Создание пользовательского элемента управления «Бегущая строка»
Оценка 5

ТЕМА № 23. Создание пользовательского элемента управления «Бегущая строка»

Оценка 5
doc
07.05.2020
ТЕМА № 23. Создание пользовательского элемента управления «Бегущая строка»
74. ТЕМА № 23. Создание пользовательского элемента управления «Бегущая строка».doc

ТЕМА № 1. Создание пользовательского элемента управления «Бегущая строка»

Задание: разработайте элемент управления «Бегущая строка», который прокручивает заданный текст в PictureBox справа налево.

 

Ход работы

1   Создайте новый проект, выбрав в окне New Project ярлык ActiveX Control (проект пользовательского элемента управления).

 

Рис. 44. Окно пользовательского элемента управления

2   Обратите внимание, что у этого окна нет заголовка и границ (рис. 44), т. к. мы создаем не форму, а только элемент управления, который в последствии будет располагаться на форме. В появившемся окне создайте элементы управления PictureBox и Timer (рис. 44).

3   В первую очередь, измените имя элемента управления на БегущаяСтро-ка (это имя будет затем использовано при создании экземпляров элемента управления).

4   Далее необходимо запрограммировать событие Resize для нашего пользовательского элемента управления (в противном случае при размещении элемента управления на новой форме размер графического окна PictureBox будет неизменным), для этого дважды щелкните на форме, а затем из списка событий выберите Resize.

5   Это событие происходит каждый раз при изменении размеров нашего элемента управления, поэтому в него необходимо поместить следующий код, который увеличивает размер PictureBox на весь доступный размер элемента управления:

 

Private Sub UserControl_Resize()

Picture1.Top = 0

            Picture1.Left = 0

            Picture1.Width = Width

            Picture1.Height = Height

End Sub

6   Теперь, для того, чтобы убедиться в работоспособности нашего элемента управления, добавим еще один проект, создав тем самым группу проектов. Для этого в меню File выберите пункт Add Project и в появившемся окне New Project дважды щелкните по ярлыку Standart EXE.

7   На новой форме созданного EXE-проекта расположите элементы управления, как показано на Рис. 45. (Обратите внимание: если проект с пользовательским элементом управления открыт для редактирования, то на панели с инструментами его иконка недоступна. Поэтому необходимо вернуться к нему с помощью окна Project Explorer и закрыть окно.)

 

Рис. 45. Вид формы для тестирования элемента у правления БегущаяСтрока

8   Теперь необходимо заставить двигаться надпись по графическому окну. Для этого следует описать переменную, которая будет содержать текущую координату X, а в событии Timer поместить следующий код:

 

Private PosX As Integer

 

Private Sub Timer1_Timer()

            With Picture1

                        .Cls

                        .CurrentX = PosX

                        .CurrentY = 0

            End With

            Picture1.Print "Привет!"

            PosX = PosX - 20

            If PosX < 0 Then PosX = Picture1.Width

End Sub

 

9   Обратите внимание на новый метод Print элемента управления PictureBox, который выводит текстовую строку в текущей позиции графического курсора. Для этого задаются его свойства CurrentX и CurrentY.

10. Не забудьте задать для переменной PosX начальное значение. Это необходимо сделать в процедуре события UserControl_Resize:

 

PosX = Picture1.Width

 

11   Перейдите на форму и, если Вы все сделали правильно, то в элементе управления БегущаяСтрока строка будет действительно бегущей! Для большего эффекта создайте несколько (в разумных пределах!) БегущихСтрок. Запустите и отладьте приложение.

12   Для того чтобы можно было выводить любой текст на БегущейСтро-ке, добавьте в начало модуля элемента управления описание глобальной переменной Текст. Далее необходимо исправить событие Timer следующим образом:

 

Public Текст As String

Private Sub Timer1_Timer()

            With Picture1

                        .Cls

                        .CurrentX = PosX

                        .CurrentY = 0

            End With

            Picture1.Print Текст

            PosX = PosX - 20

            If PosX < 0 Then PosX = Picture1.Width

End Sub

 

13   Теперь пришло время запрограммировать событие Click для кнопки Изменить так, чтобы текст в бегущей строке изменялся:

 

Private Sub cmdИзменить_Click()

            БегущаяСтрока1.Текст = Text1

End Sub

 

Рис. 46. Бегущая строка готова!

14   Теперь необходимо добавить к нашему элементу управления хотя бы одно настоящее свойство, к примеру, свойство Size (размер текста), при изменении которого будет увеличиваться или уменьшаться размер шрифта. Для этого необходимо добавить в модуль элемента управления 2 процедуры:

 

Public Property Let Size(Settings As Integer)

            Picture1.FontSize = Settings

End Property

 

Public Property Get Size() As Integer

            Size = Picture1.FontSize

End Property

 

Первая процедура (Property Let – установка свойства) выполняется при присвоении свойству Size какого-либо значения, а вторая (Property Get –считывание свойства) выполняется всякий раз, когда из свойства считывается его значение.

15   Модифицируйте Вашу форму, добавив полосу прокрутки для изменения размера шрифта от 1 до 100 (не забудьте увеличить высоту элемента управления БегущаяСтрока).

 

Дополнительное задание

Проблема! Задайте очень длинную строку текста и Вы увидите, что при достижении левой границы текст сразу исчезает и начинает передвигаться сначала. Попробуйте исправить этот недостаток, чтобы вся строка скрывалась за левой границей БегущейСтроки.

 

Контрольные задания

Добавьте к созданному элементу управления следующее новое свойство и соответственно измените приложение для его тестирования:

1   ЦветТекста (цвет текста бегущей строки);

2   ЦветФона (цвет фона бегущей строки);

3   Шрифт (шрифт текста бегущей строки);

4   Скорость (скорость передвижения текста в бегущей строке);

5   СтопСтарт (остановка или запуск бегущей строки);

6   Направление (перемещение текста направо или налево);

7   ГрадиентФона (которое будет менять цвет фона от белого до черного и обратно).

 

Вопросы для самоконтроля

1   Что такое пользовательский элемент управления?

2   Как тестировать пользовательский элемент управления в режиме проектирования?

3   Для чего необходима процедура Property Let (Property Get)?

4   Когда выполняется процедура Property Let (Property Get)?


Скачано с www.znanio.ru

ТЕМА № 1. Создание пользовательского элемента управления «

ТЕМА № 1. Создание пользовательского элемента управления «

Поэтому необходимо вернуться к нему с помощью окна

Поэтому необходимо вернуться к нему с помощью окна

End Sub 13 Теперь пришло время запрограммировать событие

End Sub 13 Теперь пришло время запрограммировать событие

Шрифт (шрифт текста бегущей строки); 4

Шрифт (шрифт текста бегущей строки); 4
Скачать файл