フォームShowでレポートにプレビューを行った後
フォームを表示しないで終了したいのですが、終了処理に
遷移してもフォームは表示されたままです。何か方法は
ありますか?複数フォームをひとつのフォームにし
プレビューしているためAFTERプレビューのイベントが
使用できませんので・・・
これは、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.
としてもよさそうですが。
# 動作はしましたが副作用があるかどうかは不明です
回答ありがとうございます。
procedure TForm1.FormShow(Sender: TObject);
begin
QuickReport1.Preview;
Close;
end;
このケースは正常に終了できます
ですが・・・
複数レポートをまとめるため
procedure TForm1.FormShow(Sender: TObject);
begin
QRCompositeReport1.Preview;
Close;
end;
確かにデバックでは終了処理が実行されますが
フォームは表示されてしまうんです・・・
フォームは複数ありこのレポートは呼び出されるフォームです。
DELPHI初心者なのでよろしくお願いします。
うちの環境ではEXEを実行してもフォームは表示されずに終了します。
# Windows2000Pro+SP2, Delphi5(アップデートもかけたかも)
Closeではなく、Releaseにしてみたらどうでしょうか。
OnCreateなどで他の処理(オブジェクトの生成など)はしていないですよね?
ツイート | ![]() |