Gambas-it

Gambas3 => Programmazione => Topic aperto da: 9bit - 21 Aprile 2013, 17:00:40

Titolo: [Risolto] Creare più oggetti del medesimo tipo senza variabile array
Inserito da: 9bit - 21 Aprile 2013, 17:00:40
Come da guida (dal WIKI) il codice riportato di seguito mi crea 4 "button" e 4 "label",
e qui non c'è nessun problema, in quanto mi dice se ho fatto click sul primo
button o sulla prima label ecc. È mi è molto utile.

Però avrei la necessita di sapere come fare pur cliccando su un solo button o label
cambiare le proprietà ".text"

Spero che sia chiaro quello che ho scritto.
Ho dato un'occhiata al WIKI ma non c'ho capito niente.  :hard: :hard: :hard: :hard: :hatecomputer: :hatecomputer:

Codice: [Seleziona]
Public Sub Form_Open()

Dim j As Byte
 Dim t As Button
 Dim p As Byte
 Dim L As Label

 
   For j = 0 To 3
      t = New Button(Me) As "T"
        With t
       .X = (10)
       .Y = 1 + (50 * j)
       .W = 60  
       .H = 30
       .Text = "9Bit"
       .Name = Str(j)  ' identifichiamo univocamente l'oggetto appena creato
      
       End With
   Next
  
    For p = 0 To 3
       L = New Label(Me) As "D"
        With L
       .X = 90
       .Y = 1 + (50 * p)
       .W = 60  
       .H = 30
       .Text = "9Bit"
       .Name = Str(p)  ' identifichiamo univocamente l'oggetto appena creato
      
     End With  
    Next
End

Public Sub T_Click()

  Print "Hai premuto il tasto n. " & Last.Name

End

Public Sub D_DblClick()

   Print "Hai fatto doppio click sulla label n. " & Last.Name

End
Titolo: Re: Creare più oggetti del medesimo tipo senza variabile array
Inserito da: simo97 - 21 Aprile 2013, 17:14:14
vediamo se ho capito...

con quel codice ti crea 4 pulsanti e 4 label
e a te serve cambiare il testo dei 4 label/pulsante con un solo pulsante/label

ciò preso???

Titolo: Re: Creare più oggetti del medesimo tipo senza variabile array
Inserito da: 9bit - 21 Aprile 2013, 18:27:32
Yes!!!
Titolo: Re: Creare più oggetti del medesimo tipo senza variabile array
Inserito da: vuott - 21 Aprile 2013, 19:18:13
Io non ho molto capito cosa intendi dire con:

cambiare il testo dei 4 label/pulsante con un solo pulsante/label
Titolo: Re: Creare più oggetti del medesimo tipo senza variabile array
Inserito da: 9bit - 21 Aprile 2013, 19:27:46
Quando avvio il programma voglio cambiare il nome ai pulsanti facendo click su uno
dei quattro, idem con le label
Titolo: Re: Creare più oggetti del medesimo tipo senza variabile array
Inserito da: vuott - 21 Aprile 2013, 20:06:22
Quando avvio il programma voglio cambiare il nome ai pulsanti facendo click su uno dei quattro, idem con le label
A mio avviso devi individuare i Button, in quanto Children del contenitore ove sono posizionati. Quindi cambiargli il testo.... una cosa più o meno così:
Codice: gambas [Seleziona]

Public Sub T_Click()

  Dim o As Object
  Dim b As Byte

' Per ogni oggetto "figlio" della finestra principale:
  For Each o In FMain.Children
' Se il tipo di oggetto è un "Button"...
    If Object.Type(o) = "Button" Then
' allora gli cambio il testo:
      o.Text = Object.Type(o) & CStr(b)
    Endif
    Inc b
  Next

End
Titolo: Re: Creare più oggetti del medesimo tipo senza variabile array
Inserito da: 9bit - 21 Aprile 2013, 20:28:23
Ho risolto con il tuo consiglio, modificando però:
Codice: [Seleziona]
"o.Text = Object.Type(o) & b
con questo:
Codice: [Seleziona]
o.Text = "Prova"
Codice: [Seleziona]
 Dim o As Object  
 Dim b As Byte  
  
 For Each o In FMain.Children  
' Se il tipo di oggetto è un "Button"...  
   If Object.Type(o) = "Button" Then  
' allora gli cambio il testo:  
     o.Text = "Prova"
   Endif  
   Inc b  
 Next  
a tutti Grazie 10000000000  :2birre: :coder:
Titolo: Re: [Risolto] Creare più oggetti del medesimo tipo senza variabile array
Inserito da: simo97 - 21 Aprile 2013, 22:59:11
di nulla :ok: