DelphiXE5を使っています。
ボタンをクリックすると別のアプリを起動するようにしています。
たまに、ダブルクリックする人がいて、アプリが2個起動してしまいます。
ボタンのシングルクリックとダブルクリックを区別する方法はありますでしょうか。
ご助言をよろしくお願いします。
質問の内容とは異なりますが、
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.OnClick:= nil;
try
// 処理
finally
Button1.OnClick := Button1Click;
end;
end;
こんな感じで解決すると思います。
DEKOさん
参考になりました。
ありがとうございました。
行う処理が「他のアプリ起動」なので2重起動してしまうので、
ご助言頂いたコードにSleepを挟んだり、
Button1.EnabledをFalseにしたり、と色々試みましたが、
それでもダブルクリックを受け付けてしまいました。
それなら「受け付けた後に処理をしてみよう」と思い、
結果、Timerを使って解決することができました。
考え方を知る良いきっかけになりました。
ありがとうございました。
----
{ Private 宣言 }
blBlockWClick : Boolean;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
blBlockWClick := false;
BlockWClick.Enabled := false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if blBlockWClick then exit;
//Timer1.Interval :=1000;
blBlockWClick := true;
Timer1.Enabled := true;
//処理
end;
ツイート | ![]() |