Einzelnen Beitrag anzeigen

Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#1

Assigned=true bei uninitialisierter Variable ?

  Alt 25. Jun 2020, 17:44
Delphi-Version: 10.1 Berlin
Guten Abend,

Delphi-Quellcode:
procedure THeaderFooterForm.FormActivate(Sender: TObject);
var server : TServer;
begin
   //server := nil;
   if not assigned(server) then
      server := TServer.Create('127.0.0.1',25222,true);
      server.StopTCPServer;
      FreeAndNil(server);
end;
Ich verwende hier eine lokale Variable für den TServer.
Wenn ich am Anfang "server := nil;" nicht schreibe ist assigned true und das Create Event wird übersprungen.
Somit erhalte ich eine exception sobald ich auf die Variable zugreife.

Kann mir jemand erklären warum assigned = true ist bei einer lokalen Variable die wie hier zu sehen sonst gar nicht verwendet wird ?

Ich kann mir nur vorstellen das per Zufall an dieser Adresse gerade ein Objekt "ist/vorher war" und daher assigned true zurück gibt, ist dies korrekt ?
Lokale Variablen werden ja nie initialisiert somit haben diese einen undefinierten Wert.
Somit wäre es zwingend notwenig in diesem Fall die Variable zu initialisieren.

Gruss Int3g3r
  Mit Zitat antworten Zitat