Autore Topic: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel  (Letto 1219 volte)

Offline Luciano

  • Gamberetto
  • *
  • Post: 49
    • Mostra profilo
    • http://www.digitalservicedue.it
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
:giullare:  Devo Riuscire a Creare un gioco in OpenGL con Gambas !!  :giullare:

Offline Luciano

  • Gamberetto
  • *
  • Post: 49
    • Mostra profilo
    • http://www.digitalservicedue.it
Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
« Risposta #1 il: 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
:giullare:  Devo Riuscire a Creare un gioco in OpenGL con Gambas !!  :giullare:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.264
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
« Risposta #2 il: 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 
« 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 pastrank

  • Maestro Gambero
  • ****
  • Post: 265
    • Mostra profilo
Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
« Risposta #3 il: 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!

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.264
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
« Risposta #4 il: 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
« 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 pastrank

  • Maestro Gambero
  • ****
  • Post: 265
    • Mostra profilo
Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
« Risposta #5 il: 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

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.264
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
« Risposta #6 il: 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...   :-\
« 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 pastrank

  • Maestro Gambero
  • ****
  • Post: 265
    • Mostra profilo
Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
« Risposta #7 il: 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!

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.264
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Automatizzare l'assegnazione ad una variabile del contenuto TextLabel
« Risposta #8 il: 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:
« 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. »