グラフィック プログラミングの概要
Graphics ユニットに定義されている VCL グラフィック コンポーネントは GDI(Windows Graphics Device Interface)をカプセル化しているため、簡単に Windows アプリケーションにグラフィックを追加できます。
アプリケーションでのグラフィックの描画においては、オブジェクトに直接描画するのではなく、オブジェクトの「キャンバス」に描画します。キャンバスはオブジェクトのプロパティで、同時にそれ自身が 1 つのオブジェクトでもあります。キャンバス オブジェクトを使用する主な利点は、リソースを有効利用できることと、デバイス コンテキストについて自動的に処理されることです。このため、画面、プリンタ、ビットマップ、メタファイルのどれに描画を行う場合でも、同じメソッドを使用できます。キャンバスを使用できるのは実行時だけです。したがって、キャンバスでの処理のすべてはコードで記述します。
メモ: TCanvas は Windows デバイス コンテキストのラッパー リソース マネージャなので、キャンバス上であらゆる Windows GDI 関数を使用できます。キャンバスの Handle プロパティは、デバイス コンテキストのハンドルです。
アプリケーション内でグラフィックがどう表示されるかは、描画するキャンバスがどのオブジェクト型かによって異なります。コントロールの Canvas プロパティに直接描画すると、画像が即座に表示されます。ただし、TBitmap キャンバスなどのオフスクリーン イメージに描画した場合、画像は、コントロールがビットマップからコントロールのキャンバスにコピーするまで表示されません。つまり、ビットマップを描画してそれらをイメージ コントロールに割り当てた場合、そのイメージは、コントロールが OnPaint メッセージを処理するまで画面には表示されません(VCL アプリケーション)。
グラフィックス処理のプログラミングをするとき描画およびペイントという用語をよく使用します。
- 描画とは、線や図形などの個々のグラフィック要素をコードで作成することです。キャンバスの描画メソッドを呼び出して、指定のグラフィックを指定の場所に描画することをコードでオブジェクトに指示します。
- ペイントとは、オブジェクト全体の外観を作成することです。通常、ペイントには描画が伴います。つまり、OnPaint イベントへの応答では一般にオブジェクトはなんらかのグラフィックを描画します。たとえば編集ボックスは、四角形を描画し、さらに四角形内にテキストを描画することで編集ボックス全体をペイントします。一方、図形コントロールは、単一のグラフィックを描画することで図形コントロール全体をペイントします。
関連トピック
- 画面の更新
- グラフィック オブジェクトの型
- キャンバスの共通プロパティおよびメソッド
- キャンバス オブジェクトのプロパティの使用
- キャンバスのメソッドを使用したグラフィック オブジェクトの描画
- アプリケーション内の複数の描画オブジェクトの処理
- グラフィックへの描画
- グラフィック ファイルの読み込みと保存
- クリップボードでのグラフィックの使用
- ラバー バンドの例