procedure TForm1.FormCreate(Sender: TObject);
var S:widestring;
begin
S:='';
if S='' then begin showmessage('コード指定がありません'); application.Terminate;end;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.add('Select * from y_yakuhin where コード='+S);
ADOQuery1.open;
・・・
ADOQuery1.close;
end;
上記を実行しますと「コード指定がありません」を表示後、
「OK」でダイアログボックスを消すと、ADOQuery1.openでエラーになります。
つまりapplication.Terminateが実行されません(if〜then〜elseで囲むとOKです。)
なぜでしょうか?
>なぜでしょうか?
ヘルプ↓を読んだこと無いの?
”Terminate メソッドは,Windows API PostQuitMessage 関数を呼び出して,アプリケーションを順番に閉じます。Terminate は即座には実行されません。”
...ということ。
PostQuitMessage 関数の理解が必要のようです。
しごく当然 様、ありがとうございました。
ツイート | ![]() |