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


無名  2001-08-22 03:35:56  No: 149

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


にしの  2001-08-22 22:32:32  No: 150

これは、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 09:01:56  No: 151

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

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

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


にしの  2001-08-24 18:41:12  No: 152

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

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


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

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






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