Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - FastReport - autom. Preview nach Drucken schliessen


Seltermann - Do 30.08.07 10:20
Titel: FastReport - autom. Preview nach Drucken schliessen
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:


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 - 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.