Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Destruktor löst Exception aus

  Alt 25. Apr 2006, 18:37
Hallo,

die Variablen FInputPorts und FOutputPorts sind dynamische Arrays, deren Elements die Nummern 0..n-1 tragen.
Du benutzt aber die Elemente 1..n und überschreibst damit den Speicher hinter den Arrays:

Delphi-Quellcode:
for I:=1 to n do
   FInputPorts[I]:=TPort.Create(Compute,1,Rect(
     ini.ReadInteger(CN,'Input'+inttostr(I)+'Left',0),
     ini.ReadInteger(CN,'Input'+inttostr(I)+'Top',0),
     ini.ReadInteger(CN,'Input'+inttostr(I)+'Right',0),
     ini.ReadInteger(CN,'Input'+inttostr(I)+'Bottom',0)));
n:=ini.ReadInteger(CN,'OutputPorts',0);
setlength(FOutputPorts,n);
for I:=1 to n do
   FOutputPorts[I]:=TPort.Create(Compute,1,Rect(
     ini.ReadInteger(CN,'Output'+inttostr(I)+'Left',0),
    ini.ReadInteger(CN,'Output'+inttostr(I)+'Top',0),
    ini.ReadInteger(CN,'Output'+inttostr(I)+'Right',0),
    ini.ReadInteger(CN,'Output'+inttostr(I)+'Bottom',0)));
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat