Hmm, deine Überlegung war dass überprüft wird, ob der Zeiger auf die FberichtVorschau auf Nil zeigt.
Wenn ja dann wird eine neue Instanz von FberichVorschau erzeugt.
Delphi-Quellcode:
procedure TQR_Report.QuickRepPreview(Sender: TObject);
begin
if not Assigned(FBerichtVorschau) then
FBerichtVorschau:= TFBerichtVorschau.create(Self);
FBerichtVorschau.QRPreview.QRPrinter := (Sender as TQRPrinter);
end;
Problem ist nur, dass der Zeiger beim schließen von FberichtVorschau nicht auf nil zurückgesetzt wird.
In der DelphiHilfe findet man zu assigned den Hinweis:
"Assigned kann keine Zeiger erkennen, die zwar nicht nil sind, aber trotzdem nicht mehr auf gültige Daten verweisen."
Daher bekommt man eine
Exception, wenn man "Datei->Neuer Report" ausführt diesen dann schließt und "Datei->Neuer Report" erneut ausführt.
Eine Idee, wie man das machen kann?
Außerdem möchte ich vielmehr überprüfen ob schon ein QR_Report (in einem FberichVorschau) geöffnet ist.
Wenn bsp. schon ein FberichtVorschau mit einem anderen QR_Report_2 geöffnet ist, soll wenn noch kein QR_Report vorhanden ist, ein neues FberichtVorschau mit dem QR_Report geöffnet werden können, ohne dass QR_Report_2 geschlossen wird.
Ne idee dazu?