Vraag & Antwoord

Programmeren

'Dynamisch' menu's maken in Visual Basic 6

3 antwoorden
  • Ik heb een mogelijkheid in een van mijn programma's gebouwd om de vormgeving aan te passen. Stel je hier niet te veel van voor, het gaat voornamelijk om de kleuren e.d. Deze vormgevingen worden opgeslagen in kleine ini-bestanden met de extensie .zts. Mijn idee was om in het menu 'Beeld' een item 'Vormgeving' te maken, waaruit weer een ander menuutje rolt waarin dan alle vormgeving-bestanden komen te staan zonder de extenstie .zts. Maar hoe maak ik in vredesnaam die menu's met code? Ik heb al vanalles geprobeerd, maar ik kom er niet uit :cry: . mnuBeeldItems(0) is onderdeel van mnuBeeld, mnuBeeldSkins(0) is een standaard entry onder Vormgeving met de caption "Windows standaard" Schematisch ziet het er dus als volgt uit: Beeld ---Vormgeving ------Windows standaard Onder Windows-standaard moeten de andere items komen, dus waarschijnlijk als mnuBeeldSkins(1) tot en met mnuBeeldSkins(x) Alvast bedankt voor de hulp. Ruben
  • Ik weet dat het mogelijk is om dynamisch menu items te maken, maar helaas kan ik het niet meer vinden.... (Maar ik ben nog wel zoekende) Misschien kan je (tijdelijk) een x aantal "lege" menu items maken die je op "invisible" zet. Als er dan een vormgeving wordt bijgevoegd maak je het menu item "visible".. Het is niet echt de oplossing, maar misschien kan je er wat mee....
  • Maak van het menu dat je dynamisch wilt veranderen een controlarray. Dit kun je doen door in de menu-editor de index-property in te vullen. (Zet deze op 0) Nu kun je met behulp van het load statement heel eenvoudig dynamisch menuitems toevoegen. Maak een form met een menu, gebruik de naam die je geeft aan dat menu ipv mnuDynamic (of noem hem zo). Zet een commandbutton op het form met de naam : cmdAddMenu Zet in het klikevent van deze knop de volgende code: [code:1:e6ef442feb]Private Sub cmdAddMenu_Click() Dim intIndex As Integer intIndex = mnuDynamic.Count Load mnuDynamic(intIndex) mnuDynamic(intIndex).Caption = "test&" & CStr(intIndex) mnuDynamic(intIndex).Visible = True End Sub [/code:1:e6ef442feb] Om nu de menuitems nu ook te laten doen zet je in het klikevent van je menu een select case met de actie die door de verschillende items uitgevoerd moet worden. Dus [code:1:e6ef442feb] Private Sub mnuDynamic_Click(Index As Integer) Select Case Index Case 0 Unload Me Case 1 MsgBox "Tweede menuitem" Case 2 MsgBox "Derde menuitem" Case 3 MsgBox "Vierde menuitem" End Select End Sub [/code:1:e6ef442feb] Dit principe werkt voor alle control-arrays, dus ook arrays van commandbuttons, labels etc.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.