Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Verwendete Variablen im Constructor freigeben? (https://www.delphipraxis.net/103991-verwendete-variablen-im-constructor-freigeben.html)

MisterNiceGuy 25. Nov 2007 20:35


Verwendete Variablen im Constructor freigeben?
 
Hallihallo, ich habe einen Constructor in dem ich lokale Variablen benutze, das ganze sieht so aus:
Delphi-Quellcode:
constructor TPanelButton.Create(...);
  var MyPanel:PPanel;
  ...
begin
  ...
  MyPanel := pan_create(pchar('bmap='+Background+';pos_x='+inttostr(x)+';pos_y='+inttostr(y)+';flags='+MyFlags+';'),_VAR(Layer));
  ...
Wenn ich jetzt mein TPanelButton freigebe (free), dann ist mein MyPanel aber immernoch existent. Wie bekomme ich denn das
raus? :)

Danke für eure Hilfe!

Dax 25. Nov 2007 20:36

Re: Verwendete Variablen im Constructor freigeben?
 
So garnicht. Mach die Variable zu einem Feld und gebe es im Destruktor frei.

mkinzler 25. Nov 2007 20:37

Re: Verwendete Variablen im Constructor freigeben?
 
Überschreibe auch den Destruktor (.Destroy)

MisterNiceGuy 25. Nov 2007 20:40

Re: Verwendete Variablen im Constructor freigeben?
 
Danke für die schnellen Antworten ihr 2 :)

grenzgaenger 25. Nov 2007 20:49

Re: Verwendete Variablen im Constructor freigeben?
 
da du hier, deine variable auf den stack anlegst, ist sie nach dem aufruf der routine nicht mehr verfügbar. du musst somit deine variable in der klasse definieren... welche du dann im destruktur (aufräumer) wieder freigibst...


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 Uhr.

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