始点の追跡

提供: RAD Studio
移動先: 案内検索

グラフィックとマルチメディアの処理:インデックス への移動

線を描画する場合は,Origin フィールドを使って線の開始位置を追跡します。OnMouseDown イベントの発生位置を Origin に記録すれば,OnMouseUp イベントハンドラはこの Origin を参照して線の始点を特定できます。



 procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
 begin
   Drawing := True;
   Canvas.MoveTo(X, Y);
   Origin := Point(X, Y);{ 線の開始位置を記録 }
 end;
 
 procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
 begin
   Canvas.MoveTo(Origin.X, Origin.Y);{ ペンを始点に移動する }
   Canvas.LineTo(X, Y);
   Drawing := False;
 end;



 void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
   TShiftState Shift, int X, int Y)
 {
   Drawing = true;            // 描画フラグをセット
   Canvas->MoveTo(X, Y);      // ペン位置を設定
   Origin = Point(X, Y);      // 線の開始位置を記録
 }
 
 void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
   TShiftState Shift, int X, int Y)
 {
   Canvas->MoveTo(Origin.x, Origin.y);  // ペンを始点に移動する
   Canvas->LineTo(X, Y);                // PenPos から(X,Y)まで線を描画
   Drawing = false;                     // 描画フラグをクリア
 }



この変更を行うと,アプリケーションは最終的な線を描画できるようになりますが,中間的な動作は描画できません。「ラバーバンド」の機能がサポートされていないという点に注意してください。"

関連項目