Delphi migration fastreport issue - delphi

I have my Delphi application up and running in XE2.
I am using fastreport provided with IDE.
When i tried to migrate from Delphi XE2 to delphi 10.1, I get issues for fastreport.
[dcc32 Fatal Error] fs_isysrtti.pas(615): F2051 Unit fs_iinterpreter was compiled with a different version of fs_isysrtti.TfsSysFunctions
I have added lib path in tools->options.
What can be issue over here?

The error message means what it says: there is a mismatch between the current version of fs_isysrtti and the one which was current when fs_iinterpreter was compiled. This is probably because the compiler is finding an out of date copy of fs_iinterpreter.dcu before the one it ought to find. Try searching your machine for versions of this .dcu file and renaming/hiding all except the newest (or the one in the same output folder as the compiler is trying to compile fs_isysrtti to, which is hopefully the same thing).
If your system is anything like mine (I have XE4 to D10 Seattle installed) you will find a number of versions of these dcus (fs_iinterpreter.dcu, that is).
Assuming this procedure removes the compiler's complaint, one-by-one reinstate the dcus you renamed or hid until the problem re-occurs and then you know which copy is causing the problem. Then work out how the D10.1 compiler is managing to find it and prevent it. Possibly, the compiler search path is causing it to look in the wrong place before the correct one.
Unfortunately, even if you manage to find the .dcu that's causing the problem, you may then find that the compiler raises a similar complaint about another Fast Report .dcu. If is does, then your easiest option may simply be to hide/rename all the FR files and reinstall it.

Uninstall FR, install it again and remove pas files from LibD24 folder
or
install all updates for Delphi 10.1 Berlin and use latest FR 5.5.11

I 've just got the same issue when I tried to convert old quickreport files to Fastreport 6.2.1 (Delphi 10.3.3 64 bit Target)
I found an easy solution here:
https://wiert.me/2016/06/30/built-in-delphi-xe6-xe7-and-xe8-fast-reports-have-issue-f2051-unit-fs_iinterpreter-was-compiled-with-a-different-version-of-fs_isysrtti-tfssysfunctions/
if the link wont work:
you have to move the *.pas files from the path
"c:\Program Files (x86)\FastReports\LibD26x64"
(it was my path, check yours. /where the fs_isysrtti.pas/)
and it works.

Related

Can we use a lower version of Delphi (Delphi xe5) to edit a project file from the higher version (Delphi xe6)

Every time I run the .dproj file in xe5, I get an error "Exception EReadError in module StartCoatPro.exe at 000C0304. Error reading LineSeries1.Legend.Visible: Property Legend.Visible does not exist."
I tried looking for the Legend.Visible property under LineSeries1 in the .dfm file but I couldn't find it. Then I also tried to put a line, Legend.Visible = True, but doesn't seem to work too. Please help.
Thanks!
Project files are version-specific. You cannot edit an XE6 project in the XE5 IDE and vice versa, for instance.
But what you are experiencing is not a project problem, it is a DFM problem. You have an XE6 DFM that contains a value for a property that apparently does not exist in XE5. Do not try to edit DFM files across version boundaries, either. Newer versions tend to store new properties that cause errors in earlier versions.
Cross-version project management is tricky. Best not to share version-specific files at all, unless you use third-party tools to help you. For instance, there are tools available that manipulate DFMs to strip out newer properties when downgrading to an older IDE.

Why Delphi says "Unit xxx compiled with a different version of yyy" if all my paths are correct?

First of all I would like to apologize for the question itself. I simply could not make anything better. Well, the question then follows with examples and detailed ...
I manually installed QuickReport Delphi 2006 from their sources. It is composed of two packages a "DesignTime" and a "RunTime".
My Delphi is configured to build the BPL files in "D:\BPL" and DCP files on "D:\DCP" for all packages compiled on my Delphi
The source code of QuickReport are in "D:\QuickReport" and their packages (design and runtime) are configured to save the compiled units (DCU) in the folder "D:\QuickReport\DCU." This was the only configuration done in the packages. Nothing is set up with different paths and, BPL and DCP files are placed correctly in the folders I've set up, as I mentioned earlier.
With these settings I was able to build and install QuickReport without problems (just a few compiler warnings, which I believe are normal). All QuickReport components appear in your palette in Delphi, which does not emit any error on start proving that the components are properly installed and all packages were found.
Now comes the test: I started a new win32 application, completely empty, just a blank form. Then it put a QuickReport component (TQuickRep). The first thing I noticed was that the unit "QuickRpt", which is automatically placed in the clause "uses" of the "interface" is underlined in red indicating that something is wrong.
When I perform a CTRL+ENTER in "QuickRpt" unit (uses clause), the Delphi finds the source file (.pas) correctly, which is in "D:\QuickReport" then I ran a BUILD ALL command and the following compilation error appeared:
[Pascal Fatal Error] Unit1.pas (7): F2051 Unit QuickRpt was compiled with a different version of QRExpr.TQREvElement
That's it!!!
This error is only happening with Quick Report. I have other third-party components installed using the same configuration as the paths and they all work properly.
Finally I was able to solve this problem. #RRUZ and another friend gave me the tip: An lost QuickRpt.dcu file on my system. There were a QuickRpt.res file also. I found them, but the place was very improbable to me: The delphi LIB folder!!!
Well, i have some clues about this bizarre thing.
Until Delphi 7, the QuickReport was shipped together with the IDE however, it was disabled by default. On that Delphi version, all we need to do is to register the bpl to gain full access to QuickReport!
On Delphi 2006, the QuickReport is not part of IDE and there are no BPL to register, however the guys at Borland forgotten to remove all files from the old QuickReport. The Delphi Lib Folder is one of the first folders to be checked on Delphi start, so, if there are old files there, new files on another place would be never compiled, generating the annoying error!
This problem may be present on Delphi 2005 too.

