Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem: Variable freigeben (https://www.delphipraxis.net/20297-problem-variable-freigeben.html)

silentAMD 15. Apr 2004 19:36


Problem: Variable freigeben
 
Hi,
variablen, die man mit create erstellt hat, sollte man nach möglichkeit wieder freigeben.
aber wie soll ich die variable NewItem in dieser procedure freigeben, ohne das item, das im menü erscheint zu löschen?


Delphi-Quellcode:
procedure TForm1.ReadDrives;
function DriveType(k: Byte): String;
begin
case GetDriveType(PChar(Chr(k+Ord('A'))+':\')) of
 DRIVE_CDROM: RESULT := 'CD-ROM/DVD';
 DRIVE_FIXED: RESULT := 'Festplatte';
 DRIVE_REMOTE: RESULT := 'Netzlaufwerk';
 DRIVE_REMOVABLE: RESULT := 'Wechselmedium';
 else RESULT := '?';
end;
end;
var i: Byte; NewItem: TMenuItem;
begin
 for i := 0 to 25 do
 if GetLogicalDrives and (1 shl i) <> 0 then
 begin
  NewItem := TMenuItem.Create(Application);
  NewItem.Caption := '&'+Chr(i+Ord('A'))+#8+DriveType(i);
  if NewItem.Caption[2] = c then NewItem.Checked := TRUE;
  if NewItem.Caption[2] = ParamStr(0)[1] then Fde := mD.MenuIndex-1;
  NewItem.RadioItem := TRUE;
  NewItem.OnClick := DriveChange;
  mLau.Insert(mD.MenuIndex-1, NewItem);
 end;
end;

Christian Seehase 15. Apr 2004 19:41

Re: Problem: Variable freigeben
 
Moin SilentAMD,

Du meinst nicht Variable, sondern Objekt ;-)

Wozu willst Du ein ein Objekt freigeben, dass Du noch brauchst?

Oder ist Dir nur nicht klar wie Du wieder da ran kommst, wenn das Programm beendet wird, und Du "aufräumen" willst?
In diesem Falle kann ich Dich beruhigen.
Da Du ja einen Owner für das Objekt angegeben hast (in diesem Falle Application) wird das Objekt (hier der Menüpunkt) automatisch freigeben wenn der Owner freigeben wird. (Deshalb gibt man einen Owner an).


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 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