Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [VB6] Controlli

  1. #1

    [VB6] Controlli

    Salve a tutti e complimenti per l'ottimo sito,

    volevo chiedere alcune cose per quanto riguarda la programmazione in visual basic. Scorrendo la lista dei componenti nei controlli ho trovato Microsoft Forms 2.0 Object Library che mi aggiunge tanti altri controlli, e alcuni anche doppi ( tipo textBox, comboBox, etc ) anche se con icone leggermente diverse. Cosa cambia?

    Altri controlli che ho provato è la SSTab, la MultiPagina e la TabStrip, anche se non ho capito bene come funzionano. Più che altro in fase di progettazione non mi fa cambiare le pagine/tab per editarle, è come se fossero bloccate. Non so se dipende dal fatto che ho installato solamente il disco 1 di visual basic 6, o che lo eseguo sotto macchina virtuale in Mac OS X ( anche se mi pare una cavolata.. ). In Microsoft Excel 2003, in VBA tutto funziona alla grande.

    Grazie in anticipo,

    Jack Layne.

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    La libreria FM20.dll non devi utilizzarla in VB6, perchè Microsoft stessa dichiara espressamente che questa libreria è fatta per Office e NON per VB6, oltretutto non hai i diritti per distribuirla (vedi anche il file REDIS.TXT):

    INFO: Usage and Redistribution of FM20.DLL
    http://support.microsoft.com/kb/224305/EN-US/

    PRB: "Error 7 - Out of Memory" Error Message From Visual Basic Application Using FM20.DLL
    http://support.microsoft.com/kb/241245/EN-US/

    Per quanto riguarda SSTab e TabStrip sono 'finti' contenitori.
    Sotto-sotto, in realtà rendono visibili solo i controlli 'collegati virtualmente' ad una specifica scheda (tab), mentre gli altri controlli vengono 'nascosti virutalmente' ovvero viene impostata la proprietà Left a -20000 (TabStrip) o -74685 (SSTab).
    La differenza fra i due è che il TabStrip esegue questa operazione solo in fase di esecuzione (run-time) mentre l'SSTab la esegue anche in fase di progettazione (design-time).

    Ecco perchè con il TabStrip non riesci a cambiare la pagina/Tab, perchè in realtà non le cambia.

    Di solito questo metodo può porre diversi problemi se i controlli-figli usati sono tanti, perchè è un metodo 'oneroso', ed è per tale motivo che si usa usare un PictureBox come contenitore per ogni scheda, ed inserirvi i controlli. In questo modo, il controllo (TabStrip o SSTab che sia) deve spostare solo un PictureBox alla volta anzichè decine di controlli.

    Se dal menu 'Progetto' -> 'Inserisci form' selezioni il modello: 'Finestra Opzioni', troverai già un controllo TabStrip con tutto il codice per gestirlo già preparato. Così potrai vedere come funziona la faccenda.

    Se ad esempio metti un Label1 direttamente sul form e nell'evento
    Private Sub tbsOptions_Click()

    inserisci questa istruzione
    Label1.Caption = picOptions(0).Left

    Avvia il progetto, poi fai clic sul tab 'Gruppo2' e vedrai che Label1 mostrerà -20000 .

    Invece con l'SSTab non serve nemmeno avviare il progetto:
    lo vedi direttamente dalla proprietà Left, nella finestra delle Proprietà!

    Visto che sembri nuovo all'ambiente VB 6.0, concludo consigliandoti di considerare la possibilità di iniziare con il VB2008 dato che orami anche i sassi sanno che VB6.0 è obsoleto, non più supportato e quindi andrà a morire. Per molti è già morto e sono passati al NET.
    L'unico motivo per continuare ad usarlo è solo per manutenere applicazioni esistenti che per un motivo o per un altro non andranno mai migrate in NET.


    Naturalmente, è solo un suggerimento che tu potrai seguire o meno a seconda delle tue esigenze.


  3. #3
    Originariamente inviato da gibra
    La libreria FM20.dll non devi utilizzarla in VB6, perchè Microsoft stessa dichiara espressamente che questa libreria è fatta per Office e NON per VB6, oltretutto non hai i diritti per distribuirla (vedi anche il file REDIS.TXT):

    INFO: Usage and Redistribution of FM20.DLL
    http://support.microsoft.com/kb/224305/EN-US/

    PRB: "Error 7 - Out of Memory" Error Message From Visual Basic Application Using FM20.DLL
    http://support.microsoft.com/kb/241245/EN-US/

    Per quanto riguarda SSTab e TabStrip sono 'finti' contenitori.
    Sotto-sotto, in realtà rendono visibili solo i controlli 'collegati virtualmente' ad una specifica scheda (tab), mentre gli altri controlli vengono 'nascosti virutalmente' ovvero viene impostata la proprietà Left a -20000 (TabStrip) o -74685 (SSTab).
    La differenza fra i due è che il TabStrip esegue questa operazione solo in fase di esecuzione (run-time) mentre l'SSTab la esegue anche in fase di progettazione (design-time).

    Ecco perchè con il TabStrip non riesci a cambiare la pagina/Tab, perchè in realtà non le cambia.

    Di solito questo metodo può porre diversi problemi se i controlli-figli usati sono tanti, perchè è un metodo 'oneroso', ed è per tale motivo che si usa usare un PictureBox come contenitore per ogni scheda, ed inserirvi i controlli. In questo modo, il controllo (TabStrip o SSTab che sia) deve spostare solo un PictureBox alla volta anzichè decine di controlli.

    Se dal menu 'Progetto' -> 'Inserisci form' selezioni il modello: 'Finestra Opzioni', troverai già un controllo TabStrip con tutto il codice per gestirlo già preparato. Così potrai vedere come funziona la faccenda.

    Se ad esempio metti un Label1 direttamente sul form e nell'evento
    Private Sub tbsOptions_Click()

    inserisci questa istruzione
    Label1.Caption = picOptions(0).Left

    Avvia il progetto, poi fai clic sul tab 'Gruppo2' e vedrai che Label1 mostrerà -20000 .

    Invece con l'SSTab non serve nemmeno avviare il progetto:
    lo vedi direttamente dalla proprietà Left, nella finestra delle Proprietà!

    Visto che sembri nuovo all'ambiente VB 6.0, concludo consigliandoti di considerare la possibilità di iniziare con il VB2008 dato che orami anche i sassi sanno che VB6.0 è obsoleto, non più supportato e quindi andrà a morire. Per molti è già morto e sono passati al NET.
    L'unico motivo per continuare ad usarlo è solo per manutenere applicazioni esistenti che per un motivo o per un altro non andranno mai migrate in NET.


    Naturalmente, è solo un suggerimento che tu potrai seguire o meno a seconda delle tue esigenze.

    Prima di tutto grazie per la risposta. Sicuramente passerò ad VB2008, ma a scuola ci fanno usare VB6 quindi sono obbligato ad impararlo ( se voglio passare l'anno scolastico :P ), quindi imparerò entrambi.
    Da quel che ho capito nel mio caso mi conviene usare più la SSTab che la TabStrip. Dovrei usarla per scrivere un programma di gestione alunni di una scuola e volevo fare la visualizzazione per classi tramite schede e quello della pagella/situazioneClasse tramite una griglia.

    P.S. È molto differente il VB.NET dal VB6?

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Jack Layne
    P.S. È molto differente il VB.NET dal VB6?
    Molto differente.


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.