Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Тема: Разработка программ, которые создают и обрабатывают графические изображения.



Практическая работа №3

Тема: Разработка программ, которые создают и обрабатывают графические изображения.

Цель: Научиться создавать и отлаживать простые программы с графическим интерфейсом пользователя в среде С ++ Builder с помощью библиотеки классов VCL.

Количество часов: 18

Оборудование: ИВМ-совместимый компьютер.

Программное обеспечение: ОС Windows, интегрированную среду программирования на языке С / С ++.

Задача: Разработать программу «Калькулятор» с графическим окном интерфейсом.

Разработать графический растровый редактор, который должен выполнять следующее:

1) Открывать и хранить графические изображения в формате bmp;

2) Реализовать инструменты рисования: «карандаш», «кисточка», «ластик», «линия», «прямоугольник», «выбор цвета» и «круг»;

3) Иметь палитру цветов для инструментов;

4) Реализовать функцию очистки рисунка;

5) Содержать главное меню и окно «О программе»

Содержание отчета:

1.Порядок выполнения работы.

2.Скрин-шоты программы.

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

4.Исходящий код программы.

Выводы.

 

Unit1.cpp

int W=1;

//Width- ширина

int SX,SY;

//StartX,StartY

char Tool='P';

//Pen-кисть,Line-линия,Circle-круг,Square-квадрат,Eraser-ластик, Brush-кисть

bool MD=0,MU=0;

//MouseDown-ЛКМ нажата,MouseUp- ЛКМ отжата

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

Form1->Color=clWhite;//Цвет холста,по умолчанию - белый

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,

int X, int Y)

{

//Установка начальной точки

MD=true;

MU=false;

Canvas->MoveTo(X,Y);

SX=X;

SY=Y;

//Установка выбранного цвета и ширины

this->Canvas->Pen->Color=CColorGrid1->ForegroundColor;

this->Canvas->Pen->Width=W;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)

{

if(MD==true)

{

if(Tool=='P')

{

Canvas->Pen->Width=1;

Canvas->LineTo(X,Y);

}

if(Tool=='B')//Если выбрана кисть рисовать выбранным цветом и шириной

Canvas->LineTo(X,Y);

if(Tool=='E')//Если выбран ластик рисовать белым цветом и шириной в 10 пикселей

{

Canvas->Pen->Color=RGB(255,255,255);

Canvas->Pen->Width=10;

Canvas->LineTo(X,Y);

}

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,

int X, int Y)

{

MU=true;

MD=false;

switch(Tool)

{

case 'L'://Линия

Canvas->LineTo(X,Y);

break;

case 'C'://Круг

Canvas->Ellipse(SX,SY,X,Y);

break;

case 'S'://прямоугольник

Canvas->Rectangle(SX,SY,X,Y);

break;

}

}

//---------------------------------------------------------------------------

 



 

//Если нажата кнопка выбрать соотвецтвующий инструмент

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Tool='B';

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Tool='L';

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Tool='C';

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Tool='S';

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Tool='E';

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button10Click(TObject *Sender)

{

Tool='P';

}

//---------------------------------------------------------------------------

//Кнопки регулирования ширины

void __fastcall TForm1::Button6Click(TObject *Sender)

{

W--;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button9Click(TObject *Sender)

{

W++;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N7Click(TObject *Sender)

{

//Очистка холста

//Если включенна прозрачность,выключить её,нарисовать на весь холст белый прямоугольник

//и обратно включить прозрачность

if(Canvas->Brush->Style==bsClear)

{

Canvas->Brush->Style=bsSolid;

Canvas->FillRect(Rect(0,0,Form1->ClientWidth,Form1->ClientHeight));

Canvas->Brush->Style=bsClear;

}

//Иначе просто нарисовать белый прямоугольник

else

Canvas->FillRect(Rect(0,0,Form1->ClientWidth,Form1->ClientHeight));

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N2Click(TObject *Sender)

{

//Загрузка картинки

Graphics::TBitmap *BMP=new Graphics::TBitmap;

if(OpenDialog1->Execute())

{

BMP->LoadFromFile(OpenDialog1->FileName);

Canvas->Draw(120,0,BMP);

delete BMP;

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N5Click(TObject *Sender)

{

//Завершение программмы

Application->Terminate();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N3Click(TObject *Sender)

{

//Сохранение картинки

Graphics::TBitmap *BMP=new Graphics::TBitmap;

if(SaveDialog1->Execute())

{

BMP->SaveToFile(SaveDialog1->FileName);

delete BMP;

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button7Click(TObject *Sender)

{

//Включить прозрачность

Canvas->Brush->Style=bsClear;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button8Click(TObject *Sender)

{

//Выключить прозрачность

Canvas->Brush->Style=bsSolid;

}

 

 

//---------------------------------------------------------------------------

void __fastcall TForm1::N9Click(TObject *Sender)

{

ShowMessage("Программа созданна студентами группы РПЗ-xx\xx xxxxxxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxxxx");

}

//---------------------------------------------------------------------------

 

Вывод: Научилась создавать и отлаживать простые программы с графическим интерфейсом пользователя в среде С ++ Builder с помощью библиотеки классов VCL.


Дата добавления: 2015-09-29; просмотров: 24 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Настоящий трудовой договор (далее договор) заключен между Работодателем: Акционерным Обществом Совместное Казахско-Турецкое предприятие «Отель Астана», свидетельство о государственной | №4 С.Сейфуллин атындағы орта мектеп

mybiblioteka.su - 2015-2024 год. (0.014 сек.)