[C++Builder]二度押し防止処理

Button1Clickイベントで時間がかかる処理を行った場合、ダブルクリックすると、2度処理が走ってしまう。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Button1->Enabled = false;
:
Button1->Enabled = true;
}
そこで、こんなコードを書いたのだけど効果が無かった。はて? ・ω・

試しにApplication ProcessMessagesでEnabledが即時反映されるようにしてみる。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Button1->Enabled = false;
Application->ProcessMessages();
:
Button1->Enabled = true;
}
やはり、効果無し ・ω・

今度は、Enabledにする前に、バッファーをクリアしてみる。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Button1->Enabled = false;
:
Application->ProcessMessages();
Button1->Enabled = true;
}
今度はうまくいった (((・ω・)))

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です