Показать сообщение отдельно
  #1  
Старый 21.11.2013, 17:47
mustimur mustimur вне форума
Прохожий
 
Регистрация: 20.11.2013
Сообщения: 17
Версия Delphi: Delphi xe4
Репутация: 10
Вопрос Access violation at address

Доброго времени суток Всем

Опять появилась проблема: при обращении к Setlength выдается ошибка:
"Access violation at address ........ in module 'Project1.exe'. Read of address ........
Код:
var
  Form1: TForm1;
  //Pi:real;
   np, nlob, ig,jg,kg,napr: integer;
   xprof, yprof, Lprof, mksi,meta,mzeta: Array of real;
   mx: array of array of array of real;
   my: array of array of array of real;

implementation

procedure TForm1.Button1Click(Sender: TObject);
var
f: file;
g:variant;
i,j,k,t,zs,s:integer;
fn:string;
xc,yc,zc, nx,ny,nz,dln:real;
series2:Tpoint3dseries;
begin
if od1.Execute then
begin
  fn:=od1.FileName;
  AssignFile(F, fn);
  Reset(f,sizeof(real));
  t:=sizeof(real);
  Blockread(F,  s,t);
  Blockread(F,  nlob ,t); form1.edtLobels.Text:=floattostr( nlob);
  Blockread(F,  i ,t); form1.edtKsi.Text:=floattostr( ig);
  Blockread(F,  j ,t); form1.edteta.Text:=floattostr( jg);
  Blockread(F,  k ,t); form1.edtzeta.Text:=floattostr( kg);
  closefile(f);
  jg:=j;
  ig:=i;
  kg:=k;
  np:=s;
  if ( napr=-1) then form1.optright.Checked:=true else form1.optleft.Checked:=true;
     setlength( xprof, np+1);
     setlength( yprof, np+1);
     setlength( lprof, np+1);
     setlength( mksi , ig+1);
     setlength( meta , jg+1);
     setlength( mzeta , kg+1);
     setlength( mx, ig+1, jg+1, kg+1);
     setlength( my, ig+1, jg+1, kg+1);
 
end;
Хотя при вызове всего из другой процедуры (другой кнопки) все работает! Отличие одно там не читается из файла информация, а берется из формы... Как такое может быть???
Ответить с цитированием