Couleur windows

Rapakooti Messages postés 92 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 18 mai 2018 - 22 sept. 2006 à 23:20
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 26 sept. 2006 à 09:26
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

sp40 Messages postés 1284 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
23 sept. 2006 à 00:17
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
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
24 sept. 2006 à 02:37
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)
0
Rapakooti Messages postés 92 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 18 mai 2018
24 sept. 2006 à 12:48
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
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
26 sept. 2006 à 09:26
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)
0
Rejoignez-nous