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.