Italian [RISOLTO] [B4X] Scambio di dati tra label

3uowiS

Active Member
Licensed User
Ciao a tutti, ho 13 panel che contengono alcuni dati nelle label, con il longClick seleziono il panel, poi premendo su un altro panel i due dovrebbero scambiarsi i dati contenuti all'interno.

B4X:
Dim Selected as Boolean

Private Sub Panel_01_LongClick
    If Selected = False Then
        pnlSelected = pnlSelPlayer_01
        pnlSelected.Visible = True
        Selected = True
    Else
        pnlSelected.Visible = False
        Selected = False
    End If
End Sub

Private Sub Panel_02_Click
    If Selected = True Then
        pnlSelected.Visible = False
        Selected = False
    Else
      
    End If
End Sub

Come vedete per adesso ho creato un panel (pnlSelected) a cui assegno i panel premuti in modo poi da diselezionarlo premendo su qualsiasi altro panel.
Adesso però mi serve di far scambiare i dati.
pensavo di fare una variabile string di appoggio a cui trasferire temporaneamente i dati quando viene fatto il longclick
B4X:
Private Sub Panel_01_LongClick

    If Selected = False Then
        pnlSelected = pnlSelPlayer_01
        pnlSelected.Visible = True
        Selected = True

        For i = 0 To 7
            strPlayerTemp(i) = strPlayer_01(i)
        Next

    Else
        pnlSelected.Visible = False
        Selected = False
    End If
End Sub

Il problema viene adesso, facendo il click di Panel_02 come faccio a dirgli che deve scrivere i dati su strPlayer_01(i), considerando che questo dipende da quale panel è stato premuto? Nel senso che questa volta è strPlayer_01(i), ma un'altra volta potrebbe essere strPlayer_03(i), ecc...mi ci vorrebbe una variabile a cui appoggiare le altre variabili come ho fatto con il panel, ma ho provato e non funziona con una string.

Mi rendo conto che è un discorso un po' contorto ma spero di essere riuscito a farmi capire... 😅
 
Last edited:

3uowiS

Active Member
Licensed User
In pratica ho provato così ma ovviamente non funziona per via della riga 9. C'è un altro modo per fare una cosa simile?

B4X:
Private Sub Panel_01_LongClick
    If Selected = False Then                    'se non è selezionato
        pnlSelPlayer = pnlSelPlayer_01            'passo il panel alla variabile pnlSelPlayer
        pnlSelPlayer.Visible = True                'imposto il panel come visibile
        Selected = True                            'imposto come selezionato
        For i = 0 To 7
            strPlayerTemp(i) = strPlayer_01(i)    'passo i dati alla variabile temporanea
        Next
        strSelPlayer = "strPlayer_01(i)"        'imposto il nome della variabile alla variabile strSelPlayer
    Else
        pnlSelPlayer.Visible = False
        Selected = False
    End If
End Sub

Private Sub Panel_02_Click
    If Selected = True Then                                                'se è selezionato
        For i = 0 To 7
            strSelPlayer = strPlayer_02(i)                            'passo i dati da questo all'altro panel
            strPlayer_02(i) = strPlayerTemp(i)                        'passo i dati dell'altro panel a questo
        Next
       
    End If
        Selected = False
        pnlSelPlayer.Visible = False                                  
    Else
       
    End If
End Sub
 

3uowiS

Active Member
Licensed User
@LucaMs mi è riuscito! 🥳🥳🥳
Sicuramente ho fatto un po' di rigiri e si potrebbe fare in maniera più semplice, ma comunque funziona! 😅
Niente, volevo solo informarti che anche questa volta grazie alle tue dritte mi sono sbloccato! Grazie di nuovo! ;)🙏
 
Top