|
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
|