Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#22

AW: records oder klassen?

  Alt 9. Jun 2016, 08:28
Das hängt davon ab, wie du Records benutzt.
Allgemein kann man sagen:

Wird ein Record als Zeiger deklariert:
- mit New() erstellen und dem Zeiger zuweisen
- mit Dispose() freigegeben (Zeiger ist danach ungültig)
Delphi-Quellcode:
type
  PMyRecord = ^TMyRecord;
  TMyRecord = record
    ID: Integer;
    Name: string;
  end;

var
  P: PMyRecord;
begin
  New(P);
  try
    TuWasMit(P);
  finally
    Dispose(P);
  end;
end;
Wird ein Record direkt als Variable deklariert, kümmert sich der Compiler:
- um die Bereitstellung des Speichers beim Eintritt in den Gültigkeitsbereich
- um die Freigabe des Speichers beim Verlassen des Gültigkeitsbereichs
Delphi-Quellcode:
type
  PMyRecord = ^TMyRecord;
  TMyRecord = record
    ID: Integer;
    Name: string;
  end;

var
  R: TMyRecord;
begin
  TuWasMit(^R);
end;
  Mit Zitat antworten Zitat