Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Luciano - 29 Ottobre 2011, 10:50:52

Titolo: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
Inserito da: Luciano - 29 Ottobre 2011, 10:50:52
Salve ragazzi, dopo mesi ekkomi dinuovo in cerca di aiuto :P

Ho bisogno di sapere come fare in Gambas a recuperare in automatico i valori da una serie di Textlabel.. faccio l'esempio che usavo in VisualBasic:

For i =1 to 100
TextLabel.text = Valore$(i)
Next i

In gambas non posso convertire il TextLabel in una serie array.. quindi come faccio?
Grazie mille
Titolo: Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
Inserito da: Luciano - 30 Ottobre 2011, 12:08:17
RISOLTO - in VB6 gli oggetti "clonati" nel form automaticamente venivano creati come array tipo Text1[n].text in Gambas in un altro post riportava questa soluzione:

PUBLIC SUB Form_Open()
  DIM tips AS NEW Object[]
  DIM i, i_tips, tips_y AS Integer
  i_tips = 5
 
  FOR i = 0 TO i_tips
    tips.Add(Label, i)
    tips = NEW Label(ME)
   
    WITH tips
      .X = 10
      .Y = tips_y
      .width = 100
      .height = 20
      .text = "Abc " & i
    END WITH
   
    tips_y += 30
  NEXT
END
Titolo: Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
Inserito da: vuott - 17 Novembre 2013, 20:45:59
Mah.... se vuoi recuperare il testo da Textlabel presenti sul Form, puoi fare anche così :-\  (se ci sono soltanto TextLabel): 
Codice: gambas [Seleziona]

Public Sub Form_Open()

  Dim tl As TextLabel
  Dim s As String
 
    For Each tl In FMain.Children
      s = tl.Text
    Next
       
End 
Titolo: Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
Inserito da: pastrank - 18 Novembre 2013, 12:40:43
Codice: gambas [Seleziona]

    For Each tl In FMain.Children
      s = tl.Text
    Next


Eh no, qui riassegni sempre il valore della variabile s, quindi avrai sempre il valore dell'ultima textbox  :D
Dovrebbe prima creare l'array, poi ad ogni indice dell'array assegnare il valore di tl.text: a parte che anche il suo esempio non recuperava, ma assegnava, i valori alle textbox, quindi non so piu' chi e cosa!
Titolo: Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
Inserito da: vuott - 18 Novembre 2013, 14:46:15

Eh no, qui riassegni sempre il valore della variabile s, quindi avrai sempre il valore dell'ultima textbox  :D

Hai ragione.
Avevo utilizzato nel codice a parte di prova un Print per mostrare in console il valore della TextBox:
Codice: gambas [Seleziona]

For Each tl In FMain.Children  
     s = tl.Text
     Print s
   Next  

e poi qui ho dimenticato di riportarlo.
Mi ha assorbito completamente la preoccupzione di mostrare la semplificazione della raccolta dei valori mediante quel semplice ciclo For Each...Next.

Ma è evidente che neppure questa soluzione col Print è utile a conservare quei valori delle TextBox, e pertanto - come hai giustamente rilevato - è necessario l'intervento, ad esempio, di una variabile vettoriale.
Riporto di seguito, dunque, il codice corretto:
Codice: gambas [Seleziona]
Public Sub Form_Open()  
  
 Dim tl As TextLabel  
 Dim ss As New String[]
  
   For Each tl In FMain.Children  
     ss.Add(tl.Text)
   Next  
        
End
Titolo: Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
Inserito da: pastrank - 18 Novembre 2013, 21:32:34
ho dimenticato di riportarlo.

Ci sono diversi miei post originali su usenet dove io dimentico la domanda. Tipo "ho una routine fatta in questo modo, che ho sistemato in un altro, grazie"  :D
Titolo: Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
Inserito da: vuott - 18 Novembre 2013, 23:37:27
Ci sono diversi miei post originali su usenet dove io dimentico la domanda. Tipo "ho una routine fatta in questo modo, che ho sistemato in un altro, grazie"  :D

Non capisco...   :-\
Titolo: Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
Inserito da: pastrank - 18 Novembre 2013, 23:58:48
Non capisco...   :-\
L'errore nella routine era chiaro che era una dimenticanza, ero solo a dire che succede spesso anche me!
Titolo: Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
Inserito da: vuott - 19 Novembre 2013, 00:03:59
... ero solo a dire che succede spesso anche me!

Sì, può capitare. Soprattutto se si è concentrati su un particolare obiettivo.
 :ciao: