Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
 
Delphi 12 Athens
 
#14

AW: Addresse eines var Parameters ermitteln

  Alt 3. Mai 2023, 11:52
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 3. Mai 2023 um 12:10 Uhr)
  Mit Zitat antworten Zitat