掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的フレームの再作成でエラー (ID:22624)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
問題点がごっちゃになってますし、 >争点 2006/09/03(日) 23:55:13 でのまとめも不正確なので、まとめなおします。 とりあえず、まささんは3点の技術を提供してくださいました。 インスタンスを一つにしたい場合のSingletonパターンの作成方法 モーダレスのフォームは、Releaseで必ず解放 モーダルフォームの場合は、FreeAndNil これに対してFrameさん >Frame 2006/08/19(土) 17:11:55 >モーダルだからとかモードレスだからという違いではないですね。 >フォームのインスタンス中から自分を直接Freeすることは出来ません。 >そのフォームまたはその子フォームのイベントハンドラ以外からでは FreeAndNilやFreeをすることは構いません。 フォームの開放は、モーダル、モードレスは関係ない。 フォームのインスタンス中から自分を直接Freeすることはできない そのフォームまたはその子フォームのイベントハンドラ以外からでは FreeAndNilやFreeをすることはOK です。 私には、モーダレスとモーダルフォームで何故場合分けができるのかが理解できません。 また、フォームのインスタンス中から自分を直接Freeすることはできないというのも当然にしか思えないので、直接Freeして良い条件が分かりません。そのフォームまたはその子フォームのイベントハンドラ以外からのFreeはインスタンス中のReleaseと同義であるためわざわざ外からReleaseする必要が無いのも当然にしか思えません。(Releaseしても構わないがする意味が無い) つまり、まささんの モーダレスのフォームは、Releaseで必ず解放 モーダルフォームの場合は、FreeAndNil がインスタンス内外であるかどうかとFreeAndNilの利用可能条件は間違いであるとしか言えません。 オブ脳さんの言われている例は、Singletonパターンの作成方法です。 この作業については誰も異論はないと思っています。 >他の人たちがハードコーディングで作成しているのに対して >>a:=tframe2.Create(self); が「Mr.XRAY 2006/07/29(土) 16:23:05」の引用だとするとこれは if not Assigned(a) then a:=tframe2.Create(self); まで抽出しなくては誤りになります。 そもそも、質問はSingletonパターンの作成方法ではないですよね。 私は相手が初心者である場合、なるべくハードコーディングをすべきだと考えております。 そのほうが理解し易いですからね。 あと、蛇足ですが。 >クラス間の依存関係を、なるべく弱くしないといけません。 Singletonだとインスタンスが自由に作れなくなるんだから依存関係はむしろ強くなるのでは?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.