Utilisation des canevas pour dessiner
Remonter à Graphiques et composants - Index
La classe canevas encapsule les contrôles graphiques à plusieurs niveaux, notamment les fonctions de haut niveau pour dessiner du texte, des formes et des lignes individuelles. La classe Vcl.Graphics.TCustomCanvas définit une classe abstraite pour tous les objets canevas définis dans la bibliothèque des composants visuels. La plupart des contrôles de la VCL ont un objet canevas associé ; à l'exception des contrôles qui sont liés à des contrôles Windows (tels que Vcl.StdCtrls.TButton) et des contrôles qui utilisent le canevas du parent pour dessiner (tels que Vcl.ExtCtrls.TPaintBox).
Vcl.Graphics.TCustomCanvas a deux descendants principaux :
- Vcl.Graphics.TCanvas, qui encapsule les contextes de périphérique GDI Windows (HDCs).
- Vcl.Direct2D.TDirect2DCanvas, qui encapsule l'API Direct2D Windows.
Notez que tous les contrôles VCL utilisent le descendant Vcl.Graphics.TCanvas, car la plupart des systèmes d'exploitation Windows ne supportent pas le canevas Direct2D. La seule version Windows qui supporte Vcl.Direct2D.TDirect2DCanvas est Windows 7.
En tant que concept, le canevas est divisé en trois niveaux d'abstraction : Niveau élevé, Niveau intermédiaire et Niveau faible. Chaque niveau définit un ensemble de fonctionnalités. La fonctionnalité Niveau élevé est disponible pour tous les canevas, indépendamment des détails d'implémentation. Le niveau intermédiaire reste sémantiquement identique entre les implémentations de canevas, mais peut être différent dans l'interface publique exposée. Enfin, le niveau faible expose les fonctionnalités qui dépendent de l'implémentation.
Le tableau suivant récapitule les trois niveaux d'abstraction. Considérez-le comme une référence, car des fonctions définies au niveau élevé ne sont pas encore implémentées dans tous les descendants de canevas.
Fonctionnalités de niveau élevé :
Opération | Outils |
---|---|
Dessin de lignes et de formes |
Méthodes telles que MoveTo, LineTo, Rectangle et Ellipse |
Affichage et mesure de texte |
Méthodes TextOut, TextHeight, TextWidth et TextRect |
Remplissage de zones |
Méthodes FillRect et FloodFill |
Fonctionnalités de niveau intermédiaire :
Opération | Outils |
---|---|
Personnalisation de texte et des graphiques |
Propriétés Pen, Brush et Font |
Fonctionnalités de niveau faible :
Opération | Outils |
---|---|
Appel des fonctions GDI de Windows |
Propriété Handle (Vcl.Graphics.TCanvas) |
Appel des fonctions Direct2D de Windows (Vcl.Direct2D.TDirect2DCanvas) |
Propriété RenderTarget |
Manipulation de pixels |
Propriété Pixels (Vcl.Graphics.TCanvas) |
Copie et fusion d'images |
Méthodes Draw, StretchDraw, BrushCopy et CopyRect ; Propriété CopyMode (Vcl.Graphics.TCanvas) |
Opérations de dessin avancées |
DrawEllipse, DrawGeometry, FillRectangle (Vcl.Direct2D.TDirect2DCanvas) |