Couleur windows

Signaler
Messages postés
92
Date d'inscription
mercredi 4 décembre 2002
Statut
Membre
Dernière intervention
18 mai 2018
-
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
-
Je recupere la couleur que windows affiche autour de l'image de fond sur le bureau elle se presente sous forme d'une srting su type :"185 25 125"
Comment afficher cette couleur dans un pann par exemple. j'ai bien reussi a separe les differente valeur ( avec la fonction copy) j'ai meme tranforme les string en bytes avec la fonction trouvé sur ce site:


function TForm1.StrToByte(Str: string): byte;
var
 int: variant;
begin
   try
      int:= StrToInt(str);
      if (int>=0) and (int<=255) then
         result:= byte(int)
         else
            result:= 0;
   except
      result:= 0;
   end;
end;
mais voila ca marche pas si une des valeur vaut 0 ... auriez vous une idéé merci

R A P A K O O T I

4 réponses

Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
il faut que tu regardes dans l'aide de delphi du coté de "colortorgb" ou un truc comme ça, en tout cas il faut que tu cherches "rgb" (désolé,  je n'ai pas delphi sur ce poste) Les trois valeurs que tu obtiens correspondent à l'assemblage des trois couleurs primaires...

Simon
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
38
uses math;

function StrToByte(const S : string) : byte;
begin
  result := byte( Min(Max( StrToInt(S), 255),0) );
end;

ou encore

function StrToByte(const S : string) : byte;
var
  i : integer;
begin
  i := StrToInt(S);
  if i < 0 then
     result := 0
  else
  if i > 255 then
     result := 255
  else
     result := i;
end;




<hr size="2" width="100%" />
Croc (click me)
Messages postés
92
Date d'inscription
mercredi 4 décembre 2002
Statut
Membre
Dernière intervention
18 mai 2018

je vais essayer tout ca une fois rentrer chez moi,mais quelqu'un pourrait me dire d'ou vient mon erreur? Pourquoi ma fonction ne marche pas?
des mes essais j'indiquerai 'réponse accepté'

R A P A K O O T I
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
38
function StrToByte(const S : string) : byte;
var
 i : integer <strike>variant</strike>;
begin

  i := StrToInt(S);
  if i > 255 then
     result := 255
  else
  if i < 0 then
     result := 0
  else
     result := i;
end;



pas de type variant pour les fonctions de convertions, pas de try except car on doit afficher l'exception EConversionError si S ne represente pas un nombre entier ...
int et str ne son pas des nom de variables recommandé (i et s) car int est l'alias du type integer et str est le nom d'une fonction.

<hr size="2" width="100%" />Croc (click me)