喫茶XRAYトップページ

[スレッド全体
]

[744] こんなの有効?返信 削除
2006/4/21 (金) 14:40:45 Syake
マスターこんにちは

めっきり暖かくなりまして、山々は新緑の季節です。
ですが、新葉は毒素を多く含むと言われます。
(組織が軟らかいうちは、害虫から身を守るためらしい)
この季節、山歩きなどをされる方は、かぶれなどに気をつけましょう。

おっと、本題・・・・

//-------------------------------------------------------
  Unit1 //(UnitFile)

・・・・
 frmMain := TfrmMain.Create(App・・・);
 try
   frmMain.ShowModal;
 finally
   if frmSub <> nil then
   begin
     frmSub.Release;
   end;
   frmMain.Release;
 end;

//------------------------------------------------------
 Unit2 //(frmMain)

 //・・・Button1のクリック
   frmSub := TfrmSub.Create(App・・・);
   frmSub.Show;
   frmMain.Hide;

 //OnShowイベント
   if frmSub <> nil then
   begin
     frmSub.Release;
     frmSub := nil;
   end;

//----------------------------------------------------
 Unit3 //(frmSub)
 
 //・・・Button1のクリック
   Close;
 
 //OnCloseイベント
   if bFlg = False then
   begin
     frmMain.Show;//呼び出し元で破棄される
   end else begin
     frmMain.Close;//呼び出し元では破棄されない(Unit1で破棄)
   end;
 
ちなみにDLLです。
今更のようですが、このプログラムは有効なのでしょうか?
@生成前なら必ずオブジェクトの参照はnilである。
A破棄してもオブジェクトの参照はnilにはならない。
BReleaseの後ならオブジェクトの参照をnilにしても一向に構わない。
などと、勝手な推論でできた記述です。
(Flgで判断させるのも面倒なので・・・)




[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を多用していますので、以後気をつけたいと思います。


[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の件ですが、私も時間があったら動作
確認してみたいと思います。使っているんです。ただ、今まで、続けて
印刷ということはやっていませんので。

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