Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Erzeugte MenuItem.Namen anzeigen (https://www.delphipraxis.net/134817-erzeugte-menuitem-namen-anzeigen.html)

Asatru 29. Mai 2009 16:05


Erzeugte MenuItem.Namen anzeigen
 
Hoffe jemand kann mich anschupsen und sagen wie ich das richtig ausdrücken müsste um den aktuellen geklickten Newitem.name zu bekommen.

Delphi-Quellcode:
var
  Form1: TForm1;
  newitem: TMenuItem;
  I: Integer;



implementation

{$R *.dfm}

function DriveExists(DriveByte: Byte): Boolean;
begin
  Result := GetLogicalDrives and (1 shl DriveByte) <> 0;
end;

function DriveType(DriveByte: Byte): String;
begin
  case GetDriveType(PChar(Chr(DriveByte + Ord('A')) + ':\')) of
    DRIVE_UNKNOWN: Result := 'unbekannt';
    DRIVE_NO_ROOT_DIR: Result := 'Laufwerk existiert nicht';
    DRIVE_REMOVABLE: Result := 'Wechselmedium';
    DRIVE_FIXED: Result := 'Festplatte';
    DRIVE_REMOTE: Result := 'Netzwerk';
    DRIVE_CDROM: Result := 'CD-ROM/DVD';
    DRIVE_RAMDISK: Result := 'RAM Disk';
  else
    Result := 'anderer Laufwerkstyp';
  end;
end;

Procedure TForm1.laufwerk(Sender: TObject);
begin
  ShowMessage(newitem.Name[i]);    // Hier komm ich nicht weiter
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  for I := 0 to 25 do
    if DriveExists(I) then
    begin
      newitem:=TMenuItem.Create(MainMenu1);
      newitem.Name:=(Chr(I + Ord('A')));
      newitem.Caption:=(Chr(I + Ord('A')) + ':\  (' + DriveType(I) + ')');
      newitem.Tag:=i;
      newitem.RadioItem:=true;
      newItem.onClick := laufwerk;
      Form1.MainMenu1.Items[0].Add(newitem);

    end;
end;

Satty67 29. Mai 2009 16:10

Re: Erzeugte MenuItem.Namen anzeigen
 
Delphi-Quellcode:
Procedure TForm1.laufwerk(Sender: TObject);
begin
  ShowMessage( (Sender as TMenuItem).Name );    // Hier komm ich nicht weiter
end;
Die zwei zusätzlichen globalen Variablen würde ich lokal deklarieren:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  newitem: TMenuItem;
  I: Integer;
begin
...und im globalen VAR entfernen

PS: die globale Schleifen-Variable "i" müsste Delphi sogar reklamieren ;)

Asatru 29. Mai 2009 16:17

Re: Erzeugte MenuItem.Namen anzeigen
 
vielen dank hat geklappt

:-P


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