Применение отчетов, сформированных СУБД Access — КиберПедия 

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Применение отчетов, сформированных СУБД Access

2022-10-29 67
Применение отчетов, сформированных СУБД Access 0.00 из 5.00 0 оценок
Заказать работу

     Для запуска таких отчетов следует воспользоваться пакетом VSRe­ports фирмы VideoSoft (http://www.videosoft.com):

1. Установите пакет VSReports и зарегистрируйте ActiveX‑ком­по­нент VsRep351. ocx (regsrv32 c:\windows\system\vsrep351.ocx).

2. Запустите программу Trans97. exe для трансляции отчета, сфор­ми­ро­ванного средствами Access, в файл типа VCR.

3. Командой Project/ Component выберите компонент vsReport вер­сии Jet 3.5 для размещения его на панели инструментов.

4. Разместите этот компонент на форме со свойствами: ReportFile­ Name =<имя vsr‑файла>, DataBaseName =<имя базы> (вместо имени базы мож­­­но указать в свойстве DatabaseObject имя существующего объекта DAO и свойство DatabaseAccess­ Mode =1‑vsrDatabaseObject), Printde­ vi­ ce =<тип устройства для вывода>, Zoom =<масштаб изображения в про­цен­тах>, PreviewPage =True (просмотр страниц). Отчет запускается методом PrintReport.

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

Вопросы для самопроверки

1. Можно ли в Data Manager создавать таблицы и базы?

2. Для чего создается базовый запрос?

3. Для чего предназначен объект Data?

4. Какое свойство должно быть установлено для любого связанного объекта управления?

5. Какие отличия существуют между обычным списком и связанным с таблицей?

6. Где должен находиться объект Data, к которому привязан объект управления?

7. Как добавить новую запись к набору записей?

8. Как удалить запись из набора?

9. Как можно изменить порядок вывода записей в таблице?

10. Какой метод используется для поиска записей в наборе записей типа “таблица”?

11. Какой метод используется для поиска записей в динамическом наборе или моментальном снимке?

12. Какой метод поиcка является более гибким и почему?

13. Что обязательно указывается в операторе запроса Select?

14. Каким образом отбираются нужные записи в запросе?

15. Какая операция в запросе сравнения позволяет сравнивать текстовое поле с образцом?

16. Каким образом в запросе задается порядок в наборе записей?

17. Какие два условия обязательны для поиска записей из нескольких таблиц?

18. Назовите два шага в запросе, требуемых для изменения набора записей после его создания.

19. Каково назначение Crystal Reports?

20. Можно ли создать отчет средствами Crystal Reports, не используя мастера (эксперта) отчетов?

21. Что представляет собой перекрестный (Cross-Tab) отчет?

22. Можно ли сформировать отчет из запроса?

Контрольные вопросы

1. Каково назначение Data Manager Pro?

2. Назовите три типа представления набора записей в Data Manager Pro.

3. Для чего предназначены индексы?

4. Для чего предназначен индекс типа Primary?

5. Что означает установка связи между двумя таблицами?

6. Для чего предназначено окно запросов SQL Statement в Data Manager Pro?

7. Может ли составная форма содержать данные двух не связанных таблиц?

8. Какие два свойства обязательны для объекта управления Data?

9. Каково назначение мастера VB Data Form Wizard?

10. Что означает свойство ReadOnly=True в объекте Data?

11. Что означает свойство Exclusive=True в объекте Data?

12. Что означает свойство RecordSetType=n в объекте Data?

13. Что означает свойство DataSource?

14. Что означает свойство DataField?

15. Каково назначение объекта DBGrid?

16. Что представляет собой объект RecordSet?

17. Для чего предназначены транзакции?

18. Где могут храниться запросы?

19. Для чего предназначена операция группировки Group By в запросе?

20. Можно ли обновлять данные запросами?

21. Можно ли создать отчет на основе существующего отчета средствами Crystal Reports?

22. Для чего нужно размещать на форме управляющий элемент Crystal Reports?

23. Какой управляющий элемент более современен и универсален ‑Data или ADO Data?

24. Включается ли окно просмотра данных в код приложения?

25. Каково назначение конструктора среды данных?

26. Можно ли связывать таблицы конструктором запросов?

27. Какое средство формирования отчетов обладает большими возмож­ностями ‑ Crystal Reports или DataReport?


Глава 10. Графические средства

Общая информация

Графические средства представлены методами и свойствами объектов и отдельными ActiveX‑элементами (объектами) MSChart (п.10.5). Существует шесть методов: Line (линия), Circle (окружности, дуги, сегменты), Pset (вывод точки), Point (x,y) (возвращение RGB-цвета точки с координатами X,Y, если точка за пределами формы, то возвращается ‑1), PaintPicture (рисование из другого объекта управления), Cls (очистка области вывода).

 Объектами графики могут быть формы, графические окна и Printer. Имя объекта предшествует имени метода. Если имя объекта не указано, то предполагается текущая активная форма.

Форма должна иметь свойство автоматической перерисовки AutoDraw =True(п. 6.1).

Перечислим свойства объекта, влияющие на изображение точек и линий: DrawMode  (вариант взаимодействия цвета границ объектов), DrawStyle  (шаблон для рисования границ), DrawWidth  (толщина линии), FillColor  (цвет заполнения объекта), FillStyle  (шаблон для заполнения объ­екта), ForeColor  (цвет границы объекта), AutoRedraw  (восстановление ри­сунка после того, как форма была свернута или заслонена другим окном).

После окончания выполнения любого графического метода автоматически запоминаются координаты последней выведенной точки (x,y) в свойствах CurrentX, CurrentY  объекта соответственно.

У всех методов имеется не обязательный параметр (типа Long), указывающий на цвет выводимой точки или линии. Обычно он задается функциями QBColor(n) или RGB(r,g,b) (п. 3.7).

Необязательный параметр Step в методе означает, что начальные координаты графического метода даются в виде смещения (относительно значений свойств CurrentX, СurrentY объекта).

10.2. Отображение точки ‑ PSet, Point

Метод <объект>.PSet [Step] (x, y), [<цвет>] выводит точку (x,y).

Метод <объект>.Point (x, y) возвращает RGB-цвет точки (x,y) или число ‑1, если точка вне объекта.

Пример. Вывести разноцветные точки при щелчке по форме.

Sub Form_Click () ‘процедура обработки щелчка по форме

Dim CX, CY, Msg, XPos, YPos ' объявление переменных

ScaleMode = 3              ‘единица измерения ‑ пиксель

DrawWidth = 5    ' размер точки ‑ 5 пикселей

ForeColor = QBColor(4) ' установка красного цвета для вывода точек

FontSize = 24            ' средний размер шрифта

CX = ScaleWidth / 2       ' определение горизонтальной середины формы

CY = ScaleHeight / 2      ' определение вертикальной середины формы

Cls                           ‘очистка

Msg = ”Счастливого Нового Года!”   ‘текст сообщения

CurrentX = CX ‑ TextWidth(Msg) / 2    ' установка горизонтальной позиции

CurrentY = CY ‑ TextHeight(Msg)       ' установка вертикальной позиции

Print Msg                         'вывод сообщения с установленной позиции  

Do                                    ‘начало цикла вывода точек

XPos = Rnd * ScaleWidth 'получить случайную горизонтальную позицию

YPos = Rnd * ScaleHeight 'получить случайную вертикальную позицию

PSet (XPos, YPos), QBColor(Rnd * 15) ‘вывод точки случайного цвета

Loop                                                      'конец тела цикла

End Sub

10.3. Отображение отрезка и прямоугольника ‑ Line

Метод <объект>.Line [Step] (x1,y1)‑[Step] (x2, y2), <цвет>[, B][F] вы­­водит отрезок с координатами (x1,y1), (x2,y2) или выводит прямо­уголь­ник с диагональю (x1,y1), (x2,y2), если указан параметр “B” (F – закра­ши­ва­ние пря­моуголь­ника).

Пример. Вывести разноцветные прямоугольники.

Private Sub Form_Click() ‘процедура обработки щелчка по форме

Dim CX, CY, F, F1, F2, I ' объявление переменных

ScaleMode = 3              ' единица измерения пиксель

CX = ScaleWidth / 2      ' определение горизонтальной середины формы

CY = ScaleHeight / 2     ' определение вертикальной середины формы

DrawWidth = 8               ' ширина линии ‑ 8 пикселей

For I = 50 To 0 Step ‑2  ‘начало цикла вывода 25 прямоугольников

  F = I / 50                  ' шаг изменения

   F1 = 1 ‑ F: F2 = 1 + F ' изменение координат

   ForeColor = QBColor(I Mod 15) ' цвет переднего плана для закраски

   Line (CX * F1, CY * F1)-(CX * F2, CY * F2),, BF ‘вывод линии

Next

End Sub

10.4. Изображение окружности, дуг и секторов ‑ Circle

Метод имеет вид: <объект>.Circle [Step](x,y),<радиус>

                           [, [<цвет>][, [<начало>][, [<конец>][, <сжатие>]]]]

x, y ‑ координаты центра;

<радиус> ‑ размер большой полуоси;

<начало>, <конец> - высвечиваемый угол в радианах. Если начальная и конечная точки числа отрицательные, то изображается сектор, а не дуга;

<сжатие> ‑ параметр сжатия: отношение вертикального радиуса к горизонтальному радиусу. По умолчанию ‑ 1 (окружность).

Пример. Вывести круговую диаграмму бюджета (рис.10.4.1).

 

                                 Рис. 10.4.1. Диаграмма

Private Sub Form_Click() ‘Процедура вывода диаграммы

Dim e(1 To 6) As Single ‘объявление массива статей дохода

pi = 3.14159                     ‘число Pi, задание величин дохода по статьям дохода

e(1) = 1000: e(2) = 400: e(3) = 325: e(4) = 375: e(5) = 200: e(6) = 100

s = 0                         ‘обнуление суммы дохода         

For I = 1 To 6: s = s + e(I): Next ‘ цикл подсчета суммы дохода

n = ‑0.00001                  ‘начальная точка сектора

For I = 1 To 6                 ‘цикл вывода секторов

F = e(I) /s                   ‘доля дохода по i-й статье дохода

r = F * 2 * pi             ‘перевод доли дохода в радианы ‑ угол сектора

k = n ‑ r                    ‘вычисление конечной точки сектора

If k < ‑2*pi Then k = ‑2*pi ‘конечная точка внутри интервала 2Pi до ‑ 2Pi

Form1.FillStyle = I      ‘i-й стиль штриховки сектора

If I = 1 Then ‘первый вырезанный сектор со смещенным центром

  Form1.Circle (2100, 1900), 1500,, n, k ‘вывод первого сектора

Else                                                     ‘вывод остальных секторов

  Form1.Circle (2000, 2000), 1500,, n, k ‘вывод сектора

End If

n = k ‘конечная точка становится начальной точкой следующего сектора

Next

End Sub

Пример. Вывести разноцветные концентрические окружности с центром посередине формы (рис.10.4.2).

             Рис. 10.4.2. Окружности

 

Private Sub Command1_Click() ‘кнопка вывода окружностей

Dim CX, CY, Radius, Limit ' объявление переменных

ScaleMode = 3               ' единица измерения ‑ пиксель

CX = ScaleWidth / 2    ' установка X-позиции центра круга посередине формы

CY = ScaleHeight / 2   ' установка Y-позиции центра круга посередине формы

If CX > CY Then Limit = CY Else Limit = CX ‘максимальный радиус круга

For Radius = 0 To Limit 'цикл вывода окружностей радиуса Radius

Circle (CX, CY), Radius, RGB(Rnd * 255, Rnd * 255, Rnd * 255) ‘вывод

Next  

End Sub

10.5. Формирование диаграмм (MSChart, ChartFX)

     Диаграмму можно сформировать с помощью мастера форм (п. 9.3) или объектов MSChart (компонент Microsoft Chart Control), ChartFx.

Рассмотрим порядок использования объекта MSChart.

Вначале нужно создать таблицу с числовыми значени­ями. Строки задают серии (числовые ряды), а колонки ‑ значения в сериях. Таблица может быть сформирована в оперативной памяти или находиться в базе данных в виде исходной таблицы или запроса

Специфичные свойства

Custom ‑ вызов окна настройки с более удобным интерфейсом. На страни­це Text задаются тексты заголовка (Title) и подножия диаграммы (Foot­note), осей X, Y, Z.

ChartType, DataSource  ‑ тип диаграммы и имя объекта управления ADO Data (Adodc) с опи­санием таблицы базы данных (п. 9.9.1).

ColumnCount, RowCount  ‑ число колонок и строк в таблице. Для базы дан­ных значения этих свойств формируются автоматически.

ShowLegend =True ‑ вывод легенды (наименований элементов серии).

Column, Row, Data   ‑ координаты и значение текущей ячейки таблицы.

     При выполнении программы щелчком мышки можно выделить отдельные колонки диаграммы (“техника”).

 

       Пример формирования диаграммы продажи продуктов, мебели и техники по кварталам с дан­ными из оперативной памяти (рис. 10.5.1). Раз­местим объект MSChart со свойством ShowLegend=True. Используя свойство Custom, зададим и другие очевидные свойства.

Рис. 10.5.1. Вид диаграммы

 

Private Sub Command1_ Click() ‘ формирование диаграммы

Dim Column As Byte, Row As Byte   ‘ объявление переменных

With Form1.MSChart1 ' начало области умолчания объекта Form1.MSChart1

If Option1 Then.chartType=VtChChartType2dBar ‘столбиковая диаграмма

If Option2 Then.chartType=VtChChartType2dPie ‘круговая диаграмма

 ‘ формирование таблицы и заполнение ее случайными числами от 3 до 13

.ColumnCount = 3:.RowCount = 4     ' число колонок (3) и строк (2) в таблице

 For Row = 1 To.RowCount                       ' цикл по строкам

       For Column = 1 To.ColumnCount  ‘ цикл по колонкам

          .Row = Row:. Column = Column ‘ координаты текущей ячейки

          .Data = Int(Rnd * 10) + 3 ‘ формирование случайного значения ячейки

       Next                                                   ‘конец цикла по колонкам

Next                                                          ‘ конец цикла по строкам

 .Column = 1:.ColumnLabel = “Продукты“ ‘ наименование колонки 1

 .Column = 2:.ColumnLabel = “Мебель“ ‘ наименование колонки 2

 .Column = 3:.ColumnLabel = “Техника“ ‘ наименование колонки 3

‘ формирование имен серий: квартал 1, квартал 2, квартал 3, квартал 4

For Row = 1 To.RowCount:.Row = Row:.RowLabel = “квартал “ & Row: Next End With                            ' конец области умолчания имени Form1.MSChart1

End Sub

     Пример построения диаграммы продажи товаров (рис. 10.5.1) с дан­ны­ми из базы. Изменим предыдущий пример. Создадим базу из одной таб­ли­цы. В каждой строке таблицы данные о продаже одного товара. В пер­вом поле Nt раз­мес­тим наименование товара, а в следующих четырех по­лях ‑ зна­че­ния сто­имос­ти про­­данных товаров по кварталам. Ко­лон­ки/ст­ро­ки таблицы базы будут строками (сериями)/колонками таблицы диаг­рам­мы. До­ба­вим на форму объект Data и че­рез его свойства DataBaseName, Re­cordSource свяжем его с базой и та­б­ли­цей. Скроем объект MSChart1 (Visible=False) и составим процедуру:

Private Sub Command1_Click() ‘ формирование диаграммы

Dim Column As Byte, Row As Byte ‘ объявление переменных

With Form1.MSChart1    ' начало области умолчания объекта Form1.MSChart1

If Option1 Then.chartType=VtChChartType2dBar ‘столбиковая диаграмма

If Option2 Then.chartType=VtChChartType2dPie ‘круговая диаграмма

Data1.Recordset.MoveLast                ‘ переход на последнюю строку таблицы

 .ColumnCount = Data1.Recordset.RecordCount ‘ число строк в таблице

 .RowCount = 4                                                        ‘ число серий (четыре квартала)

 Data1.Recordset.MoveFirst                        ‘ переход на первую строку таблицы

For Column = 1 To.ColumnCount          ‘ цикл по колонкам (товарам)

.Column = Column                                 ‘ установка номера текущей колонки

For Row = 1 To.RowCount                  ‘ цикл по строкам (кварталам)

   .Row = Row                                       ‘ установка номера текущей строки

       ‘ формирование значения ячейки таблицы из поля таблицы базы

   .Data=IIf(IsNull(Data1.Recordset.Fields(Row)),0, Data1.Recordset.Fields(Row))

Next                                                      ‘ конец цикла по строкам (кварталам)

.ColumnLabel = Data1.Recordset.Fields(“nt“) ‘ имя колонки из поля NT

Data1.Recordset.MoveNext ‘ переход к следующей строке (товару) таблицы

Next ‘ конец цикла по колонкам (товарам)

‘ формирование имен серий: квартал 1, квартал 2, квартал 3, квартал 4

For Row = 1 To.RowCount:.Row = Row:.RowLabel = “квартал “ & Row: Next

 End With                             ' конец области умолчания имени Form1.MSChart1

End Sub

Объект Char tFX  (компонент ChartFX 2.0 OLE Custom Control) имеет ряд отличий от объекта MSChart. Объект не может работать непос­ред­­ствен­но с базой данных.

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

Вопросы для самопроверки

1. Какое свойство позволяет изменить тип линии?

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

3. В чем состоит отличие в задании параметров при рисовании дуг и секторов?

Контрольные вопросы

1. Какой метод используется для рисования кривых?

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


Глава 11. Работа c мышью

События и методы

     Рассмотрим основные события, связанные с мышью. В большинстве процедур координаты текущего положение указателя мышки задаются па­ра­метрами X и Y. Имя объекта, к которому привязано событие, в описании синтаксиса заголовка процедуры обобщенно названо Target.

     Событие DragDrop  наступает при сбрасывании перемещаемого мышкой объекта. Процедура обработки этого события имеет вид:

Private Sub Target_DragDrop(Source As Control, X As Single, Y As Single)

Параметр Source  содержит имя сбрасываемого объекта.

     Событие DragOver  наступает при перемещении объекта над другим объектом. Процедура обработки этого события имеет вид:

Private Sub Target_DragOver(Source As Control, X As Single, Y As Single, _

                                              State As Integer)

Source ‑ имя перемещаемого объекта, State ‑ состояние перемещаемого объекта по отношению к приемнику события: объект входит в границы приемника (0), покидает его границы (1), вне границы (2).

     Событие MouseDown  наступает при нажатии кнопки мыши в течение всего времени, пока она нажата. Процедура имеет вид:

Private Sub Target_MouseDown(Button As Integer, _

 Shift As Integer, X As Single, Y As Single)

Button ‑ указывает на комбинацию нажатых кнопок мыши в виде суммы цифр: 1 (левая кнопка), 2 (правая кнопка) и 4 (средняя).

Shift ‑ указывает на комбинацию нажатых клавиш Shift, Ctrl и Alt в виде суммы цифр: 1 (Shift), 2 (Ctrl) и 4 (Alt).

     События MouseMove, MouseUp  наступают при перемещении мыши над объектом или при отпускании кнопки мыши над объектом соответ­ствен­но. Их парамет­ры совпадают с параметрами MouseDown.

Перенос объектов

 

     Пример переноса рисунка Флага России (рис. 11.2.1).

                       Рис. 11.2.1. Перенос рисунка Флага России

         

Разместим соответствующие объекты на форме. Для рисунка (объект Image1) зададим свойства: Strerh=True, DragMode=1-Automatic, Tag=”Флаг России”, Picture=VB6\Graphics\Icons\Flags\FlgRus. Для текстового поля Text1 укажем свойства: Alligement=2-Center, Text=””, Multiline=True.

     Напишем следующие процедуры обработки событий.

Private Sub Command1_Click() ‘обработка кнопки “Выход ”

End ‘выход из программы

End Sub

Private Sub Command1_DragOver(Source As Control, X As Single, _

Y As Single, State As Integer) ‘перенос флага над кнопкой выхода

Text1.Text = ”Переносим ” + Source.Tag + _

”через кнопку выхода. Параметр State = ” & State ‘вывод сообщения

End Sub

Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)

