Autore Topic: Aggiungere pagine ad un Tabstrip via codice  (Letto 10621 volte)

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Aggiungere pagine ad un Tabstrip via codice
« il: 10 Febbraio 2008, 14:36:48 »
Salve, ho un tabstrip, ora vorrei poter aggiungere una o più pagine(Tabs) al tabStrip via codice(cioè ogni qual volta io prema un tasto mi da la possibilità di inserire nuovi tab)
Ciao.

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #1 il: 10 Febbraio 2008, 16:42:33 »
Poniamo il caso che tu abbia un pulsante. Premendolo aggiungi una tab con questo codice:

Codice: [Seleziona]

TabStrip1.Count = TabStrip1.Count + 1
TabStrip1.Index = TabStrip1.Count - 1 '-- indice all'ultimo tab
TabStrip1.Text = "Linguetta"+cstr(tabstrip1.Count-1) '-- testo dell'ultima linguetta
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #2 il: 11 Febbraio 2008, 08:27:23 »
Grazie, ora vorrei capire un'altra cosa..se le "linguette" dovrei aggiungerle in un'altra Tabstrip sita in un'altra finestra, come dovrei fare?
Io ho una "FMain" un form principale quindi dal quale apro una finestra di dialogo con la quale dovrei far aggiungere una nuova pagina nel tabstrip del "FMain".
Io ho inserito questo codice ma non va...
ecco:
Codice: [Seleziona]
FMain.TabStrip1.Count = TabStrip1.Count + 1

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #3 il: 11 Febbraio 2008, 09:05:28 »
O usi una variabile globale (via più semplice) oppure il form in cui compare il tabstrip da "comandare" puoi provare a crearlo via codice, e qui la cosa diventa lunga e tediosa.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #4 il: 11 Febbraio 2008, 09:32:12 »
Potresti farmi un'esempio...Sto imparando solo ora quindi molte cose non le capisco ancora, sono un "gamberetto" nel vero senso della parola :-)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #5 il: 11 Febbraio 2008, 10:50:45 »
Ma il form in cui è contenuto il TabStrip, è visibile mentre dall'altro viene modificato il numero di linguette oppure lo visualizzi in un secondo tempo?
Se è visibile, allora potresti usare una variabile globale, penso. In Gambas, però, non esiste il concetto di "variabile globale" quale quella a cui siamo abituati con VB. Devi creare un modulo (una classe statica) e poi dichiarere dentro ad esso una variabile con PUBLIC Nome_Variabile AS Tipo.
Poi la chiami da dove vuoi semplicemente usando la forma NomeModulo.Nome_Variabile.

Fatto questo potresti memorizzare dal primo form i tab e poi dal secondo modificare il tabstrip con il valore della variabile su impostata.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #6 il: 11 Febbraio 2008, 17:04:04 »
Mi dispiace non ho capito bene cosa intendi, esiste un manuale dove poter studiare?
Comunque io ho un form principale nel quale vi è un TabStrip al quale voglio aumentare o diminuire il numeo delle pagine, su questo Form ho anche un tasto, il quale, una volta cliccato apre una nuova Form, (ho in queso modo due form visibili, quest'ultima posta al di sopra della principale, tipo una finestra di dialogo, in questa finestra di dialogo posso scegliere quante pagine inserire, il loro nome oppure se eliminare una pagina....
Forse è troppo complicato dato le mie basse conoscenze però questa cosa in Visual basic la facevo molto facilmente...uffa!

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #7 il: 11 Febbraio 2008, 18:52:40 »
Beh, intanto c'è la documentazione online che, per quanto riguarda i widget quali form, tabstrip ecc., è ben fornita.
Quindi, premi F1 e poi naviga nel menu laterale sinistro in gb.qt e poi clicca sulle voci interessate.

Poi, per quanto riguarda il tuo problema, devi proprio modificare le linguette da un altro form?
Potresti provare a creare la TabStrip a livello di codice, a renderne il tipo PUBLIC ed a provare a modificare dall'altro form il numero delle linguette del primo form (non so se funziona, l'ho "sparato" così su 2 piedi).
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #8 il: 11 Febbraio 2008, 19:55:24 »
Veramente per la mia applicazione la finestra di dialogo è fondamentale dato che dovrebbe darmi la possibilità di inserire oltre a nuove pagine anche TextBox, pulsanti, disegni come linee o cerchi, grafici e altre cose.
Non credevo che con Gambas la cosa potesse essere così complessa!
Anche disegnare linee o grafici a torta è un'operazione complessa?
Altrimenti mi vedo costretto a passare col Visual basic express 2005, col quale riuscivo a fare tutte queste cose anche con le modeste conoscenze che ho.
Ma se volessi creare un menù(tipo quello che si ha quando si clicca col tasto destro del mouse) come dovrei fare?
PS:Leggo la documentazione come mi hai consigliato, poi faccio sapere.
Ciao e grazie mille per l'aiuto che mi stai dando.

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #9 il: 11 Febbraio 2008, 21:49:45 »
Ciao a tutti.
Io l'ho risolta così:
Crea sul Mform dove si trova la TabStrip una PUBLIC SUB AggiornaStrip() dove al suo interno gli metti il codice per aggiungere una nuova tab.
Nell'altra form crea un tasto il cui codice richiama Mform.AggiornaStrip(). A me ha funzionato. Ciao

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #10 il: 12 Febbraio 2008, 08:37:41 »
Mi spiegheresti come fare il codice per richiamare la sub aggiorna strip()"che io intendo come macro" giusto? Tipo quelle che si fanno con excel per intenderci?

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #11 il: 12 Febbraio 2008, 13:20:14 »
Per interagire con due finestre diverse, hai molte alternative, dipende da come è strutturato il processo main->finestre:
- utilizzare una classe statica che tiene in memoria traccia delle cose che vuoi tracciare (in questo caso il numero di tabs);
- passare alla form principale il riferimento dell'altra, in modo che la seconda possa giocarci sopra;
- definire il processo main (quello che apre le finestre) come gestore principale degli eventi delle finestre figlie.

