Recupération de couleur VB dans un INI : fonctionne pas

cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011 - 25 sept. 2009 à 19:08
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 26 sept. 2009 à 09:54
Bonjour,

Je récupère des couleurs sous le format '&H00000000&' dans un fichier ini mais vb n'arrive pas à s'en servir...
Il me dit 'type incompatible'

OK, il faut donc que je les convertisse, mais je ne sait pas comment, ni en quoi...
Si jamais quelqu'un a une sctite fonction qui traine...

Merci !

Guillaume

13 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
25 sept. 2009 à 19:46
Avec CInt, tu dois retirer le & final.
---
VB.NET is good ... VB6 is better
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
25 sept. 2009 à 20:34
J'ai essayer en faisans la fonction suivante mais ça plante : "dépassement de capacité"...

Function HexColorToIntColor(HexColor As String) As Integer
    MsgBox Left$(HexColor, 10)
    HexColorToIntColor = CInt(Left$(HexColor, 10))
End Function


Guillaume
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
25 sept. 2009 à 20:41
EN VB6, les couleurs doivent être traitées comme des Long et doivent obligatoirement être inférieures ou égales à la valeur &H00FFFFFF&

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
25 sept. 2009 à 20:41
J'ai aussi essayé en enlevant le "&H" du début mais ce n'est pas encore ça...


Guillaume
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
25 sept. 2009 à 21:21
Ok je veut bien...

Mais euh... Je ne sait quand mème pas par où commencer pour obtenir un long...

Guillaume
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
25 sept. 2009 à 21:48
Oh désolé en testant j'ai utilisé CInt en oubliant que c'était une couleur que tu voulais convertir. Utilise donc CLng ...
---
VB.NET is good ... VB6 is better
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
25 sept. 2009 à 21:58
Dim toto As Long
toto = Val("&H8080FF&")
MsgBox toto
toto = CLng(&H8080FF)
MsgBox toto
toto = &H8080FF
MsgBox toto
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
25 sept. 2009 à 22:12
Depuis quand on utilise encore Var ? Ca date de Basic, vaudrait mieux oublier cette fonction ! Maintenant il y a les fonctions CType. Je précise que ces fonctions peuvent prendre une chaine contenant la représentation hexa d'un nombre et le convertir correctement. Parce que quand tu appelles une fonction avec le paramètre &h13, lors de la compilation, ça passera comme un entier normal (tu peux exprimer les nombres en VB d'au moins 2 façons différentes en VB6). Exemple : ceci fonctionnera et affichera 19 :
Dim valeur As Long
valeur = CLng("&h13")
MsgBox valeur
---
VB.NET is good ... VB6 is better
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
25 sept. 2009 à 22:35
Bonsoir, ghuysmans99

Depuis quand ? ===>> depuis que VB existe !

Et alors ?

http://support.microsoft.com/kb/161304/fr
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
25 sept. 2009 à 22:52
Yes merci à toi jmf0 !!!

Val fonctione !

Par contre clong me donne un type incompatible, mais maintenant grace à val tout roule !

Merci aussi à tous les autres !

Guillaume
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
26 sept. 2009 à 08:50
CLng fonctionne quand on retire le & final.

---
VB.NET is good ... VB6 is better
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
26 sept. 2009 à 09:31
Tu ne crois pas, ghuysmans99, que l'utilistion de Val (celle, d'ailleurs, que préconise Microsoft) est parfaitement adaptée à la transposition recherchée ?
C'est, je te le rappelle, une chaîne de caractères qui est extraite ! L'utiliser telle quelle sera toujours moins lourd que de la tronquer de son dernier caractère pour pouvoir utiliser un Clng ...
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
26 sept. 2009 à 09:54
Là je suis d'accord avec toi, d'autant plus que les fonctions de manipulations de chaines en VB ne sont pas très rapides ! Et c'est quand même bizarre que CLng ne prennent pas le & final, alors que Val le prend ...
---
VB.NET is good ... VB6 is better
0
Rejoignez-nous