ここでいう例外とは,エラーのことです。通常エラーが起きるとソフト自体が止まってしまいますが,エラーが起こりそうなところに例外処理を行えば,ソフトが止まることなく作動し続けます。
その書式は,以下の2通りがあります。
私は「 try 〜 finally 〜 end;」の文は必要ないと考えてしまいます。例外の有無に関係なく実行する処理なら,「 try 〜 end;」の後に記述すれば済むことです。そんなこともあり,私が今まで使ったのは「 try 〜 expect 〜 end;」の文だけです。
エラーが発生する場面として思いつくのが,エディットコンポーネントに入力された数字を整数変換するときです。このときエディットコンポーネントに数字以外の文字が入力されている場合,エラーが起きてしまうので,この「 try 」を使ってエラーが起きないようにしてみます。
用意するものはエディットコンポーネント1個だけです。フォームにエディットコンポーネントを貼り付けたら,イベントの中から「 OnChange」を呼び出してください。このイベントはエディットコンポーネントの文字列が変化したときに発生するイベントです。
上記の説明をします。
@……expect の中で,「 delete 」を使っていますが,この中で「 edit1.text」と記述すると,実行時にエラーが起こるので,文字型変数を宣言しています。
A……ここで型変換を行います。ここでは型変換が正常に行われるかどうかだけ確認するので,これだけ記述します。
B……edit1.text の文字列を str に代入します。
C……ここで使っている「 delete 」は文字列から文字を削除するときに使います。具体的には,
delete ( 元の文字列 , 削除を開始する位置 , 削除する文字数 )
です。また,「 length ( ) 」は( )の中の文字列の長さを求める関数です。
D……削除した文字列を edit1.text に戻します。
E……「 edit1.selstart 」はカーソルの場所を指定しています。これでカーソルを文字列の最後に移動させることができます。
このファイルを掲載します。よければご覧ください。
→ダウンロード