メインプログラムに戻るには?

解決


でるでる  2006-02-26 22:15:05  No: 20234  IP: 192.*.*.*

新米プログラマーです。
delphiの動きがよくわかりません。
メインプログラムからあるPASファイルにいって
戻ってくる時、そのプログラムを「CLOSE」するとメインプログラム
の「FormActivate」に行ってしまうのですが、どういう事なのでしょうか?

編集 削除
えーとね  2006-02-27 06:08:43  No: 20235  IP: 192.*.*.*

正確な状況が良く分からないのですが
例えばダイアログを閉じて、メインフォームにフォーカスが戻ったなら、
メインフォームがアクティブになります。

編集 削除
HOta  2006-02-27 07:38:30  No: 20236  IP: 192.*.*.*

呼び出し元に返ってくるだけです。

編集 削除
でるでる  2006-02-27 08:44:53  No: 20237  IP: 192.*.*.*

ありがとうございます。自分もそういうものだと思っていたのですが、
わかりません。

コードを見てもらいたいのですが
procedure TMainForm.SpeedButton1Click(Sender: TObject);
begin
    AAAForm.Show;
end;

AAAForm.SpeedButton1Click(Sender: TObject);
begin
    Close;
end;

AAAFormではFormCloseを通らないでCloseしているのですが、問題ですか?
また気になるのはブレークポイントをAAAForm.Showに置いて実行すると
その下のendまでいってからAAAFormにいっているみたいですが
こういうものなのでしょうか?

編集 削除
Syake  2006-02-27 09:33:01  No: 20238  IP: 192.*.*.*

>AAAFormではFormCloseを通らないでCloseしているのですが
「FormCloseを通らないで」の意味が良くわからないのですが
別段、問題のある記述では無いように見えます。

>また気になるのはブレークポイントをAAAForm.Showに置いて実行すると
>その下のendまでいってからAAAFormにいっているみたいですが
>こういうものなのでしょうか?
そういうものです。
Showは、それ以下に記述した内容も実行してしまいます。
ShowModalならば、AAAFormが閉じるまでそれ以下の記述は実行されません。

編集 削除
えーと  2006-02-27 10:06:07  No: 20239  IP: 192.*.*.*

ようするに、「イベントドリブン」ということが分かってないのです。
プログラムコード以前の問題です。

編集 削除
でるでる  2006-02-27 10:30:06  No: 20240  IP: 192.*.*.*

Syakeさん、ありがとうございます。
わかりました。考えてみます。
えーとさん、ありがとうございます。
ごもっともです。一応delphiの初心者向けの本を読んだのですが、
いきなりのプログラム修正で、「イベントドリブン」の表面的な事しか
わからない状態です。プログラムでイベントが発生していない時、どんな
動きをしているのかわかりません。簡単なプログラムを作って仕組みを
理解しょうと思います。

編集 削除
でるでる  2006-02-27 11:10:23  No: 20241  IP: 192.*.*.*

親フォームから子フォームにアクティブが移り子フォームを終了した時
delphiが自動で親フォームをアクティブにするのでしょう。
この考え方で合っていますか?

編集 削除
えーと  2006-02-27 11:24:55  No: 20242  IP: 192.*.*.*

>delphiが自動で親フォームをアクティブにするのでしょう。

delphi じゃなくて、「Windows が」です。

編集 削除
でるでる  2006-02-27 11:30:06  No: 20243  IP: 192.*.*.*

えーとさん、ありがとうございます。
「Windowsが」ですね。合ってますか?

編集 削除
でるでる  2006-02-27 12:33:36  No: 20244  IP: 192.*.*.*

一応解決にしておきます。
ありがとうございました。

編集 削除