-PR-
解決
済み

EAccessViolationエラーの生成

  • 困ってます
  • 質問No.53027
  • 閲覧数1372
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 67% (39/58)

C++Builder 5.0でプログラムを作成しています。
Form1~Form3を作成し、Form1を自動生成の対象及びメインフォームとしました。Form1にはボタン1、Form2にはボタン2を用意し、ボタン1からはForm2を、ボタン2からはForm3を開くことが出来るようにしました。
Form1のボタン1には
TForm2 *Form2 = new TForm2(Application);
Form2->Show();
Form1->Hide();と記述し、
Form2のボタン2には
TForm3 *Form3 = new TForm3(Application);
Form3->ShowModal(); ← Form3はモーダルフォーム
と記述しました。Form1とForm2のPublic部にint型の変数iとjを用意し、
Form3から
Form1->i = 5;
Form2->j = 5; という様に値を代入すると
Form1の時はうまく代入できるのですが、Form2の変数に代入すると「Project1.exeがEAccessViolationクラスの例外を生成しました …」というエラーメッセージが表示されてしまいます。この原因は何でしょうか。なお、各フォームのヘッダファイルのインクルード はきちんと行っています。OSはWindows98です。御回答をどうかよろしくお願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル11

ベストアンサー率 37% (110/293)

Form3を表示したときForm2がどういう挙動を取るのか説明がないので
何とも言えないですが、もしClose();とかdelete Form2;
されてたりするのであればForm2のインスタンスは破棄されている
可能性が高いので例外はスローされますよね?

というわけで補足を求めます。Form2はForm3がShowModal時は
画面に表示されているのでしょうか。
補足コメント
Richi

お礼率 67% (39/58)

御返事ありがとうございました。
Form2はそのまま表示しています。
しかしながら、色々と試してみたのですが、
Close()してdelete()したときと、
表示したままの時での違いはありませんでした。
投稿日時 - 2001-03-19 00:23:55
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