フォーム右上の×をクリックすると正常に終了しない時があるのは何故ですか?

解決


ゆきお  2003-11-15 04:13:54  No: 5672

度々恐れ入ります。
いくつかフォームがあるのですが、ただ単にフォームを切り替えた状況でフォーム右上の×をクリックすると正常に終了します。(正常に終了と言うのはWindowsタスクマネージャーのプロセスにない状態を言っています)
たまたまテキストファイルとのやり取りを行いその後×をクリックすると見た目は終了しているのですが上記のプロセスを見たらプログラムが裏?で起動しているのを見つけてしまいました。
以前から問題なくコンパイルできるはずなのにexeが作られなかった旨のメッセージが出ていたのはこれが原因でした。
どのような操作をしてもForm1の終了ボタンをクリックすれば正常に終了します。テキストファイルとのアクセスは
var
    fn:string;
    filelist:tstringlist;
    i:integer;
begin
    filelist:=tstringlist.Create;
    try
    fn:='c:\試作2\tenpo.txt';
    filelist.LoadFromFile(fn);
    for i:= 1 to 9 do
    tedit(form2.findcomponent('labelededit'+inttostr(i))).text:=filelist[i-1];
    finally
    filelist.free;
    end;
end;
このようにしております。
長くなって申し訳ありません。この現象の防止に関し分かる方いらっしゃいましたらご指導いただけますでしょうか。宜しくお願い申し上げます。


Halbow  2003-11-15 04:39:49  No: 5673

Halbow です。

> どのような操作をしてもForm1の終了ボタンをクリックすれば正常に終了します。

どのような状況がわかりませんが、デフォルトでは X ボタンを押してアプリが
終了するのは MainForm である Form1 だけです。他のフォームでは、たんに
そのフォームが見えなくなるだけです。ですから、わたしがみるところ正常に
動作しているようですが。ゆきおさんが勘違いしているのではないでしょうか。


ゆきお  2003-11-15 05:01:20  No: 5674

Halbowさんこんばんは。
確かにForm1以外を表示する時にForm1を非表示にしていました。
試しにForm1以外を表示する時にForm1を表示させたままにして
最終的にForm1の×をクリックしたら問題なく終了しました。
>ゆきおさんが勘違いしているのではないでしょうか
すみません。完全に勘違いしておりました。
Form1は小さいフォームなので他のフォームを表示しても隠れるので
そのまま表示する事にしました。
どうもすみません。ありがとうございました。


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

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






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