‘размещение флага на новом месте

Text1.Text = ””   ‘очистка поля Text1

Source.Move X, Y ‘перенос флага на новое место

End Sub

Private Sub Form_DragOver(Source As Control, X As Single, _

Y As Single, State As Integer) ‘перенос флага над формой

Text1.Text = ”Переносим ” + Source.Tag + ” Параметр State = ” & State

End Sub

Изменение размеров объектов

     Составим универсальную процедуру ChangeSize, которая исполь­зует­ся для изменения размеров объектов. Разместим ее в модуле (п. 7.1). Зацепив объект в фокусе за его край или угол мышкой, можно изменить его размеры при выполнении приложения.

     Текст процедуры ChangeSize

Public Sub ChangeSize(Source As Control, Button As Integer, _

                                   Shift As Integer, X As Single, Y As Single)

‘Source - имя изменяемого объекта. Остальные параметры аналогичны ‘одноимен­ным параметрам процедуры обработки события MouseDown.

Static TypeChange As String              ‘тип изменения размера объекта Source

If Screen.ActiveControl.Name<>Source.Name Then Exit Sub ‘нет фокуса

If Button = 0 Then                                ‘мышка не нажата

TypeChange = ““                               ‘очистка переменной

Screen.ActiveForm.MousePointer = 0 ‘указатель мышки в виде стрелочки

