OVH Cloud OVH Cloud

pb avec System.ComponentModel.TypeConverter

2 réponses
Avatar
Michel Lemaitre
Je souhaite sauvegarder la police de l'interface dans la base de registre
Pour l'écriture j'utilise le code :

Dim converter As System.ComponentModel.TypeConverter =
System.ComponentModel.TypeDescriptor.GetConverter(MaFonte.GetType)
Dim value
If converter.CanConvertTo(GetType(String)) Then
value = converter.ConvertToInvariantString(MaFonte)
CréerValClef(Type, Clef & "MaFonte", value)'Ma fonction d'écriture
dans le registre
End If


J'obtients dans la base de registre le String :

"Microsoft Sans Serif, 10pt"

Pour la lecture j'ai un problème avec mon code:

Dim value = LireClef(Type, Clef & "MaFonte") 'Ma fonction de lecture
dans le registre
Dim converter As System.ComponentModel.TypeConverter =
System.ComponentModel.TypeDescriptor.GetConverter(GetType(Font))
If converter.CanConvertFrom(value) Then
MaFonte = converter.ConvertFromInvariantString(LireClef(Type, Clef &
"MaFonte"))
End If

Il y a l'erreur suivante:


Je ne parviens pas à la corriger.
Merci de votre aide,
Michel Lemaitre

2 réponses

Avatar
Michel Lemaitre
Dans mon post, j'ai oublié le message d'erreur:
Unable to cast object of type 'Systeme.Dtring' to type 'Systeme.type'
(je suis sous vbnet2005)
merci de votre aide
Michel Lemaitre
Michel Lemaitre a écrit :
Je souhaite sauvegarder la police de l'interface dans la base de registre
Pour l'écriture j'utilise le code :

Dim converter As System.ComponentModel.TypeConverter =
System.ComponentModel.TypeDescriptor.GetConverter(MaFonte.GetType)
Dim value
If converter.CanConvertTo(GetType(String)) Then
value = converter.ConvertToInvariantString(MaFonte)
CréerValClef(Type, Clef & "MaFonte", value)'Ma fonction d'écriture
dans le registre
End If


J'obtients dans la base de registre le String :

"Microsoft Sans Serif, 10pt"

Pour la lecture j'ai un problème avec mon code:

Dim value = LireClef(Type, Clef & "MaFonte") 'Ma fonction de lecture
dans le registre
Dim converter As System.ComponentModel.TypeConverter =
System.ComponentModel.TypeDescriptor.GetConverter(GetType(Font))
If converter.CanConvertFrom(value) Then
MaFonte = converter.ConvertFromInvariantString(LireClef(Type, Clef &
"MaFonte"))
End If

Il y a l'erreur suivante:


Je ne parviens pas à la corriger.
Merci de votre aide,
Michel Lemaitre


Avatar
Zoury
Salut Michel ! :O)

Je n'ai pas VS2005 tester les résultats, mais le code concernant le
TypeConverter fonctionner sous VS2003..

> J'obtients dans la base de registre le String :
>
> "Microsoft Sans Serif, 10pt"
> Dim value = LireClef(Type, Clef & "MaFonte")



As-tu vérifié le contenu de "value" après la lecture ?
Efface tu la clé dans la fonction LireClef ? car tu l'appelles à deux
reprises au lieu d'employé "value" :

MaFonte = converter.ConvertFromInvariantString(LireClef(Type, Clef &


"MaFonte"))


ps : CréerValClef <- les accents dans les noms logiques ne sont
généralement pas une bonne idée..

--
Cordialement
Yanick
MVP pour Visual Basic