Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Bitte um Hilfe für Webservice/Gateway/PortListener (https://www.delphipraxis.net/170493-bitte-um-hilfe-fuer-webservice-gateway-portlistener.html)

Jumpy 21. Sep 2012 07:58

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
[OT] Kurzes Thread-Hijacking, da es hier aufkam:

Zitat:

Zitat von DeddyH (Beitrag 1183695)
Wenn es freigegeben und auf nil gesetzt oder mit nil initialisiert und nie instanziert wurde, richtig.

Nochmal nachgehakt. Wenn ich es nie instanziere und auch vorher nicht mit nil initialisiere, dann würde es kanllen?

Delphi-Quellcode:
var t:TStringlist;
begin
try
  Irgendwas, das eine Exception auslöst;
  t:=TStringlist.Create;
  Irgendwas anderees mit t;
finally
  t.Free;
end;
end;
Hier t nie erzeugt, da es schon vorher knallt, wird aber im finally freigegeben?

Delphi-Quellcode:
var t:TStringlist;
begin
t:=TStringlist.Create;
try
  Irgendwas, das eine Exception auslöst;
  Irgendwas anderees mit t;
finally
  t.Free;
end;
end;
Hier ist t vor der exception erzeugt worden und kann freigegeben werden?

[/OT]

Bali 21. Sep 2012 09:28

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
oh je oh je ....

habe gestern den ganzen Tag mit euren Posts getestet ... und habe es leider nicht geschafft ...

Werde jetzt dann den ZIP file von BUMMI testen und mich dann wieder melden.

Dankeschön für all euren Support !

Tobi

Sir Rufo 21. Sep 2012 11:20

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
Zitat:

Zitat von Jumpy (Beitrag 1183813)
[OT] Kurzes Thread-Hijacking, da es hier aufkam:

Zitat:

Zitat von DeddyH (Beitrag 1183695)
Wenn es freigegeben und auf nil gesetzt oder mit nil initialisiert und nie instanziert wurde, richtig.

Nochmal nachgehakt. Wenn ich es nie instanziere und auch vorher nicht mit nil initialisiere, dann würde es kanllen?

Delphi-Quellcode:
var t:TStringlist;
begin
try
  Irgendwas, das eine Exception auslöst;
  t:=TStringlist.Create;
  Irgendwas anderees mit t;
finally
  t.Free;
end;
end;
Hier t nie erzeugt, da es schon vorher knallt, wird aber im finally freigegeben?

Delphi-Quellcode:
var t:TStringlist;
begin
t:=TStringlist.Create;
try
  Irgendwas, das eine Exception auslöst;
  Irgendwas anderees mit t;
finally
  t.Free;
end;
end;
Hier ist t vor der exception erzeugt worden und kann freigegeben werden?

[/OT]

Genau so ... denn lokale Variablen werden nicht automatisch initialisiert wie globale oder Klassen-Variablen

Allerdings, wenn man sich das so ansieht, scheinst du hier doch eine globale Variable definiert zu haben :)
Delphi-Quellcode:
var
  globalSL : TStrings;

procedure Foo;
var
  localSL : TStrings;
begin
  // lokale Variablen sollten initialisiert werden
  // localSL := nil;
  try
    ...
    // mögliche Exception
    ...
    globalSL := TStringList.Create;
    localSL := TStringList.Create;
    ...
  finally
    globalSL.Free;
    localSL.Free; // mögliche Exception!!!
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz