PDA

Vollständige Version anzeigen : Problem mit dynamisch,wachsendem Menü


Drummerteo
01.05.2001, 13:32
Hallo,
ich habe ein Problem mit dem dynamisch,wachsendem Menü.In meinem Buch "Visual Basic für Dummies" steht folgender Code beschrieben:

Private Sub Form_Load()
mnuFileArray.Caption = "&1"+"C:\VB\HD.VBP"
mnuFileArray.Visible = True
End Sub

Meinem Verständnis nach besagt die erste Zeile,daß der Eintrag hinter dem =Zeichen als erster dynamischer Menüeintrag erscheint,die 2.Zeile daß dieser auch sichtbar wird.
Ich verstehe nur nicht,wie es möglich ist,daß ANDERE Programme oder Dateien,die zuletzt geöffnet waren,hier erscheinen sollen,da ich diese Pfade doch nicht jedesmal wie im obigen Beispiel eintippen muß.Oder etwa doch??
Bitte helft doch wenn möglich.Welche Erklärung gibt es dafür und wie lautet der allgemeine Code für so ein Menü?
Vielen Dank im voraus.

Stefan Kulpa
01.05.2001, 14:18
<font face="Verdana" size="2">Hallo,

unabhängig von Deinem Beispiel aus dem Buch "Visual Basic für Dummies"
verhält es sich mit dynamischen Menüs wie folgt:

Zunächst benötigst Du einen "Hauptmenü-Eintrag"; Bsp.: "Datei"
Weiterhin musst Du unterhalb dieses Menüpunktes einen einzelnen Untermenüpunkt einfügen.
Dieser Untermenüpunkt erhält als Index den Wert 0, damit VB weiss, dass es sich um
ein Menü-Array handelt.

Dynamisch wird die ganze Geschichte beispielsweise im Load-Ereignis der Form:</font>

<PRE><FONT SIZE=1 FACE=Courier New><FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Sub</FONT> Form_Load()

<FONT COLOR=#000080>Dim</FONT> l <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#008000>'// Neun weitere Menü-Einträge laden</FONT>
<FONT COLOR=#008000>'// mnuRecent(0) gibt es bereits!</FONT>
<FONT COLOR=#000080>For</FONT> l = 1 <FONT COLOR=#000080>To</FONT> 9
Load mnuRecent(l)
<FONT COLOR=#000080>Next</FONT>
<FONT COLOR=#008000>'// Jetzt für alle 10 Untermenüpunkte</FONT>
<FONT COLOR=#008000>'// die Caption setzen und uaf "Visible" schalten:</FONT>
<FONT COLOR=#000080>For</FONT> l = 0 <FONT COLOR=#000080>To</FONT> 9
mnuRecent(l).Caption = "&" & (l + 1) & ". Eintrag"
mnuRecent(l).Visible = <FONT COLOR=#000080>True</FONT>
<FONT COLOR=#000080>Next</FONT>

<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>Sub</FONT>

</FONT></PRE>

<font face="Verdana" size="2">
In diesem Beispiel werden die Menüpunkte lediglich mit dem Eintrag "x. Eintrag" beschrieben.
Falls ich das richtig verstanden habe, möchtest du eine "recent list", mit allen zuletzt bearbeiteten
Dateien. Diese Information musst Du anderweitig speichern und wieder abrufen (Bsp.: Ini-Datei oder Registry)
und dann entsprechend eintragen.

HTH</font>