Rapakooti
Messages postés90Date d'inscriptionmercredi 4 décembre 2002StatutMembreDernière intervention18 mai 2018
-
22 sept. 2006 à 23:20
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 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
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 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...
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202237 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;
Rapakooti
Messages postés90Date d'inscriptionmercredi 4 décembre 2002StatutMembreDernière intervention18 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é'
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202237 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.