Графические возможности стандартной библиотеки VCL

ОТЧЁТ

по лабораторной работе № 1.

Тема: Графические возможности стандартной библиотеки VCL

Цель: Изучить графические возможности стандартной библиотеки визуальных компонентов VCL, функций и процедур модуля Graphics. Научиться работать с отдельными точками растра. Освоить рисование сплошных объектов.

Задание: Создать программу для закрашивания рисунка квадратами 20х20 пикселей с возможностью задания цвета из палитры цветов. 



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



Практическая часть.

1.1. Размещаю на форме 3 компонента Button, 1 компонент типа ColorDialog, 1 компонент StatusBar и 2 компонента Image. Задаю нужные свойства компонентам и добавляю свойству Picture компонента Image рисунок.

	

Рис 1. Добавление рисунка.









		

	

	

	

	

	1.2. В компонент StatusBar разбиваю панель на две части. 

	

Рис 2. Разбиение панели на две части





Рис 3. Приложение на этапе проектирования.

	1.3. После настройки компонентов и самого приложения получаю работающее приложение. 



Рис 4. Работающее приложение.



Листинг программы.

Unit1.h

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

#ifndef Unit1H

#define Unit1H

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

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ExtCtrls.hpp>

#include <jpeg.hpp>

#include <ComCtrls.hpp>

#include <Dialogs.hpp>

#include <Graphics.hpp>

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

class TForm1 : public TForm

{

__published:	// IDE-managed Components

        TButton *Button1;

        TButton *Button2;

        TButton *Button3;

        TStatusBar *StatusBar1;

        TImage *Image1;

        TImage *Image2;

        TColorDialog *ColorDialog1;

        TLabel *Label1;

        TLabel *Label2;

        void __fastcall Button3Click(TObject *Sender);

        void __fastcall Button1Click(TObject *Sender);

        void __fastcall Button2Click(TObject *Sender);

        void __fastcall Image1MouseMove(TObject *Sender, TShiftState Shift,

          int X, int Y);

        void __fastcall Image1MouseDown(TObject *Sender,

          TMouseButton Button, TShiftState Shift, int X, int Y);

private:	// User declarations

public:		// User declarations

        __fastcall TForm1(TComponent* Owner);

};

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

extern PACKAGE TForm1 *Form1;

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

#endif



Unit1.cpp

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

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

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

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Form1->Close();        

}

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



void __fastcall TForm1::Button1Click(TObject *Sender)

{

ColorDialog1->Color=Image1->Canvas->Pen->Color;

if(ColorDialog1->Execute()) {

Image1->Canvas->Pen->Color=ColorDialog1->Color;//цвет пера

Image1->Canvas->Brush->Color=ColorDialog1->Color;//цвет кисти

StatusBar1->Panels->Items[1]->Text=(AnsiString)ColorDialog1->Color;

   }

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{

{Image1->Picture->Assign(Image2->Picture);}

}

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

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,

      int X, int Y)

{

StatusBar1->Panels->Items[0]->Text=(AnsiString)X+":"+(AnsiString)Y;        

}

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

void __fastcall TForm1::Image1MouseDown(TObject *Sender,

      TMouseButton Button, TShiftState Shift, int X, int Y)

{

TRect Rct;

Rct.Left=X-10;

Rct.Top=Y-10;

Rct.Right=X+10;

Rct.Bottom=Y+10;

Image1->Canvas->Rectangle(Rct);

Image1->Canvas->FillRect(Rct);

}

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