フォームを表示しないで終了するには?


無名  2001-08-21 18:35:56  No: 149  IP: [192.*.*.*]

フォームShowでレポートにプレビューを行った後
フォームを表示しないで終了したいのですが、終了処理に
遷移してもフォームは表示されたままです。何か方法は
ありますか?複数フォームをひとつのフォームにし
プレビューしているためAFTERプレビューのイベントが
使用できませんので・・・

編集 削除
にしの  2001-08-22 13:32:32  No: 150  IP: [192.*.*.*]

これは、FormのOnShowイベント内で、
procedure TForm1.FormShow(Sender: TObject);
begin
  QuickReport1.Preview;
end;
としているということですか?
それならば、Previewしたあとにフォームを閉じればよいはずです。
procedure TForm1.FormShow(Sender: TObject);
begin
  QuickReport1.Preview;
  Close;
end;

もしEXE内に1つしかフォームがなくて、そのフォームを表示せずにレポートをプレビューしたいなら、単純にプロジェクトのソースを
begin
  Application.Initialize;
  //Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TQuickReport1, QuickReport1);
  //Application.Run;
  QuickReport1.Preview;
end.
としてもよさそうですが。
# 動作はしましたが副作用があるかどうかは不明です

編集 削除
くま  2001-08-23 00:01:56  No: 151  IP: [192.*.*.*]

回答ありがとうございます。

procedure TForm1.FormShow(Sender: TObject);
begin
  QuickReport1.Preview;
  Close;
end;

このケースは正常に終了できます
ですが・・・
複数レポートをまとめるため
procedure TForm1.FormShow(Sender: TObject);
begin
  QRCompositeReport1.Preview;
  Close;
end;
確かにデバックでは終了処理が実行されますが
フォームは表示されてしまうんです・・・
フォームは複数ありこのレポートは呼び出されるフォームです。
DELPHI初心者なのでよろしくお願いします。

編集 削除
にしの  2001-08-24 09:41:12  No: 152  IP: [192.*.*.*]

うちの環境ではEXEを実行してもフォームは表示されずに終了します。
# Windows2000Pro+SP2, Delphi5(アップデートもかけたかも)

Closeではなく、Releaseにしてみたらどうでしょうか。
OnCreateなどで他の処理(オブジェクトの生成など)はしていないですよね?

編集 削除