If Y + 15 = (Source.Top) And _

     (Source.Left <= X + 15) And (X <= Source.Left + Source.Width) Then _

     TypeChange = “Вверх“                                  ‘изменение размера вверх

If X = (Source.Left + Source.Width) And _

     (Source.Top <= Y + 15) And (Y <= Source.Top + Source.Height) Then _

     TypeChange = TypeChange + “Вправо“        ‘изменение размера вправо

If Y = (Source.Top + Source.Height) And _

     (Source.Left <= X + 15) And (X <= Source.Left + Source.Width) Then _

     TypeChange = TypeChange + “Вниз“            ‘изменение размера вниз

If X + 15 = Source.Left And _

     (Source.Top <= Y + 15) And (Y <= Source.Top + Source.Height) Then _

     TypeChange = TypeChange + “Влево“          ‘изменение размера влево

If TypeChange = “Вниз“ Or TypeChange = “Вверх“ Then

Screen.ActiveForm.MousePointer = 7                 ‘указатель мышки в виде ↕

ElseIf TypeChange = “Влево“ Or TypeChange = “Вправо“ Then

Screen.ActiveForm.MousePointer = 9                 ‘указатель мышки в виде ↔

ElseIf TypeChange = “ВверхВлево“ Or TypeChange = “ВправоВниз“ Then