Perdona se non ti scrivo codice, ma da dove sono ora non ho la possibilità...

Bye

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #12 il: 12 Febbraio 2008, 15:14:37 »
Nel form dove si trova la tua TabStrip vai a creare una PUBLIC SUB che ti aggiunga una tabella

PUBLIC SUB AggiungiTab()
   
  TabStrip1.Count = TabStrip1.Count + 1

END


Nel form che gestisce l'aggiunta di tabelle tramite un pulsante, metti questo codice all'interno dell'evento Click che richiamerà la sub pubblica del form (in questo esempio si chiama FormTabStrip) dove si trova la TaStrip

PUBLIC SUB TuoButton_Click()

  FormTabStrip.AggiungiTab()

END

ciau.

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #13 il: 13 Febbraio 2008, 11:02:43 »
Grazie, però non riesco a farlo funzionare..colpa mia.. allora cerco d'essere più preciso in modo da aiutarti nell'aiutarmi:oops:
io ho un FMain (un form principale) nel quale vi è un tabstrip1, ora come codice per aggiungere altri tab ho scritto:
Codice: [Seleziona]
PUBLIC SUB InsertTab()
  TabStrip1.Count = Tabstrip1.Count + 1
END

ora nel bottone del form che uso come finestra di dialogo ho provato a scrivere questo codice:
Codice: [Seleziona]
PUBLIC SUB Button1_Click()
'Collegamento alla Macro insertTab del Form main
 FormTabStrip.InsertTab()
END

Ma avviamente l'errore è li da qualche parte....:cry:

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Aggiungere pagine ad un Tabstrip via codice
« Risposta #14 il: 13 Febbraio 2008, 11:23:53 »
Citazione

Lux ha scritto:
Grazie, però non riesco a farlo funzionare..colpa mia.. allora cerco d'essere più preciso in modo da aiutarti nell'aiutarmi:oops:
io ho un FMain (un form principale) nel quale vi è un tabstrip1, ora come codice per aggiungere altri tab ho scritto:
Codice: [Seleziona]
PUBLIC SUB InsertTab()
  TabStrip1.Count = Tabstrip1.Count + 1
END

ora nel bottone del form che uso come finestra di dialogo ho provato a scrivere questo codice:
Codice: [Seleziona]
PUBLIC SUB Button1_Click()
'Collegamento alla Macro insertTab del Form main
 FormTabStrip.InsertTab()
END

Ma avviamente l'errore è li da qualche parte....:cry:


Se la form dov'è la TabStrip si chiama FMain, perché
scrivi FormTabStrip?
Deve essere:

Codice: [Seleziona]
PUBLIC SUB Button1_Click()
'Collegamento alla Macro insertTab del Form main
 FMain.InsertTab()
END


e assicurati nelle proprietà del progetto che i controlli delle form
siano PUBLIC. ciao.