Forum: Algorithmen, Datenstrukturen und Klassendesign
by Blup,
9. Jun 2016
Ob bei der Parameterübergabe eine Kopie oder nur eine Referenz (praktisch ein Zeiger auf den übergebenen Record, aber vor dem Entwickler verborgen) übergeben wird, kann man aber mit den Schlüsselworten const, var oder out steuern.
procedure TuWasMitPointer(P: PMyRecord);
begin
P^.ID := 1;
P^.Name := 'Test';
end;
procedure TuWasMitReferenz(var R: TMyRecord);
begin
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Blup,
9. Jun 2016
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)
type
PMyRecord = ^TMyRecord;
TMyRecord = record