Verwenden von Zeichenflächen zum Zeichnen
Nach oben zu Grafiken in Komponenten - Index
Die Zeichenflächen-Klasse kapselt Grafiksteuerelemente auf verschiedenen Stufen. Sie bietet High-Level-Funktionen zum Zeichnen von einzelnen Linien, Formen und Text. Die Klasse Vcl.Graphics.TCustomCanvas definiert eine abstrakte Basis für alle in der VCL (Visual Component Library) definierten Zeichenflächenobjekte. Die meisten Steuerelemente in der VCL verfügen über ein zugeordnetes Zeichenflächenobjekt; Ausnahmen bilden Steuerelemente, die im Hintergrund an Windows-Steuerelemente gebunden sind (wie z.B. Vcl.StdCtrls.TButton) und Steuerelemente, die die Zeichenfläche des übergeordneten Objekts zum Zeichnen verwenden (wie z.B. Vcl.ExtCtrls.TPaintBox).
Vcl.Graphics.TCustomCanvas hat zwei Haupt-Nachkommen:
- Vcl.Graphics.TCanvas, das die Windows-GDI-Gerätekontexte (HDCs) kapselt.
- Vcl.Direct2D.TDirect2DCanvas, das die Windows-Direct2D-API kapselt.
Beachten Sie bitte, dass alle VCL-Steuerelemente den Vcl.Graphics.TCanvas-Nachkommen verwenden, weil die meisten Windows-Betriebssysteme die Direct2D-Zeichenfläche nicht unterstützen. Nur Windows 7 unterstützt Vcl.Direct2D.TDirect2DCanvas.
Konzeptuell ist die Zeichenfläche in drei Abstraktionsstufen unterteilt: Höchste Stufe, Mittlere Stufe und Niedrigste Stufe. Jede Stufe definiert einen speziellen Funktionsumfang. Die höchste Funktionalitätsstufe steht für alle Zeichenflächen - unabhängig von ihren Implementierungen - zur Verfügung. Die mittlere Funktionalitätsstufe ist in den Zeichenflächen-Implementierungen semantisch gleich, kann aber in dem jeweils bereitgestellten public-Interface unterschiedlich sein. Die von der niedrigsten Stufe bereitgestellte Funktionalität ist von der jeweiligen Implementierung abhängig.
Die folgende Tabelle gibt einen Überblick über die drei Abstraktionsstufen. Die Tabelle hat nur Referenzcharakter, weil es Funktionen gibt, die in der höchsten Stufe definiert sind, aber noch nicht in allen Zeichenflächen-Nachkommen implementiert sind.
Höchste Funktionalitätsstufe:
Operation | Tools |
---|---|
Zeichnen von Linien und Formen |
Methoden, wie z.B. MoveTo, LineTo, Rectangle und Ellipse |
Anzeigen und Dimensionieren von Text |
Die Methoden TextOut, TextHeight, TextWidth und TextRect |
Ausfüllen von Flächen |
Die Methoden FillRect und FloodFill |
Mittlere Funktionalitätsstufe:
Operation | Tools |
---|---|
Anpassen von Text und Grafiken |
Die Eigenschaften Pen, Brush und Font |
Niedrigste Funktionalitätsstufe:
Operation | Tools |
---|---|
Aufrufen von Windows GDI-Funktionen |
Die Eigenschaft Handle (Vcl.Graphics.TCanvas) |
Aufrufen von Windows Direct2D-Funktionen (Vcl.Direct2D.TDirect2DCanvas) |
Die Eigenschaft RenderTarget |
Manipulieren von Pixeln |
Die Eigenschaft Pixels (Vcl.Graphics.TCanvas) |
Kopieren und Zusammenfügen von Bildern |
Die Methoden Draw, StretchDraw, BrushCopy und CopyRect; die Eigenschaft CopyMode (Vcl.Graphics.TCanvas) |
Fortgeschrittene Zeichenoperationen |
DrawEllipse, DrawGeometry, FillRectangle (Vcl.Direct2D.TDirect2DCanvas) |