//--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- int x=0, y=0; int step = 5; bool sp = false; bool down = false; bool shtrix = false; int color = 0x0000ff; int jir = 2; bool md = false; int ip = 0; TPoint p[1000]; void __fastcall TForm1::FormPaint(TObject *Sender) { TRect aRect = Rect(0,0,ClientWidth,ClientHeight); Canvas->Brush->Color=0xffffff; Canvas->FillRect(aRect); Canvas->Pen->Width=jir; //Canvas->Pen->Mode= Canvas->Pen->Style=shtrix?psDot:psSolid; Canvas->Pen->Color=0x0000ff; Canvas->Brush->Color=0x00ff00; if(md) for(int i=0; iMoveTo(p[i].x-1,p[i].y-1); //Canvas->LineTo(p[i].x+1,p[i].y+1); Canvas->Pixels[p[i].x][p[i].y]=clRed; }else Canvas->Polygon(p, ip);//Canvas->Polyline(p,ip); Canvas->Pen->Color=0xff0000; Canvas->MoveTo(x,y); Canvas->LineTo(x,y); Canvas->Font->Color=0xff0000; Canvas->TextOutA(23,ClientHeight-30,"x= "+IntToStr(x)+" y= "+IntToStr(y)); Canvas->TextOutA(123,ClientHeight-30,"step= "+IntToStr(step)); Canvas->TextOutA(223,ClientHeight-30,"Точек: "+IntToStr(ip)); } void zz(int j, int x, int y) { for(int i=j; i<1000; i++) { p[i].x = x; p[i].y = y; } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if(((int)Key)==VK_LEFT) { x -= step; } if(((int)Key)==VK_RIGHT) { x += step; } if(((int)Key)==VK_UP) { y -= step; } if(((int)Key)==VK_DOWN) { y += step; } if(((int)Key)==VK_F3) { step--; } if(((int)Key)==VK_F4) { step++; } if(((int)Key)==32) { zz(ip++,x,y); //p[ip].x = x; //p[ip].y = y; //ip++; } if(((int)Key)==13) { md=!md; } if(((int)Key)==VK_BACK) { zz(ip--,p[ip].x,p[ip].y); } if(((int)Key)==VK_ADD) { jir++; } if(((int)Key)==VK_SUBTRACT) { jir--; if(jir<=0) jir=1; } if(((int)Key)==VK_DELETE) { zz(ip=0,0,0); } if(((int)Key)==VK_HOME) { Form1->Edit1->Visible=!Form1->Edit1->Visible; Form1->Edit1->Text="array[1.."+IntToStr(ip)+"]of PointType=\n("; for(int i=0; iEdit1->Text=Form1->Edit1->Text+ "(x:"+IntToStr(p[i].x)+"; y:"+IntToStr(p[i].y)+"),"; if (i%5 == 4) Form1->Edit1->Text=Form1->Edit1->Text+"\n"; } Form1->Edit1->Text = Form1->Edit1->Text+"\n);"; } FormPaint(this); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { down = false; zz(ip++,x=X,y=Y); FormPaint(this); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if(down) { zz(ip,x=X,y=Y); FormPaint(this); } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { down = true; }