Screen.ActiveForm.MousePointer = 8                   ‘указатель мышки в виде \

ElseIf TypeChange = “ВверхВправо“ Or TypeChange = “ВнизВлево“ Then

Screen.ActiveForm.MousePointer = 6                   ‘указатель мышки в виде /

End If

End If

If Button = 1 And InStr(TypeChange, “Вверх“) And Source.Height + _

Source.Top - Y > 0 Then

Source.Height=Source.Height+Source.Top-Y:Source.Top=Y ‘новые размеры

End If

If Button = 1 And InStr(TypeChange, “Вправо“) And X - Source.Left > 0 Then

Source.Width = X - Source.Left                                     ‘новая ширина объекта

End If

If Button = 1 And InStr(TypeChange, “Вниз“) And Y - Source.Top > 0 Then

Source.Height = Y - Source.Top                                    ‘новая высота объекта

End If

If Button = 1 And InStr(TypeChange, “Влево“) And Source.Width + _  

Source.Left - X Then

Source.Source.Left=X ‘новые размеры

End If

End Sub

     Эта процедура вызывается из процедуры обработки события MouseMove для формы. В процедурах обработки событий MouseMove для изменяемых объектов следует указать команду:

Screen.ActiveForm.MousePointer=0 ‘указателя мышки в виде стрелочки

     Пример применения процедуры ChangeSize.

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _

