Autor Beitrag
Seltermann
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 30.08.07 10:20 
Hallo,

wie kann man in FastReport nach dem drucken eines Reports das Preview automatisch schließen lassen?

Test halber lasse ich in FormShow den FastReport mit frxReport1.ShowReport(True); öffnen.
Im Event Progress bzw. frxReport1Progress von frxReport1 steht folgendes:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.frxReport1Progress(Sender: TfrxReport;
  ProgressType: TfrxProgressType; Progress: Integer);
  var wnd: HWND;
begin
//  ShowMessage('TID: ' + IntToStr(GetCurrentThreadId) + #13 + 'PID: ' + IntToStr(GetCurrentProcessId));
  wnd := FindWindow(PChar('Preview'), nil);
  if CloseWindow(wnd) then
    ShowMessage('Fenster geschlossen!')
  else
    ShowMessage('Fenster nicht geschlossen!');
end;


So funktioniert es nicht, warum keine Ahnung.

Ich hatte schon mit den Gedanken gespielt über die ThreadID, EnumWindow das Fenster zu schließen. Aber vielleicht geht es auch einfacher.
Seltermann Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 30.08.07 12:34 
Hi hab das Problem doch noch selber gelöst bekommen.

Die Antwort lautet: 42

frxReport1.PreviewForm.Close;

Der VCL-Dschungel kann manchmal ziemlich undurchdringlich sein.