TryForm.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit TryForm;
  2. interface
  3. uses
  4.   SysUtils, Windows, Messages, Classes,
  5.   Graphics, Controls, Forms, Dialogs, StdCtrls;
  6. type
  7.   TForm1 = class(TForm)
  8.     BtnWrong: TButton;
  9.     BtnTryFinally: TButton;
  10.     BtnTryTry: TButton;
  11.     procedure BtnWrongClick(Sender: TObject);
  12.     procedure BtnTryFinallyClick(Sender: TObject);
  13.     procedure BtnTryTryClick(Sender: TObject);
  14.   private
  15.     { Private declarations }
  16.   public
  17.     { Public declarations }
  18.   end;
  19. var
  20.   Form1: TForm1;
  21. implementation
  22. {$R *.DFM}
  23. procedure TForm1.BtnWrongClick(Sender: TObject);
  24. var
  25.   I, J: Integer;
  26. begin
  27.   Screen.Cursor := crHourglass;
  28.   J := 0;
  29.   // long (and wrong) computation...
  30.   for I := 1000 downto 0 do
  31.     J := J + J div I;
  32.   MessageDlg ('Total: ' + IntToStr (J),
  33.     mtInformation, [mbOK], 0);
  34.   Screen.Cursor := crDefault;
  35. end;
  36. procedure TForm1.BtnTryFinallyClick(Sender: TObject);
  37. var
  38.   I, J: Integer;
  39. begin
  40.   Screen.Cursor := crHourglass;
  41.   J := 0;
  42.   try
  43.     // long (and wrong) computation...
  44.     for I := 1000 downto 0 do
  45.       J := J + J div I;
  46.     MessageDlg ('Total: ' + IntToStr (J),
  47.       mtInformation, [mbOK], 0);
  48.   finally
  49.     Screen.Cursor := crDefault;
  50.   end;
  51. end;
  52. procedure TForm1.BtnTryTryClick(Sender: TObject);
  53. var
  54.   I, J: Integer;
  55. begin
  56.   Screen.Cursor := crHourglass;
  57.   J := 0;
  58.   try try
  59.     // long (and wrong) computation...
  60.     for I := 1000 downto 0 do
  61.       J := J + J div I;
  62.     MessageDlg ('Total: ' + IntToStr (J),
  63.       mtInformation, [mbOK], 0);
  64.   finally
  65.     Screen.Cursor := crDefault;
  66.   end;
  67.   except
  68.     on E: EDivByZero do
  69.     begin
  70.       // re-raise the exception with a new message
  71.       raise Exception.Create ('Error in Algorithm');
  72.     end;
  73.   end;
  74. end;
  75. end.