Autore Topic: Aggiornare il contenuto di una linguetta TabStrip  (Letto 1582 volte)

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Aggiornare il contenuto di una linguetta TabStrip
« Risposta #15 il: 15 Luglio 2014, 15:06:42 »
Relativamente alle istruzioni suggerite
1. da vuott: oObj1.Picture = Picture.Load(vPictureLoad) 

2.  da sotema: Object.SetProperty(oObj1, "Picture", Picture.Load(vPictureLoad)) 

vi confermo che funzionano entrambi. Per completezza riporto la riga di dichiarazione della Dim...variant:
Codice: [Seleziona]
Dim vPictureLoad As Variant = user.home & "/mont/dativari/Gambas3/Gambas3_Progetti/Gambas_progetti.miei/TestDbContabFam/draw-eraser.png"

Ora va tutto bene.

credo anche che, per semplificare il codice, tu possa scrivere:

Codice: gambas [Seleziona]

Dim oObj As Object
...
For Each oObj In Me.Children   
  Select Case oObj.Name
    Case "Label15"
          Object.SetProperty(oObj, "Text", "R E C O R D S    C A N C E L L A T I") 
...
  End Select
Next


Codesto codice invece non funziona, perchè considera solamente gli oggetti a livello elementare contenuti nella Form; quindi,
 TabSchede senza tutti i livelli sottostanti, partire dalle linguette aggiunte durante l'esecuzione del programma,
PulsAnnull
per quanto riguarda la picture:
Codice: gambas [Seleziona]
Dim vPictureLoad As String = User.Home &/ "mont/dativari/Gambas3/Gambas3_Progetti/Gambas_progetti.miei/TestDbContabFam/draw-eraser.png""
 ...
    Case "pic1"
          Object.SetProperty(oObj, "Picture", Picture.Load(vPictureLoad))


tieni presente che la variabile User.Home viene tradotta nel percorso della home dell'utente, ma se la inserisci all' interno di una stringa non viene tradotta:
User.Home = /home/emanuele
"User.Home" = User.Home

[/quote]

...scusa mi sono corretto in ritardo ...For Each oObj In Me.Controls
 :-[
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Aggiornare il contenuto di una linguetta TabStrip
« Risposta #16 il: 15 Luglio 2014, 15:22:15 »
Relativamente alle istruzioni suggerite
1. da vuott: oObj1.Picture = Picture.Load(vPictureLoad) 

2.  da sotema: Object.SetProperty(oObj1, "Picture", Picture.Load(vPictureLoad)) 
[/quote]

vi confermo che funzionano entrambi. Per completezza riporto la riga di dichiarazione della Dim...variant:
Codice: [Seleziona]
Dim vPictureLoad As Variant = user.home & "/mont/dativari/Gambas3/Gambas3_Progetti/Gambas_progetti.miei/TestDbContabFam/draw-eraser.png"

Ora va tutto bene.

credo anche che, per semplificare il codice, tu possa scrivere:

Codice: gambas [Seleziona]

Dim oObj As Object
...
For Each oObj In Me.Children   
  Select Case oObj.Name
    Case "Label15"
          Object.SetProperty(oObj, "Text", "R E C O R D S    C A N C E L L A T I") 
...
  End Select
Next


Codesto codice invece non funziona, perchè considera solamente gli oggetti figli della Form; quindi,
 TabSchede senza tutti i livelli sottostanti, a partire dalle linguette aggiunte durante l'esecuzione del programma,
 PulsAnnull
  PulsLeggiNext
  PulsCancMov

Vengono ignorati e quindi non interrogati tutti i livelli discendenti di  TabSchede. Pertanto, non posso semplificare, anche se mi piacerebbe, il codice che sono riuscito a scrivere in maniera definita ieri, grazie al Vostro preziosissimo aiuto.
 :ciao:

:ciao:

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Aggiornare il contenuto di una linguetta TabStrip
« Risposta #17 il: 15 Luglio 2014, 15:40:19 »

Codice: gambas [Seleziona]

Dim oObj As Object
...
For Each oObj In Me.Children   
  Select Case oObj.Name
    Case "Label15"
          Object.SetProperty(oObj, "Text", "R E C O R D S    C A N C E L L A T I") 
...
  End Select
Next


Codesto codice invece non funziona, perchè considera solamente gli oggetti figli della Form; quindi,
 TabSchede senza tutti i livelli sottostanti, a partire dalle linguette aggiunte durante l'esecuzione del programma,
 PulsAnnull
  PulsLeggiNext
  PulsCancMov

Vengono ignorati e quindi non interrogati tutti i livelli discendenti di  TabSchede. Pertanto, non posso semplificare, anche se mi piacerebbe, il codice che sono riuscito a scrivere in maniera definita ieri, grazie al Vostro preziosissimo aiuto.
 :ciao:


[/quote]

sostituisci la prima riga del ciclo For Each con:
Codice: [Seleziona]
For Each oObj In Me.Controls

e funziona. Scusa l'errore.  :-[
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Aggiornare il contenuto di una linguetta TabStrip
« Risposta #18 il: 15 Luglio 2014, 19:20:15 »
@ sotema:

ho provato :
Codice: [Seleziona]
 For Each oObj In Me.Controls
    Select Case oObj.Name 
            Case "Label15" 
              Object.SetProperty(oObj, "Text", "R E C O R D S    C A N C E L L A T I")   
    End Select 
  Next 

Si, funziona, ma, come ho capito leggendo il codice, vengono modificate le Label15.Text contenute in tutte le linguette della TabStrip.
Dobbiamo sempre tenere presente che le modifiche riguardano esclusivamente le linguette dentro le quali viene premuto il botton PulsCancMov, quindi va benissimo quanto già definito precedentemente.

Comunque grazie! Sei stato di grandissimo aiuto. Inoltre il tuo ultimo suggerimento potrebbe sempre tornare utile in una prossima occasione, ed in ogni caso, non solo a me.
 :D  :ciao:
:ciao: