Непонятная ошибка
Добрый день!Подскажите пожалуйста, как правильно заполнять стринггрид с клавиатуры и считывать с него, не могу побороть его уже.Задаю рандомно, всё работает отлично, а когда вручную выдаёт ошибку.
void __fastcall TForm2::N9Click(TObject *Sender) { StringGrid1->ColCount=CSpinEdit1->Value; StringGrid1->RowCount=StringGrid1->ColCount; //âûäåëåíèå ïàìÿòè ïîä ìàññèâû x=new int [CSpinEdit1->Value]; y=new int [CSpinEdit1->Value]; int i,j; //çàïîëíåíèå ìàññèâà À for( i=0;i<CSpinEdit1->Value;i++) for( j=0;j<CSpinEdit1->Value;j++) { A[i][j]=StrToInt(StringGrid1->Cells[j][i]); } for( i=0;i<CSpinEdit1->Value;i++) for( j=0;j<CSpinEdit1->Value;j++) StringGrid1->Cells[j][i]=A[i][j] ; cx=PaintBox1->ClientWidth/2; cy=PaintBox1->ClientHeight/2; ugol=2*M_PI/CSpinEdit1->Value; for(int i=0;i<CSpinEdit1->Value;i++) { x[i]=150*cos(i*ugol); y[i]=150*sin(i*ugol); } } //--------------------------------------------------------------------------- void __fastcall TForm2::FormPaint(TObject *Sender) { for(int i=0;i<CSpinEdit1->Value;i++) PaintBox1->Canvas->Ellipse(cx+x[i]-5,cy-y[i]+5,cx+x[i]+5,cy-y[i]-5); for(int i=0;i<CSpinEdit1->Value;i++) for(int j=0;j<CSpinEdit1->Value;j++) if( A[i][j]==1) {PaintBox1->Canvas->MoveTo(cx+x[i],cy-y[i]); PaintBox1->Canvas->LineTo(cx+x[j],cy-y[j]);} //ïðîðèñîâêà ñòðåëîê for(int i=0;i<CSpinEdit1->Value;i++) for(int j=0;j<CSpinEdit1->Value;j++) if( A[i][j]==1) { int x2=cx+x[j]; int y2=cy-y[j]; int x1=cx+x[i]; int y1=cy-y[i]; float x0=L*(x1-x2)/sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); float y0=L*(y1-y2)/sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); x1=x0*cos(M_PI/6)-y0*sin(M_PI/6); y1=y0*cos(M_PI/6)+x0*sin(M_PI/6); x2=x0*cos(M_PI/6)+y0*sin(M_PI/6); y2=y0*cos(M_PI/6)-x0*sin(M_PI/6); PaintBox1->Canvas->MoveTo(cx+x[j],cy-y[j]); PaintBox1->Canvas->LineTo(cx+x[j]+x1,cy-y[j]+y1); PaintBox1->Canvas->MoveTo(cx+x[j],cy-y[j]); PaintBox1->Canvas->LineTo(cx+x[j]+x2,cy-y[j]+y2); } } //--------------------------------------------------------------------------- void __fastcall TForm2::CSpinEdit1Change(TObject *Sender) { delete []A; delete []x; delete []y; //âûäåëåíèå ïàìÿòè ïîä ìàññèâû x=new int [CSpinEdit1->Value]; y=new int [CSpinEdit1->Value]; PaintBox1->Canvas->Rectangle(-1,-1,ClientWidth,ClientHeight); StringGrid1->ColCount=CSpinEdit1->Value; StringGrid1->RowCount=StringGrid1->ColCount; int j,i; for( i=0;i<CSpinEdit1->Value;i++) for( j=0;j<CSpinEdit1->Value;j++) { A[i][j]=StrToInt(StringGrid1->Cells[j][i]); } for( i=0;i<CSpinEdit1->Value;i++) for( j=0;j<CSpinEdit1->Value;j++) StringGrid1->Cells[j][i]=A[i][j]; ugol=2*M_PI/CSpinEdit1->Value; for(int i=0;i<CSpinEdit1->Value;i++) { x[i]=150*cos(i*ugol); y[i]=150*sin(i*ugol); } for(int i=0;i<CSpinEdit1->Value;i++) PaintBox1->Canvas->Ellipse(cx+x[i]-5,cy-y[i]+5,cx+x[i]+5,cy-y[i]-5); for(int i=0;i<CSpinEdit1->Value;i++) for(int j=0;j<CSpinEdit1->Value;j++) if( A[i][j]==1) {PaintBox1->Canvas->MoveTo(cx+x[i],cy-y[i]); PaintBox1->Canvas->LineTo(cx+x[j],cy-y[j]);} //ïðîðèñîâêà ñòðåëîê for(int i=0;i<CSpinEdit1->Value;i++) for(int j=0;j<CSpinEdit1->Value;j++) if( A[i][j]==1) { int x2=cx+x[j]; int y2=cy-y[j]; int x1=cx+x[i]; int y1=cy-y[i]; float x0=L*(x1-x2)/sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); float y0=L*(y1-y2)/sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); x1=x0*cos(M_PI/6)-y0*sin(M_PI/6); y1=y0*cos(M_PI/6)+x0*sin(M_PI/6); x2=x0*cos(M_PI/6)+y0*sin(M_PI/6); y2=y0*cos(M_PI/6)-x0*sin(M_PI/6); PaintBox1->Canvas->MoveTo(cx+x[j],cy-y[j]); PaintBox1->Canvas->LineTo(cx+x[j]+x1,cy-y[j]+y1); PaintBox1->Canvas->MoveTo(cx+x[j],cy-y[j]); PaintBox1->Canvas->LineTo(cx+x[j]+x2,cy-y[j]+y2); } } |
Часовой пояс GMT +4, время: 14:46. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.