AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit TMainMenu

Ein Thema von silentAMD · begonnen am 27. Dez 2003 · letzter Beitrag vom 28. Dez 2003
Antwort Antwort
silentAMD

Registriert seit: 27. Sep 2003
203 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem mit TMainMenu

  Alt 27. Dez 2003, 23:19
Hi leute,
ich hab da, wie schon erwähnt, ein prob mit der komponente tmainmenu:
mein programm soll alle laufwerke in das tmainmenu einlesen, doch
meine laufwerke (a, c-m), also elf einträge, doch auf jedem betriebssystem (windows 98 se, xp)
auf dem ich das ausprobiert habe, zeigte er nur a und c-k (also nur 10) an.
kann das an der begränzung der auslesbaren laufwerke liegen (mit meinem prog kann ich auf win98
mehr laufwerke auslesen als das betriebssystem), aber auf xp findet er ja alle.
hier mein quelltext:

Delphi-Quellcode:
procedure TForm1.HD;
function DriveType(DriveByte: Byte): String;
begin
 case GetDriveType(PChar(Chr(DriveByte + Ord('A')) + ':\')) of
  DRIVE_REMOVABLE: Result := 'Diskette';
  DRIVE_FIXED: Result := 'Festplatte';
  DRIVE_CDROM: Result := 'CD-ROM/DVD';
 else
  Result := '?';
 end;
end;
var i: Integer; NewItem: TMenuItem;
begin
 try
  for i := 0 to 25 do
  if GetLogicalDrives and (1 shl i) <> 0 then
  begin
  NewItem := TMenuItem.Create(Menu);
  NewItem.Caption := Chr(i + Ord('A'))+#9+'('+DriveType(i)+')';
  if NewItem.Caption[1] = c then NewItem.Checked := True;
  NewItem.RadioItem := True;
  NewItem.AutoCheck := True;
  NewItem.OnClick := DriveChange;
  Menu.Items[1].Insert(Menu.Items[1].Count, NewItem);
 end;
 finally
  NewItem.Free;
 end;
end;

procedure TForm1.DriveChange;
begin
TMenuItem(Sender).Checked := True;
c := TMenuItem(Sender).Caption[2];
end;

variable c ist das laufwerk.
nur so nebenbei : warum muss ich
c := TMenuItem(Sender).Caption[2]; eingeben, dass ich den richtigen laufwerksbuchstaben vom menü herausbekomme?



WIE KANN ICH ALLE LAUFWERKE IM MENÜ ANZEIGEN LASSEN?


PLEASE HELP!!!
  Mit Zitat antworten Zitat
silentAMD

Registriert seit: 27. Sep 2003
203 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Problem mit TMainMenu

  Alt 27. Dez 2003, 23:21
mir ist ein fehler unterlaufen: es sind zwölf laufwerke, aber das macht ja nichts zur sache...


PLEASE HELP!!!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Problem mit TMainMenu

  Alt 28. Dez 2003, 07:41
Hai silentAMD,

Zitat von silentAMD:
....
Delphi-Quellcode:
... end;
 finally
  NewItem.Free;
 end;
end;
Du gibst hier ja immer deinen zuletzt erzeugten Menüeintrag wieder frei. Und damit ist er auch wieder weg.

Zitat von silentAMD:
....
c := TMenuItem(Sender).Caption[2]; eingeben, dass ich den richtigen laufwerksbuchstaben vom menü herausbekomme?
Ich nehme an das Du in deinem MainMenü die Eigenschaft AutoHotkeys auf maAutomatic stehen hast.
In diesem Fall setzt Delphi vor jeden Menüeintrag ein & (Kaufmanns und). Dies wird für den Zugriff auf die Menüpunkt mit ALT verwendet.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:19 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