How to make an app that works in any computer in C++Builder 6? - c++builder-6

What can I do to make my application written in C++Builder 6 work on any computer? Currently it only works on my computer.

By default, C++Builder 6 projects are setup with Runtime Packages and Dynamic RTL both enabled. That will require you to distribute things like rtl6.bpl, vcl6.bpl, borlndmm.dll, etc alongside your EXE to other computers.
If you don't want to do that, you can disable those 2 options in the Project Options. That will cause the project to produce a self-contained EXE, which you will be able to distribute to other computers without the other BPL and DLL files (unless you use components that have their own external dependancies, which is a separate issue).

Related

Why I cannot set other platforms when using Firemonkey Metropolis UI application?

Testing the different options of platform targets i have found this information on the delphi xe5 help:
Note: You cannot set OS X as the target platform for a Metropolis UI application.
FireMonkey Metropolis UI Application
I have searched for more answers on that and could not find what is the real reason it is not permited.
I would like to have the same looking of the application on windows and android tablet. (I know that I can use a "regular" FMX app and make that other way, however I have no idea what are the restrictions, since I believed FMX should be always crossplatform, considering just plain FMX app)
EDIT: My final objective for my current project is to create an application with the look and feel of Win Metro, but not WinRT compatible, and use this app on Win32(XP/7/8) and Android Tablets. I dont want to follow ANY platform specific rules, only have the closest possible working behavior as the Delphi generated win32 application.
Different platforms use different backend frameworks and have different UI requirements. That is why you cannot add OSX to a Metro project (OSX is not a Metro platform), just like you cannot add OSX to a Mobile project (OSX is not a mobile platform) or a Mobile platform (iOS/Android) to a Desktop project (they are not desktop platforms). Do not try to create a single application project that supports every UI platform that Delphi supports (a package project is a different matter - you can create multi-platform packages). You will need to create separate projects - a Metro project for Metro UIs, a desktop project for desktop UIs, and a mobile project for mobile UIs. You can share source files between them, but you should not share UI Forms between them. Use platform-appropriate UIs instead.
Metropolis UI is a hybrid system that uses IPC with a WinRT process. The WinRT process is used to display tiles and whatever else is needed over in WinRT land. This can only exist on a system that runs WinRT. Which means Windows 8 and not Mac or the mobile platforms.
It is true that you can build and run Metropolis UI apps on Windows 7 so clearly they can exist without the WinRT part. But the entire purpose on Metropolis UI is to be able to launch fake WinRT lookalike Delphi apps from the WinRT subsystem. So they don't really make sense anywhere else. I don't see any reason why Embarcadero would have invested effort making Metropolis UI apps work anywhere that does not have WinRT.
What you could do is use the style part of an FMX Metropolis UI project. That would give you the visual look that you are after. It would not be a Metropolis UI project, but would look as you wish. So you make a standard FMX desktop application targeting OSX. Then apply your chosen Metropolis style. This certainly works for desktop applications and I see no reason why it won't work for an Android tablet application.
Just open the style(*.style) file in a text editor. And you will see some thing like :
PlatformTarget = '[MSWINDOWS][MODERN][DEFINEFONTSTYLES]'
And then just add the Platform you need.

ChartFX 4.0 components in Delphi XE4: inconsistent design time license issue

We have a huge app that uses ChartFX 4.0 a lot and we're migrating from Delphi6 to XE4. The programmer mainly responsible so far has basically created a new package for the ChartFX components and has successfully installed it on his machine, and has tested a lot of the code that uses these components. Every thing looked great at this point. Then he tried rebuilding/installing/testing on a couple of other machines - XE4 throws a designtime license not found error when he opens a new project and tries to place a chart object on the form. All machines have a licensed copy of chartFX 4.0 installed.
Any ideas?
You need to locate and transfer the CFX*.lic file (it's the development license for the .OCX file). In Delphi 7, it's CFX32.lic, and it's located in the %WINDIR%\System32 folder.

Referencing 3rd party components in Delphi 2005

I'm quite new to Delphi and I'm helping a team setting up a build server which are using Rad Studio 2005.
They have just bought DevExpress VCL and wants to use these. I would rather not have the component installed on the build server, but instead having them as a part of the source code and making sure that the project is using that version.
How is that done in Delphi?
We compiled all of our 3rd-party stuff into a BPL, then put that .bpl and corresponding .dcp and .dpr/.bdsproje into source control, so it gets delivered to the build server. Works well. In retrospect, it should have been a series of BPLs, divided by vendor, so that we could upgrade individual components/libraries without having to run regression tests on everything else.

C++ Builder XE2 - custom component as part of the project/project group

Is it possible to use custom component derived from default one to be visible only as part of the project? The advantage of this solution is that I need not to distribute source code of component separately from that of application. Also there is no need for other developers to always check if they have installed the latest version. I need not to manage various versions and copy them somewhere to share my changes with other developers in team (whether it be network disk or SVN server). They get new version with every SVN update from server.
If i used delphi there would be solution - interposer class but this is not applicable to me. MS Visual Studio has possibility to use component only as part of Solution (analogy to MS VS Solution is ProjectGroup in C++ Builder).
What you are asking for is only possible if the component is created dynamically at run-time only. If the component needs to be accessible at design-time, then it must be installed into the IDE before the project can then use it.

Does a simple delphi form app needs any libraries or dependencies to deploy?

I need to code a simple form application and I want to make it easy to deploy (without installing libraries or dependencies), I don't want to use visual studio cpp or csharp because clr apps compile with .net frameworks and I have no much experience with mfc and dialogs.
So I was wondering which libraries does a simple delphi vcl forms app (those using TForm) use, because I've never had to install anything to run simple delphi apps.
Delphi embeds everything in the EXE file. There are libraries that depend on BPL or DLL files, but for a simple application, the EXE is all you need...

Resources