2 procedure
donne les couleur RGB a partir d'un TColor ou un dword (en asm=+rapide, en pascal=+comprehensible)
mais ce code n'est pas optimizé (pas dutout :-s)
Source / Exemple :
//creer les variables au debut du prog
var
rouge,vert,bleu:Byte;
//(...)
Procedure RGBFromLongASM(Couleur:TColor); //version asm
begin
asm
push eax
push ebx
//bleu
mov eax,couleur
shr eax,16
mov bleu,al
//vert
xor ebx,ebx
mov eax,couleur //eax=couleur
mov bl,bleu //ebx=bleu
imul ebx,65536//ebx=ebx*2^16
sub eax,ebx //eax=eax-ebx
shr eax,8 //eax=eax/2^8
mov vert,al
//rouge
xor ebx,ebx
mov eax,couleur
mov bl,bleu
imul ebx,65536
sub eax,ebx
mov rouge,al
pop ebx
pop eax
end;
end;
Procedure RGBFromLongPascal(Couleur:TColor); //d'apres le code de fabiin sur un forum vb :)
var
begin
Bleu:=Byte(Trunc(Couleur / 65536));
Vert:=Byte(Trunc(Couleur - Bleu * 65536) / 256));
Rouge = Byte(Trunc(Couleur - Bleu * 65536 - Vert* 256));
end;
Conclusion :
j'aimerai l'amelioré en creeant un type contenant les 3 variables mais je c pas le faire :-\
d'avance merci.
Pliz des commentaires, meme pour m'insulter :)!!!
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.