//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdlib>
#pragma hdrstop
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CGRID"
#pragma link "CSPIN"
#pragma resource "*.dfm"
int startX;
int startY;
int endX;
int endY;
int tool=1;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Panel1->DoubleBuffered=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
startX=X;
startY=Y;
Image1->Canvas->MoveTo(X,Y);
Image1->Canvas->Pen->Color=CColorGrid1->ForegroundColor;
Image1->Canvas->Pen->Width=CSpinEdit1->Value;
if(CSpinEdit1->Value>20)
{Image1->Canvas->Pen->Width=20;}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if(Shift.Contains(ssLeft))
switch(tool)
{ case 1:Image1->Canvas->LineTo(X,Y);break;
case 2:Image1->Canvas->LineTo(X,Y);
Image1->Canvas->Pen->Width=20;break;
case 6:Image1->Canvas->LineTo(X,Y);
Image1->Canvas->Pen->Width=25;
Image1->Canvas->Pen->Color=clWhite;break;
case 7:for(int i=0;i<50;i++)
{ int x=rand()%20;
int y=rand()%20;
Image1->Canvas->Pixels[x+X][y+Y]=CColorGrid1->ForegroundColor;break;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
endX=X;
endY=Y;
switch(tool)
{ case 3:Image1->Canvas->MoveTo(startX,startY);
Image1->Canvas->LineTo(endX,endY);break;
case 4:Image1->Canvas->Rectangle(startX,startY,endX,endY);break;
case 5:Image1->Canvas->Ellipse(startX,startY,endX,endY);break;
}
Image1->Canvas->Brush->Style=bsClear;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
tool=1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
tool=2;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
{
tool=3;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton4Click(TObject *Sender)
{
tool=4;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton5Click(TObject *Sender)
{
tool=5;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton6Click(TObject *Sender)
{
tool=6;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton7Click(TObject *Sender)
{
tool=7;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton8Click(TObject *Sender)
{
tool=8;
}
//---------------------------------------------------------------------------