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;