FireMonKey に詳しい方ご指導ください

解決


Patlice2011  2012-09-29 05:57:12  No: 43067

[右手座標系 サンプルソースコード]
http://ht-deko.minim.ne.jp/software/righthandrule.zip
を勉強しています。
Dial を回して軸を回転させるのではなく、Dial を Button に変更して軸を
回転させたいと思い X軸の回転を Dial ではなく X軸回転用の Button を配置して、
Button を Click するごとに +方向に90度ずつ回転させるようにしてみました。
しかし、 何回 Click しても90度しか回転しません。
Deafault Button を押すと、X軸回転用の Button が左方向に移動してしまいます。
それが以下のコードです。

procedure TForm1.Button1Click(Sender: TObject);  //<-- Deafault Button
begin
  FloatAnimation1.Start;
end;

procedure TForm1.Button2Click(Sender: TObject);  //<-- X軸回転用 Button
begin
   Dummy1.RotationAngle.X := Button2.Position.X;
end;

FloatAnimation1 のオブジェクトインスペクタのプロパティの PropertyName は
Position.X にしています。

X軸回転用の Button を配置して、X軸回転用の Button を Click するごとに 
+方向に90度ずつ回転させるようにし、Deafault Button を押すと、
軸が元の位置に戻るようにするには、どのようなコードを書けばいいのでしょうか。

詳しい方がいらっしゃいましたらご指導の程よろしくお願い致します。

使用環境
WIN7 Pro 64bit SP1
Delphi XE3


DEKO  2012-09-29 07:52:01  No: 43068

こんにちは。

> Deafault Button を押すと、X軸回転用の Button が左方向に移動してしまいます。

FloatAnimation1 は "何の子コントロール" になっていますか?
[構造] ペインは確かめましたか?[オブジェクトインスペクタ] は確認しましたか?
同じ間違いを繰り返しておられるようですが?

> X軸回転用の Button を配置して、X軸回転用の Button を Click するごとに 
> +方向に90度ずつ回転させるようにし、Deafault Button を押すと、
> 軸が元の位置に戻るようにするには、どのようなコードを書けばいいのでしょうか。

procedure TForm1.Button1Click(Sender: TObject);  //<-- Deafault Button
begin
  FloatAnimation1.StopValue := 0;
  FloatAnimation1.StartFromCurrent := True;
  FloatAnimation1.Start;
end;

procedure TForm1.Button2Click(Sender: TObject);  //<-- X軸回転用 Button
begin
  FloatAnimation1.StopValue := Dummy1.RotationAngle.X + 90;
  FloatAnimation1.StartFromCurrent := True;
  FloatAnimation1.Start;
end;

完全ではありませんが、このようなコードで動作すると思います。
何が完全でないのかは、ご自分で考えてみてくださいね。


patlice2011  2012-09-29 08:37:08  No: 43069

できました。
ご指導ありがとうございました。

FloatAnimation1 をX軸回転用 Button の子にしていました。(<--NG動作)
FloatAnimation1 を Dummy1 の子にして教えて頂いたコードにしたら
意図する動作になりました。

>何が完全でないのかは、ご自分で考えてみてくださいね。
わかりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加