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 TCanvasでは、 左上が(0,0)となり、右下に向かって座標値が増えていきます。 TCanvas 通常の座標系に合わせて描画するには・・・ 1. 2. 座標の指定に表示する座標系の原点をOrgX,OrgYとし て付け加える。 Y方向の変数は負号をつける。 TCanvas 通常の座標系に合わせて描画するには・・・ TCanvas 問題点:他の窓が重なったりすると、画像が消える。 TCanvas 対策: Timage を使う。 •Tcanvasを内蔵 •グラフィックのペイントと更新は,自動的に処理される。 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( )関数に渡してやることができます。
© Copyright 2024 ExpyDoc