フォームでボタンをクリックしたとき、メニューをクリックしたときの操作がある程度以上時間がかかる場合ありますよね。こんな時にもう一度、ボタンをクリックされたら...。同じ処理が平行して同時に行われることになってしまいます。
たいていこんな時には、処理中にもう一度ボタンをクリックされないように、Enabled プロパティを使用してクリックできないようにされていると思います。でも複数のオブジェクトを使用不可にするのは面倒な作業です。
そこで今回は、アプリケーション中のすべてのフォームとフォームに張り付いたすべてのオブジェクトが使用不可能になる方法をご紹介します。
この方法は、Forms ユニットにある ShowModal や MessageDlg も使用している関数を使用します。
で使い方ですが...
実際のコードは以下のようになります。(斜体部分のみ入力します。)
procedure TForm1.Button1Click(Sender: TObject); var pDTW: pointer; begin pDTW := DisableTaskWindows(0); // 使用不可にして try Sleep(1000); // 処理をして finally EnableTaskWindows(pDTW); // 終わったら戻す end; end;
コメント (0件)