Utilisation de canvas.rectangle/roundrect/ellipse dans la limite définie par un trect ...

Description

Alors là, tout le monde se demande si j' ai pas besoin de vacances !!!
Il va nous apprendre à dessiner un Rectangle dans un canvas maintenant???
Alors oui, j' ai besoin de vacances et oui, je vais peux être vous apprendre à dessiner un rectangle :)

En fait, je pense que certains ont déjà compris où je veux en venir...
Imaginons que vous voulez dessiner un rectangle definissant la limite d' un de vos compo avec une épaissur de trait de 10 pixels.
La grosse erreur que l' on a tous fait une fois c' est d' écrire ceci:
MonCompo.Canvas.Pen.Color := clBlack;
MonCompo.Canvas.Pen.Width := 10;
MonCompo.Canvas.Brush.Color := clYellow;
MonCompo.Canvas.Rectangle(MonCompo.ClientRect);
Et alors? ça marche me direz-vous ...
Et bien l' effet n' est pas celui recherché: le trait n' a pas 10 pixels!
Comment ça se fait? et bien le problème est que le trait dessiné est centré sur le TRect passé en paramètre à la fonction Rectangle du canvas.
C' est pour cela que pour un trait de 1 pixel le problème n' apparait pas.

Codes Sources

A voir également

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.