MockJSONAPI Server

Let’s say that you need to develop a REST client (e.g. mobile app, web client, web SPA or a desktop thin client) and you need some endpoints to use. The usual problem in this case is that you need to start to develop the server before you can show something to the end user. MockJSONAPI server solves this problem giving to the developer a bare-bone REST server with the standard CRUD interface. The data are stored into a single JSON file. MockJSONAPI is a mock server for a generic JSON API. It is built with Delphi and delphimvcframework. Can be used with any client technology and language (e.g. the server unit tests are in Python). When mockjsonapi server receives a requests it matches the request against the data.json that have been configured. More Info MockJSONAPI Server is a quite simple project but is really useful for all the developers that have to work with RESTful APIs. More details and info at the project page.
Read More

Delphi: playing Chimes.wav as an external file or embedded WAVE resource in Delphi XE5.

Recently I had to play some notification sounds in a Windows Delphi application where the application deployment should be as easy as possible: preferable copying the EXE around. Playing a sound file seems easy, especially if it is a WAV file: just use the PlaySound or the (older) sndPlaySound API functions. But if you start searching […] … Read More

Read More

Damned ! var Comp : function(const s1, s2: string): Boolean; begin if CheckB…

One of my main gripes about lots of RTL/VCL/FMX code: conventions are often lacking. Which means one of the below functions starts with Ansi (but does a Unicode operation) and the other has the parameters in reverse. var Comp: function(const s1, s2: string): Boolean; begin if CheckBox1.Checked then Comp := ContainsText else Comp := AnsiStartsText; […] … Read More

Read More

Some FastMM scenarios require NeverUninstall because the System unit finalizes things innitialised in other units

