cs_thebigboss
Messages postés216Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention12 avril 2017
-
11 déc. 2005 à 00:43
cs_thebigboss
Messages postés216Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention12 avril 2017
-
12 déc. 2005 à 12:04
Salut,
voilà j'aimerai sauvegarder l'apparence de mon projet dans un fichier .ini. J'y suis arrivé grace à une class récupérée sur le forum (merci).
Le probleme c'est que cette classe me retourne une string (normal) mais moi je voudrais la convertir en couleur.
J'ai essayé:
this.BackColor= file.GetValue("MainForm","BackColor");
mais j'ai bien entendu un message d'erreur:
"Cannot convert type 'string' to 'system.Drawing.Color'"
j'ai alors tenté sans succes un:
this. BackColor =(system.Drawing.Color) file.GetValue("MainForm","BackColor");
mais j'ai exactement la même erreur.
petite précision qui n'a pas la moindre importance car le probleme apparait à la compilation, mais bon dans mon fichier .ini j'ai ça:
[MainForm]
BackColor=Color [Window]
je precise cette information car je pense que je vais avoir du mal à convertir ça en couleur et pourtant j'enregistre mon .ini comme suit:
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 11 déc. 2005 à 01:03
Salut,
Utilise Color.FromName avec le nom situé entre [] si il s'agit d'une couleur connue (voir KnownColor)
Dans le cas d'une couleur quelconque, la chaine sera de cette forme là : " Color [A=xx R=xx G=xx B=xx]"
A toi de récupérer les valeurs et d'utiliser ensuite Color.FromArgb.
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 11 déc. 2005 à 10:24
Sauf que l'utilisation de la couleur "connue" permet de suivre les évolutions du choix de l'utilisateur au niveau global, alors que si tu sauvegardes uniquement le argb tu restes sur une couleur fixe.
C'est donc une question de choix.
Enfin le mieux serait probablement de sérialiser l'instance de Color, mais dans du ini c'est pas terrible.
cs_thebigboss
Messages postés216Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention12 avril 20172 11 déc. 2005 à 11:50
merci pour vos reponses.
J'ai une autre question:
J'ai un menu contextuel dans lequel je peux choisir le changer la couleur d'un objet (grace à l'objet ColorDialog). Le probleme c'est que je n'arrive pas à savoir sur quel objet l'utilisateur a appelé le menu contextuel doncje ne peux pas changer la couleur de cet objet.
Je ne sais pas si c'est clair. En gros pour simplifier, disons que j'ai un TextBox et un Bouton, les deux appellent le meme menu contextuel. Dans ce menu je peux choisir de changer la couleur de backcolor. Le probleme c'est que la fonction me permet de savoir qui a généré l'appelle de cette fonction grace à "sender". Mais sender c'est toujours l'item de mon menu contextuel pas l'objet sur lequel a été appelé mon menu.
(est-ce vraiment plus clair??? pas sur).
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_thebigboss
Messages postés216Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention12 avril 20172 11 déc. 2005 à 22:33
On dit généralement pas de nouvelle bonne nouvelle, mais dans mon cas il semblerait que la chose soit infaisable sinon je pense que j'aurai déjà eu quelques réponses...