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

解決


でるでる  2006-02-27 07:15:05  No: 20234

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


えーとね  2006-02-27 15:08:43  No: 20235

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


HOta  2006-02-27 16:38:30  No: 20236

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


でるでる  2006-02-27 17:44:53  No: 20237

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

コードを見てもらいたいのですが
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 18:33:01  No: 20238

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

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


えーと  2006-02-27 19:06:07  No: 20239

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


でるでる  2006-02-27 19:30:06  No: 20240

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


でるでる  2006-02-27 20:10:23  No: 20241

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


えーと  2006-02-27 20:24:55  No: 20242

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

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


でるでる  2006-02-27 20:30:06  No: 20243

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


でるでる  2006-02-27 21:33:36  No: 20244

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加