undelphix error message

I've installed unDelphiX to my Delphi 2010, but I can't run even a simple example program, I always an error message:
F2051 Unit D3DX9 was compiled with a different version of Direct3D9.TD3DFormat
I never worked with unDelphiX and I have no idea what this error means.
Can someone please explain it to me and how can I resolve it?
Just Google for "was compiled with a different version of" (exact phrase) and you will find plenty of answers. Basically, the dcu files you are using have been compiled with a different version of Delphi than the Delphi version you are using.
Link to the Delphi Documentation: http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/cm_version_conflict_xml.html
Doc doesn't clarify much though. What you need to do to resolve it:
Compile the sources of the library with your Delphi version or obtain the dcu's compiled with the same Delphi version as yours.
Make sure that your environment or project's library path includes the folder in which either the library sources or the dcu's compiled with your Delphi version can be found.

Reportmanager and delphi 2010

does reportmanager (http://sourceforge.net/projects/reportman/) support delphi 2010?
Thanks
Alejandro Jourdan
It looks like the most recent download on SourceForge only has premade projects to compile native components up through Delphi 2009. I expect it should be easy enough to revise the D2009 project to compile under D2010.
Also, as you may know, you could use ReportManager with D2010 without having the native components at all.
You might get more complete and accurate answers in the Report Manager user group on Yahoo:
http://tech.groups.yahoo.com/group/reportman/
I managed to compile the latest 3.0 version with Delphi 2010 Professional. Not a really easy task.
In order to do so, you have to follow these steps:
Edit the .inc file and see if you can exclude unused libraries.
In my case I undefined IBX and used ZEOS for database.
Then you will get an error about IntPr being not defined. Replace it with Pointer.
You will get hundreds of FormatSettings not defined errors. You have to remove such identifier. I.e. go in search and replace and type: "FormatSettings." including the dot and in replace leave it blank. Repeat for the many files that will show the same error, or do a multi-file search and replace at once.
You will possibly get references to IBX units or packages even in case you removed it from the .inc file. You may just delete the offending lines.
You will get a nasty missing unit WinApi.Common... Remove it from the uses clauses, you don't have it.
At a certain point the above point will cause an undefined FOLDERID_Public.
Go to the const section of the offending file and add this:
FOLDERID_Public: TGUID = '{DFDF76A2-C82A-4D63-906A-5644AC457385}';
That should do it, now you are the proud owner of Report Manager 3.0!
Installed today in D2010 on XP without particolar problems.
First downloaded and installed ver. 2.9b executable file.
Second downloaded Delphi package, added source path to the library, opened and compiled group project file.
Received 3 errors (even the same error type): vcljpg Not Found.
Simply rename vcljpg with vclimg.
after that, compiled done, installed.

How to resolve "Unit JclCompression was compiled with a different version of sevenzip.IOutArchive"?

I'm trying to use the JclCompression unit, but when I do, the compiler always says:
Unit JclCompression was compiled with a different version of sevenzip.IOutArchive
What am I doing wrong here? I tried recompiling/installing my JEDI installation, but it didn't seem to help.
The compiler is finding a DCU that was compiled with a previous version of Delphi. You don't say what version of Delphi you are using, but DCU's from one version won't work with those of different version.
The first thing to check is to see if you have your paths right. If you have compiled the JCL previously, it may be that your path is causing the compiler to find the old DCU files, and thus the error.
In addition, the problem may be that you have an out of sync version of Sevenzip code as well.
Bottom line: the compiler is finding a DCU that isn't compatible with your current version of Delphi. Either:
get the right DCU version
find the source and compile it
Ensure that the compiler is looking in the right place for what you are trying to compile

Resources