Einzelnen Beitrag anzeigen

sebi87
(Gast)

n/a Beiträge
 
#1

Laufzeitfehler

  Alt 21. Apr 2008, 13:29
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
  Mit Zitat antworten Zitat