Ach du bekommst die Adresse.
Klang so, als gibst du denen den Parameter (so callback-mäßig) und der irgendwie als NIL zurück kommt.
Ja, in Delphi ist es etwas "umständlich", wenn man einem VAR-Parameter ein NIL reingeben will. (bei denen wurde es dann wohl einfach als Pointer deklariert)
Delphi-Quellcode:
// entspricht einem procedure Test(A, B: PInteger);
procedure Test(var A: Integer; B: PInteger);
begin
if not Assigned(B) then
Beep;
if not Assigned(@A) then
Beep;
end;
procedure TForm25.FormCreate(Sender: TObject);
var
X: PInteger;
begin
X := nil;
Test(X^, nil);
Test(PInteger(nil)^, nil);
end;
tja, Optional geht dann wohl nur
Delphi-Quellcode:
procedure Test(A: PInteger=nil);
// oder
procedure Test(); overload;
procedure Test(var A: Integer); overload;
Ich glaub Emba sagt dazu
procedure Test(var [optional] A: Integer);
,
procedure Test(var A: Integer=0);
oder eigentlich eher (aber Vorhergehendes wäre besser)
procedure Test(var A: Integer=nil);
bestimmt nein.