メインのフォームとは別にフォームを作成し、
これをTMainMenuで作成したメニュー項目をクリックしたら、
もう一つのフォームが表示させるという事をしたいのですが、
フォームを作成して実行してみると、メインじゃない方だけが実行されて
メインの方が実行されないのですがどーすればよいか
教えてもらえないでしょうか?
『オブジェクト参照がオブジェクト インスタンスに設定されていません』
というエラーもでているので、原因はこれでしょーか?
意味わからんです。
「メインフォームが表示されない」のですか?
実行っていうのは、「画面に出てくる」という意味ですか?
「エラーもでている」のは、どこに出てくるのですか?
コンパイル時に出るエラーですか?
実行したときに、「OK」ボタンも表示されるような画面で表示されるのですか?
すみませんでした。
で、そうです。
実行したときに、メインフレームが表示されず、
もう一つのフレームだけが
表示されてる状態になるという事が伝えたかったんですけれど。
ちなみにエラーは、コンパイルエラーではなく、
もう一つのフレームを編集しようとプロジェクトインスペクタを
ダブルクリックして選択したら、
『オブジェクト参照がオブジェクト インスタンスに設定されていません』
というメッセージダイアログが出てくるのですが。
>>実行したときに、「OK」ボタンも表示されるような画面で表示されるのですか?
↑
これはどういう意味なのでしょうか?すみません。
プロジェクト→プロジェクトオプション→フォームタブのメインフォームを
最初に表示させたいフォームにしてみてはいかがでしょうか。
外していたらごめんなさい_(._.)_
ん?フォームという表現がフレームに変わってますが?
フォームとフレームでは、話がまた違ってきますよ・・・と、つっこんでみる。
さて、メインフォームで表示されるフォームが違う件は、通りすがお さんのレスで回答の通りです。
また、プロジェクトオプションで、いずれのフォームも自動生成の対象にしておけば、
(通常は、フォームを作った時点で、自動生成の対象です)
Form1(Unit1.pas,メインフォーム), Form2(Unit2.pas) があり、Form1からForm2を表示するには、
Unit1のUses にUnit2を追加し、メニューのクリックイベントで
Form2.Show ないし Form2.ShowModal で表示できます。
Form2を自動生成しないのであれば、以下のように、動的に生成することも可能です。
var
frm2: TForm2;
begin
frm2:=TForm2.Create(Self);
frm2.ShowModal;
frm2.Free;
end;
フォームを自動生成にしておくと、上記のようなインスタンスの作成と破棄を自動でやってくれます。
> もう一つのフレームを編集しようとプロジェクトインスペクタを
> ダブルクリックして選択したら、
> 『オブジェクト参照がオブジェクト インスタンスに設定されていません』
「プロジェクトインスペクタ」がわかりません?
「オブジェクトインスペクタ」のことでしょうか?
また、再現させることもできません。
「オブジェクトインスペクタ」であれば、プロパティタブ側でしょうか?
それともイベントタブ側でしょうか?
> >>実行したときに、「OK」ボタンも表示されるような画面で表示されるのですか?
> ↑
> これはどういう意味なのでしょうか?すみません。
いわゆるエラーメッセージの意味です。
勝手にLさんのボキャブラリーレベルを推し量り、専門用語を削ったあげく、わかりにくくなってしまいました。
すいません。
皆さんのおかげで出来ました!!
ありがとうございました。
ツイート | ![]() |