Свойства компонента TreeViewl
Items->Count — счётчик количества добавленных в дерево узлов.
Selected ‑ указывает, выделен ли узел пользователем, возвращает 1, если узел выделен;
Readonly ‑ запрет на редактирование отображаемых данных в дереве.
ShowButtons, ShowLines, ShowRoot ‑ позволяют отображать или убирать из дерева кнопки, позволяющие раскрыть узел, линии, связывающие узлы, и корневой узел.
SortType - позволяет автоматически сортировать ветви и узлы дерева. По умолчанию это свойство равно stNone, что означает, что дерево не сортируется. Если установить SortType равным stText, то узлы будут автоматически сортироваться.
AbsoluteIndex –абсолютный индекс (сквозная нумерация, начиная с нуля) выделенного пользователем узла.
ShowButtons определяет показывать или нет кнопку «+»
ShowLines показывает линии дерева
ShowRoot отвечают за изображение линий связи с корневым элементом.
SortType позволяет автоматически сортировать ветви и узлы дерева. stText - узлы автоматически сортируются по алфавиту stData - сортировка по связанным с узлами объектам Data stBoth - сортировка одновременно по тексту и объектам Data Count — число узлов, управляемых данным, т.е. дочерних узлов, их дочерних узлов и т.п. Если значение Count узла равно нулю, то он является листом дерева.
Indent показывает число раскрываемых потомков. или нажатием кнопки с многоточием около свойства Items в окне Инспектора Объектов. Здесь кнопка New Item позволяет добавить в дерево новый узел, New Subltem позволяет добавить в дерево дочерний узел. Если нажать на Delete, можно удалить выделенный узел дерева. Кнопка Load позволяет загрузить структуру дерева из файла — обычный текстовый файл. Уровни узлов обозначаются отступами.
sele = TreeView1->Selected->AbsoluteIndex ; //переменной sele присвоили номер (абсолютный индекс) выделенного узла
Text - текст выделенного узла определяется этим свойством: например,
TreeView1->Items->Item[1]->Text
Parent– индекс родительского узла по отношению к выделенному:
TreeView1->Selected->Parent
Outlinel->Items[Outlinel->SelectedItem]->Text
Тот же самый текст даст и выражение
Outlinel->Lines->Strings[Outlinel->SelectedItem - 1]
При выделении пользователем нового узла происходят события OnChanging (перед изменением выделения) и OnChanged (после выделения). В обработчик события OnChanging передаются параметры : TTreeNode *Node — узел, который выделен в данный момент, и bool &AllowChange — разрешение на перенос выделения. Если в обработчике задать AllowChange = false, то переключение выделения не произойдет.
В обработчик события OnChanged передается только параметр TTreeNode *Node — выделенный узел. В этом обработчике можно предусмотреть действия, которые должны производится при выделении узла.
Загрузка структуры TreeView из текстового файла (.txt)
TreeView->LoadFromFile (“ИмяФайла”);
Номер выбранного узла Node:
NodeNumber=TreeView->Selected->AbsoluteIndex;
Запись в файл структуры дерева
TreeView->SaveToFile (“ИмяФайла”);
Задание
1. Создайте приложение с компонентом TreeView и кнопкой;
2. Для компонента TreeView в окне редактора узлов дерева создайте дерево, показанное на рисунке 1;
3. Кнопку запрограммируйте таким образом, чтобы дерево было достроено, как показано на рисунке 3;
4. При выборе на дереве узла, должно появляться окно сообщения с номером выбранного узла.
Контрольные вопросы
1. Для чего служит компонент TreeView?
2. Какое свойство содержит информацию об узлах дерева?
3. Через какое свойство осуществляется доступ к информации об отдельных узлах?
4. Каким образом можно создать дерево в окне редактора узлов дерева?
5. Сойства, позволяющие вставить в дерево новые узлы?
6. С помощью каких методов можно удалить узлы дерева?
7. Как определить количество узлов дерева?
8. Какие свойства позволяют отображать или убирать из дерева кнопки, позволяющие раскрыть узел, линии, связывающие узлы, и корневой узел?
9. С помощью какого свойства можно автоматически сортировать ветви и узлы дерева?
10. Что передается в обработчик события OnChanged?
11. Какие событи происходят при выделении пользователем нового узла?
Практическая работа №21
Тема: «Размещение изображений на форме».
Цель работы: Научиться создавать графические рисунки и мультимедиа.
Время выполнения: подготовка – 5 мин; выполнение – 165 мин.; проверка – 10 мин; всего – 180 мин.
Теоретические сведения
Компонент TImage
Компонент TImage предназначен для вывода в форму графического рисунка и создания различных анимационных эффектов.
Он поддерживает многочисленные форматы графических файлов, включая .bmp, .ico, .emf,.jpgи др.
Программист может присвоить какой-либо рисунок компоненту TImage как при разработке в среде C++ Builder, так и во время выполнения. Для этого нужно присвоить свойству Picture объект типа TPicture, содержащий рисунок. Во время проектирования в свойстве Picture можно открыть редактор изображений и с его помощью указать файл, содержащий рисунок. Для загрузки файла с рисунком используется метод LoadFromFile, принадлежащий объекту Picture, который, в свою очередь должен принадлежать изображению. Например, для вывода в изображении MyPicture файла рисунка myPicture.jpg во время выполнения используется следующий оператор:
MyPicture−>Picture−>LoadFromFile(″myPicture.jpg″);
Метод LoadFromFileчитает файл FileNameи загружает его в графический объект.
Если формат графического файла не зарегистрирован, или не соответствует типу графического объекта, то генерируется исключение EInvalidGraphic.
Ниже приведен список основных свойств компонента TImage.
Свойство | Описание |
AutoSize | Разрешает/запрещает изменять размеры компонента так, чтобы в них полностью загрузилось изображение. |
Canvas | Содержит канву для прорисовки изображения. |
Center | Указывает, надо ли центрировать изображение в границах компонента. Игнорируется, если AutoSize = True или если Stretch = True и изображение не является значком (ICO). |
Picture | Центральное свойство класса. Служит контейнером изображения. |
Stretch | Разрешает/запрещает изменять размер изображения так, чтобы оно целиком заполнило клиентскую область компонента. |
Задание 1
Создайте приложение «Вставка рисунка из файла», в результате работы которого левый рисунок будет отображаться на форме после ее загрузки, а правый – по щелчку на кнопке Вывести рисунок.
Рис. 3. Картинки для выполнения задания:
Ход выполнения
1. Создайте новое приложение «Вставка рисунка из файла».
2. Разместите на форме два изображения Image (вкладка Additional), две надписи (Label) и две кнопки (Button).
3. Значение свойства AutoSize для изображения установить True, чтобы размеры поля изображения автоматически изменялись, подстраивались под размеры рисунка.
4. Скопируйте графические файлы с рисунками в папку проекта, иначе придется указывать полный путь к файлу.
5. Первый рисунок загрузите в Image1 на этапе проектирования интерфейса при настройке свойства Picture объекта Image1 в инспекторе объектов.
Для этого:
- выделите элемент Image1 на форме, в окне Инспектор объектов;
- в строке Picture щелкните по кнопке с многоточием;
- в появившемся диалоговом окне загрузки изображения щелкните по кнопке Загрузить, укажите файл, содержащий рисунок.
-
6. Второй рисунок загрузить в Image2 во время выполнения приложения с помощью метода LoadFromFile объекта Image2 после щелчка на кнопке Button2 (Показать рисунок).
Для этого:
- откройте редактор кода двойным щелчком на элементе Button2
- Напишите программный код для TForm1.Button2Click.
image2−>Picture−>LoadFromFile(″pr7-2.gif″);
Проверьте работу приложения. Первая картинка должна отобразиться в поле Image1 сразу после загрузки приложения, вторая картинка – после щелчка на кнопке Показать рисунок.
Добавьте к предыдущему проекту кнопку Спрятать рисунок (Button3). Наложите ее на кнопку Button2. Сделайте невидимой на момент загрузки приложения, для этого измените свойство Visible на False.
7. Измените программный код процедуры обработки щелчка на кнопке Button2 (Показать рисунок). Программный код выполняет следующие действия:
- Делает видимой кнопку Button2;
- Загрузить рисунок в поле Image2;
- Делает невидимой кнопку Button2;
- На ее месте делает видимой кнопку Button3.
image2−>Visible=true;
image2−>Picture−>LoadFromFile(″pr7-2.gif″);
button2−>Visible=false;
button3−>Visible=true;
8. Для управления видимостью кнопок используйте свойство Visible.
Напишите программный код процедуры обработки щелчка на кнопке Button3, который:
- удаляет картинку из Image2;
- делает невидимой кнопку Button2 (Показать рисунок)
button3−>Visible=false;
button2−>Visible=true;
image2−>Visible=false;
9. Проверьте работу кнопок. После щелчка на кнопке Показать рисунок картина отобразится в поле Image2, а после щелчка на кнопке Убрать рисунок – удаляется из поля.
Задание 2
Создайте приложение, которое над рисунком, расположенным в центре формы, выполняет действия, указанные на кнопках.
Ход выполнения
1. Создайте новое приложение, сохраните его в папке Перемещение картинки.
2. Установите на форме 9 кнопок (Button) и поле Image (изображение) как показано в образце.
3. Измените свойство Name кнопок в соответствии с надписями на них: - Vverh_Vlevo, Vverch и т.д.
4. Написать программный код процедур обработки щелчков по кнопкам.
5. Напомню. Для того чтобы создать процедуру обработчик события, идущий по умолчанию, нужно выполнить двойной щелчок на элементе управления.
Примерный текст процедур обработчиков для кнопок Вверх-влево , Вверх-вправо и В центр приводится ниже:
image1−>top=10;
image1−>left=10;
void __fastcall TForm1:: VpravoClick(TObject *Sender)
image1top=10;
image1−>left=form1−>width-image1−>width -10;
void __fastcall TForm1:: VcentrClick(TObject *Sender)
Image1−>Top=(Form1−>Height-Image1−>Height/2;
Image1−>Left=(Form1−>Width-Image1−>Width)/2;
6. Программный код для остальных кнопок написать самостоятельно.
Задание 3
В лабораторной работе №18 добавьте на форму компонент Image.
При выборе на дереве данных фамилии путешественника, его фотография должна появляться на форме.
Задание 4
Разработать программное приложение в соответствии с вариантом задания.
№ | Задание к работе |
Домашний фотоальбом: фотографии, описание фотографий | |
Паспорт группы: фотография, личные данные о студенте | |
Энциклопедия о животных: фотография, краткая информация | |
Каталог компакт-дисков: обложка, список песен | |
Архитектурные памятники: фотография, история | |
Картинная галерея: фотография, описание | |
Кулинарная книга: фотография, рецепт | |
Компоненты ПЭВМ: фотография, характеристика |
На форме расположить следующие компоненты: Panel, Image, RichEdit, GroupBox, BitBtn, 3 PopupMenu, OpenDialog, OpenPictureDialog, FontDialog, ColorDialog.
PopupMenu компонента Image должно содержать пункт для вызова окна OpenPictureDialog.
PopupMenu компонента RichEdit должно содержать пункт для вызова окон OpenDialog и FontDialog.
PopupMenu основной формы должно содержать пункты для вызова окна ColorDialog для изменения цвета формы и пункт для удаления текста и изображения.
Каждый визуальный компонент должен быть снабжен всплывающей подсказкой.
При выборе изображения с помощью компонента OpenPictureDialog в компоненте Image должно отображаться выбранное изображение. Одновременно с этим в компоненте RichEdit должна отображаться информация соответствующая выбранному изображению. И наоборот, при выборе информационного файла с помощью компонента OpenDialog в компоненте RichEdit выводится информация из выбранного файла и одновременно с этим в компонент Image загружается изображение соответствующее выбранному текстовому файлу. Кроме этого для компонента RichEdit можно изменять параметры шрифта с помощью диалогового окна FontDialog.
Компонент BitBtn служит для выхода из приложения на главную форму.
Контрольные вопросы
- Для чего предназначен компонент TImage?
- Какие графические форматы поддерживает компонент TImage?
- Какой метод компонента TImage для загрузки графических файлов?
- Перчислите основные свойства компонента TImage.
- Какое свойство надо использовать, чтобы размеры поля изображения автоматически изменялись, подстраивались под размеры рисунка?
Практическая работа №22
Тема: «Использование графических примитивов».
Цель работы: Научиться создавать графические рисунки и мультимедиа.
Время выполнения: подготовка – 5 мин; выполнение – 250 мин.; проверка – 15 мин; всего – 270 мин.
Теоретические сведения
Компонент Shape
Компонент Shape представляет собой различные геометрические фигуры, соответствующим образом заштрихованные. Основное свойство этого компонента — Shape (форма), которое может принимать значения:
stRectangle | прямоугольник | stSquare | квадрат |
stRoundRect | прямоугольник со скругленными углами | stRoundSquare | квадрат со скругленными углами |
stEllipse | эллипс | stCircle | круг |
Другое существенное свойство компонента — Brush (кисть). Это свойство является объектом типа TBrush, имеющим ряд подсвойств, в частности: цвет (Brush.Color) и стиль (Brush.Style) заливки фигуры.
Style — свойство TBrush. Свойство кисти Style определяет шаблон, которым рисует кисть Brush, если для нее не задано значение свойства Bitmap.
Возможные значения Style:
- bsSolid – сплошная заливка
- bsCross – заливка в клеточку
- bsClear – очистка
- hsDiagCross – диагональная клеточка
- bsBDiagonal – косые линии с правым наклоном
- bsHorizontal – горизонтальные линии
- bsFDiagonal - косые линии с левым наклоном
- bsVertical – вертикальные линии
Третье из специфических свойство компонента Shape — Pen (перо), определяющее стиль линий.
Задание 1
Создайте при помощи нескольких компонентов, изменяя, при необходимости их свойства, модель светофора в виде прямоугольника синего цвета. Задайте компоненту, изображающему красный фонарь, имя (свойство Name) Red, желтый фонарь – имя Yellow, зеленый фонарь – имя Green.
1. Добавьте в форму компонент Timer(вкладка System).
2. Измените свойство Nameэтого компонента на Timer.
3. Дважды щелкните по компоненту Timer, который уже расположен на форме. Откроется окно редактора кода. Курсор расположен между открывающей и закрывающей тело функции скобками.
Далее приводится текст обработчика события для компонента таймер. Введите следующий код.
if(Red −> Brush −> Color = = clRed)
{
Red −> Brush −> Color = clGray;
Yellow −> Brush −> Color = clYellow;
}
Else
{
if(Yellow −> Brush −> Color = = clYellow)
{
Yellow −> Brush −> Color = clGray;
Green −> Brush −> Color = clGreen;
}
Else
{
Green −> Brush −> Color = clGray;
Red −> Brush −> Color = clRed;
}}
4. Сохраните созданное приложение.
5. Нажмите клавишу F9, для запуска программы на выполнение.
6. После компиляции программы (выявленные компилятором ошибки в программе устраните самостоятельно) откроется окно с созданным Вами приложением. Проанализируйте работу данного приложения в соответствие с записанным ранее программным модулем.
Задание 2
Создать приложение на движение компонентов. Создание приложения «Поршень» начнем с того, что поместим на форму необходимые компоненты, так же как это показано на рис. 4.
1. Компоненты находятся во вкладках: Shape(Additional), Button(Standard), Timer(System).
Рис. 1. Пример заполнения формы приложение «Поршень»
2. Далее, при нажатии на кнопку −> «поршень» (Shape4) должен двигаться вправо, а при нажатии на кнопку <− влево. Если он достигает крайне левого (или крайне правого) положения, загорается соответствующая сигнальная лампа и «поршень» останавливается.
3. Таймер в приложении будет использоваться как элемент повторения. Поэтому зададим для Timer1свойства Interval(интервал) равный 15 и Enabled(разрешение доступа к компоненту) как false.
4. Теперь щелкните на Button1, откроется редактор кода на событии Button1Click. Нужно записать следующее:
Timer1 −> Enabled=true;//включаем таймер
Timer1 −> OnTimer=Button1Click;//задаем режим //повторений
if(Shape1 −> Brush −> Color= =clRed)
Shape1 −> Brush −> Color=clWhite;
if(Shape4 −> Left+Shape4 −> Width= =Shape3 −> Left+Shape3 −> Width)
{
Shape4 −> Left=Shape3 −> Left+Shape3 −> Width–Shape4 −> Width; //останавливаем поршень
Shape2 −> Brush −> Color=clGreen; //включаем лампу
Timer1 −> Enabled=false; //выключаем таймер
}
Else
{
Shape4 −> Left+=1; //перемещаем поршень на 1
Shape5 −> Width+=1;} //вправо
5. Теперь щелкните на Button2, откроется редактор кода на событии Button2Click. Нужно записать следующее:
Timer1 −> Enabled=true;
Timer1 −> OnTimer=Button2Click;
if(Shape2 −> Brush −> Color= =clGreen)
Shape2 −> Brush −> Color=clWhite; if(Shape4 −> Left= =Shape3 −> Left)
{
Shape4 −> Left=Shape3 −> Left;
Shape1 −> Brush −> Color=clRed;
Timer1 −> Enabled=false;
}
Else
{
Shape4 −> Left– =1; //перемещаем поршень на 1 влево
Shape5 −> Width– =1;
}
Написаны два обработчика событий, которые будут выполняться всякий раз, когда выбирается соответствующая кнопка (Button1 или Button2).
Запустите приложение на выполнение.
Задание 3
Написать приложение, которое показывает работу светофора по следующему циклическому алгоритму (в соответствии с номером варианта):
1. красный −> красный + желтый −> зеленый −> мигающий зеленый
2. красный + желтый −> желтый −> мигающий желтый −> зеленый
3. красный −>мигающий красный −>желтый+красный −> зеленый
4. красный + зеленый −> желтый −> мигающий желтый −> зеленый
5. зеленый −> мигающий красный −> желтый+красный
6. мигающий желтый −>зеленый −> мигающий зеленый −>красный
7. мигающий зеленый −> красный + желтый −> зеленый
8. желтый + зеленый −> зеленый −> мигающий красный
9. мигающий зеленый −> красный −>желтый+красный
10. мигающий зеленый −>желтый+красный −> зеленый
11. зеленый −> красный + зеленый −>желтый+красный
12. красный −> желтый+красный мигающий −> зеленый
13. красный + зеленый мигающий −> желтый + зеленый −> желтый
14. желтый+красный −> зеленый мигающий−> желтый + зеленый
15. желтый мигающий−> зеленый мигающий−>желтый+красный
Задание 4
Создать приложение «Автопогрузчик», примерный вид формы показан на рис.5. Для кнопок описать соответствующее движение:
«Вперед» «Поднять» «Переместить» «Опустить» «Назад» |
автопогрузчика с грузом до опоры
груз с подъемной платформой поднять до верха опоры
груз переместить на опору
опустить подъемную платформу
автопогрузчик без груза откатывается на исходную позицию
В процессе разработки приложения предусмотреть следующие условия работы: груз не может быть перемещен, если автопогрузчик не подведен к опоре и подъемная платформа не находится на уровне верха опоры.
Для удобства работы, возможно, осуществлять совместные действия для группы компонентов. На этапе проектирования назначают дополнительное свойство Tagотличное от нуля, но одинаковое для каждого компонента группы. Например, если необходимо перемещать группу компонентов со свойством Tag= 1 влево, то запишем следующий код:
for(inti=0; i < ComponentCount; i++) {
if(Components[i] -> Tag == 1)
((TControl *)Components[i]) -> Left +=1; }
Подъемная платформа Груз Опора
Рис.2 Пример заполнения формы приложение «Автопогрузчик»
Контрольные вопросы
- Для чего предназначен компонент Shape?
- Основные свойства компонента Shape?
- Какие подствойства имеет свойство Brush?
- Каковы значения подсвойства Style свойства Brush?
- Что определяет свойство Pen?
Практическая работа №23
Тема: «Создание рисуноков на канве».
Цель работы: Научиться создавать графические рисунки на канве.
Время выполнения: подготовка – 5 мин; выполнение – 255 мин.; проверка – 10 мин; всего – 270 мин.
Теоретические сведения
Объект Canvas – это поверхность (формы или компонента image), на которой соответствующие методы могут вычерчивать графические примитивы. Вид графических элементов определяют свойства поверхности, на которой эти элементы вычерчиваются.
Методы объекта Canvas
Метод | Описание |
TextOut (х,у,s) | Выводит строку s от точки с координатами (х, у). Шрифт определяет свойство Font поверхности (canvas), на которую выводится тест, цвет закраски области вывода текста – свойство Brush этой же поверхности |
Draw(x,y,b) | Выводит от точки с координатами (х, у) битовый образ b. Если значение свойства Transparent поверхности, на которую выполняется вывод, равно true, то точки, цвет которых совпадает с цветом левой нижней точки битового образа, не отображаются |
LineTo (x,y) | Вычерчивает линию из текущей точки в точку с указанными координатами. Вид линии определяет свойство Реn |
MoveTo(x,y) | Перемещает указатель текущей точки в точку с указанными координатами |
PolyLine (pi) | Вычерчивает ломаную линию. Координаты точек перегиба задает параметр р1 – массив структур типа TPoint. Если первый и последний элементы массива одинаковы, то будет. вычерчен замкнутый контур. Вид линии определяет свойство Реn |
Polygon (pi) | Вычерчивает и закрашивает многоугольник. Координаты углов задает параметр p1 – массив структур типа TPoint. Первый и последний элементы массива должны быть одинаковы. Вид границы определяет свойство Реп, цвет и стиль закраски внутренней области – свойство Brush |
Ellipse (x1,y1,x2,y2) | Вычерчивает эллипс, окружность или круг. Параметры x1, y1, х2 и у2 задают размер прямоугольника, в который вписывается эллипс. Вид линии определяет свойство Реn |
Arc(x1, y1,x2, y2, х3,у3,х4,у4) | Вычерчивает дугу. Параметры x1, y1, x2, у2 определяют эллипс, из которого вырезается дуга, параметры х2, у2, х3, и у4 – координаты концов дуги. Дуга вычерчивается против часовой стрелки от точки (х3, у3) к точке (х4, у4). Вид линии (границы) определяет свойство Реn, цвет и способ закраски внутренней области – свойство Brush |
Rectangle (x1, y1, х2,у2) | Вычерчивает прямоугольник. Параметры x1, y1, x2 и у2 задают координаты левого верхнего и правого нижнего углов. Вид линии определяет свойство Реп, цвет и способ закраски внутренней области – свойство Brush |
RoundRec (x1, y1, х2,у2, х3,у3) | Вычерчивает прямоугольник со скругленными углами. Параметры x1, y1, х2 и у2 задают координаты левого верхнего и правого нижнего углов, х3 и у3 – радиус скругления. Вид линии определяет свойство Реn, цвет и способ закраски внутренней области – свойство Brush |
Свойства объекта Canvas
Свойство | Описание |
Transparent | Признак использования "прозрачного" цвета при выводе битового образа методом Draw. Если значение свойства равно true, то точки, цвет которых совпадают с цветом левой нижней точки битового образа, не отображаются |
Pen | Свойство Реn представляет собой объект, свойства которого определяют цвет, толщину и стиль линий, вычерчиваемых методами вывода графических примитивов |
Brush | Свойство Brush представляет собой объект, свойства которого определяют цвет и стиль закраски областей, вычерчиваемых методами вывода графических примитивов |
Font | Свойство Font представляет собой объект, уточняющие свойства которого определяют шрифт (название, размер, цвет, способ оформления), используемый для вывода на поверхность холста текста |
Свойства объекта Реn
Свойство | Описание |
Color | Цвет линии (clBlack – черный; clMaroon – каштановый; clGreen – зеленый; clOlive – оливковый; clNavy – темно-синий; clPurple – розовый; clTeal – зелено-голубой; clGray – серый; clSilver – серебристый; clRed – красный; clLime – салатный; clBlue – синий; clFuchsia – ярко-розовый; clAqua – бирюзовый; clWhite – белый) |
Style | Стиль (вид) линии. Линия может быть: psSolid – сплошная; psDash – пунктирная (длинные штрихи); psDot – пунктирная (короткие штрихи); psDashDot – пунктирная (чередование длинного и короткого штрихов); psDashDotDot – пунктирная (чередование одного длинного и двух коротких штрихов); psClear – не отображается (используется, если не надо изображать границу, например, прямоугольника) |
Width | Толщина линии задается в пикселах. Толщина пунктирной линии не может быть больше 1 |
Свойства объекта Brush
Свойство | Определяет |
Color | Цвет закрашивания замкнутой области |
Style | Стиль (тип) заполнения области (bsSolid – сплошная заливка; bsClear – область не закрашивается; bsHorizontal – горизонтальная штриховка; bsVertical – вертикальная штриховка; bsFDiagonal – диагональная штриховка с наклоном линий вперед; bsBDiagonal – диагональная штриховка с наклоном линий назад; bsCross – горизонтально-вертикальная штриховка, в клетку; bsDiagCross – диагональная штриховка, в клетку) |
Доступ к канве любого обьекта происходит следующим образом:
имя_обьекта->Canvas->Свойство/Метод;Канва, в ее графическом представлении, это двумерный массив пикселей. Каждый элемент этого массива хранит в себе информацию о цвете. Доступ к отдельно взятому пикселю можно получить из свойства Pixels, подробнее о котором будет написана ниже.
Точка (0,0) - эта верхний левый угол канвы. Значение по x-координате возрастает слево навправо от точки (0,0), а значение по y-координате сверху вниз.
Задание 1
Создайте приложения, представленные на рисунках.
Рис.1 Приложение «Флаг РФ» | Рис.2 Приложение «Олимпийские кольца» |
Задание 2
Создайте поздравительную открытку, например с Новым годом. Добавьте к ней анимацию (мигающие шарики на ёлке, падающие снежинки и др.).
Задание 3
Создайте приложение, вид которого представлен на рис. 3.
Рис. 3 Вид приложеия
В приложении, кроме общего вида необходимо создать иллюзию движения транспорта. Машины так же, как и их цвет появляются рандомно. Машины должны двигаться по всем четырем рядам. Когда очередная машина достигает «конца» шоссе, то появляется следующая с другим цветом.
Контрольные вопросы
- Что такое объект Canvas?
- Какой метод Выводит строку s от точки с координатами (х, у)?
- Какой метод выводит от точки с координатами (х, у) битовый образ b?
- Какой метод вычерчивает линию из текущей точки в точку с указанными координатами?
- Какой метод вычерчивает и закрашивает многоугольник?
- Какой метод Вычерчивает эллипс, окружность или круг?
- Какой метод вычерчивает дугу?
- Какой метод вычерчивает прямоугольник?
- Какой метод вычерчивает прямоугольник со скругленными углами?
- Объект, свойства которого определяют цвет, толщину и стиль линий, вычерчиваемых методами вывода графических примитивов?
- Объект, свойства которого определяют цвет и стиль закраски областей, вычерчиваемых методами вывода графических примитивов?
- Объект, уточняющие свойства которого определяют шрифт (название, размер, цвет, способ оформления), используемый для вывода на поверхность холста текста?
Практическая работа №24
Тема: «Изображение графиков функций в приложениях».
Цель работы: Научиться создавать графики функций в приложениях.
Время выполнения: подготовка – 5 мин; выполнение – 165 мин.; проверка – 10 мин; всего – 180 мин.
Теоретические сведения