Изучение средств Visual FoxPro 6.0 для создания пользовательских классов. Создание класса бегущей строки

Страницы работы

Содержание работы

Министрество образования и науки   РФ

НГТУ

Лабораторная работа №7

по дисциплине “Базы данных”

Вариант 2.

Выполнил:

Студент группы АМ-09

Козлов М. В.

Преподаватель:

Трошина Г.В.

Новосибирск  2004

Цель работы: изучить средства 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

Вывод: В ходе выполнения лабораторной работы, я научился создавать классы производные от базовых, добавлять в них новые свойства и методы, и использовать в своем приложении.

Похожие материалы

Информация о работе

Предмет:
Базы данных
Тип:
Отчеты по лабораторным работам
Размер файла:
46 Kb
Скачали:
0