Einzelnen Beitrag anzeigen

Tenobaal

Registriert seit: 9. Mai 2013
21 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Zeiger auf eine Klasse

  Alt 11. Aug 2013, 13:04
Danke für eure Hilfe.
Ich habe jetzt mehrere Varianten probiert und habe festgestellt, dass ich in obigen Beispiel nur einen Syntaxfehler hatte

@NamenLozer: Nach deiner Meinung sollte ich Variante 3 nehmen (siehe Code), oder? In Bezug auf die Performance ist diese Variante doch schlecht, weil das komplette Array nochmals kopiert werden muss.
Edit: Variante 1 und 2 hingegen verändern direkt den Inhalt von "PointsRotor" ohne zusätzlichen kopiervorgang.
Delphi-Quellcode:
//....

type TCoord_XY = record
  x,y:Double;
end;

type TPoints = Array of Array of TCoord_XY;
     PPoints = ^TPoints;
var
  Form1: TForm1;

//....

procedure TForm1.FormCreate(Sender: TObject);
var PointsRotor: TPoints;
    Ptr:PPoints;
    Ptr2:^TPoints;
    Ptr3:TPoints;
begin
SetLength(PointsRotor, 1,1); //Setze Größe des Arrays direkt
PointsRotor[0,0].x:=1; //Schreibe was in das Array...

//Variante 1
Ptr:=@PointsRotor;
SetLength(Ptr^, 2,1);

//Variante 2
Ptr2:=@PointsRotor;
SetLength(Ptr2^,3,1);

//Variante 3
Ptr3:=PointsRotor;
SetLength(Ptr3,4,1);
PointsRotor:=Copy(Ptr3,Low(Ptr3),High(Ptr3)+1);
end;

Geändert von Tenobaal (11. Aug 2013 um 13:10 Uhr)
  Mit Zitat antworten Zitat