French sender renvoie un tag null

alan1968

Active Member
Licensed User
Longtime User
Bonjour,

Dans mon projet en cours j'ai un petit soucis avec la création de label en dynamique quand je clique sur le label je reçois un tag "null"

voici le bout de code qui me pose probleme
Sub Globals
Type accessoire (data(20) As String)
Dim label_projet(50) As accessoire
Dim panel1 As Panel
Dim panel2 As Panel
Dim change As Boolean
Dim ct1 As CustomToast
Dim btnGRILLE(1200) As Label
Dim blkcolor(1200) As Int
Dim labelprojet(50) As Label
Dim blccolor As Int
Dim selection As Int
blccolor=Colors.White
Dim data_tmp(20) As EditText
Dim index_label As Int

.....

.....

Sub creerlabel
index_label=index_label+1
labelprojet(index_label).Initialize ("LabelProjet")
labelprojet(index_label).Text=data_tmp(0).Text & "-" & index_label
labelprojet(index_label).TextColor=data_tmp(5).Text
labelprojet(index_label).Color=data_tmp(6).Text
labelprojet(index_label).TextSize=data_tmp(7).Text

'affiche le label
panel1.AddView(labelprojet(index_label), data_tmp(2).Text,data_tmp(1).Text, data_tmp(3).Text,data_tmp(4).Text)
'enregisre data
label_projet(index_label).Initialize
For i=0 To 7
label_projet(index_label).data(i)=data_tmp(i).Text
Next
panel2.RemoveView
change= True
End Sub

Sub LabelProjet_click
Dim LabelSelect As Label
LabelSelect = Sender
ToastMessageShow(labelSelect.Tag,True)
End Sub

merci !

et meilleurs voeux pour 2012 à toute l'equipe de B4A !!
 
Last edited:

klaus

Expert
Licensed User
Longtime User
Dim labelprojet(50) As Label
ne sert à rien.
La routine doit être comme suit:
B4X:
Sub creerlabel
    index_label=index_label+1
    Dim lbl As Label
    lbl.Initialize ("LabelProjet")
    lbl.Text=data_tmp(0).Text & "-" & index_label
    lbl.TextColor=data_tmp(5).Tex t
    lbl.Color=data_tmp(6).Text
    lbl.TextSize=data_tmp(7).Text
    lbl.Tag = index_label

    'affiche le label
    panel1.AddView(labelprojet(index_label), data_tmp(2).Text,data_tmp(1).Text, data_tmp(3).Text,data_tmp(4).Text)
    'enregisre data
    label_projet(index_label).Initialize
    For i=0 To 7
        label_projet(index_label).data(i)=data_tmp(i).Text
    Next
    panel2.RemoveView    '?????
    change= True
End Sub
Il est nécessaire de déclarer chaque nouveau Label avec un Dim pour générer une nouvelle instance.
Il faut définir expressément la propriété Tag.

Meilleures salutations et Bonne Année
 
Top