IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Valeur d'un TColor en Hexadécimal


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 4
    Par défaut Valeur d'un TColor en Hexadécimal
    Bonjour

    Je cherche à trouver la valeur hexadécimal d'une constante TColor et affecter la propriété Color d'un bouton de cette valeur. Un peux comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Button1.Color:= ColorToHex(clInactiveCaptionText);
    Bien sur ColorToHex( n'existe pas, mais pouvez vous m'aider svp...

    Merci beaucoup

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    utilise intToHex, un TColor est un int
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    euh, Button1.Color:=clInactiveCaptionText; marche bien !
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 4
    Par défaut
    Désoler, je vais tenté de mieux m'expliquer.

    En fait je peux me servir de la constante clInactiveCaptionText, mais le problème est que cette couleur change selon les setting de windows. Donc je veux trouver le code Ex: $00FF2299 de cette couleur pour l'affecter à la propriété.

    Voiçi un exemple de mon code, bien sur il n'est pas fonctionnel, mais cela peux vous donner une piste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Var R, G, B: Integer;
          sColor : String;
    Begin
      PnSaisieRepartition.Color:= clInactiveCaptionText;
      R:= GetRValue(PnSaisieRepartition.Color);
      G:= GetGValue(PnSaisieRepartition.Color);
      B:= GetBValue(PnSaisieRepartition.Color);
      sColor:= (IntToHex(R, 2) + IntToHex(G, 2) + IntToHex(B, 2));
      PnSaisieRepartition.Color  := $00 + StrToInt(sColor);
     
    End;
    Merci pour l'aide

  5. #5
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Tu veux connaitre la valeur Hexa de clInactiveCaptionText ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Showmessage(inttoHex(clInactiveCaptionText,8));
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  6. #6
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Salut

    J'avoue ne pas comprendre...
    Comme tourlourou, je dirais que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Button1.Color:=clInactiveCaptionText;
    affecte toujours ladite couleur à Button1, sans qu'il soit nécessaire de décortiquer sa valeur hexa...
    et clInactiveCaptionText est toujours telle que définie dans les paramètres d'apparence de Win...

    Y'a kekchoze qui nous a échappé ???????????????

  7. #7
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Je n'ai pas compric ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Var R, G, B: Integer;
          sColor : String;
    Begin
      PnSaisieRepartition.Color:= clInactiveCaptionText;
      R:= GetRValue(PnSaisieRepartition.Color);
      G:= GetGValue(PnSaisieRepartition.Color);
      B:= GetBValue(PnSaisieRepartition.Color);
      sColor:= (IntToHex(R, 2) + IntToHex(G, 2) + IntToHex(B, 2));
      PnSaisieRepartition.Color  := $00 + StrToInt(sColor);
     
    End;
    c'est un code qui ne fait rien du tout ça...
    regarde ton algorythme :
    1) tu mets une couleur (tcolor) dans PnSaisieRepartition.Color -->OK
    2) tu décomposes PnSaisieRepartition.Color en valeurs RGB
    3) tu recompose la même couleur et essaies de la remettre dans PnSaisieRepartition.Color...

    bon passons, admettons
    En tout cas J'écrirais plutôt ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    uses windows; //pour la fonctin RGB()
     
    Var R, G, B: byte;
          sColor : String;
    Begin
      PnSaisieRepartition.Color:= clInactiveCaptionText;
      R:= GetRValue(PnSaisieRepartition.Color);
      G:= GetGValue(PnSaisieRepartition.Color);
      B:= GetBValue(PnSaisieRepartition.Color);
      PnSaisieRepartition.Color  := TColor(RGB(r,g,b));
    End;

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 4
    Par défaut
    Salut,

    Bien sur je savais très bien que mon code n'étais vraiment efficace, mais bon, ce n'étais que pour faire des tests et découvrir les fonctions. Pour ma part ce qui a répondu a mon problème est le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Showmessage(IntToHex(clInactiveCaptionText,8));
    Il me retourne la valeur "80000013" et c'est justement cette valeur hexadécimal que cherchais à connaitre. Donc mon code est remplacé par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PnSaisieRepartition.Color  := $80000013;
    Bien sur on aurait pu remplacer le code ci-haut par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PnSaisieRepartition.Color:= clInactiveCaptionText;
    Mais le problème est que cette couleur (clInactiveCaptionText) change selon les setting de windows, et moi je voulais que ce soie cette couleur (bleu pâle) peu importe les setting de windows.

    En t k, un gros merci pour l'aide....

    @+

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Par défaut
    Moi j'aurais une requete en plus!
    En effet je crée des TLabel en fct de données dans une table.
    Je souhaiterais avoir une couleur pour chaque label...

    Donc si j'ai bien compris votre post, je dois décomposer en R,G,B puis leur affecter des valeurs (que je pourrais avoir en faisant un truc aléatoire) puis que je rassemble en inttohex pour pouvoir affecter la valeur color... est_ce ça???


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ANTLR - probleme identifieur et valeur hexadécimal
    Par bpy1401 dans le forum Autres
    Réponses: 2
    Dernier message: 09/11/2011, 12h31
  2. Convertir des valeurs hexadécimal en integer
    Par Bernard Martineau dans le forum Langage
    Réponses: 4
    Dernier message: 11/10/2005, 16h59
  3. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  4. [XSLT]position d'un element de valeur specifique
    Par squat dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/07/2002, 16h42
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo