掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Fire Monkey 3D で作成した Shape を回転させるには? (ID:42930)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> もしかしたら,シングルクリックの動作に近いのは, > OnMouseUp かも知れませんね. ですね。 以下に、OnClick に似た実装を書いておきます。 private { private 宣言 } FPoint: TPointF; ... procedure TForm1.Form3DMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin FPoint.X := X; FPoint.Y := Y; end; procedure TForm1.Form3DMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); var dPoint: TPointF; function CalcDist(a, b: TPointF): Single; begin result := Sqrt(Sqr(a.X - b.X) + Sqr(a.Y - b.Y)); end; begin if (Button = TMouseButton.mbLeft) then begin dPoint.X := X; dPoint.Y := Y; if CalcDist(FPoint, dPoint) < 4 then RoundCube1.RotationAngle.Y := RoundCube1.RotationAngle.Y + 45; end; end; 仕様: MouseDown された位置と MouseUp された位置の二点間の距離が 4px 以下かつ、 マウスの左ボタンの処理だったらクリック扱いとする。 (マウスで押しっぱなしのまま 4px 以上移動してボタンを離すとクリックにはならない) # VCL の挙動とは異なりますが、 # この後にダブルクリック判定を組み込むのが楽になります。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.