Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB6] Modifica dinamica menù

    Ciao a tutti, ho creato un form in VB6 in cui ho inserito un menù ed un relativo submenù. Ho necessità di aggiungere ed eliminare le voci del submenù durante l'esecuzione del programma. È possibile?

  2. #2
    Utente di HTML.it L'avatar di fiscet
    Registrato dal
    Jul 2001
    residenza
    Oderzo TV
    Messaggi
    207

    allora ...

    Ogni voce del menù ha la proprietà name.
    Se hai una voce o una sottovoce chiamata per es. "anagrafiche"
    basta che nel form contente il menù scrivi:

    anagrafiche.enabled=false
    oppure
    anagrafiche.visible=false

    Spero di aver centrato il problema

    saluti

    Christian
    Christian Zanchetta
    Fiscet.it
    Ecommerce e Web Marketing

  3. #3
    Purtroppo non hai centrato il problema. Devo realizzare un submenù come il menù Preferiti di un bronwser, dove quindi non so quante e quali voci ci sono. Grazie comunque per l'aiuto

  4. #4
    C'era una discussione in cui si parlava di questo ma non sono riuscita a trovarla :master:

    Cmq, io ho creato un menù prendendo i dati da un database.
    Ti posto il codice, ma prima leggi attentamente quanto sto per scrivere.

    Per poter creare dinamicamente voci di menù è necessario creare in fase di progettazione una voce "genitore" e assegnarle index = 0, in modo da avere sempre disponibile la prima voce dell'array di menù da creare.
    Nel mio codice questo menù si chiama mElenco(0):
    codice:
    Sub CaricaElenco()
    ' Carica le voci del db nel menù 
    
            ' Cancella le voci di menù create da codice
            ScaricaMenu
            
            Dim rsRs As New ADODB.Recordset
    
            rsRs.Open ...
    
            If rsRs.RecordCount = 0 Then
                rsRs.Close
                Set rsRs = Nothing
                Exit Sub
            End If
            
            Dim intMenu As Integer
            intMenu = 1
            ' Assegna il nome al menù esistente 
            '   e lo rende visibile
            rsRs.MoveFirst
            With mElenco(0)
                .Caption = Trim(rsRs("Nome"))
                .Tag = rsRs("ID")
                .Visible = True
            End With
            ' Continua a ciclare il recordset 
            '   e creare voci di menù
            rsRs.MoveNext
            Do Until rsRs.EOF
                
                Load mElenco(intMenu) ' Crea la nuova voce
                With mElenco(intMenu)
                     .Caption = Trim(rsRs("Nome"))
                     .Tag = rsRs("ID")
                     .Visible = True
                End With
                intMenu = intMenu + 1
                rsRs.MoveNext
                    
            Loop
            
            rsRs.Close
            Set rsRs = Nothing
                        
    End Sub
    
    Sub ScaricaMenu()
    ' Cancella l'elenco delle voci di menù create da codice
            Dim i As Integer
            For i = mElenco.UBound To 1 Step -1
                    Unload mElenco(i)
            Next i
            ' Rende invisibile la voce di menù principale
            mElenco(0).Visible = False
            
    End Sub

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5

    api

    se hai bisogno di creare un menu preferiti, (quindi sai già dove di deve trovare), ti consiglio coma ha detto ladyblu, di crearti un menu con index 0 e caricare nuovi menu da quello (poi nell'evento click in base ad index e caption ricavi l'item cliccato)

    Ma, se non sai con precisione dove creare, se i menu (padre) da creare sono + di 1, se 6 abbastanza esperto da conoscere le api...ti consiglio di utilizzare le funzioni api dei menu...CreateMenu, GetMenu, GetSubMenu, AppendMenu, InsertMenu....e per la gestione degli eventi il subclassing...
    E' una cosa complicata, ma se il problema è complicato,...si usano cose altrettanto complicate...

    p.s. in C sarebbe facile, in C# una cavolata
    by giuSp [.NetDeveloper]

    ___________
    un po' di VB non fa male!....?
    C# more power to you!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.