Ga naar inhoud

'Dynamisch' menu's maken in Visual Basic 6


anoniem

Aanbevolen berichten

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
Link naar reactie
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....
Link naar reactie
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.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...