You always have to be careful  with Delphi finalization sections cleaning up things that might have not created inside the corresponding initialization section. This is especially true for the System unit. That one actually contains this little piece of code that is being called after FinalizeUnits is called which also fianalises external memory managers like FastMM: finalization {$IFDEF […] … Read More

Read More

Animation problems in Delphi Tokyo 10.2 update 2? Check bug RSP-19525

If you run into animation problems in Delphi Tokyo 10.2 update 2, then read [WayBack] … In particular I cannot use the use the animation to change the tab in a TabControl… – Raffaele Miola – Google+. It is likely that  RSP-19525 (10.2 Tokyo Release 2 breaks Animation under Android – App hangs). Some temporary fixes […] … Read More

Read More


With the initial release coming up soon, here are a few teaser screenshots of chakracore-delphi, a new opensource library with Delphi and Free Pascal bindings and classes for Microsoft's ChakraCore Javascript engine: FPC 3.0.4 and Lazarus 1.8 build (win64): FPC 3.0.4 and Lazarus 1.8 build (linux64): FPC 3.0.4 and Lazarus 1.8 build (macosx64): Delphi XE 10.2 Tokyo build (win64): Delphi 2009
Read More

Delphi inner scoping is undefined. Please Embarcadero/Idera, come up with a formal language definition for Delphi

[WayBack] Hi there, this is pure curiosity only; but this compiler behaviour seems odd to me. What do you think?… – Agustin Ortu – Google+ The problems start when you prefix the outer class which you have to when using inner consts ([WayBack] Oh nice. Feel free to QP. Fails at least in Delphi XE8. […] … Read More

Read More

Delphi FMX TBitmapCodecManager.LoadFromFile calls TImageTypeChecker.GetType that returns ONLY predefined image types

Bugs happen: [WayBack] Did I miss something ? I’ve tried to add a custom image loader for FMX … TBitmapCodecManager.LoadFromFile calls TImageTypeChecker.GetType that returns ONLY predefined image types ! (gif, bmp, png, tiff, jpg) … – Paul TOTH – Google+ I’m not so much surprised by bugs, but what scares the heck out of me is […] … Read More

Read More

Ideara / Embaracdero at least fixed some of their security issues…

Some security improvements A long while ago I quoted [WayBack] Ideara / Embaracdero is flushing away user trust in their ability to do secure computing… – Jeroen Wiert Pluimers – Google+. Since then they have fixed some of the issues: EDN password reset email messages do not contain the plain text password any more The […] … Read More

Read More

Valid reasons for having Delphi AnsiString on Mobile platform…not only for Internet but for Shaders also. //…

It’s too bad that you need workarounds to get ByteStrings working on mobile devices as there are APIs there (like shaders) that work best with them. There was a nice discussion on this last year at [WayBack] I miss AnsiString on Mobile…not only for Internet but for Shaders also.// FMX.Context.GLES.pasconstGLESHeaderHigh: array [0..24] of byte =(Byte(‘p), […] … Read More

Read More

Cool App Winner for November: InfoTrain

I’m always pleasantly surprised by the variety of projects people come up with using Embarcadero tools, and our October Cool App winner is no exception. InfoTrain — developed by Damian Skrzek using Delphi — is an application that helps railway enthusiasts locate and discuss interesting trains.

When users notice interesting trains, they can add detailed information in the app that can be sorted and filtered by various details. “Railfans,” or “trainspotters,” can filter by the type of traction, region, railway line and many other features. Users can comment or update listings by adding photos or timely information about the current location of a train.

InfoTrain connects to a remote MySQL database via a PHP API to synchronize data between users. The app is currently available on all Android devices, with an iPhone version in the works.

InfoTrain is a perfect example of an enthusiast who was able to develop an app that scratches his own specific itch. The great thing is that Damian could then make that app available to all the other people who share his interest. Using a PHP API to connect to a MySQL backend is a creative solution to data sharing and shows the flexibility of Delphi.

When asked about his choice of languages, Damian said “Delphi is a friendly environment for beginners, powerful at the same time for advanced users. Great for creating cross-platform applications. Generally, Delphi is my favorite language.”

This video provides a nice overview of InfoTrain.

[YoutubeButton url=’’]


Interested in submitting for the Embarcadero’s Cool App contest? It’s open to any business or consumer application built with RAD Studio, Delphi or C++Builder. Embarcadero awards Cool App contest winners a $500 Amazon gift card and winning submissions are also highlighted on the company’s YouTube channel. For more information on the contest and a link to the submission form, click here.

Read More

Read More

Holiday Delphi To-Dos

After another year of record CodeRage participation, I’ve been talking to other developers about what they do to promote Delphi. It was immediately obvious that they are “way too busy writing code!” This is a huge improvement, as only a few years back the standard response was “well, Delphi is no longer cool.” However, we still have a challenge. We need to make it easier for our customers to champion us within their organizations. We want people to be proud to say that they “do Delphi.”


Here are a few Delphi holiday To-Dos if you are looking for a way to spread the merriment…


  1. Check out 10.2.2 with the new dark theme and a whole lot more. It will give you some good hints on where we are going with UX and it is just the beginning. Also, the Enterprise and Architect editions of RAD Studio now gets a RAD Server site license for FREE! A huge benefit! Don’t hesitate to provide feedback – we love it!


  1. Share Delphi @ 22 Magazine with your colleagues and managers to highlight the latest developments with Delphi and our ecosystem… there has been a lot of activity that has been missed. And yes there was some healthy debate on one forum around the number of countries in existence (we counted a huge number in one of our Delphi Boot Camps), but aside from classifications, the point is that we are seeing a resurgence and we like it!


  1. Build a Simple Mobile App with FMX. There is no better way to wow your customers, peers or supervisors than to see Delphi in action. There are plenty of samples and more coming your way. Write once and compile for Android and iOS, not to mention Windows and mac OS X.


  1. Check out the new Enterprise connectors. So simple to display your feed from Twitter and/or Facebook and show how fast you can build an app around it. More complex ideas may want to leverage the free InterBase for embedded mobile use. There are plenty of “disconnected” use cases that are difficult to do with other technologies.


  1. Watch a CodeRage replay on Embarcadero Academy.  Go catch a replay for a session you missed from CodeRage XII. They are all available on Embarcadero Academy. Share your favorite session with your friends. While you are there sign up for a course from the expert trainers on Embarcadero Academy. Also, make sure that if anyone doubts that there are good materials to learn Delphi, they know that this is no longer the case.


  1. Learn about the Ext JS framework. Sencha is new to our developer tools family, but already making a huge impact. There is a lot of tooling in existence to connect Delphi with Ext JS development. They share a lot in their completeness and focus on huge productivity improvements. There is a learning curve, but if you are looking for fast development across platforms with really nice UX, this is the way to go. Delphi and the associated VCL & FMX frameworks share a lot in common with Ext JS in the way they maintain compatibility for the long-run and provide unmatched performance. This sample app provides a great example that speaks both to FMX and Ext JS.


  1. Browse the GetIt Package Manager. Install a new style, sample project, library, or IDE Plugin. GetIt continues to expand: over 250 at last count. Look for new ways to solve the problems you face and make yourself even more productive.


  1. Blog about your favorite Delphi features, components or libraries and share it on social media. Delphi has an amazing 3rd party ecosystem. Check out the top 10 Delphi projects on GitHub or this huge collection of resources.


What’s on your holiday to-do list? Do you have any Delphi goals for the new year?

Read More

Read More