//--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit2.h" #include "Unit1.h" #include "math.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; int j1=1, j2=1, j3=1, j4=1; //индексы для StringGrid int x,y; int intex=0; int index1=0,index2=0,index3=0,index4=0; //индексы кругов int razm1=3,razm2=1,razm3=5,razm4=2; //кол-во на размещение int mass1[45][3]; //массив координат 100 int mass2[45][3]; //массив координат 60 int mass3[45][3]; //массив координат 80 int mass4[45][3]; //массив координат 50 int id=0; //индекс перемещения int id1=0; // int i1=0; // int j=0; int j11=1; int count1[5];//для стринг грида подсчёт строчек для координат int zazor=20; int m[50][2]; int sad=0; int sobaka=1; int flag=0; int kill=0; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Image1->Canvas->Pen->Mode=pmNotXor; //Мультипликация (зачем?) за хлебом StringGrid1->Cells[0][0]="X"; StringGrid1->Cells[1][0]="Y"; StringGrid2->Cells[0][0]="X"; StringGrid2->Cells[1][0]="Y"; StringGrid3->Cells[0][0]="X"; StringGrid3->Cells[1][0]="Y"; StringGrid4->Cells[0][0]="X"; StringGrid4->Cells[1][0]="Y"; Image1->Canvas->Rectangle(100,110,100,100); //???? Image2->Canvas->Rectangle(100,110,100,100); Image3->Canvas->Rectangle(100,110,100,100); Image4->Canvas->Rectangle(100,110,100,100); Image5->Canvas->Rectangle(100,110,100,100); Image2->Canvas->Ellipse(x,y,x+100,y+100); //рисуем круги Image3->Canvas->Ellipse(x,y,x+60,y+60); Image4->Canvas->Ellipse(x,y,x+80,y+80); Image5->Canvas->Ellipse(x,y,x+50,y+50);//устанавливаем кол-во размещений Edit1->Text=razm1; Edit2->Text=razm2; Edit3->Text=razm3; Edit4->Text=razm4; x=0;y=0; } //--------------------------------------------------------------------------- void hide1(int x) { Form1->Button4->Visible=false; Form1->Button3->Visible=false; Form1->Button5->Visible=false; Form1->Button16->Visible=false; Form1->Button17->Visible=false; Form1->Button18->Visible=false; Form1->Button19->Visible=false; Form1->Button20->Visible=false; Form1->Button7->Visible=false; Form1->Button8->Visible=false; Form1->Button9->Visible=false; Form1->Button10->Visible=false; Form1->Button11->Visible=false; Form1->Button12->Visible=false; Form1->Button13->Visible=false; Form1->Button14->Visible=false; Form1->Image2->Visible=false; Form1->Image3->Visible=false; Form1->Image4->Visible=false; Form1->Image5->Visible=false; Form1->Label1->Visible=false; Form1->Label2->Visible=false; Form1->Label3->Visible=false; Form1->Label4->Visible=false; Form1->Edit1->Visible=false; Form1->Edit2->Visible=false; Form1->Edit3->Visible=false; Form1->Edit4->Visible=false; } void hide2(int x) { Form1->Button1->Visible=false; Form1->Button3->Visible=false; Form1->Button5->Visible=false; Form1->Button15->Visible=false; Form1->Button17->Visible=false; Form1->Button18->Visible=false; Form1->Button19->Visible=false; Form1->Button20->Visible=false; Form1->Button7->Visible=false; Form1->Button8->Visible=false; Form1->Button9->Visible=false; Form1->Button10->Visible=false; Form1->Button11->Visible=false; Form1->Button12->Visible=false; Form1->Button13->Visible=false; Form1->Button14->Visible=false; Form1->Image2->Visible=false; Form1->Image3->Visible=false; Form1->Image4->Visible=false; Form1->Image5->Visible=false; Form1->Label1->Visible=false; Form1->Label2->Visible=false; Form1->Label3->Visible=false; Form1->Label4->Visible=false; Form1->Edit1->Visible=false; Form1->Edit2->Visible=false; Form1->Edit3->Visible=false; Form1->Edit4->Visible=false; } void hide3(int x) { Form1->Button4->Visible=false; Form1->Button1->Visible=false; Form1->Button5->Visible=false; Form1->Button15->Visible=false; Form1->Button16->Visible=false; Form1->Button18->Visible=false; Form1->Button19->Visible=false; Form1->Button20->Visible=false; Form1->Button7->Visible=false; Form1->Button8->Visible=false; Form1->Button9->Visible=false; Form1->Button10->Visible=false; Form1->Button11->Visible=false; Form1->Button12->Visible=false; Form1->Button13->Visible=false; Form1->Button14->Visible=false; Form1->Image2->Visible=false; Form1->Image3->Visible=false; Form1->Image4->Visible=false; Form1->Image5->Visible=false; Form1->Label1->Visible=false; Form1->Label2->Visible=false; Form1->Label3->Visible=false; Form1->Label4->Visible=false; Form1->Edit1->Visible=false; Form1->Edit2->Visible=false; Form1->Edit3->Visible=false; Form1->Edit4->Visible=false; } void hide4(int x) { Form1->Button4->Visible=false; Form1->Button3->Visible=false; Form1->Button1->Visible=false; Form1->Button15->Visible=false; Form1->Button16->Visible=false; Form1->Button17->Visible=false; Form1->Button19->Visible=false; Form1->Button20->Visible=false; Form1->Button7->Visible=false; Form1->Button8->Visible=false; Form1->Button9->Visible=false; Form1->Button10->Visible=false; Form1->Button11->Visible=false; Form1->Button12->Visible=false; Form1->Button13->Visible=false; Form1->Button14->Visible=false; Form1->Image2->Visible=false; Form1->Image3->Visible=false; Form1->Image4->Visible=false; Form1->Image5->Visible=false; Form1->Label1->Visible=false; Form1->Label2->Visible=false; Form1->Label3->Visible=false; Form1->Label4->Visible=false; Form1->Edit1->Visible=false; Form1->Edit2->Visible=false; Form1->Edit3->Visible=false; Form1->Edit4->Visible=false; } void show(int x) { Form1->Button4->Visible=true; Form1->Button3->Visible=true; Form1->Button1->Visible=true; Form1->Button5->Visible=true; Form1->Button16->Visible=true; Form1->Button17->Visible=true; Form1->Button18->Visible=true; Form1->Button15->Visible=true; Form1->Button19->Visible=true; Form1->Button20->Visible=true; Form1->Button7->Visible=true; Form1->Button8->Visible=true; Form1->Button9->Visible=true; Form1->Button10->Visible=true; Form1->Button11->Visible=true; Form1->Button12->Visible=true; Form1->Button13->Visible=true; Form1->Button14->Visible=true; Form1->Image2->Visible=true; Form1->Image3->Visible=true; Form1->Image4->Visible=true; Form1->Image5->Visible=true; Form1->Label1->Visible=true; Form1->Label2->Visible=true; Form1->Label3->Visible=true; Form1->Label4->Visible=true; Form1->Edit1->Visible=true; Form1->Edit2->Visible=true; Form1->Edit3->Visible=true; Form1->Edit4->Visible=true; } void ris(int xx, int yy, int zaz,int rad) //рисуем круг+зазор { Form1->Image1->Canvas->Pen->Style=psDot; Form1->Image1->Canvas->Brush->Style=bsClear; Form1->Image1->Canvas->Ellipse(xx-zaz-rad,yy-zaz-rad,xx+zaz+rad,yy+zaz+rad); Form1->Image1->Canvas->Ellipse(x-zaz-rad,y-zaz-rad,x+zaz+rad,y+zaz+rad); Form1->Image1->Canvas->Brush->Style=bsSolid; Form1->Image1->Canvas->Pen->Style=psSolid; Form1->Image1->Canvas->Brush->Color=clSkyBlue; Form1->Image1->Canvas->Ellipse(xx-rad,yy-rad,xx+rad,yy+rad); Form1->Image1->Canvas->Ellipse(x-rad,y-rad,x+rad,y+rad); Form1->Image1->Canvas->Brush->Color=clWhite; x=xx;y=yy; } void ris_P(int k1,int k2,int zaz, int rad) { Form1->Image1->Canvas->Pen->Style=psDot; Form1->Image1->Canvas->Brush->Style=bsClear; Form1->Image1->Canvas->Ellipse(x-zaz-rad,y-zaz-rad,x+zaz+rad,y+zaz+rad); Form1->Image1->Canvas->Ellipse(k1-zaz-rad,k2-zaz-rad,k1+zaz+rad,k2+zaz+rad); Form1->Image1->Canvas->Brush->Style=bsSolid; Form1->Image1->Canvas->Pen->Style=psSolid; Form1->Image1->Canvas->Brush->Color=clSkyBlue; Form1->Image1->Canvas->Ellipse(x-rad,y-rad,x+rad,y+rad); Form1->Image1->Canvas->Ellipse(k1-rad,k2-rad,k1+rad,k2+rad); Form1->Image1->Canvas->Brush->Color=clWhite; } void clear(int k1,int k2, int zaz, int rad) { Form1->Image1->Canvas->Ellipse(k1-rad,k2-rad,k1+rad,k2+rad); Form1->Image1->Canvas->Pen->Style=psDot; Form1->Image1->Canvas->Brush->Style=bsClear; Form1->Image1->Canvas->Ellipse(k1-zaz-rad,k2-zaz-rad,k1+zaz+rad,k2+zaz+rad); Form1->Image1->Canvas->Brush->Style=bsSolid; Form1->Image1->Canvas->Pen->Style=psSolid; Form1->Image1->Canvas->Brush->Color=clSkyBlue; Form1->Image1->Canvas->Ellipse(k1-rad,k2-rad,k1+rad,k2+rad); Form1->Image1->Canvas->Brush->Color=clWhite; Form1->Image1->Canvas->Ellipse(k1-rad,k2-rad,k1+rad,k2+rad); //x=k1;y=k2; } void __fastcall TForm1::Image2Click(TObject *Sender) { if(index1==0){ razm1=StrToInt(Edit1->Text); razm1--; index1=1; if(intex!=4)intex=0; x=0;y=0; if(count1[1]!=2){razm1++;razm1++;count1[1]=razm1;StringGrid1->RowCount=count1[1];count1[1]=2;razm1--;razm1--;}//сстринг гриду присваиваем кол-во строк под размезение кругов(координаты) if(razm1<0){ShowMessage("нельзя больше!");razm1=0;index1=0;} } //если нажали то убавляем счётчик Edit1->Text=razm1; x=-50;y=-50; } //--------------------------------------------------------------------------- void __fastcall TForm1::Image3Click(TObject *Sender) { if(index2==0){ razm2=StrToInt(Edit2->Text); razm2--; index2=1; if(intex!=4)intex=1; x=0;y=0; if(count1[2]!=2){razm2++;razm2++;count1[2]=razm2;StringGrid2->RowCount=count1[2];count1[2]=2;razm2--;razm2--;}//сстринг гриду присваиваем кол-во строк под размезение кругов(координаты) if(razm2<0){ShowMessage("нельзя больше!");razm2=0;index2=0;} } //если нажали то убавляем счётчик Edit2->Text=razm2; x=-50;y=-50; } //--------------------------------------------------------------------------- void __fastcall TForm1::Image4Click(TObject *Sender) { if(index3==0){ razm3=StrToInt(Edit3->Text); razm3--; index3=1; if(intex!=4)intex=2; x=0;y=0; if(count1[3]!=2){razm3++;razm3++;count1[3]=razm3;StringGrid3->RowCount=count1[3];count1[3]=2;razm3--;razm3--;}//сстринг гриду присваиваем кол-во строк под размезение кругов(координаты) if(razm3<0){ShowMessage("нельзя больше!");razm3=0;index3=0;} } //если нажали то убавляем счётчик Edit3->Text=razm3; x=-50;y=-50; } //--------------------------------------------------------------------------- void __fastcall TForm1::Image5Click(TObject *Sender) { if(index4==0){ razm4=StrToInt(Edit4->Text); razm4--; index4=1; if(intex!=4)intex=3; x=0;y=0; if(count1[4]!=2){razm4++;razm4++;count1[4]=razm4;StringGrid4->RowCount=count1[4];count1[4]=2;razm4--;razm4--;}//сстринг гриду присваиваем кол-во строк под размезение кругов(координаты) if(razm4<0){ShowMessage("нельзя больше!");razm4=0;index4=0;} } //если нажали то убавляем счётчик Edit4->Text=razm4; x=-50;y=-50; } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if(index1==1){ //если выбран первый круг диаметр 100 if((X>0+zazor+50)&&(Y+zazor+50<553)&&(X+50+zazor<633)&&(Y>zazor+50)){ ris(X,Y,zazor,50); } } if(index2==1){ //если выбран второй круг диаметр 60 if((X>0+zazor+30)&&(Y+zazor+30<553)&&(X+30+zazor<633)&&(Y>zazor+30)){ ris(X,Y,zazor,30); } } if(index3==1){ //если выбран третий круг диаметр 80 if((X>0+zazor+40)&&(Y+zazor+40<553)&&(X+40+zazor<633)&&(Y>zazor+40)){ ris(X,Y,zazor,40); } } if(index4==1){ //если выбран четвертый круг диаметр 50 if((X>0+zazor+25)&&(Y+zazor+25<553)&&(X+25+zazor<633)&&(Y>zazor+25)){ ris(X,Y,zazor,25); } } if(id==2){ /*Image1->Canvas->Ellipse(X-50,Y-50,X+50,Y+50); Image1->Canvas->Ellipse(x-50,y-50,x+50,y+50); x=X;y=Y; */ if((X>0+zazor+50)&&(Y+zazor+50<553)&&(X+50+zazor<633)&&(Y>zazor+50)){ ris(X,Y,zazor,50); StringGrid1->Cells[0][i1]=X; StringGrid1->Cells[1][i1]=Y; id1=1; } } if(id==4){ /*Image1->Canvas->Ellipse(X-40,Y-40,X+40,Y+40); Image1->Canvas->Ellipse(x-40,y-40,x+40,y+40); x=X;y=Y; */ if((X>0+zazor+40)&&(Y+zazor+40<553)&&(X+40+zazor<633)&&(Y>zazor+40)){ ris(X,Y,zazor,40); StringGrid3->Cells[0][i1]=X; StringGrid3->Cells[1][i1]=Y; id1=1; } } if(id==6){ /*Image1->Canvas->Ellipse(X-30,Y-30,X+30,Y+30); Image1->Canvas->Ellipse(x-30,y-30,x+30,y+30); x=X;y=Y; */ if((X>0+zazor+30)&&(Y+zazor+30<553)&&(X+30+zazor<633)&&(Y>zazor+30)){ ris(X,Y,zazor,30); StringGrid2->Cells[0][i1]=X; StringGrid2->Cells[1][i1]=Y; id1=1; } } if(id==8){ /*image1->Canvas->Ellipse(X-25,Y-25,X+25,Y+25); Image1->Canvas->Ellipse(x-25,y-25,x+25,y+25); x=X;y=Y; */ if((X>0+zazor+25)&&(Y+zazor+25<553)&&(X+25+zazor<633)&&(Y>zazor+25)){ ris(X,Y,zazor,25); StringGrid4->Cells[0][i1]=X; StringGrid4->Cells[1][i1]=Y; id1=1; } } } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { AnsiString s; int i=0; if(intex==0){ intex=4; } if(intex==1){ intex=4; } if(intex==2){ intex=4; } if(intex==3){ intex=4; } if(id==1){ //проверка на область круга 1 int k1=0,k2=0,i; for(i=1;iRowCount;i++) { if(StringGrid1->Cells[0][i].IsEmpty()!=true) { k1=StrToInt(StringGrid1->Cells[0][i]); //иксы k2=StrToInt(StringGrid1->Cells[1][i]); //игрики //ShowMessage(k1); //ShowMessage(X); //if((k1X-100)&&(k2Y-100)) if((abs(k1-X)<50-10)&&(abs(k2-Y))<50-10) { id=2; i1=i; ris_P(k1,k2,zazor,50); break; } } } } if(id==3){ //проверка на область круга 3 int k1=0,k2=0,i; for(i=1;iRowCount;i++) { if(StringGrid3->Cells[0][i].IsEmpty()!=true) { k1=StrToInt(StringGrid3->Cells[0][i]); //иксы k2=StrToInt(StringGrid3->Cells[1][i]); //игрики //ShowMessage(k1); //ShowMessage(X); //if((k1X-80)&&(k2Y-80)) if((abs(k1-X)<40-10)&&(abs(k2-Y))<40-10) { id=4; i1=i; ris_P(k1,k2,zazor,40); break; } } } } if(id==5){ //проверка на область круга 2 int k1=0,k2=0,i; for(i=1;iRowCount;i++) { if(StringGrid2->Cells[0][i].IsEmpty()!=true) { k1=StrToInt(StringGrid2->Cells[0][i]); //иксы k2=StrToInt(StringGrid2->Cells[1][i]); //игрики //ShowMessage(k1); //ShowMessage(X); //if((k1X-60)&&(k2Y-60)) if((abs(k1-X)<30-10)&&(abs(k2-Y))<30-10) { id=6; i1=i; ris_P(k1,k2,zazor,30); break; } } } } if(id==7){ //проверка на область круга 4 int k1=0,k2=0,i; for(i=1;iRowCount;i++) { if(StringGrid4->Cells[0][i].IsEmpty()!=true) { k1=StrToInt(StringGrid4->Cells[0][i]); //иксы k2=StrToInt(StringGrid4->Cells[1][i]); //игрики //ShowMessage(k1); //ShowMessage(X); //if((k1X-50)&&(k2Y-50)) if((abs(k1-X)<25-10)&&(abs(k2-Y))<25-10) { id=8; i1=i; ris_P(k1,k2,zazor,25); ex:; break; } } } } if (kill==1) //первый { int k1=0,k2=0,i; for(i=1;iRowCount;i++) { if(StringGrid1->Cells[0][i].IsEmpty()!=true) { k1=StrToInt(StringGrid1->Cells[0][i]); k2=StrToInt(StringGrid1->Cells[1][i]); if(sqrt((k1-X)*(k1-X)+(k2-Y)*(k2-Y))<50){ StringGrid1->Cells[0][i]=""; StringGrid1->Cells[1][i]=""; clear(k1,k2,zazor,50); x=0; y=0; //X=0; //Y=0; //j1--; kill=0; razm1++; Edit1->Text=razm1; Button2->Click(); break; } } } } if (kill==2) //второй { int k1=0,k2=0,i; for(i=1;iRowCount;i++) { if(StringGrid2->Cells[0][i].IsEmpty()!=true) { k1=StrToInt(StringGrid2->Cells[0][i]); k2=StrToInt(StringGrid2->Cells[1][i]); if(sqrt((k1-X)*(k1-X)+(k2-Y)*(k2-Y))<30){ StringGrid2->Cells[0][i]=""; StringGrid2->Cells[1][i]=""; clear(k1,k2,zazor,30); x=0; y=0; //X=0; //Y=0; //j1--; kill=0; razm2++; Edit2->Text=razm2; Button2->Click(); break; } } } } if (kill==3) //третий { int k1=0,k2=0,i; for(i=1;iRowCount;i++) { if(StringGrid3->Cells[0][i].IsEmpty()!=true) { k1=StrToInt(StringGrid3->Cells[0][i]); k2=StrToInt(StringGrid3->Cells[1][i]); if(sqrt((k1-X)*(k1-X)+(k2-Y)*(k2-Y))<40){ StringGrid3->Cells[0][i]=""; StringGrid3->Cells[1][i]=""; clear(k1,k2,zazor,40); x=0; y=0; //X=0; //Y=0; //j1--; kill=0; razm3++; Edit3->Text=razm3; Button2->Click(); break; } } } } if (kill==4) //четвёртый { int k1=0,k2=0,i; for(i=1;iRowCount;i++) { if(StringGrid4->Cells[0][i].IsEmpty()!=true) { k1=StrToInt(StringGrid4->Cells[0][i]); k2=StrToInt(StringGrid4->Cells[1][i]); if(sqrt((k1-X)*(k1-X)+(k2-Y)*(k2-Y))<25){ StringGrid4->Cells[0][i]=""; StringGrid4->Cells[1][i]=""; clear(k1,k2,zazor,25); x=0; y=0; //X=0; //Y=0; //j1--; kill=0; razm4++; Edit4->Text=razm4; Button2->Click(); break; } } } } } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(index1==1){ index1=0; //Image1->Canvas->Ellipse(x,y,x+100,y+100); //Image1->Canvas->Ellipse(X,Y,X+100,Y+100); StringGrid1->Cells[0][j1]=X; StringGrid1->Cells[1][j1]=Y; j1++; Button2->Click(); // x=X;y=Y; } if(index2==1){ //если выбран второй круг index2=0; // x=X;y=Y; //Image1->Canvas->Ellipse(X,Y,X+60,Y+60); //Image1->Canvas->Ellipse(x,y,x+60,y+60); StringGrid2->Cells[0][j2]=X; StringGrid2->Cells[1][j2]=Y; j2++; Button2->Click(); } if(index3==1){ //если выбран третий круг index3=0; // x=X;y=Y; //Image1->Canvas->Ellipse(X,Y,X+80,Y+80); //Image1->Canvas->Ellipse(x,y,x+80,y+80); StringGrid3->Cells[0][j3]=X; StringGrid3->Cells[1][j3]=Y; j3++; Button2->Click(); } if(index4==1){ //если выбран четвертый круг index4=0; // x=X;y=Y; // Image1->Canvas->Ellipse(X,Y,X+50,Y+50); //Image1->Canvas->Ellipse(x,y,x+50,y+50); StringGrid4->Cells[0][j4]=X; StringGrid4->Cells[1][j4]=Y; j4++; Button2->Click(); } if(id1==1){ //рисуем перемещёный круг 1 id=0; i1++; id1=0; Button2->Click(); if(sobaka==1){show(id1);sobaka=0;} } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { int x,y,x1=0,y1=0,x2=0,y2=0,x3=0,y3=0; int i,ij,p1=1,p2=1,p3=1,p4=1,flag=1;; Memo1->Clear(); Memo2->Clear(); for(i=1;i<15;i++) { if(StringGrid1->Cells[0][i].IsEmpty()!=true) //(StringGrid1->Cells[1][i].IsEmpty()!=true { mass1[p1][1]=StrToInt(StringGrid1->Cells[0][i]); //записываем координаты в массив mass1[p1][2]=StrToInt(StringGrid1->Cells[1][i]); j++; p1++; } if(StringGrid2->Cells[0][i].IsEmpty()!=true) //(StringGrid1->Cells[1][i].IsEmpty()!=true { mass2[p2][1]=StrToInt(StringGrid2->Cells[0][i]); //записываем координаты в массив mass2[p2][2]=StrToInt(StringGrid2->Cells[1][i]); j++; p2++; } if(StringGrid3->Cells[0][i].IsEmpty()!=true) //(StringGrid1->Cells[1][i].IsEmpty()!=true { mass3[p3][1]=StrToInt(StringGrid3->Cells[0][i]); //записываем координаты в массив mass3[p3][2]=StrToInt(StringGrid3->Cells[1][i]); j++; p3++; } if(StringGrid4->Cells[0][i].IsEmpty()!=true) //(StringGrid1->Cells[1][i].IsEmpty()!=true { mass4[p4][1]=StrToInt(StringGrid4->Cells[0][i]); //записываем координаты в массив mass4[p4][2]=StrToInt(StringGrid4->Cells[1][i]); j++; p4++; } } for(i=1;iRowCount-1;ij++) { x1=mass2[ij][1]; //берём вторые координаты y1=mass2[ij][2]; //ShowMessage(x); //ShowMessage(x1); //ShowMessage(abs(x-x1)); //60 //ShowMessage(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))); if(x1!=0)if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))<80+zazor){ShowMessage("сломано");hide2(i);sobaka=0;goto ex;break;} else sobaka=1; //if((abs(x-x1)<75+zazor+5)&&((abs(y-y1))<75+zazor+5)){ShowMessage("сломано");goto ex;break;} x1=mass3[ij][1]; y1=mass3[ij][2]; //ShowMessage(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))); if(x1!=0)if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))<90+zazor){ShowMessage("сломано");hide3(i);;sobaka=0;goto ex;break;} else sobaka=1; //ShowMessage(abs(x-x1)); //80 //if((abs(x-x1)<85+zazor+5)&&((abs(y-y1))<85+zazor+5)){ShowMessage("сломано");goto ex;break;} x1=mass4[ij][1]; y1=mass4[ij][2]; //ShowMessage(abs(x-x1)); //50 //ShowMessage(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))); if(x1!=0)if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))<70+zazor+2){ShowMessage("сломано");hide4(i);sobaka=0;goto ex;break;} else sobaka=1; //if((abs(x-x1)<70+zazor+5)&&((abs(y-y1))<70+zazor+5)){ShowMessage("сломано");goto ex;;break;} x1=mass1[ij][1]; y1=mass1[ij][2]; //ShowMessage(x1); //ShowMessage(abs(x-x1)); //100 //ShowMessage(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))); if(x1!=0)if(abs(x-x1)!=0)if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))<100+zazor){ShowMessage("сломано");hide1(i);sobaka=0;goto ex;break;} else sobaka=1; //if(abs(x-x1)!=0)if((abs(x-x1)<100+zazor)&&((abs(y-y1))<100+zazor)){ShowMessage("сломано");goto ex;break;} } } //проверяли первый со всеми for(i=1;iLines->Add(x); Memo2->Lines->Add(y); for(ij=1;ij<=StringGrid3->RowCount-1;ij++) { x1=mass2[ij][1]; //берём вторые координаты y1=mass2[ij][2]; //ShowMessage(x); //ShowMessage(x1); //ShowMessage(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))); //60 if(x1!=0)if(abs(x-x1)!=0)if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))<60+zazor){ShowMessage("сломано");hide2(i);sobaka=0;goto ex;break;} else sobaka=1; //if(abs(x-x1)!=0)if((abs(x-x1)<55+zazor+5)&&((abs(y-y1))<55+zazor+5)){ShowMessage("сломано");goto ex;break;} x1=mass3[ij][1]; y1=mass3[ij][2]; //ShowMessage(abs(x-x1)); //80 //ShowMessage(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))); if(x1!=0)if(abs(x-x1)!=0)if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))<70+zazor){ShowMessage("сломано");hide3(i);sobaka=0;goto ex;break;} else sobaka=1; //if((abs(x-x1)<60+zazor+5)&&((abs(y-y1))<60+zazor+5)){ShowMessage("сломано");goto ex;break;} x1=mass4[ij][1]; y1=mass4[ij][2]; //ShowMessage(abs(x-x1)); //50 //ShowMessage(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))); if(x1!=0)if(abs(x-x1)!=0)if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))<50+zazor+5){ShowMessage("сломано");hide4(i);sobaka=0;goto ex;break;} else sobaka=1; //if((abs(x-x1)<50+zazor+5)&&((abs(y-y1))<50+zazor+5)){ShowMessage("сломано");goto ex;;break;} } } //проверяли второй for(i=1;iLines->Add(x); Memo2->Lines->Add(y); for(ij=1;ij<=StringGrid3->RowCount-1;ij++) { x1=mass3[ij][1]; y1=mass3[ij][2]; //ShowMessage(abs(x-x1)); //80 //ShowMessage(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))); if(x1!=0)if(abs(x-x1)!=0)if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))<80+zazor){ShowMessage("сломано");hide3(i);sobaka=0;goto ex;break;} else sobaka=1; //if(abs(x-x1)!=0)if((abs(x-x1)<75+zazor+5)&&((abs(y-y1))<75+zazor+5)){ShowMessage("сломано");goto ex;break;} x1=mass4[ij][1]; y1=mass4[ij][2]; //ShowMessage(abs(x-x1)); //50 //ShowMessage(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))); if(x1!=0)if(abs(x-x1)!=0)if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))<60+zazor+5){ShowMessage("сломано");hide4(i);sobaka=0;goto ex;break;} else sobaka=1; //if((abs(x-x1)<60+zazor+5)&&((abs(y-y1))<60+zazor+5)){ShowMessage("сломано");goto ex;;break;} } } for(i=1;iLines->Add(x); Memo2->Lines->Add(y); for(ij=1;ij<=StringGrid3->RowCount-1;ij++) { x1=mass4[ij][1]; y1=mass4[ij][2]; //ShowMessage(abs(x-x1)); //50 //ShowMessage(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))); //if(abs(x-x1)!=0)if((abs(x-x1)<45+zazor+5)&&((abs(y-y1))<45+zazor+5)){ShowMessage("сломано");goto ex;;break;} if(x1!=0)if(abs(x-x1)!=0)if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))<50+zazor){ShowMessage("сломано");hide4(i);sobaka=0;goto ex;break;} else sobaka=1; } } ex: p1=0;p2=0;p3=0;p4=0; if(sobaka==1)show(x); for(i=1;i<15;i++) { mass1[i][1]=0; //записываем координаты в массив mass1[i][2]=0; mass2[i][1]=0; //записываем координаты в массив mass2[i][2]=0; mass3[i][1]=0; //записываем координаты в массив mass3[i][2]=0; mass4[i][1]=0; //записываем координаты в массив mass4[i][2]=0; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { id=1; kill=0; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { id=3; kill=0; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { id=5; kill=0; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button5Click(TObject *Sender) { id=7; kill=0; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button6Click(TObject *Sender) { zazor=StrToInt(Edit5->Text); Button6->Visible=false; Edit5->Visible=false; Label5->Visible=false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button7Click(TObject *Sender) { razm1++; Edit1->Text=IntToStr(razm1); StringGrid1->RowCount++; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button8Click(TObject *Sender) { razm1--; if(razm1<0){ShowMessage("КУДА МЕНЬШЕ ТО?!!");razm1=0;} Edit1->Text=IntToStr(razm1); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button9Click(TObject *Sender) { razm2++; Edit2->Text=IntToStr(razm2); StringGrid2->RowCount++; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button10Click(TObject *Sender) { razm2--; if(razm2<0){ShowMessage("КУДА МЕНЬШЕ ТО?!!");razm2=0;} Edit2->Text=IntToStr(razm2); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button11Click(TObject *Sender) { razm3++; Edit3->Text=IntToStr(razm3); StringGrid3->RowCount++; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button12Click(TObject *Sender) { razm3--; if(razm3<0){ShowMessage("КУДА МЕНЬШЕ ТО?!!");razm3=0;} Edit3->Text=IntToStr(razm3); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button13Click(TObject *Sender) { razm4++; Edit4->Text=IntToStr(razm4); StringGrid4->RowCount++; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button14Click(TObject *Sender) { razm4--; if(razm4<0){ShowMessage("КУДА МЕНЬШЕ ТО?!!");razm4=0;} Edit4->Text=IntToStr(razm4); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- void __fastcall TForm1::Button15Click(TObject *Sender) { id=0; kill=1; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button16Click(TObject *Sender) { id=0; kill=2; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button17Click(TObject *Sender) { id=0; kill=3; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button18Click(TObject *Sender) { id=0; kill=4; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button19Click(TObject *Sender) { int i; AnsiString s; Label6->Caption=zazor; for(i=1;i<=StringGrid1->RowCount;i++) { if(StringGrid1->Cells[0][i].IsEmpty()!=true) { Memo3->Lines->Add(StringGrid1->Cells[0][i]); Memo3->Lines->Add(StringGrid1->Cells[1][i]); } } for(i=1;i<=StringGrid1->RowCount;i++) { if(StringGrid2->Cells[0][i].IsEmpty()!=true) { Memo4->Lines->Add(StringGrid2->Cells[0][i]); Memo4->Lines->Add(StringGrid2->Cells[1][i]); } } for(i=1;i<=StringGrid3->RowCount;i++) { if(StringGrid3->Cells[0][i].IsEmpty()!=true) { Memo5->Lines->Add(StringGrid3->Cells[0][i]); Memo5->Lines->Add(StringGrid3->Cells[1][i]); } } for(i=1;i<=StringGrid4->RowCount;i++) { if(StringGrid4->Cells[0][i].IsEmpty()!=true) { Memo6->Lines->Add(StringGrid4->Cells[0][i]); Memo6->Lines->Add(StringGrid4->Cells[1][i]); } } Memo7->Lines->Add(Edit1->Text); Memo7->Lines->Add(Edit2->Text); Memo7->Lines->Add(Edit3->Text); Memo7->Lines->Add(Edit4->Text); Memo7->Lines->Add(Label6->Caption); if (SaveDialog1->Execute()) { Memo3->Lines->SaveToFile(SaveDialog1->FileName+".koord"); CreateDir("koord"); Memo4->Lines->SaveToFile("koord/second"); Memo5->Lines->SaveToFile("koord/third"); Memo6->Lines->SaveToFile("koord/foth"); Memo7->Lines->SaveToFile("koord/razm"); } Memo3->Lines->Clear(); Memo4->Lines->Clear(); Memo5->Lines->Clear(); Memo6->Lines->Clear(); Memo7->Lines->Clear(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button20Click(TObject *Sender) { int i,shtazi=0,shtazi1=1;int abc,cba; AnsiString s,s1; Image1->Canvas->FillRect(Rect(0,0,Image1->Width,Image1->Height)); x=0;y=0; Label5->Visible=false; Edit5->Visible=false; Button6->Visible=false; if (OpenDialog1->Execute()) { Memo3->Lines->LoadFromFile(OpenDialog1->FileName); Memo4->Lines->LoadFromFile("koord/second"); Memo5->Lines->LoadFromFile("koord/third"); Memo6->Lines->LoadFromFile("koord/foth"); Memo7->Lines->LoadFromFile("koord/razm"); } for(i=0;i<=Memo3->Lines->Count;i++) { s=Memo3->Lines->Strings[shtazi]; s1=Memo3->Lines->Strings[shtazi1]; StringGrid1->Cells[0][i+1]=s; StringGrid1->Cells[1][i+1]=s1; shtazi=shtazi+2; shtazi1=shtazi1+2; } StringGrid1->RowCount=Memo3->Lines->Count; shtazi=0;shtazi1=1; for(i=0;i<=Memo4->Lines->Count;i++) { s=Memo4->Lines->Strings[shtazi]; s1=Memo4->Lines->Strings[shtazi1]; StringGrid2->Cells[0][i+1]=s; StringGrid2->Cells[1][i+1]=s1; shtazi=shtazi+2; shtazi1=shtazi1+2; } shtazi=0;shtazi1=1; StringGrid2->RowCount=Memo4->Lines->Count; for(i=0;i<=Memo5->Lines->Count;i++) { s=Memo5->Lines->Strings[shtazi]; s1=Memo5->Lines->Strings[shtazi1]; StringGrid3->Cells[0][i+1]=s; StringGrid3->Cells[1][i+1]=s1; shtazi=shtazi+2; shtazi1=shtazi1+2; } shtazi=0;shtazi1=1; StringGrid3->RowCount=Memo5->Lines->Count; for(i=0;i<=Memo6->Lines->Count;i++) { s=Memo6->Lines->Strings[shtazi]; s1=Memo6->Lines->Strings[shtazi1]; StringGrid4->Cells[0][i+1]=s; StringGrid4->Cells[1][i+1]=s1; shtazi=shtazi+2; shtazi1=shtazi1+2; StringGrid4->RowCount=Memo6->Lines->Count; } Edit1->Text=Memo7->Lines->Strings[0]; Edit2->Text=Memo7->Lines->Strings[1]; Edit3->Text=Memo7->Lines->Strings[2]; Edit4->Text=Memo7->Lines->Strings[3]; razm1=StrToInt(Edit1->Text); razm2=StrToInt(Edit2->Text); razm3=StrToInt(Edit3->Text); razm4=StrToInt(Edit4->Text); zazor=StrToInt(Memo7->Lines->Strings[4]); for(i=1;i<=StringGrid1->RowCount;i++) { if(StringGrid1->Cells[0][i].IsEmpty()!=true) { abc=StrToInt(StringGrid1->Cells[0][i]); //записываем координаты в массив cba=StrToInt(StringGrid1->Cells[1][i]); //ShowMessage(abc); //ShowMessage(cba); ris_P(abc,cba,zazor,50); } } for(i=1;i<=StringGrid2->RowCount;i++) { if(StringGrid2->Cells[0][i].IsEmpty()!=true) { abc=StrToInt(StringGrid2->Cells[0][i]); //записываем координаты в массив cba=StrToInt(StringGrid2->Cells[1][i]); //ShowMessage(abc); //ShowMessage(cba); ris_P(abc,cba,zazor,30); } } for(i=1;i<=StringGrid3->RowCount;i++) { if(StringGrid3->Cells[0][i].IsEmpty()!=true) { abc=StrToInt(StringGrid3->Cells[0][i]); //записываем координаты в массив cba=StrToInt(StringGrid3->Cells[1][i]); //ShowMessage(abc); //ShowMessage(cba); ris_P(abc,cba,zazor,40); } } for(i=1;i<=StringGrid4->RowCount;i++) { if(StringGrid4->Cells[0][i].IsEmpty()!=true) { abc=StrToInt(StringGrid4->Cells[0][i]); //записываем координаты в массив cba=StrToInt(StringGrid4->Cells[1][i]); //ShowMessage(abc); //ShowMessage(cba); ris_P(abc,cba,zazor,25); } } Memo3->Lines->Clear(); Memo4->Lines->Clear(); Memo5->Lines->Clear(); Memo6->Lines->Clear(); Memo7->Lines->Clear(); Image1->Canvas->FillRect(Rect(0,0,100,100)); } //---------------------------------------------------------------------------