掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的フレームの再作成でエラー (ID:22581)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
既に???さんが書かれているようですが 私も大口叩いた以上、とことんつき合わせて頂きます。 >まさ 2006/08/22(火) 17:24:55 で書かれている、問題1は オブジェクトをFreeしてしまった後に、そのオブジェクトにアクセスしています。 ToolButtonでアクセス違反が起きて、Buttonでは起きないのは単に偶然です。 そもそも、Freeしてしまったオブジェクトにアクセスしてはいけません。 これは、そのオブジェクトが格納されていたメモリのアドレスのロックが解除されたため、以前オブジェクトがあったメモリ位置が他のプロセスによって書き換え可能な状態になっているからです。 オブジェクトインスペクタで貼り付けられたコントロールの生成、開放については私も勉強不足で、細かい点は分かりませんが、ToolButtonでアクセス違反が発生するのはTToolbarのDestroyでしっかり開放されているからだと思います。 私が昨日書いたように別にFreeしてもポインタもそのメモリのデータもそのままであれば、あたかも正常にアクセスできているかのように見えることがありますが、これはデータとして保障されたものではありません。 この例でアクセス違反を起こすのであれば、 procedure TForm2.FormDestroy(Sender: TObject); begin Form2.Canvas.TextOut(0,0,'test'); end; とかしてみれば例外は発生できます。 無論、Formを単体で作って同じことをしても例外は出ません。 まささんの例ではFormがDestroyされる以前にFormのポインタにnilが代入されているためです。 >ひれかつ 2006/08/24(木) 20:09:01 あのねぇ… 私は「Frame」さんで「もん」とさんでもありません。 てか、人に謝罪しろとまで言った以上、私はまささんにとことん付き合うつもですし、 コロコロIDを変えるようなことはしません。何なら管理人に頼んでIPアドレス見せてもらったらどうですか? 私が他の2名でないことを証明する分には管理人さんにその旨をお話して開示させてもらって結構です。 朝9時から夜12時まで働くのがそんなにあなたの環境では珍しいことですか? それに私は知らない人に対して主に敬語です。 あなたも私に対して謝罪を要求するのであれば、それなりの態度と技量で接してください。 私は異常なスレの伸びをみて途中参加した者ですし、未だに始めの方をちゃんと読んでいません。 確かにちゃんと付き合うのなら全部読む必要があるのは分かってます。 >まさ 2006/08/22(火) 17:24:55 が何を言おうとしたソースなのかすら未だ把握していないのも事実です。 見ると「うらないさん」の回答がそのままなのにそれに対する返信に誠意の無さを感じたのにこれはいかんと感じたまでです。 なんとか明日までには目を通しておきます。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.