TCanvas BCB:TCanvasクラスでグラフィックを扱う。 TFormなどもプロパティとして持っている。 Tbitmap,TPaintBox,Timageなども持っている。
TCanvasのプロパティ Pen : 線や点を描く時の、大きさや色を指定します。 TPenクラスの変数です。 Brush : 絵を塗りつぶす色や模様を指定します。 TBrushクラスの変数です。 Font : TCanvasに書くテキストのFont設定を指定します。 TFontクラスの変数です。 Pixels : TCanvasの個々のドット(点)の色を指定したり、 色を読み取るときにつかいます。 TColorクラスの二次元配列です。 PenPos : Penの現在位置を示します。
TCanvasのメソッド関数 void __fastcall MoveTo(int X, int Y); 線を描画するときの始点としてPenPosプロパティを設定します。 void __fastcall LineTo(int X, int Y); PenPos プロパティで指定される位置から,座標(X, Y)まで線を引きます。座標(X,Y)は色がつきません。 PenPos の値は(X, Y)に変更されます。 線は Penのプロパティ(色、太さ、パターン) で描画されます。
TCanvas void __fastcall Rectangle(int X1, int Y1, int X2, int Y2); プロパティPen を使って長方形を描画して, その図形をプロパティ Brush で塗りつぶします。 Rectangle は,以下のどちらかの方法で長方形の座標を指定します。 1.左上の角(X1, Y1)および右下の角(X2, Y2)を定義する座標を 4 つ設定する 2.TRect 型を使う
TCanvas void __fastcall Ellipse(int X1, int Y1, int X2, int Y2); 円や楕円を描画します。 Ellipse は,以下のいずれかの値を設定することによって外接長方形を指定します。 1.左上の座標(X1, Y1)および右下の座標(X2, Y2) 2.TRect 値 外接長方形が正方形の場合は,円が描画されます。 楕円の外周は Pen の値を使って描画され,内部は Brush の値を使って塗りつぶされます。
TCanvas void __fastcall TextOut(int X, int Y, const AnsiString Text); TextOut メソッドを呼び出すと,キャンバスに文字列を書き込むことができます。文字列は現在の Font 値に応じて書き込まれます。
TCanvasでは、 左上が(0,0)となり、右下に向かって座標値が増えていきます。
TCanvas 通常の座標系に合わせて描画するには・・・ 座標の指定に表示する座標系の原点をOrgX,OrgYとして付け加える。
通常の座標系に合わせて描画するには・・・ TCanvas 通常の座標系に合わせて描画するには・・・
問題点:他の窓が重なったりすると、画像が消える。 TCanvas 問題点:他の窓が重なったりすると、画像が消える。
対策: Timage を使う。 Tcanvasを内蔵 グラフィックのペイントと更新は,自動的に処理される。
TcanvasのインスタンスCanvasを持っている。Formに貼り付けて使う。 TImage TcanvasのインスタンスCanvasを持っている。Formに貼り付けて使う。
印刷 BCB(Windows)では・・・ Canvasに描画を行う -> Windowに描画 オブジェクトTPritnerに描画する->印刷 TPrinterを使うには, UnitファイルにPrinters.hppをインクルードする。
プリンタの設定 TPrintDialog と TPrinterSetupDialog で プリンタの設定を行います。
プリンタの設定 Tmenu,TPrintDialogとTPrinterSetupDialogを追加
プリンタの設定 メニューでプリンタの項目を追加
プリンタの設定 UnitファイルにPrinters.hppをインクルード
プリンタの設定 プリンタ設定、印刷のイベントを記述する。
プリンタの設定 TPrinterSetupDialogのメンバ関数Execute( ) Windowsマシンにつながっているプリンタの選択などの設定を行う。 設定はこのFormが実行されている間は有効です。
プリンタの設定 PrintDialogのメンバ関数Execute( ) ダイアログが表示され、使用するプリンタ、印刷枚数を設定。 印刷を実行する場合、Execute( )はtrueを返し、 キャンセルの時はfalseを返します。
印刷の方法 TPrinter *Prntr = Printer(); プリンタオブジェクトの準備を行う。 Prntr->BeginDoc();//印刷の開始 //ここに、実際に印刷する内容の描画を行う。 Prntr->EndDoc();//印刷の終了
今回の印刷は・・・ TcanvasのDraw関数を使用: Draw( )関数は、TGraphicを引数として、 その内容をそのまま描画する関数です。 Image1のクラスTImageには、TImageの描画 内容を記録するPictureプロパティ内に TGraphicクラスの変数Graphicを持っています。 これをDraw( )関数に渡してやることができます。