喫茶XRAYトップページ

[スレッド全体
]

[752] Re:こんなの有効?返信 削除
2006/4/24 (月) 22:16:08 Mr.XRAY
▼ Syakeさん どもども。

> @生成前なら必ずオブジェクトの参照はnilである。
> A破棄してもオブジェクトの参照はnilにはならない。
> BReleaseの後ならオブジェクトの参照をnilにしても一向に構わない。


私自身、コードは問題ないと思うのですが。
上の(1),(2)はその通りでしょうね。
(3)はnilにしないと、nilにならないのではないかと(何か変な表現だけど)。

ところで、フォームのイベントでは、FreeではなくReleaseを使用するべき
というは、多くの参考書、ヘルプでもあるのですが、結構Freeを使ったりし
ているんです。私の場合。やっぱりマズイのでしょうか。


[757] Re2:こんなの有効?返信 削除
2006/4/25 (火) 11:27:39 ちいんけ
▼ Mr.XRAYさん

> ところで、フォームのイベントでは、FreeではなくReleaseを使用するべき
> というは、多くの参考書、ヘルプでもあるのですが、結構Freeを使ったりし
> ているんです。私の場合。やっぱりマズイのでしょうか。


お久しぶりです。
ちいんけです。

Syakeさんへの回答でないので申し訳ないのですが、Formを破棄する
ときにFreeを使うか、Releaseを使うかという議論で、Delphi-MLに
中村さんの発言を見つけました。

http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=016908

わたしもFreeを多用していますので、以後気をつけたいと思います。


[759] Re3:こんなの有効?返信 削除
2006/4/25 (火) 15:54:07 Syake
▼ ちいんけさん
> Syakeさんへの回答でないので申し訳ないのですが
とんでもございません。
FreeとRelease、以前にDllFormでりおりおさんにお世話になっていました。

>怖くてできません。
撤回です。
わすれてました。
そのときは、見事に(自殺)してました。


[765] Re3:こんなの有効?FormのReleaseとFree返信 削除
2006/4/25 (火) 22:33:20 Mr.XRAY
▼ ちいんけさん

> 中村さんの発言を見つけました。
>
> http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=016908

おおっ、情報サンクスです。読んで理解しました。Syakeさんのレスもあわ
せて。私の場合問題ないようです。安心、安心。

ところで、談話室のTWebBrowserの件ですが、私も時間があったら動作
確認してみたいと思います。使っているんです。ただ、今まで、続けて
印刷ということはやっていませんので。

[758] Re2:こんなの有効?返信 削除
2006/4/25 (火) 15:40:25 Syake
▼ Mr.XRAYさん

> 私自身、コードは問題ないと思うのですが。
> 上の(1),(2)はその通りでしょうね。
> (3)はnilにしないと、nilにならないのではないかと(何か変な表現だけど)。

ありがとうございました。

確かにMasteringDelphi6にそのような記述がありました。
//-------------------------------------------------------------//
nilに設定するのはプログラマの仕事なのだ。
(略)
オブジェクトを自動的にnilに設定するのは不可能である。
それは、同じオブジェクトが複数の変数から参照されている可能性があり
Delphiはそれらの参照を追跡管理しないからだ。
Freeなどのメソッド内部ではオブジェクトの操作はできるが、そのオブジ
ェクトの参照(そのメソッドの呼び出しに利用した変数のメモリアドレス)
については何もわからない。
メソッドの内部ではオブジェクトのメモリアドレスを知ることはできるが
そのオブジェクトを参照している変数のメモリアドレスまではわからない
とういことだ。
//--------------------------------------------------------------//
だ、そうでございます。
本を読んでると3分で寝てしまう私はまったく頭に入ってませんでした。

Release
//-------------------------------------------------------------//
フォームのReleaseメソッドは、オブジェクトのFreeメソッドと同じよう
なものだ。
違いは、全てのイベントハンドらがその実行を完了するまで、フォーム
の破棄が延期されることだ。
フォームの中でFreeを使うと、アクセス違反が発生する可能性がある。
・・・・
//--------------------------------------------------------------//
フォームの中でFreeを使うと・・・・え゛っ?どういうこと。
例えばOnCloseの中でFreeを使うって事?
自分で自分をFreeしちゃうんですね(自殺)。
怖くてできません。
で、フォームの外なら良いのですかね(他殺)。
表現悪m(__)m




[760] Re3:こんなの有効?返信 削除
2006/4/25 (火) 16:00:37 Syake
マスター

読んでませんね。
>フォームのイベントでは、FreeではなくReleaseを使用するべき
フォームの中つまり(自殺)ですね。

マスターがエラーにならないのは、その辺を見極めて適切に処理
されているからでしょう。
私がエラーになったのは・・・・です。(;_;)

[773] Re4:こんなの有効?返信 削除
2006/4/26 (水) 10:16:31 ちいんけ
▼ Syakeさん

> >フォームのイベントでは、FreeではなくReleaseを使用するべき
> フォームの中つまり(自殺)ですね。


さらに、Delphi-MLでこんな記事をみつけました。

[Delphi-ML:36522] Re: 動的なフォームの作成について
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=036522

ノンモーダルなフォームのときは参考にさせていただいてます。

ちいんけ@

[774] Re5:こんなの有効?返信 削除
2006/4/26 (水) 20:42:35 Syake
▼ ちいんけさん

勉強になります。
ありがとうございます。m(__)m


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82