X As Single, Y As Single) ‘процедура обработки перемещения мышки

Module1.ChangeSize Picture1,Button,Shift,X,Y ‘изменение объекта Picture1

Module1.ChangeSize Text1, Button, Shift, X, Y ‘изменение объекта Text1

End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, _

X As Single, Y As Single)

Screen.ActiveForm.MousePointer=0 ‘указателя мышки в виде стрелочки

End Sub

Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, _

X As Single, Y As Single)

Screen.ActiveForm.MousePointer=0 ‘указателя мышки в виде стрелочки

End Sub

Рисование

Составим программу для рисования мышкой при нажатой ле­вой кнопке мышки на форме Form2 (Экран художника) (рис. 11.4.1). Управ­ле­ние рисованием задается на форме Form1 (Управление рисова­ни­ем). Сти­ра­ние линии ри­сун­ка произво­дит­ся рисованием линии цветом фона второй формы при нажатой правой кнопке мыши

Цвет карандаша или экрана для рисования устанавливается щелчком мышки по текстовому полю Text1 (свойство Text=””), которое находится правее текста “Цвет”. Переключатели Option1 (Value=True) и Option2 устанав­лива­ют режим настройки цвета карандаша или второй формы соот­ветствен­но. Установка цвета осуществляется диалогом цветовой настрой­ки (п. 8.4.4) (кнопка Диалог) или интенсивностью по трем его ком­­по­нентам: красного, зеленого и сине­го цветов. Интенсивность задается числом от 0 до 255. Ин­тен­сивность красного цвета задается гори­зонталь­ной полосой прокрутки HScroll1 (п. 6.13) со свой­ствами: Min=0, Max=255, LargeChange=20, SmallChange=4. Интенсивность зеленого цвета задается ползунком Slider1 (п. 6.14) со свойствами: Min=0, Max=255, Large­Chan­ge=20, SmallChange=4, BorderStyle=0 (без рамки), Orientation=0 (гори­зон­тальная), TickStyle=0 (шкала под ползунком), TickFrequency=20 (размер одного деления шкалы). Интенсивность синего цвета задается значением текстового поля Text2 (Text=””). Для ввода значения в это поле может использоваться кнопка-счетчик UpDown1 (п. 6. 18) со свойствами: Min=0, Max=255, Increment=4, Auto­Bud­dy=True, SyncBuddy=True, BuddyCon­trol=Text2, BuddyProper­ty=Text. Ширина выводимой линии задается значением текстового поля Text3 (Text=1). Для ввода значения в это поле может использоваться кноп­ка-счет­чик UpDown2 (п. 6.1) со свойствами: Min=1, Max=255, Incre­ment=1, Auto­Bud­dy=True, SyncBuddy=True, Buddy­Control=Text3, Buddy­Proper­ty=Text. Разместим объект CommonDialog (п.8.4.4) и семь  кнопок: Отк­рыть  (загрузка существующего рисунка (п. 8.4.2)), Сохранить (сох­ра­не­ние ри­сун­ка в файле (п. 8.4.2)), Очистить (очистить поле для рисования), Выход (закон­чить выполнение прог­рам­мы), Помощь (вывод справочной ин­формации), Диалог (цветовая настройка), Экран (вывод формы Form2 для рисования).

 

                           Рис. 11.4.1. Форма для рисования


Поделиться с друзьями:

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.189 с.