Laboratory of Mobile Agricultural Chemicals Searcher
携帯農薬検索実験室

研究会

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
36 / 114 ツリー <前へ | 次へ>

〔767〕ACFinder071125版 kabe (07/11/25 21:50)

〔776〕Re:終了時にエラー送信ダイアログが… Hidemi Oya (07/11/26 22:28)
〔778〕Re:終了時にエラー送信ダイアログが… kabe (07/11/27 0:41)

〔776〕Re:終了時にエラー送信ダイアログが…
 Hidemi Oya WEB  (07/11/26 22:28)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>新しいコントロールを貼り付けたり、プロパティを変更すると、なぜか終了時にエラーが出ることがあります。
 いつものだと、Delphi ランタイムが EMemoryAccessViolation を出しますが、今回は出ないので、もしかするとちょっと原因が違うかも…。
 同じ原因だとすると、今までのはどちらかというと、一度開放したオブジェクトをさらに開放しようとしてエラーが出ている感じがします。以前の ACFinder のソースでは、フォームに静的に貼り付けたビジュアルコンポーネントを動的に生成/開放しているところが結構ありました。少なくとも Delphi 標準コンポーネント以外については(できれば標準コンポーネントも)、動的に開放した後はオブジェクトに nil を代入しておいた方が間違いないです。

 基本的には、フォームに貼り付けたビジュアルコンポーネントは Delphi が自動生成/開放するので、これを動的に生成/開放するのはやめた方が良いと思います。どうしても動的に生成/削除する必要があるなら、uses に必要なユニットを記述するだけにして、フォーム上からは全て削除しておいてください。
 また、フォームを動的に生成する場合は、プロジェクトの自動生成フォームリストから削除するとともに、解放時には Free ではなく Release を使用するようにしてください。

〔778〕Re:終了時にエラー送信ダイアログが…
 kabe WEB  (07/11/27 0:41)

引用なし
   >Hidemi Oyaさん

kabe です。

> 少なくとも Delphi 標準コンポーネント以外については(できれば標準コンポーネントも)、動的に開放した後はオブジェクトに nil を代入しておいた方が間違いないです。
了解しました。このチェックは次回にします。

> また、フォームを動的に生成する場合は、プロジェクトの自動生成フォームリストから削除するとともに、解放時には Free ではなく Release を使用するようにしてください。
071126版でRelease の方だけ、気付いた部分修正しました。
今回のエラーは私の自宅環境では再現されないので、直ってるかどうかは未確認です。

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
36 / 114 ツリー <前へ | 次へ>
ページ:  ┃  記事番号:   
(SS)C-BOARD vv3.8 is Free.