Thema: Delphi Problem mit Pointern

Einzelnen Beitrag anzeigen

fwsp
(Gast)

n/a Beiträge
 
#1

Problem mit Pointern

  Alt 22. Apr 2006, 14:01
hallo

ich hab da ein problem mit pointern, immer wenn ich den code ausführ, bekomm ich ne AV. aber eigentlich sollte doch speicherplatz reserviert sein. ich kenn mich nicht so toll mit pointern aus, vielleicht findet jemand den fehler?

die funktion kriegt im prinzip nen string, mit gewissen buchstaben, und zeichnet daraufhin nach bestimmten regeln. ist ein lindenmayer-system.

danke.

hier die typ deklarationen:
Delphi-Quellcode:
type
  PPosition = ^TPosition;
  TPosition = record
    x: Integer;
    y: Integer;
    xHlp: Integer;
    yHlp: Integer;
end;
hier die funktion:
Delphi-Quellcode:
procedure DrawIteration(Const Axiom: String; L, Degree: Real;
  var Turtle: TTurtle; var ProgBar: TProgressBar);
var
  i: Integer;
  Pt: ^TPosition;
begin
  GetMem(Pt, 0);
  ProgBar.Max := Length(Axiom);
  for i := 1 to Length(Axiom) do
  begin
    Application.ProcessMessages;
    case Axiom[i] of
      'F': Turtle.FD(L);

      'f':
      begin
        Turtle.PU;
        Turtle.FD(L);
        Turtle.PD;
      end;

      '+': Turtle.LT(Degree);

      '-': Turtle.RT(Degree);

      '[':
      begin
        GetMem(Pt, (SizeOf(Pt) + SizeOf(TPosition)));
        Pt.x := Turtle.PosX;
        Pt.y := Turtle.PosY;
        Turtle.PU;
        Turtle.FD(250);
        Pt.xHlp := Turtle.PosX;
        Pt.yHlp := Turtle.PosY;
        Turtle.MoveXY(Pt.x, Pt.y);
        Turtle.PD;
      end;

      ']':
      begin
        Turtle.PU;
        Turtle.MoveXY(Pt.x, Pt.y);
        Turtle.SetHXY(Pt.xHlp, Pt.yHlp);
        GetMem(Pt, (SizeOf(Pt) - SizeOf(TPosition)));
        Turtle.PD;
      end;
    end;
    ProgBar.Position := i;
  end;
  FreeMem(Pt);
end;
  Mit Zitat antworten Zitat