Zitat von
Chewie:
Lass dir einfach mal, so wie ich es gemacht habe, die Adressen ausgeben, und du siehst 100%ig, ob es sich um das gleiche Array handelt oder nicht.
Ok, gewonnen. Es sind unterschiedliche Adressen. Und ich war mir so sicher, dass es der Fehler sein muss. Dann mal wieder rein in die lustige Suche...
Danke!
Ich kombiniere mal: Wenn ich ein Objekt (Instanz) von ArrayA nach ArrayB kopieren will, spuckt der Destructor beim beenden ein EInvalidPointer aus. Wenn ich auf dem ArrayB aber ein neues Objekt erstelle (TMeineKlasse.Create) funktioniert alles wunderbar. D.h. es wird nur der Pointer übergeben.
Demnach muss es der Zuweisung liegen:
Delphi-Quellcode:
procedure TWorld.BufferCreature(SourceX, SourceY, TargetX, TargetY: Integer;
World: TWorld);
begin
World.FBufferArray[TargetX][TargetY] := World.FWorldArray[SourceX][SourceY];
end;
Hatte mir sowas schon gedacht. Wie kann ich denn ein Objekt von ArrayA nach ArrayB
kopieren? Ich habe da keinen blassen Schimmer, deswegen auch die Zuweisung.
Hat sich erledigt! Danke an Chewie!