掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
マウスドラッグ中のアニメーションについて (ID:46928)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
初めまして。Delphiを使い始めて2か月ほどです。 TButtonのドラッグ中に他のコンポーネントのアニメーションをさせたいのですが、プロパティは変わりますが、アニメーションになりません。 コードは以下のようになっています。 ドラッグ中のアニメーションを実現する何か良い方法はありますでしょうか? どうかよろしくお願いいたします。 unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Ani; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); procedure Button1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure Button2Click(Sender: TObject); private { private 宣言 } IsMouseDown: Boolean; PtX, PtY: Single; public { public 宣言 } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin IsMouseDown := True; PtX := X; PtY := Y; end; procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); var Anime: TAnimator; begin if IsMouseDown then begin Button1.Position.X := Button1.Position.X + X - PtX; Button1.Position.Y := Button1.Position.Y + Y - PtY; //アニメーションしません Anime := TAnimator.Create; try Anime.AnimateFloat(Button3, 'Width', 400, 1); finally Anime.Free; end; end; end; procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin IsMouseDown := False; end; procedure TForm1.Button2Click(Sender: TObject); var Anime: TAnimator; begin //ドラッグ中でなければ問題なくアニメーションします Anime := TAnimator.Create; try Anime.AnimateFloat(Button3, 'Width', 400, 1); finally Anime.Free; end; end; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.