Hallo zusammen,
ich möchte gerne ein erstelltes Delphi 2007-Projekt nach Delphi 2010 portieren. Es kann noch nicht nach XE2 portiert werden, da eine Komponente noch nicht für XE2 existiert. Ich benutze in beiden Delphi-Versionen die Komponente Fast Report Version 4.12.1. Wenn ich das Projekt unter Delphi 2007 kompiliere kann ich die Reports ohne Probleme erstellen und anzeigen lassen. Unter Delphi 2010 bin ich hergegangen, dass ich die
DPR-Datei genommen habe um das Projekt zu öffnen. Vorher habe ich natürlich alle
DCU-Dateien gelöscht. Das Projekt wird unter Delphi 2010 einwandfrei kompiliert und gestartet. Alle Funktionen des Programms funktionieren einwandfrei, bis auf die Report-Vorschau. Aufgerufen werden die Reports folgendermaßen in Delphi 2007 und Delphi 2010:
Delphi-Quellcode:
if Dialog then
begin
if RepPreview then
begin
setfrxReportShowModes([frShowHeader, frShowFooter]); // schaltet den Header und Footer des Reports
ReportForm.frxRTFExport_Main.ShowDialog := True;
ReportForm.frxXLSExport_Main.ShowDialog := True;
if RepPrint then
ReportForm.frxrprt_Main.Print
else
ReportForm.frxrprt_Main.ShowReport(True);
end;
end;
Wird die Zeile mit ShowReport(True) in Delphi 2010 aufgerufen, erhalte ich folgende Fehlermeldung :
---------------------------
Debugger
Exception Notification
---------------------------
Project Bodlee.exe raised
exception class EAccessViolation with message '
Access violation at address 0044DB90 in module 'Bodlee.exe'. Read of address 00000011'.
---------------------------
Break Continue Help
---------------------------
Die Fehlermeldung erfolgt dann, wenn das Preview-Fenster erstellt werden soll. Ich habe die gleiche Report-Datei(fr3) vom Delphi 2007-Projekt genommen und in einem neuen Projekt unter Delphi 2010 aufgerufen und mit den entsprechenden Werten gefüllt und das Preview-Fenster wird aufgerufen. Also kann es ja auch nicht an der Reportdatei liegen.
Jetzt stellt sich mir die Frage, warum die Report-Datei(fr3) im Delphi 2007-Projekt einwandfrei geladen wird und im Delphi 2010-Projekt nicht ?