リソース割り当てをクラッシュさせない Delphi アプリケーションを作成する
重要なのは、プログラムにリソースが割り当てられていれば、障害が発生した場合でもプログラムが確実に実行されるようにすることです。
プログラムは、占有されているリソースを解放できる必要もあります。
ファイル、メモリ、WINDOWS リソース、オブジェクトなどは、時々追加する必要があります。
リソースが確実に解放されるように注意してください。次のイベント制御コードの例では、
最初にメモリが割り当てられ、その後エラーが発生して実行できなくなります。
メモリを解放するプログラム コード:
手順Tフォーム1. ButtonlClick(送信者:オブジェクト
);
ヴァール
ポインタ 1: ポインタ。
整数 1、数値ゼロ:整数;
始める
数値ゼロ:Κ0;
GetMem(Pointer1, 1024); {1K のメモリ リソースを割り当てます}
Integer1: Κ5divNumzero {この文は除算エラーを生成します。
エラー}
FreeMem (Pointer1, 1024); {この文はここでは実行されません
OK}終了;
ほとんどのエラーはこれほど明白ではありませんが、上記の例には重要な内容が含まれています。
ワンポイント: エラーが発生すると、プログラムの実行がモジュールから飛び出し、後続のリソースが解放されます。
プログラム コードは実行されなくなります。上記の例の FreeMem が確実にできるようにするには、
GetMem によって占有されているメモリ リソースを解放するには、コードをリソースに配置する必要があります。
保護モジュール。
曲線リソース保護モジュールの形式は次のとおりです。
{リソースの割り当て}
試す
{リソースの使用}
ついに
{リソースのリリース}
終わり;
上記を試してみます。 . . Finally モジュールを使用すると、プログラムが常に fi を実行できるようになります。
??保護されたモジュールにエラーがある場合でも、セクション内のすべてのプログラム コード
で生産されました。 try セクションのコードの実行時にエラーが発生した場合は、次のコマンドを実行します。
実行中にエラーが発生しない場合、この行は直接finallyセクションにジャンプします。
プログラムは通常の順序で実行されます。
次のイベント制御コードの例では、メモリが最初に割り当てられ、次にメモリが割り当てられます。
エラーが発生しましたが、メモリを解放したプログラム コードは引き続き実行されました。
手順TForm1. Button1Click(送信者:オブジェクト
);
ヴァール
ポインタ 1: ポインタ。
整数1、数値ゼロ:整数;
始める
数値ゼロ:Κ0;
GetMem(Pointer1, 1024); {1K のメモリ リソースを割り当てます}
試す
Integer1: Κ5divNumzero {この文は除算エラーを生成します。
エラー}
ついに
FreeMem(Pointer1,1024);{ここでもこの文は実行されます
わかりました}
終わり;
終わり;
使用されているリソースをプログラムが確実に解放する方法は、プログラミングにおける重要な問題です。
これは、プログラミング中に実践し、注意を払う必要がある非常に重要な問題です。