Проблема с массивом

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Ildus
новенький
Сообщения: 40
Зарегистрирован: 12.10.2018 18:35:38

Проблема с массивом

Сообщение Ildus »

Проблема в том что при обращении к какому-то, не присвоенному значения, разделу массива выходит ошибка.Каким циклом или чем-то еще можно проверить есть ли значение или похожи значения у этого массива?
А именно у массива Action_Nomer:TEdit;
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Код: Выделить всё

Action_Nomer:array of array of TEdit; 
...
  SetLength(Action_Nomer,100,100);
...
Action_Nomer[Najatiya_Action[PageControl1.ActivePageIndex],PageControl1.ActivePageIndex]:=TEdit.Create(UJniche);
...
with Action_Nomer[Najatiya_Action[PageControl1.ActivePageIndex],PageControl1.ActivePageIndex] do
   begin
   Width:=20;
   Visible:=True;
   Left:=0;
   Top:=5;
   Parent:=Action_Idti_Panel[Najatiya_Action[PageControl1.ActivePageIndex],PageControl1.ActivePageIndex];
   Text:=IntToStr(Najatiya_Action[PageControl1.ActivePageIndex]);
   end;     
...
procedure TUJniche.BitBtn5Click(Sender: TObject);
var
j:integer;
u:integer;
begin
  i:=0;
  While i<100 do begin
  j:=0;
  if Najatiya_Action[u] <> -1 then
  begin
  While j<High(Najatiya_Action) do begin
  if (Action_Nomer[i,j]=TEdit.) then begin
  if Action_Nomer[i,j].Parent=Action_Idti_Panel[i,j]
  then  begin
  zapic_[i]:=IntToStr(Action_Idti_Box[i,j].ItemIndex);
  end
  else if Action_Nomer[i,j].Parent=Action_Jdat_Panel[i,j] then begin
  zapic_[i]:='4';
  end
  else if Action_Nomer[i,j].Parent=Action_Pechat_Panel[i,j] then begin
  zapic_[i]:='5';
  end;
  Case zapic_[i] of
  '3':Object_[j].Left:=Object_[j].Left - StrToInt(Action_Idti_Edit[i,j].Text);//идти влево
 '2':Object_[j].Top:=Object_[j].Top + StrToInt(Action_Idti_Edit[i,j].Text);//идти вниз
 '1':Object_[j].Left:=Object_[j].Left + StrToInt(Action_Idti_Edit[i,j].Text);//идти вправо
 '0':Object_[j].Top:=Object_[j].Top - StrToInt(Action_Idti_Edit[i,j].Text);//вверх идти
 '4':begin
 Chot:=StrToInt(Action_Jdat_Edit[i][PageControl1.ActivePageIndex].Text)*1000;
 repeat
      Sleep(1000);
      Application.ProcessMessages;
      Chot:=Chot-1000;
    until Chot=0;
 end;
 '5':begin
Action_Pechat_Otpechatano[i][PageControl1.ActivePageIndex]:=TImage.Create(UJniche);
With Action_Pechat_Otpechatano[i][PageControl1.ActivePageIndex] do
begin
Visible:=True;
Left:=Object_[j].Left;
Top:=Object_[j].Top;
Parent:=Panel3;
Stretch:=True;
Proportional:=True;
Width:=Object_[j].Width;
 Height:=Object_[j].Height;
end;
Object_[j].Picture.SaveToFile(ExtractFilePath(Application.ExeName)+'Картинка.jpg');
Action_Pechat_Otpechatano[i][PageControl1.ActivePageIndex].Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Картинка.jpg');
Object_[j].BringToFront;
 end;
end;
  end;
   j:=j+1;
   end;
  end;
   i:=i+1;
  end;
  end;
Ответить