1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//fond blanc de Timage
Image1->Canvas->Brush->Color=clWhite;
Image1->Canvas->FillRect(Image1->Canvas->ClipRect);
}
//---------------------------------------------------------------------------
//fonction de dessin de rectangle
void __fastcall DessinerRectangle(TCanvas * Canvas,int top, int left,int height,int width,TColor col_interior,TColor col_border)
{
if(Canvas==NULL) return;
TColor SaveBrushColor =Canvas->Brush->Color;
TColor SavePenColor = Canvas->Pen->Color;
Canvas->Brush->Color= col_interior;
Canvas->Pen->Color = col_border;
Canvas->Rectangle(left,top,left+width,top+height);
Canvas->Brush->Color=SaveBrushColor;
Canvas->Pen->Color = SavePenColor;
}
//fonction desin de rectangle temporaire
void __fastcall DessinerRectangleVide(TCanvas * Canvas,int top, int left,int height,int width,TColor col_border)
{
if(Canvas==NULL) return;
TColor SavePenColor = Canvas->Pen->Color;
TBrushStyle SaveStyle = Canvas->Brush->Style;
Canvas->Brush->Style = bsClear;
Canvas->Pen->Color = col_border;
Canvas->Rectangle(left,top,left+width,top+height);
Canvas->Pen->Color = SavePenColor;
Canvas->Brush->Style =SaveStyle;
}
//evenement OnMouseDown de TPaintbox
void __fastcall TForm1::PaintBox1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
appuye=true; // le click est maintenu
}
//---------------------------------------------------------------------------
//evenement OnMouseUp de TPaintbox
void __fastcall TForm1::PaintBox1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
appuye=false; // le click est relaché
if(SpeedBtnRect->Down){
// alors on dessine sur l'Image
DessinerRectangle(Image1->Canvas,Y,X,50,50,clRed,clYellow);
}
}
//---------------------------------------------------------------------------
//evenement OnMouseMove de TPaintbox
void __fastcall TForm1::PaintBox1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
if(appuye){ // si le click est maintenu on efface le dernier rectangle temporaire
PaintBox1->Repaint();
}
if(SpeedBtnRect->Down && appuye){ //si click maintenu et bouton rectangle enfoncé
//on dessine le rectangle temporaire
DessinerRectangleVide(PaintBox2->Canvas,Y,X,50,50,clBlack);
}
}
//--------------------------------------------------------------------------- |
Partager