Autore Topic: Trasformare string in object  (Letto 1664 volte)

  • Visitatore
Trasformare string in object
« il: 11 Giugno 2008, 23:32:21 »
Buonasera a tutti ...

sto impazzendo dietro a questa cosa :

  DIM item AS String
  DIM pulsante AS object
 
  FOR EACH item IN ......
 
  pulsante = "fmain." & item  '<<<<<< mi dice che non può essere una string .....
  pulsante = fmain.a2         '<<<<<< così invece gli và bene
  pulsante.Visible = TRUE
  pulsante.Picture = Picture[base &/ "icona.png"]

com'e' che si fa ????

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Trasformare string in object
« Risposta #1 il: 12 Giugno 2008, 16:27:04 »
Ma cos'è che devi fare, esattamente? A cosa ti serve questo passaggio?
Dal tuo sintetico esempio non si capisce molto...  :uhm:
Visita il mio sito personale: http://www.leonardomiliani.com

  • Visitatore
Re: Trasformare string in object
« Risposta #2 il: 12 Giugno 2008, 18:59:38 »
Oky ... mi spiego sempre male effettivamente mea culpa

Nel caso specifico ho un tot di pulsanti in un form con un nome tipo a1, a2 , a3 ( già creati ma "invisibili")
Ho un tot di cartelle con nome a2 , a3 ecc ecc
Dentro le cartelle ho un icona ( e avro un bash script, ma andiamo troppo oltre ) che associerò al pulsante.
Se il loop mi trova la cartella faccio il tutto.

Ho fatto la prova con una singola cartella :

pulsante = fmain.a2  

e funziona ( perchè non dovrebbe ? )

quando voglio sfruttare la "item" del loop :

pulsante = "fmain." & item

mi dice che "pulsante" è una string e non un object ( effettivamente ha ragione, chi può dargli torto ? )

Quello che chiedo io è : come faccio a imbrogliarlo e a fargli interpretare la string ???? Ho vagato inutilmente per la guida senza trovare lumi .... o forse non sono riuscito ad accendere quelli che ho trovato ( quelli dove spiegano la funzione NEW non sono riuscito ad adattarli al mio scopo )


In generale comunque mi son trovato più di una volta difronte al problema di dover settare un qualsiasi oggetto del form in un object ( magari per rendere una SUB universale ) trovandomi sempre difronte allo stesso errore/problema.

Grazie Grazie ( ringrazio perchè so già che in 30 secondi mi darai la risposta sorridendo alla mia incapacità  ) :-)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Trasformare string in object
« Risposta #3 il: 12 Giugno 2008, 22:09:24 »
guarda questo post

http://www.gambas-it.org/gmbs/modules/newbb/viewtopic.php?topic_id=204&forum=2

l' esempio postato da giuglio opportunamente modificato dovrebbe fare al caso tuo

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Trasformare string in object
« Risposta #4 il: 12 Giugno 2008, 22:44:44 »
Esatto.
Gli oggetti, per essere manipolati, vanno creati dinamicamente via codice. In questo modo Gambas permette di gestirli come si vuole.
Visita il mio sito personale: http://www.leonardomiliani.com

  • Visitatore
Re: Trasformare string in object
« Risposta #5 il: 12 Giugno 2008, 23:51:28 »
Non ho ancora , pur avendo guardato l'esempio, come posso fare a crearmi un nome pulsante "composito" utilizzando due string  :cry: ...... sull'esempio di giulio c'e' tutto quello che avevo già capito come fare .....

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Trasformare string in object
« Risposta #6 il: 13 Giugno 2008, 16:19:37 »
Ciao giac_fab.

Sarebbe utile per noi che tu allegassi un piccolo progetto,
proprio minimale (una form e qualche bottone) che riproduca
la tua necessità. Per gli utenti del forum così sarà più
facile cercare la soluzione, potendosi basare su un codice comune :-)

Ciao.

  • Visitatore
Re: Trasformare string in object
« Risposta #7 il: 22 Giugno 2008, 15:50:11 »
Ciao ...

La mia domanda è banalissima, la stiamo complicando per niente .....

esempio :

ho 2 Textbox

Textbox1
Textbox2

Io voglio fare una sub comune da utilizzare o per una o per l'altra ( non ditemi che ci sono altri sistemi ecc ecc )

quindi voglio poter fare una cosa così

dim XXXXX as object

XXXXX = "Textbox" & x

XXXXX.text = "ambarabacicicoco"

Gambas mi dice che "XXXXX" non può essere una string ....

NdLeo72:
ma c'era bisogno di usare min... come nome di variabile?
 :nono:

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Trasformare string in object
« Risposta #8 il: 22 Giugno 2008, 23:09:39 »
Ho ripensato al tuo problema.
Forse può esserti d'aiuto questo codice?
Codice: [Seleziona]

DIM Oggetto AS TextBox
DIM ListaOggetti AS NEW Object[]
DIM I AS Integer

  FOR I = 0 to 1
    Oggetto = NEW TextBox(ME)
    Oggetto.Text = "TextBox" & Cstr(I)
    ListaOggetti.Add(Oggetto)
  NEXT

Adesso hai in ListaOggetti i tuoi 2 TextBox

Alternativamente, puoi crearli a livello di IDE e dargli lo stesso gruppo (proprietà Group) e poi accedere nella routine di gestione di un evento (ad esempio l'evento LostFocus oppure Change) al TextBox che ha generato l'evento con LAST:
Codice: [Seleziona]

PUBLIC SUB txtTesto_LostFocus()
  Message(LAST.Name)
END
Visita il mio sito personale: http://www.leonardomiliani.com

  • Visitatore
Re: Trasformare string in object
« Risposta #9 il: 06 Luglio 2008, 19:49:54 »
Mi è capitato il problema così adesso ho l'esempio specifico .

Ho in un form 3 serie di checkbox, che ho chiamato
scrittura1
scrittura2
....
lettura1
lettura2
...
esecuzione1
esecuzione2
....

PUBLIC SUB verifica(dato AS String, quale AS Integer)
IF quale = 1 THEN
lettura = lettura1
scrittura = scrittura1
esecuzione = esecuzione1
ELSE IF quale = 2 THEN
lettura = lettura2
scrittura = scrittura2
esecuzione = esecuzione2
ELSE IF quale = 3 THEN
lettura = lettura3
scrittura = scrittura3
esecuzione = esecuzione3
ENDIF

  IF dato LIKE "*r*" THEN lettura.value = -1
  IF dato LIKE "*w*" THEN scrittura.value = -1
  IF dato LIKE "*x*" THEN esecuzione.value = -1

se avessi la possibilità di fare

lettura = "lettura" & quale
scrittura = "scrittura" & quale
esecuzione = "esecuzione" & quale

avrei avuto 1/3 del codice per settarmi gli oggetti .....

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Trasformare string in object
« Risposta #10 il: 08 Luglio 2008, 11:31:37 »
hai provato:

lettura.name = "lettura" & quale

?

ciao