こんにちは、ToshiqnZと申します。Delphi始めて間もないですが、色々な掲示板等
で質問したり、読ませて頂いてます。以下、質問です。
例ですが、以下の様な内容で、Button1を押し続けた時に動作を繰返すにはどうし
たら良いのでしょうか。
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
i:integer;
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
i:=i+1;
Edit1.Text:=IntToStr(i);
end;
宜しくお願いします。
んん、OnMouseDownイベントとOnMouseUpイベントを使ってすべての処理をすれば、
何とかなると思いますが。
OnMouseDownとOnMouseUpとTTimerを駆使するのはどうでしょうか。
たかみちえさん、Lupin3rdさん アドバイスありがとうございました。
実はプロパティとかで設定できると思っていました。ちょっとまわりくどい気がし
ますが実現できました。正式版にはまだ実装していませんがテスト報告します。
Timer1のOnTimerイベントは、Button1のClickイベントに共有設定しました。
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
end;
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Timer1.Enabled:=False;
end;
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Timer1.Enabled:=True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
i:=i+1;
Edit1.Text:=IntToStr(i);
end;
end.
ツイート | ![]() |