anoniem Geplaatst: 11 september 2002 Delen Geplaatst: 11 september 2002 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 Quote Link naar reactie
anoniem Geplaatst: 11 september 2002 Auteur Delen Geplaatst: 11 september 2002 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.... Quote Link naar reactie
anoniem Geplaatst: 12 september 2002 Auteur Delen Geplaatst: 12 september 2002 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. Quote Link naar reactie
anoniem Geplaatst: 12 september 2002 Auteur Delen Geplaatst: 12 september 2002 Dit werkt :D ! Ik had dit zelfde trucje al geprobeerd, maar in het click event van de parent van het laatste submenu ... dit werkt dus niet. Dezelfde code in het click event van het hoofdmenu werkt wel. Om het echt dynamisch te houden, verwijder ik eerst alle items middels het unload statement alvorens ik weer ga toevoegen. Bedankt! Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen