+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 8 su 8

[OCX,VB6] Explorer XPToolbar

  1. #1
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Buongiorno a tutti

    tempo fa, per esigenze personali durante la realizzazione di un software, ho realizzato un OCX che permette di ottenere, nella propria applicazione, una Toolbar in stile Explorer XP.

    L'OCX si compone di vari tool tra cui la barra vera e propria, che può essere utilizzata anche da sola per ospitare altri tipi di controlli oltre ai pulsanti previsti per la Toolbar, i diversi pulsanti (uno standard e uno del tipo a Menu) e il separatore.


    Una semplice toolbar:




    Toolbar con ListButton (il fatto che ne siano aperti 2 è solo un esempio):




    I menu dei ListButton, possono essere gestiti facilmente in fase di progettazione con il MenuManager (accessibile dalla finestra delle proprietà del controllo):




    oppure a run-time, attraverso i metodi AddItem o RemoveItem, analogamente a come si farebbe per un qualsiasi ComboBox.
    Inoltre, attraverso la proprietà List, è consentito l'accesso alla collection degli Item del Menu, dei quali è possibile cambiare la Caption e renderli Checked o Enabled.

    Per realizzare il Menu in un ListButton, da codice, ci vogliono poche semplici righe:

    With ListButton1
        .AddItem "Voce 1"
        .AddItem "Voce 2"
        .AddItem "Voce 3"
        .AddItem "Voce 4"
    
        .List(2).Checked = True
        .List(4).Enabled = False
    End With
    
    In aggiunta il ListButton consente di non mostrare il Menu interno al click su di esso, e questo permette di utilizzare anche un menu già presente nell'applicazione, semplicemente sfruttando l'evento MouseDown e il metodo PopUpMenu del Form.

    per coloro che volessero provarlo, allego a questo post l'OCX.

    Grazie a tutti.

    TheTruster
    File allegati File allegati
    ℹ️ Leggi di più su TheTruster ...

  2. #2
    L'avatar di Louis
    Louis non è in linea Scribacchino
    Ciao TT,
    ho provato il tuo Ocx e devo dire, peraltro come sempre, che è realizzato con cura ed è graficamente molto accattivante.
    Complimenti !
    ℹ️ Leggi di più su Louis ...

  3. #3
    L'avatar di Roby66
    Roby66 non è in linea Scolaretto
    Ottimo!! L'ho provato anch'io ed anche graficamente molto bello..insomma dà soddisfazione..Complimenti!!

  4. #4
    bellopapo non è in linea Novello
    salve a tutti...
    siamo fermi al 2007, qui...
    spero di non gettare invano il mio appello, che credo possa interessare in molti l'argomento.
    allora : provato ocx xptoolbar ...valido e immediato ... con poche righe si fa quello che, con altri ocx, si farebbe con km di codice.
    bene ... perchè non miglioralrlo un pò ?
    thetruster... se ci sei batti un colpo... sei l'autore e quindi poco (credo e spero) ti costerebbe aggiungere :

    1 - i vari eventi Toolbar_MouseXXX, che consentirebbero di smanettare in caso ci sia il mouse all'esterno di un ToolBarButton ma all'interno della toolbar stessa
    (es. toolbarbutton1 è contenuto in toolbar1 - con mousemove di toolbarbutton1 accendo toolbar2 - per spegnere toolbar2 uso MouseMove di toolbar1 (evento, appunto, mancante)

    2 - possibilità di inserire icone 24x24 a lato dei vari menu AddItem di ListButton

    per ora grazie dell'attenzione
    peppe

  5. #5
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Quote Originariamente inviato da bellopapo Visualizza il messaggio
    sei l'autore e quindi poco (credo e spero) ti costerebbe aggiungere :

    1 - i vari eventi Toolbar_MouseXXX, che consentirebbero di smanettare in caso ci sia il mouse all'esterno di un ToolBarButton ma all'interno della toolbar stessa
    (es. toolbarbutton1 è contenuto in toolbar1 - con mousemove di toolbarbutton1 accendo toolbar2 - per spegnere toolbar2 uso MouseMove di toolbar1 (evento, appunto, mancante)
    Anche se la Toolbar non presenta particolari eventi, considerato che è solo e semplicemente un contenitore, ritengo tu possa gestire la cosa tramite gli eventi MouseEnter e MouseExit che presentano i ToolBarButton.

    Quote Originariamente inviato da bellopapo Visualizza il messaggio
    2 - possibilità di inserire icone 24x24 a lato dei vari menu AddItem di ListButton
    L'inserimento di icone nel menu non è cosa semplice e se non fatto con criterio renderebbe l'applicazione decisamente instabile.
    Lo sa benissimo il nostro buon gibra che ha realizzato un'add-in con relativa DLL a dir poco eccezionale per facilitare enormemente questo compito. Si tratta della MenuExtended.dll e del MenuDesigner.
    E' sfruttando proprio la sua add-in che inserire le icone nel menu dei miei controlli è una cosa banalissima, poichè basta visualizzare (attraverso l'evento ArrowClick) un menu del Form opportunamente subclassato con l'add-in di gibra, al posto di quello interno al menu:

    Private Sub ListButton1_ArrowClick()
    PopupMenu mnuFile, , ListButton1.Left, ListButton1.Top + ListButton1.Height
    End Sub
    
    un esempio del risultato:



    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  6. #6
    bellopapo non è in linea Novello
    Quote Originariamente inviato da TheTruster Visualizza il messaggio
    Anche se la Toolbar non presenta particolari eventi, considerato che è solo e semplicemente un contenitore, ritengo tu possa gestire la cosa tramite gli eventi MouseEnter e MouseExit che presentano i ToolBarButton.
    si certo .... si può ma è più "complicato", nel senso che occorrono mille controlli in più ed quindi il codice si "espande", come dice murphy in una delle sue leggi
    ...c'è da dire, infine, che anche FRAME è, in fondo, un contenitore .... però i controlli MOUSE li ha lo stesso

    Quote Originariamente inviato da TheTruster Visualizza il messaggio
    L'inserimento di icone nel menu non è cosa semplice e se non fatto con criterio renderebbe l'applicazione decisamente instabile.
    mizzica non pensavo che mettere due iconcine fosse tanto complicato ...
    mi sono andato a vedere come funza la questione e ho visto che, in pratica, occorre smontare mezzo mondo.
    ma perchè le cose stupide sono così complicate ?

    Quote Originariamente inviato da TheTruster Visualizza il messaggio
    Lo sa benissimo il nostro buon gibra che ha realizzato un'add-in con relativa DLL a dir poco eccezionale per facilitare enormemente questo compito. Si tratta della MenuExtended.dll e del MenuDesigner.
    ottimo lavoro il suo ...lodevole !
    avevo già dato una occhiata a questa dll ma per quello che mi serviva realizzare era come comprare un ferrari, metterlo in garage e utilizzarlo solo per andare al tabaccaio a 100 metri da casa per comprare le sigarette....
    cercavo una cosa meno complicata; tipo la tua xptoolbar !
    in ogni caso con un paio di controlli sul mouseexit (di cui sopra) ho (quasi) realizzato quello che mi serviva e presto, se non è di impiccio qui, posterò un esempio.
    dopo questi logorroici pensieri, faccio un'ultima domanda, visto che non è possibile avere modifiche della dll...
    il colore di fondo di TOOLBAR non è uniforme, ma è sfumato
    mi sono perso qualche cosa o esiste una property che consenta di renderlo "lineare" senza la suddetta sfumatura ?
    grazie per la pazienza
    peppe

  7. #7
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Quote Originariamente inviato da bellopapo Visualizza il messaggio
    il colore di fondo di TOOLBAR non è uniforme, ma è sfumato
    mi sono perso qualche cosa o esiste una property che consenta di renderlo "lineare" senza la suddetta sfumatura ?
    E' sfumato perchè quella "originale" è sfumata ed ho voluto riprodurre questa caratteristica.
    Non c'è nessuna proprietà che permetta di variare il colore della sfumatura o di utilizzare un colore piatto.

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  8. #8
    bellopapo non è in linea Novello
    Quote Originariamente inviato da TheTruster Visualizza il messaggio
    Non c'è nessuna proprietà che permetta di variare il colore della sfumatura o di utilizzare un colore piatto.
    l'effetto con la sfumatura è un pò antiestetico se la toolbar è posizionata in verticale ... ecco il motivo della mia domanda

    grazie comunque

    peppe

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. [VB6] XPToolbar.ocx
    Da dolcissimo nel forum Visual Basic 6
    Risposte: 0
    Ultimo Post: 02-03-2009, 21:22
  2. IE Explorer
    Da ageofstone nel forum Microsoft Windows
    Risposte: 1
    Ultimo Post: 05-01-2005, 12:34
  3. Explorer
    Da Kizo nel forum Microsoft Windows
    Risposte: 3
    Ultimo Post: 06-08-2004, 00:38
  4. explorer 6
    Da pippio nel forum Microsoft Windows
    Risposte: 5
    Ultimo Post: 08-06-2004, 18:44
  5. Explorer
    Da Johnny71 nel forum Microsoft Windows
    Risposte: 4
    Ultimo Post: 07-06-2003, 15:54