お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"Enabled制御にtry〜finallyをつかう"



こんにちは、佐藤 充男です。



☆説明
 ボタンを押して長時間の処理を行う場合、他のボタン等のEnabled をFalse
 にすることがありますが、このときtry 〜finally を活用してEnabled を
 まとめてTrueに戻す例です。

☆準備
 フォームにボタンを3つ置いてください。Button1をクリックし、イベントに
 以下のコードを書いて実行しましょう。

☆補足
 Delphi 4でテスト。


[サンプルソース]
----------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
  ans: WORD;
begin
  try
    // ボタンを使用不可にする
    Button1.Enabled := False;
    Button2.Enabled := False;
    Button3.Enabled := False;

    // 長時間処理のダミー
    Sleep( 2000 );

    Beep;
    ans := MessageDlg( '処理を継続しますか',
             mtConfirmation, [mbYes, mbNo], 0 );
    if ans = mrNo then
      Exit;  // finallyへGo!

    // 長時間処理のダミー
    Sleep( 4000 );

  finally
    // ボタンを使用可にする
    Button1.Enabled := True;
    Button2.Enabled := True;
    Button3.Enabled := True;
  end;
end;
----------------------------------------------------------------------

                              98/10/3(土) 00:11pm  LDM03756 佐藤 充男

Original document by 佐藤 充男   氏 ID:(LDM03756)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum