Encore un dégradé me direz vous
Oui mais cette source utilise une procédure qui existe déjà dans l'unité Windows depuis au moins Delphi 4
et elle permet de réaliser un dégradé sur deux où plusieurs couleurs de votre choix que ce soit en horizontale en verticale
Et maintenant en triangle il y a également une gestion ludique des couleurs.
J'ai volontairement mis cette fonction dans une unité à part afin de vous faciliter son utilisation et son intégration dans vos applications
Son utilisation est des plus simple puisqu'elle se résume en deux fonctions.
Exemple :
GradientRect(Canvas.handle, // le canvas dans le quel le dégradé sera dessiné
[clBlue, clGreen, clYellow, clRed], // les couleurs de votre choix
ClientRect, // les coordonées et la taille du dégradé à réaliser
GRADIENT_FILL_RECT_H // et la direction ici Horizontale et GRADIENT_FILL_RECT_V pour Verticale
); // si tout ce passe bien la fonction renvoie True
GradientTriangle(Canvas.handle, // le canvas dans le quel le dégradé sera dessiné
[clBlue, clGreen, clYellow, clRed], // les couleurs de votre choix minimum 3 et 4 pour remplir un rectangle où carrée entièrement
ClientRect, // les coordonées et la taille du dégradé à réaliser
); // si tout ce passe bien la fonction renvoie True
Conclusion :
Pour la gestion des couleurs je me suis légèrement inspiré de la source de WhiteHippo pour les Briques
//************************************************************************************************//
L'unité Gradients.pas a été revue et corrigée par Maître F0xi
Un grand merci à lui je peux dire.
Efficace et précieuse sa collaboration à été.
20 nov. 2008 à 16:22
Merci,
@+,
Cincap
20 nov. 2008 à 16:11
j'ai mis le Zip à jour (il y a encore d'autres petites corrections ;))
en fait FCouleur est initialisé à 0
donc quand tu choisis une brique de couleur noir (0) le code n'est pas executé puisqu'il n'y a pas de différence entre Value et FCouleur :
if FCouleur <> Value then
begin
FCouleur := Value;
Brush.Color := Value;
Invalidate;
end;
20 nov. 2008 à 15:45
@Cirec, merci d'avoir répondu, j'avais ajouté cette ligne ce qui me semble quif quif.
Procedure Tfrm_Color.AddBrique(Value: TColor);
Begin
if value = $00000000 then value := value + 1 ;
@+,
Cincap
20 nov. 2008 à 15:20
FCouleur := -1;
voilà c'est tout
20 nov. 2008 à 07:38
@ Cirec, bon c'est OK, j'ai trouvé une parade qui fonctionne correctement.
@+,
Cincap
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.