//---------------------------------------------------------------------------
#include <vcl.h>
#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;i<StringGrid1->RowCount;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((k1<X)&&(k1>X-100)&&(k2<Y)&&(k2>Y-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;i<StringGrid3->RowCount;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((k1<X)&&(k1>X-80)&&(k2<Y)&&(k2>Y-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;i<StringGrid2->RowCount;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((k1<X)&&(k1>X-60)&&(k2<Y)&&(k2>Y-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;i<StringGrid4->RowCount;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((k1<X)&&(k1>X-50)&&(k2<Y)&&(k2>Y-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;i<StringGrid1->RowCount;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;i<StringGrid2->RowCount;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;i<StringGrid3->RowCount;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;i<StringGrid4->RowCount;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;i<p1;i++)
{
x=mass1[i][1]; //типа первые иксы
y=mass1[i][2]; // игрики
for(ij=1;ij<=StringGrid3->RowCount-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;i<p2;i++) //второй
{
x=mass2[i][1]; //типа первые иксы
y=mass2[i][2]; // игрики
Memo1->Lines->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;i<p3;i++) //третий
{
x=mass3[i][1]; //типа первые иксы
y=mass3[i][2]; // игрики
Memo1->Lines->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;i<p4;i++) //четвертый
{
x=mass4[i][1]; //типа первые иксы
y=mass4[i][2]; // игрики
Memo1->Lines->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));
}
//---------------------------------------------------------------------------