掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MDIの子フォーム (ID:44261)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>FTest3にはオブジェクト代入されてないですね。 >だからアクセス違反が起こる。何も参照してないのですから、 >アクセス違反が起こって当然だと思います。 ですね. >もう一度よく、どの変数が何を参照しているか確認すれば、すぐ解決するでしょう。 なんですが,こんなところですか ? コードでの,子フォームの具体的宣言が不明なので,通常のフォームで説明します. Form2: TForm2; というのがあったとします.この Form2 というのは TForm2 という「型」の 具体的なオブジェクト,インスタンス(実体) です. 自動作成フォームにしておくと,このインスタンスは自動的に生成されます. 一方,使用可能フォームにした場合は,コードで,このインスタンスを生成しなければなりません. 提示のコードの中に CFRM2 := TFTEST2.CREATE(APPLICATION); CFRM3 := TFTEST3.CREATE(APPLICATION); というのがあります.これは,確かに,TFTEST2, TFTEST3 の具体的なインスタンスを生成 してはいますが,そのインスタンスの名前は,CFRM2, CFRM3 となっています. しかも,これらは,ローカルな変数になってしまっています. ローカルな変数とは,CHILD_OPEN というメソッド内だけで有効になっているということです. りゅうさんの場合, FTEST3.Edit2.Text := 'テストです'; とするわけですから,以下のように,FTEST2, FTEST3 という変数名で, TFTEST2 と TFTEST3 のインスタンス(実体)を生成する必要があります. FTEST2 := TFTEST2.CREATE(APPLICATION); FTEST3 := TFTEST3.CREATE(APPLICATION); >間違いがありました. コードは,実際のプログラムのをコピペする方がいいですね. 間違いの元です. そのためには,実際に開発中のアプリそのものではなく,エラーが発生する, 最低限のプロジェクトを作成してテストすることです. そうすると,他の人も見慣れた,Form1 とか Form2 という名前になって, もしかしたら,掲示板を観ている人がテストしてくれるかも知れません. 特別な名前になっていると,面倒なのでやってくれないかも知れません(多分やらないでしょう) こうやって,説明を書くのも面倒ですもん. # 昔は Fortran で大文字ばっか使っていたけど,Delphiで全て大文字というのは # なんか違和感がありますね (笑)
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.