Type d'objet

Résolu
cs_Talere Messages postés 102 Date d'inscription vendredi 29 mars 2002 Statut Membre Dernière intervention 14 février 2013 - 21 nov. 2005 à 12:18
cs_Talere Messages postés 102 Date d'inscription vendredi 29 mars 2002 Statut Membre Dernière intervention 14 février 2013 - 21 nov. 2005 à 12:25
Bonjour,

Je suis en train de réaliser une boite d'options et lorsque je quitte ma fenetre, je parcours l'ensemble des items de celle ci et j'enregistre dans la base de registre (les données que je veux sauvegardé ont la propriété "Tag" définissant la clé du registre).

lorsque je restitue les résultats, je fais le chemin inverse sauf que certains objets, c'est dans l'attribut "Value", d'autres dans "text", et encore d'autres dans "Caption". Ma question est : "Y'a-t-il un moyen de retrouver le type d'objet ?

Private Sub Cmd_Appliquer_Click()
Dim mon_shape As Variant
For Each mon_shape In Me
If mon_shape.Tag <> "" Then
SaveSetting "ART", "Options", mon_shape.Tag, mon_shape
End If
Next mon_shape
End Sub


Private Sub Form_Load()
Dim mon_shape As Variant
For Each mon_shape In Me
If mon_shape.Tag <> "" Then
nom_cle = mon_shape.Tag
Select Case VarType(variable)' <- c'est là que je cherche
Case 1
mon_shape.Value = GetSetting("ART", "Options", nom_cle)
Case 2
mon_shape.Text = GetSetting("ART", "Options", nom_cle)
Case 3
mon_shape.Caption = GetSetting("ART", "Options", nom_cle)
End If
End If
Next mon_shape
End Sub

Merci pour votre aide,

TALERE

1 réponse

cs_Talere Messages postés 102 Date d'inscription vendredi 29 mars 2002 Statut Membre Dernière intervention 14 février 2013
21 nov. 2005 à 12:25
En fait, j'ai trouvé une astuce, il suffit de déclarer mon shape en "object" et non en "variant", ce qui permet d'utiliser directement la propriété par défaut et non l'assignation directe:

Dim mon_shape As Object
For Each mon_shape In Me
If mon_shape.Tag <> "" Then
mon_shape = GetSetting("ART", "Options", mon_shape.Tag)
End If
Next mon_shape

et ça a l'air de marcher
3
Rejoignez-nous