Delphi compatibility issue - delphi

There seems to be a compatibility issue between Delphi 10 Seattle and Delphi 2010
I've written a school project using Delphi 10 Seattle but my teacher still uses Delphi 2010. When I transferred and opened the source code in Delphi 2010 it gave errors.
I've installed 2010 on my PC to replicate the error (screenshot below)
"File not found Vcl.Forms.dcu"
Any thoughts how to get this to work, the marking/moderating takes place with Delphi 2010.

Unit scope names were added in Delphi XE2. Vcl.Forms does not exist in older versions of Delphi. Instead, it should just be Forms.
The reason is because of the introduction of the Firemonkey framework in Delphi XE2. With Firemonkey also came the necessity to differentiate Vcl.Forms from Fmx.Forms. The same applies with many other units, such as Graphics. Delphi 2010 did not have Firemonkey, so it did not yet enforce this prefix.
If you need code to compile in Delphi 2010 and Delphi 10 Seattle, specify only the base unit names in your uses clause (Forms, Graphics, etc), and make sure your Delphi 10 Seattle project has the necessary scope(s) (Vcl, Winapi etc) setup in Project > Options > Delphi Compiler > Unit scope names. By default, new projects should already have this. If not, you can add Vcl and any other prefixes you need. This will make sure the compiler can find Vcl.Forms even when you specify only Forms in code.

Related

using delphi xe7 form(VCL) in delphi 7

Is there some possibility to use Delphi xe7 form in Delphi 7 project, without create DLL file? I found "Monkey-Mixer" which allows to use FMX form in VCL project, and I wonder is there same tool for use new VCL forms in older versions of Delphi?
Is there some possibility to use Delphi XE7 form in Delphi 7 project, without creating DLL file?
No there is not. You cannot link code from different versions of Delphi into the same executable.

Delphi XE3 third party VCL components in the XE4?

I use Delphi XE3 and I want to migrate to the Delphi XE4. Can I use the same third party components as I used in XE3 in XE4? In previous versions happened many changes, which precluded the use of previous versions of third party components.
You must re-compile your project in XE4, using XE4's VCL.
If by "XE3 VCL" you are actually referring to third-party VCL components, then they need to be compiled and installed in XE4 before they can be used in XE4 projects.
This is true of just about every Delphi version (D2007 being the only exception, as it was binary compatible with D2006).

What's the difference between Delphi and Rad Studio?

I can't find a feature comparison list. I believe they can both can create native unmanaged code, right? Does Delphi by itself feature RAD?
Yes. Both Delphi and RAD Studio contain the IDE and Delphi itself, so they both create the same unmanaged native code.
RAD Studio includes other product lines as well (XE2, for instance, included C++Builder, HTML5 Builder and Delphi Prism in addition to Delphi itself). The Delphi product simply included Delphi. Both products lines, though, use the same IDE for Delphi (and C++Builder, in the case of RAD Studio).

Migrating old Delphi 7 code to Delphi XE - QForms.dcu not found

I just bought and installed Delphi XE and was hoping to compile my old D7 project there.
However, I hava a source file that "uses QForms" and that generates a "file not found: qforms.dcu" and I can find no relevant reference to what to do about that file googling around...
Any idea how to solve it?
Rgds
PM
QForms is from CLX, the Qt based cross-platform library that was introduced with Delphi 6/Kylix. So far as I know, CLX is no longer shipped with Delphi.
You need to do one of the following:
Stick with Delphi 7.
Port the code to VCL. This will tie you to the Windows platform.
Get Delphi XE2 and use FireMonkey since clearly at some point in time this code was intended to be cross-platform.

Does Delphi XE2 FireMonkey support Indy for cross-platform apps?

Looking at the new Delphi XE2 with Firemonkey. Considering that it compiles for Windows, Mac OSX and iOS, VCL components are useless in a FireMonkey application.
My question is: Is there/will there be an Indy Firemonkey Edition? Cause I seriously need the IdHTTP.Post();. If not, is there a way to do this in FireMonkey?
I have been googling for quite awhile now, not finding anything. :S
VCL means Visual Component Library. There's nothing about Indy that is "visual" (meaning "seen at runtime"), meaning that "VCL components are useless in a FireMonkey application" has no relevance to Indy.
You can create a new FireMonkey HD application in Delphi XE2, target OS X, and the Indy component pages are still available in the IDE, meaning that they are compatible with supported FireMonkey cross-platform targets. They're also available for FireMonkey HD Windows targets (32 and 64 bit).
Indy ships with the IDE (and has since D6) so there is nothing extra to buy if you already have XE2 installed. Also, Indy is open-source, so you can upgrade an Indy installation using source code from Indy's public access SVN server or mirror.
Regarding FireMonkey, Indy does work in FireMonkey. Indy uses whatever the native socket API is on a given platform (WinSock on Windows, Posix on Mac, libc on Kylix, etc).
The only known gotcha with Indy under FireMonkey at the moment is the TIdAntiFreeze component is not available at design-time. The IDE cannot resolve it correctly due to the non-standard way it is packaged (to be adressed in Indy 11). You can instantiate it programmably in code at run-time, though.
I made a client server example using tcp indy http://www.freelancecode.net/community/viewtopic.php?f=35&t=246
The Components Not Used in iOS Apps DocWiki page for Delphi XE2 lists most of the Indy classes:
The following list is the set of components (along with the used
units) that might be available in the Tool Palette for iOS
applications, but are not supported for iOS applications.

Resources