Autore Topic: [RISOLTO] Creare oggetti che ereditano da altri oggetti  (Letto 906 volte)

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
[RISOLTO] Creare oggetti che ereditano da altri oggetti
« il: 23 Agosto 2009, 11:53:59 »
Lo so che il titolo non è il massimo ma arrangiatevi...:-D

Il mio problema è che voglio fare in modo che alla pressione di un button la tabstrip incrementi il numero delle sue tab....fin qui tutto bene...il problema sorge perchè vorrei che le nuove tab siano uguali alla prima che (per farmi capire) ha al suo interno una textarea...

come posso fare a fare in modo che anche le nuove tabstrip abbiano al loro interno una textarea?

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Creare oggetti che ereditano da altri oggetti
« Risposta #1 il: 24 Agosto 2009, 12:16:59 »
Ciao. Non so se si può usare l'ereditarietà in questo caso.
Ho scritto un piccolo esempio nel caso qualcun altro in futuro leggesse questo post.
Sono poche righe. Nell'esempio c'è una TabStrip iniziale
con una TextArea. Premendo il pulsante viene aggiunta
una Tab e una TextArea uguale a quella della prima Tab.
Nell'esempio ho solo copiato le proprietà x,y,w,h. Saluti.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Creare oggetti che ereditano da altri oggetti
« Risposta #2 il: 24 Agosto 2009, 13:26:44 »
Perdonami giulio ma se premo sul button il programma si blocca.

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Creare oggetti che ereditano da altri oggetti
« Risposta #3 il: 24 Agosto 2009, 16:40:10 »
Hai trovato un nuovo bug delle GTK. Io lavoro sotto KDE quindi l'esempio che ho postato
usa gb.qt. Ho selezionato gb.gtk e in effetti l'esempio va in freeze. Mah...

EDIT: ho trovato. In pratica va in loop. Mentre con le gb.qt conta solo i children
di tabstrib1[0], con gb.gtk aggiunge al conto tutte le nuove TextArea. Se metti
"PRINT hcontrol" dopo "FOR EACH hcontrol" vedi in console tutte le textarea che crea.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Creare oggetti che ereditano da altri oggetti
« Risposta #4 il: 24 Agosto 2009, 17:14:27 »
provo a vedere con le qt...tanto a me è proprio qt che serve....

se sei nella maining list puoi segnalare il bug a Benoit? oppure chiedo se può farlo Leo....

EDIT: Ti ringrazio per l'esempio...funziona e mi è stato davvero utile....

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Creare oggetti che ereditano da altri oggetti
« Risposta #5 il: 24 Agosto 2009, 17:29:43 »
Ho trovato un workaround. Basta usare TabStrip.Index. Allego esempio
funzionante con GTK. Inconvenienti: funziona solo se c'è una sola TextArea o più
precisamente replica la prima elencata dal loop FOR EACH (che quindi è inutile). con gb.qt ho replicato Tabs con 2 o 3 TextArea, ma gb.gtk alla prima interrompe il loop.
Ci sarà un workaround pure per questo, ma visto che hai una sola TextArea per ora
ci fermiamo. Considerazione finale: usate gb.qt :-)  Ciao.


EDIT: non avevo letto che ti va bene gb.qt :-)
E' bene che Leo segnali, se crede.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Creare oggetti che ereditano da altri oggetti
« Risposta #6 il: 24 Agosto 2009, 17:54:10 »
Ok grazie....entrambi i modi vanno bene....ma solo perchè sfortunatamente sono costretto ad utilizzare le qt per via dell'editor che si trova solo in gb.qt.ext.

P.S.
Per te sviluppare in qt è meglio che hai KDe ma ti immagini come è brutto per noi gtkiani avere una finestra di KDe in un ambiente gnome...brrrrrrrrr!!!!!

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Creare oggetti che ereditano da altri oggetti
« Risposta #7 il: 24 Agosto 2009, 17:59:08 »
Sì,  è vero. E' lo stesso effetto che ho io quando testo le gb.gtk. ;-)

Offline Gaspare

  • Gambero
  • **
  • Post: 68
    • Mostra profilo
Re: Creare oggetti che ereditano da altri oggetti
« Risposta #8 il: 24 Agosto 2009, 21:04:44 »
PUBLIC SUB Button1_Click()

DIM hControl AS TextArea  
   
  TabStrip1.Count = TabStrip1.Count + 1
  TabStrip1[TabStrip1.Count - 1].Caption = "Tab" & (TabStrip1.Count - 1)
 
 
  TabStrip1.Index = TabStrip1.Count - 1
  hControl = NEW TextArea(TabStrip1)
 
   
END



poi con move lo posizioni e gli dai le dimensioni volute.