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; |
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