Autore Topic: [Risolto] Creare più oggetti del medesimo tipo senza variabile array  (Letto 1132 volte)

Offline 9bit

  • Grande Gambero
  • ***
  • Post: 191
    • Mostra profilo
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
« Ultima modifica: 21 Aprile 2013, 20:29:14 da 9Bit »

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: Creare più oggetti del medesimo tipo senza variabile array
« Risposta #1 il: 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???

;D

Offline 9bit

  • Grande Gambero
  • ***
  • Post: 191
    • Mostra profilo
Re: Creare più oggetti del medesimo tipo senza variabile array
« Risposta #2 il: 21 Aprile 2013, 18:27:32 »
Yes!!!

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Creare più oggetti del medesimo tipo senza variabile array
« Risposta #3 il: 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
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline 9bit

  • Grande Gambero
  • ***
  • Post: 191
    • Mostra profilo
Re: Creare più oggetti del medesimo tipo senza variabile array
« Risposta #4 il: 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

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Creare più oggetti del medesimo tipo senza variabile array
« Risposta #5 il: 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
« Ultima modifica: 21 Aprile 2013, 23:39:44 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline 9bit

  • Grande Gambero
  • ***
  • Post: 191
    • Mostra profilo
Re: Creare più oggetti del medesimo tipo senza variabile array
« Risposta #6 il: 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:
« Ultima modifica: 21 Aprile 2013, 20:47:00 da 9Bit »

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: [Risolto] Creare più oggetti del medesimo tipo senza variabile array
« Risposta #7 il: 21 Aprile 2013, 22:59:11 »
di nulla :ok:
;D