Another current Delphi user hoping to be an ex Delphi user

As a long time Delphi user, one of the many advantages over the old VB environment was a compile to a single stand alone exe. No complex install stuff. Having become increasingly irritated with the high cost and buginess of Delphi, I have been reading the Oxygene documentation with increasing excitement. I mostly write standard client server windows applications. So dumb question,.Will my Oxygene compile (assuming no ancillary data or support files) result in a single exe? Does it matter whether a compile to dot net, or island?

Many thanks for your help.

AFAIK. Thats a no. No single exe file.

When writing an Oxygene for .NET app the only things your app will depend is extra dlls you reference. However this is fairly common when writing .NET apps so you usually do have this. There are tricks around this, like https://github.com/Microsoft/ILMerge and https://github.com/MiloszKrajewski/LibZ which can convert it into a single executable.

Witth Oxygene for Java you have a jar file, those can also be merged (with any zip tool).

Last but not least, Oxygene for Island depends on the system libraries of the platform, everything else it links in (so it doesnā€™t require anything extra), unless you explicitly import a library thatā€™s a dll only.

Thanks for these. Very helpful. Some more questions if I may.

The Delphi VCL components are extensive, but in practice
I only use a small subset. I have avoided using 3rd party components. So the Delphi stringrid is used a lot. Over the years I have built up a library of routines to solve some of its bugs and limitations. My last experience with Visual Studio was about 8 years ago, I assume that an Oxygene grid would look like the VS equivalent? Is that any good these days?

I use ADO components for database work, and I believe this is fine within Oxygene.

For reporting, I have used Fast reports for Delphi. This integrates nicely into the IDE and again I have developed routines for better integrating the FR coding into the Delphi code. What would you suggest for reporting within an Oxygene dot net or island application?

I use drag and drop events on components a lot, to allow end users freedom to create their own form layouts. I assume these mouse events are standard for all the controls?

Finally, I have used the Delphi theme and style functionality, buggy though it is, to allow users to create styles that are independent of the PC theme. Is this feasible under Oxygene?

I ditched Delphi for Elements a couple years ago and never looked back. Donā€™t try to compare the individual features like the VCL. .NET is quite different.

Yes, Elements offers the Island platform to write Win32/Win64 apps but you should really take a serious look into .NET.

Iā€™m from the point of view of using the tool for the job. Doing anything windows GUI specific is just insane in .Net (e.g. WPF), learning curve is brutal, once there it is ok, but donā€™t know if the trade offs, third party components, etc makes it worth it. On those cases Delphi is my goto guy there.

Large scale services, I usually go C# and .Net (RabbitMQ/RemObjects) combo.

Small, Mid scale services, prototyping and fast delivery, I go Delphi.

Anything web, I end up on one of the thousand javascript frameworks out there.

I dont care anymore about .Net/Win32/Win64. It all depends on your customer needs, religious debates there not worth it.

Enjoy !

2 Likes

Many thanks for this information. Iā€™ve obviously got some serious thinking to do.

What report writer software would you recommend? I used Fast Reports which integrated nicely into Delphi. Is there something similar which I could use within Oxygene corner?

It depends on the target platform.
For .NET, Iā€™m using Telerik Reporting

Iā€™ve used WPF reporting succesfully (built in but requires wpf) for a personal project. Also works quite well, but is fairly ā€œrawā€ (Think building documents in code).

Does FastReport.Net work well within the Oxygene environment/Visual Studio?

I havenā€™t used it myself, specifically. But in general, any standards .NET controls and libraries should work with Oxygene.

Thanks to all. Iā€™m going to download the trial and have an explore!

1 Like

let us know if you should happe to run into any issues!

I have started with the tutorial WPF project. When putting the StackPanel on the form, I started getting ā€œThe type ā€˜Windowā€™ does not support direct contentā€ message (and the wiggly lines under the xml). Although it compiles and runs OK, it appears to stop Code Completion working as none of the labels, textbox and button objects are recognised. From looking on the web, this seems to be a Visual Studio problem.

Has anybody seen this / has a solution? Without Code completion, life is hard! Some soutions were suggested on the web, but my lack of knowledge of Dot Net / WPF/ Studio is a hindrance,

Curious. is this in VS2015 or 2017? (2017 is still a bit experimental at this stage, and one though Microsoft called it ā€œfinishedā€, itā€™s new project integration API is still a huge mess)

I downloaded VS 2015 as instructed by the RemObjects Oxygene trial, which indicated that 2017 was not yet recommended.

I am also struggling with the WPF stuff ā€¦ after much research I discover that only one control is allowed on a form - you must put a container (e.g. grid) on first to build up a layout. OK then ā€¦

  • daft question, but how do I set the main form (Window1) height? The properties shown do not work. I have again looked on the web re dependent properties, and understand the concept, I think, but cannot see a way of programmatically setting (e.g.) the window height,

Sorry for the newbie cries for help. All comments much appreciated!

ah yes. that part is expected :wink:

you should be able to just set the Height and Weight properties on the window, eg Height=ā€œ500ā€ on the root element of the XAML.

I can do that, but can I not set properties against the object itself, in code? e.g. Window1.Height := 300

Code completion shows me a list of the window objectā€™s properties, but they cannot be set. I looked up stuff about dependency properties - maybe this is involved. I think there may be fundamentals Iā€™m missing here!

Thanks for your help, and patience!

You can change it. Maybe you changed it at the start of the constructor? It loads the xaml after that (thereā€™s a call in the constructor that does it), so it would reset the height.