Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1042 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Un petit pb avec Visual Studio

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Un petit pb avec Visual Studio

n°130112
AliG
Posté le 24-04-2002 à 12:04:42  profilanswer
 

J'ai crée un bouton, lorsque je clique dessus une colorDialog s'ouvre, pour cela, j'ai fait:
 
DialogResult buttonClicked=colorDialog.ShowDialog();
 
Maintenant, je veux recuperer la couleur choisie par l'utilisateur, donc j'ai fait :
 
string color0=(colorDialog.Color).Name;
 
Le pb est que la valeur que je recupere dans color0 n'est pas toujours du meme type, bien sure, c'est toujours une string mais des fois c'est la valeur hexa qui correspond a la couleur et des fois c'est le nom de la couleur (genre "black", "green", etc...).
Je ne sais pas comment faire pour recuperer toujours le meme type de valeur.. est-ce un bug de Visual Studio? ou est ce que ca vient de mon code?
 
Merci pour votre aide :hello:

mood
Publicité
Posté le 24-04-2002 à 12:04:42  profilanswer
 

n°130148
HelloWorld
Salut tout le monde!
Posté le 24-04-2002 à 13:50:14  profilanswer
 

Je supposes que tu travail en Visual C++ ...
(Visual Studio n'est pas un langage !)
Bien que ne sachant pas ce que tu utilises, je trouve normal que la propriete Name d'une couleur te renvoit, quand c'est possible, le nom de cette couleur ...
une couleur n'est habituellement pas stockee sous la forme d'une chaine de caractere, mais sous une forme numerique ...
va dans l'aide de ta color dialog, regarde de quel type est Color et trouve une description de ce type ...
il devrait y avoir un champ donnant sa valeur ...
si tu veux tout de meme manipuler la couleur sous forme hexa, alors initialise ta chaine a partir de cette valeur a l'aide d'une fonction appropriee ... (sprintf(chaine, "%X", valeur)...)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°130152
Carbon_14
Posté le 24-04-2002 à 14:00:36  profilanswer
 

La réponse est peut-être "claire" comme "gris, rouge, vert" quand la couleur est "pure". Quand c'est un mélange, c'est le code "long" qui est retourné.
 
Au lieu de .name, il faudrait peut-être trouver un autre attribut comme .color (ou qq chose comme ça, je dis ça pour exemple) qui donnerait toujours la valeur numérique de la couleur et jamais son nom (arbitraire).

n°130183
AliG
Posté le 24-04-2002 à 14:40:29  profilanswer
 

Le pb en fait c'est que je fais du C# (pas C++... et je sais bien que VS n'est pas un langage :) ) et j'ai bien regardé mais il y a aucune proprieté qui retourne la valeur numerique de la couleur.
 
Par contre, je crois que je vais utiliser une autre méthode... je vais essayer de recuperer les proprietes R , G et B de la couleur, ensuite les convertir en hexa, puis en string et ensuite les concatener... j'espere que ca va marcher.
 
Merci de votre aide  :jap:

n°130221
Carbon_14
Posté le 24-04-2002 à 15:14:10  profilanswer
 

Si c'est "homogène", RGB((colorDialog.Color).Name) devrait donner le résultat (??). Sans se casser la tête :).
 
A vérifier, sinon, c'est une histoire de louf. Expliciter une valeur et ne pas l'admettre en paramètre, ça serait Krosoftien.

n°130259
AliG
Posté le 24-04-2002 à 15:54:06  profilanswer
 

Non , ca ne fonctionne pas  :??: ...  
 
Par contre, je suis en train d'essayer ma methode et je trouve pas de fonction qui convertisse une valeur en hexadecimal. Il y a une fonction Hex(int valeur) qui renvoie une string qui contient la valeur en hexa. Mais malheureusement cette fonction ne fonctionne qu'en VB  :( ...
 
Donc si qqu'un a une idee ou sait comment faire en C++ , parce qu'a mon avis ca doit etre pareil, n'hesitez pas!
 
Merci bcp

n°130287
Carbon_14
Posté le 24-04-2002 à 16:32:48  profilanswer
 

sprintf(szChne, "%x", valeur); a priori.  
Faut voir les indicateurs du %x si on veut forcer le nombre de zéros de la chaîne résultante.

n°130294
Carbon_14
Posté le 24-04-2002 à 16:39:12  profilanswer
 

Désolé pour le RGB() ! Vu qu'il y a trois paramètres, ça pouvait pas aller. J'avais le nez dans mes éprouvettes :sarcastic:. J'y retourne.
 
Ca aurait plutôt été atol((colorDialog.Color).Name), au cas où une valeur numérique est attribuée aux noms retournés (je rêve sans doute !)

n°130578
AliG
Posté le 25-04-2002 à 10:19:20  profilanswer
 

PFF... J'arrive toujours pas a trouver une methode (en c# ou c++) qui convertisse un int (decimal) en hexa... Quelqu'un aurait une idee?
 
Merci!

n°130820
Carbon_14
Posté le 25-04-2002 à 15:20:02  profilanswer
 

sprintf (1ère réponse HelloWorld) marche pas sous C# ?

mood
Publicité
Posté le 25-04-2002 à 15:20:02  profilanswer
 

n°130934
AliG
Posté le 25-04-2002 à 17:53:12  profilanswer
 

nope ! ...
 
Merci quand meme...

n°130944
HelloWorld
Salut tout le monde!
Posté le 25-04-2002 à 18:59:43  profilanswer
 

y'a pas stdio.h en C# ? ou du moins en C++ ?
sinon, "a la C++", c'est avec cout.
Je m'en souvien plus trop ...
c'est un truc du genre cout << hex << atol((colorDialog.Color).Name);


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°131080
AliG
Posté le 26-04-2002 à 09:39:12  profilanswer
 

Ben ... ca devrait etre possible mais je sais pas comment l'appeler. En tout cas, je pense qu'en c++ on peut utiliser stdio.h.  
 
Sinon, juste pour info, comme je trouvais pas comment convertir en hexa, j'ai trouvé une autre methode pour gerer les couleurs.
Il y a une proprieté de la classe Color qui s'appelle IsKnownColor(). Si cette proprieté est a true, je sais que je recupere le nom de la couleur sinon, je recupere la valeur en hexa.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Un petit pb avec Visual Studio

 

Sujets relatifs
[C] Pb avec une TabControl sous Visual C++Gestion de données en Visual Basic
[visual basic] - les classes et les methodes[visual basic] oû le trouver ?
[JAVASCRIPT] problème de petit pop-up redondant :(Développer en Visual C++ et exporter sur MAC OS 9.1 ?
besoin d'un petit service ...[RCH] PONG en visual basic
Manipulation de BD Access avec Visual Basic [edit : + onglets]Deplacement des fentres sous visual C++
Plus de sujets relatifs à : Un petit pb avec Visual Studio


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR