Hallo Leute,
kann mir jemand sagen warum ich bei mehrmaligem Aufruf von der Funktion (hintereinander aufrufen) einen Laufzeitfehler bekomme?
Die Funktion ist:
Delphi-Quellcode:
// Funktion zum verbinden von 2 Punkt-Array's
function ArrayConnect(AArray, BArray : TPointArray) : TPointArray ;
var
n : integer ;
i : integer ;
HilfArray : TPointArray ;
begin
SetLength(HilfArray, high(AArray) + 1 + high(BArray) + 1) ;
for n := 0 to high(AArray) do
begin
HilfArray[n] := AArray[n] ;
end ;
i := 0 ;
for n := high(AArray) + 1 to high(AArray) + high(BArray) + 1 do
begin
HilfArray[n] := BArray[i] ;
i := i + 1 ;
end ;
result := HilfArray ;
end ;
// Funktion zum einfügen eines Punkts in ein Punkt-Array
function ArrayInsPoint(AArray : TPointArray; APoint : TPoint; Stelle : Integer)
: TPointArray ;
var
n : integer ;
HilfArray1, HilfArray2 : TPointArray ;
begin
SetLength(HilfArray1, high(AArray) + 1 - Stelle) ;
SetLength(HilfArray2, high(AArray) + 2) ;
// Kopieren des Anfangs
if Stelle <> 0 then
begin
for n := 0 to Stelle - 1 do
begin
HilfArray2[n] := AArray[n] ;
end ;
end ;
if Stelle < high(AArray) then
begin
for n := Stelle to high(AArray) + 1 do
begin
HilfArray1[n - Stelle] := AArray[n] ;
end ;
end ;
// Einfügen der Zahl
HilfArray2[Stelle] := APoint ;
// Einfügen des Rests
if Stelle < high(AArray) then
begin
for n := 0 to high(HilfArray1) + 1 do
begin
HilfArray2[n + Stelle + 1] := HilfArray1[n] ;
end ;
end ;
result := HilfArray2 ;
end ;
Ich hab nachgeforscht und der Laufzeitfehler tritt bei dem
SetLength(HilfArray, high(AArray) + 1 + high(BArray) + 1) ;
auf. Wie kann ich das beheben?
Danke
Sebastian