Министрество образования и науки РФ
НГТУ
по дисциплине “Базы данных”
Выполнил:
Студент группы АМ-09
Козлов М. В.
Преподаватель:
Трошина Г.В.
Цель работы: изучить средства Visual FoxPro 6.0 которые могут быть использованы для создания пользовательских классов. Получить практические навыки работы с классами.
Индивидуальное задание: Создать класс бегущей строки.
Выполнение работы:
1. Создание класса.
Создаем новый класс runingstring производный от базового класса EditBox.
Через основное меню Class->Property добавляем новые свойства для нашего класса:
Kol – целое значение. Хранит количество добавляемых пробелов к бегущей строке. Количество пробелов не должно превышать значение Width/3.
Napravlenie – булевское значение. Если .F. то направление движения вправо, иначе влево.
Textrun – строка. Здесь хранится не измененное значение строки.
Visualtext – строка. Здесь хранится измененное значение бегущей строки с добавленными пробелами, она создает видимость движения строки.
Timel – количество позиций, пройденных строкой влево.
Timer – количество позиций, пройденных строкой вправо.
Tonull – булевское значение. Хранит статус: нужно ли обнулять пройденный путь при достижении границ.
Через меню Class->Method добавляем новые методы к бегущей строке.
Run – метод, изменяющий значение visualtext. Этот метод создает видимость движения строки на экране. Также метод отвечает за изменение значений timel и timer.
LPARAMETERS cHyperLinkTarget
if txtwidth(this.textrun)>0
this.visualtext=" "+this.textrun+" "
if !this.napravlenie
this.kol=this.kol+1
this.timer=this.timer+1
if (this.kol>txtwidth(this.textrun)+28)
this.kol=this.kol-txtwidth(this.textrun)-28
if this.tonull
this.timer=0
this.timel=0
endif
endif
this.visualtext=substr(this.visualtext,this.kol,28)
this.value=this.visualtext
else
this.kol=this.kol-1
this.timel=this.timel+1
if (this.kol<0)
this.kol=this.kol+txtwidth(this.textrun)+28
if this.tonull
this.timer=0
this.timel=0
endif
endif
this.visualtext=substr(this.visualtext,this.kol,28)
this.value=this.visualtext
endif
endif
Setblue, Setred, Setwhite – методы меняют свойство BackColor(цвет фона) соответственно в синий, красный и белый цвета.
this.backcolor=rgb(0,0,255)
this.backcolor=rgb(255,0,0)
this.backcolor=rgb(255,255,255)
Settext – метод инициализирует начальное значение переменной visualtext. Берет от его из свойства textrun.
This.visualtext=This.textrun
This.kol=0
this.timer=0
this.timel=0
После создания класса создаем форму следующего вида:
Красная на рисунке – это наша бегущая строка. Она уже пробежала 56 позиций вправо и 75 позицию влево. Добавление элемента к форме нашего класса производится следующим образом. В form controls нажимаем кнопку view classes, далее кнопку add и выбираем файл с нашим классом. Затем вставляем элемент на нашу форму. Передвижение строки мы делаем по таймеру. Для этого в форму надо вставить таймер и добавить следующий код в его обработчик:
thisForm.runingstring1.run()
a=thisForm.runingstring1.timer
b=thisForm.timer1.interval
c=a*b
ThisForm.Edit2.Value=str(c)
a=thisForm.runingstring1.timel
b=thisForm.timer1.interval
c=a*b
ThisForm.Edit3.Value=str(c)
thisform.refresh
Видно, что таймер вызывает метод run бегущей строки, т.е. перемещает ее на одну позицию. Далее происходит вычисление времени, которое бежала строка влево и вправо, затем производится запись результатов в EditBox предназначенных для вывода соответствующих результатов.
Смена текста бегущей строки при нажатии на кнопку «Поменять текст бегущей строки»:
thisform.runingstring1.textrun=thisform.edit1.value
thisform.runingstring1.settext()
Смена направления:
thisform.runingstring1.napravlenie=not thisform.runingstring1.napravlenie
Установка значка обнуления:
thisform.runingstring1.tonull=not thisform.runingstring1.tonull
Вывод: В ходе выполнения лабораторной работы, я научился создавать классы производные от базовых, добавлять в них новые свойства и методы, и использовать в своем приложении.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.