| ▼ Mr.XRAYさん
 > 私自身、コードは問題ないと思うのですが。
 > 上の(1),(2)はその通りでしょうね。
 > (3)はnilにしないと、nilにならないのではないかと(何か変な表現だけど)。
 ありがとうございました。
 
 確かにMasteringDelphi6にそのような記述がありました。
 //-------------------------------------------------------------//
 nilに設定するのはプログラマの仕事なのだ。
 (略)
 オブジェクトを自動的にnilに設定するのは不可能である。
 それは、同じオブジェクトが複数の変数から参照されている可能性があり
 Delphiはそれらの参照を追跡管理しないからだ。
 Freeなどのメソッド内部ではオブジェクトの操作はできるが、そのオブジ
 ェクトの参照(そのメソッドの呼び出しに利用した変数のメモリアドレス)
 については何もわからない。
 メソッドの内部ではオブジェクトのメモリアドレスを知ることはできるが
 そのオブジェクトを参照している変数のメモリアドレスまではわからない
 とういことだ。
 //--------------------------------------------------------------//
 だ、そうでございます。
 本を読んでると3分で寝てしまう私はまったく頭に入ってませんでした。
 
 Release
 //-------------------------------------------------------------//
 フォームのReleaseメソッドは、オブジェクトのFreeメソッドと同じよう
 なものだ。
 違いは、全てのイベントハンドらがその実行を完了するまで、フォーム
 の破棄が延期されることだ。
 フォームの中でFreeを使うと、アクセス違反が発生する可能性がある。
 ・・・・
 //--------------------------------------------------------------//
 フォームの中でFreeを使うと・・・・え゛っ?どういうこと。
 例えばOnCloseの中でFreeを使うって事?
 自分で自分をFreeしちゃうんですね(自殺)。
 怖くてできません。
 で、フォームの外なら良いのですかね(他殺)。
 表現悪m(__)m
 
 
 
 
 |