Hallo zusammen,
zunächst um das vorweg zu nehmen: ich nutze Delphi 2010 und QuickReport 5.
Ich habe mir auf einem Formular einen QuickReport erstellt, der bei Bedarf in PDF oder in XLS exportiert werden soll. Dies funktioniert mit dem folgenden Quelltext auch optimal:
Delphi-Quellcode:
procedure TForm1.alsXLS1Click(Sender: TObject);
var
ExportFilter : TQRXLSFilter;
begin
if savedialog2.Execute then
try
try
ExportFilter := TQRXLSFilter.Create(savedialog2.FileName);
form5.QuickRep1.ExportToFilter(ExportFilter);
finally
ExportFilter.Free;
end;
except
messagedlg('Es ist ein Fehler beim Exportieren aufgetreten.',mtError,[mbOK],0);
end;
end;
und das gleiche für PDF
Delphi-Quellcode:
procedure TForm1.alsPDF1Click(Sender: TObject);
var
ExportFilter : TQRPDFDocumentFilter;
begin
if savedialog1.Execute then
try
try
ExportFilter := TQRPDFDocumentFilter.Create(savedialog1.FileName);
form5.QuickRep1.ExportToFilter(ExportFilter);
finally
ExportFilter.Free;
end;
except
messagedlg('Es ist ein Fehler beim Exportieren aufgetreten.',mtError,[mbOK],0);
end;
end;
Wie gesagt, die Datei wird erstellt, alles ist lesbar und eigentlich so wie ich es haben möchte. Allerdings bekommen ich durch
System.ReportMemoryLeaksOnShutdown:=true;
bei Beenden der Anwendung folgende Memory Leaks angezeigt.
Bei PDF-Export "An unexpected Memory Leak has occured. The unexpected small block leaks are: 21-28 bytes: TMBCSEncoding x 1"
Bei XLS-Export "An unexpected Memory Leak has occured. The unexpected small block leaks are: 69-76 bytes: TStringList x 2"
Nach Wegklicken der Fehlermeldung bekomme ich in der Entwicklungsumgebung dann die Windows-Fehlermeldung "Programm funktioniert nicht mehr ...". Wenn ich das Programm jedoch als exe laufen lasse, dann bleibt diese letzte Fehlermeldung aus.
Genauso sieht dies übrigens beim "normalen Druck" des QuickReports aus. Der Report wird gedruckt, in der Entwicklungsumgebung bekommen ich allerdings bei Schließen der Anwendung wieder den "Das Programm funktionier nicht mehr"-Fehler.
Vielleicht hat ja jemand schon ähnliche Probleme gehabt, und kann mir ein wenig weiterhelfen.
Vielen Dank schonmal,
jackandthejuice