Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
2022-10-29 | 67 |
5.00
из
|
Заказать работу |
|
|
Для запуска таких отчетов следует воспользоваться пакетом VSReports фирмы 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).
|
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. Окружности
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) и подножия диаграммы (Footnote), осей X, Y, Z.
ChartType, DataSource ‑ тип диаграммы и имя объекта управления ADO Data (Adodc) с описанием таблицы базы данных (п. 9.9.1).
ColumnCount, RowCount ‑ число колонок и строк в таблице. Для базы данных значения этих свойств формируются автоматически.
ShowLegend =True ‑ вывод легенды (наименований элементов серии).
|
Column, Row, Data ‑ координаты и значение текущей ячейки таблицы.
При выполнении программы щелчком мышки можно выделить отдельные колонки диаграммы (“техника”).
Рис. 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, RecordSource свяжем его с базой и таблицей. Скроем объект 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. Перенос рисунка Флага России
Разместим соответствующие объекты на форме. Для рисунка (объект 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, LargeChange=20, SmallChange=4, BorderStyle=0 (без рамки), Orientation=0 (горизонтальная), TickStyle=0 (шкала под ползунком), TickFrequency=20 (размер одного деления шкалы). Интенсивность синего цвета задается значением текстового поля Text2 (Text=””). Для ввода значения в это поле может использоваться кнопка-счетчик UpDown1 (п. 6. 18) со свойствами: Min=0, Max=255, Increment=4, AutoBuddy=True, SyncBuddy=True, BuddyControl=Text2, BuddyProperty=Text. Ширина выводимой линии задается значением текстового поля Text3 (Text=1). Для ввода значения в это поле может использоваться кнопка-счетчик UpDown2 (п. 6.1) со свойствами: Min=1, Max=255, Increment=1, AutoBuddy=True, SyncBuddy=True, BuddyControl=Text3, BuddyProperty=Text. Разместим объект CommonDialog (п.8.4.4) и семь кнопок: Открыть (загрузка существующего рисунка (п. 8.4.2)), Сохранить (сохранение рисунка в файле (п. 8.4.2)), Очистить (очистить поле для рисования), Выход (закончить выполнение программы), Помощь (вывод справочной информации), Диалог (цветовая настройка), Экран (вывод формы Form2 для рисования).
|
|
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!