koala написав:3. Ви абсолютно точно певні, що проблема тут, а не в readreshP чи showreshp? Чому?
4. Що значить "дані не зчитались"? У вас табличка виникає з написом "дані не зчитались"? Описуйте не те, чого не відбувається, а те, що відбувається - наприклад "я очікую, що в змінній x буде значення 10, взяте з файлу, але там 0".
ось процедура
procedure TMainForm.showreshp;
var XminP,YminP,XmaxP,YmaxP:array[1..6] of real;
alpha,beta,mashY:real;
i,j:integer;
det:figure;
begin
//readdets;
for j:=1 to KilkuklP do begin
with shmUklP[j] do begin
for i:=1 to 6 do begin
if i=1 then begin alpha:=0; beta:=0; end;
if i=2 then begin alpha:=xa1; beta:=ya1; end;
if i=3 then begin alpha:=xq; beta:=yq; end;
if i=4 then begin alpha:=xa1+xq; beta:=ya1+yq; end;
if i=5 then begin alpha:=xa2; beta:=ya2; end;
if i=6 then begin alpha:=xa1+xa2; beta:=ya1+ya2; end;
XminP[i]:=-dldet[ndet]/2+alpha;
XmaxP[i]:=dldet[ndet]/2+alpha;
YminP[i]:=-shdet[ndet]/2+beta;
YmaxP[i]:=shdet[ndet]/2+beta;
end;
dlP[j]:=maxR(6, XmaxP)-minR(6, XminP);
XcP[j]:=(maxR(6, XmaxP)+minR(6, XminP))/2;
shP[j]:=maxR(6, YmaxP)-minR(6, YminP);
YcP[j]:=(maxR(6, YmaxP)+minR(6, YminP))/2;
end;
end;
dlUkl_max:=maxR(KilkuklP, dlP);
shUkl_max:=maxR(KilkuklP, shP);
StatusBar1.Panels[1].Text:=floattostr(dlUkl_max)+' '+floattostr(shUkl_max);
//for j:=1 to KilkuklP do
//edit1.Text:=edit1.Text+FormatFloat('0.00',kilkpointdet_r[j]);
//for j:=1 to KilkuklP do
//edit2.Text:=edit2.Text+FormatFloat('0.00',YcP[j]);
mashim4P:=95/dlUkl_max;
mashy:=95/shUkl_max;
StatusBar1.Panels[1].Text:=floattostr(XcP[1])+' '+floattostr(YcP[1]);
StatusBar1.Panels[1].Text:=inttostr(shmUklP[1].ndet);
if mashim4P>mashy then mashim4P:=mashy;
for i:=1 to KilkuklP do
with shmUklP[i] do begin
graphim('Ukl',kilkpointdet_r[ndet],dets_r[ndet],mashim4P,XcP[i]+52,YcP[i]+52+105*(i-1));
for j:=0 to kilkpointdet_r[ndet]-1 do begin
det[j].x:=dets_r[ndet,j].x+Xa1;
det[j].y:=dets_r[ndet,j].y+Ya1;
end;
graphim('Ukl',kilkpointdet_r[ndet],det,mashim4P,XcP[i]+52,YcP[i]+52+105*(i-1));
for j:=0 to kilkpointdet_r[ndet]-1 do begin
det[j].x:=det_P[ndet,j].x+Xq;
det[j].y:=det_P[ndet,j].y+Yq;
end;
graphim('Ukl',kilkpointdet_r[ndet],det,mashim4P,XcP[i]+52,YcP[i]+52+105*(i-1));
for j:=0 to kilkpointdet_r[ndet]-1 do begin
det[j].x:=det_P[ndet,j].x+Xq+Xa1;
det[j].y:=det_P[ndet,j].y+Yq+Ya1;
end;
graphim('Ukl',kilkpointdet_r[ndet],det,mashim4P,XcP[i]+52,YcP[i]+52+105*(i-1));
for j:=0 to kilkpointdet_r[ndet]-1 do begin
det[j].x:=dets_r[ndet,j].x+Xa2;
det[j].y:=dets_r[ndet,j].y+Ya2;
end;
graphim('Ukl',kilkpointdet_r[ndet],det,mashim4P,XcP[i]+52,YcP[i]+52+105*(i-1));
for j:=0 to kilkpointdet_r[ndet]-1 do begin
det[j].x:=dets_r[ndet,j].x+Xa1+Xa2;
det[j].y:=dets_r[ndet,j].y+Ya1+Ya2;
end;
graphim('Ukl',kilkpointdet_r[ndet],det,mashim4P,XcP[i]+52,YcP[i]+52+105*(i-1));
і
procedure TMainForm.readreshp;
var i:integer;
begin
assignfile(f,fname_ukl1);
Reset(f);
Readln(f,KilkuklP);
for i:=1 to KilkuklP do
with shmUklP[i] do begin
Read(f,ndet);
read(f,xa1,ya1,xa2,ya2,xq,yq);
readln(f,ang);
end;
CloseFile(f);
ramka('Ukl',KilkuklP);
end;
запускаю програму (мал.1) відкриваю файл (мал.2) і очікую з двох сторін фігури але отримую (мал.3)
пробую знов відкрити файл і вуаля (мал.4)
як зробити щоб з першого разу показувались?