Archive for Android

Application to check Delphi XE compatibility with Android Device

I just saw today application called SysCheck for Android by Christopher Moeller .

It will give you detail info about the device. For your Delphi XE you need ARM 7 CPU with NEON support.

That’s really useful, especially if you want to close deal with customer and you want to check if your app in Delphi XE will actually work at his devices.

I was already facing that with one customer of mine who has Samsung LaFleur.

Samsung_Galaxy_Ace_La_FleurSuch mobile is not compatible with Delphi XE at all and I have to rewrite the app into Java.

But it would be nice if Embarcadero would supply similar app it self. It would just open the screen and tell – compatible with Delphi XE or not.

Another fix of Delphi code – Click on the ListView

My customer found another but at Delphi application:

TListView Bug


If you click at TListView on the empty are, last item get automatically selected and events as  OnClick and OnItemClick are called.

Well it can be nice feature for someone, but it’s not really logical .. for example if you have open keyboard and you want to hide it, by clicking at the empty area.

There is no settings to tun this behavior off as it’s hard coded.

The problem is at FMX.ListView.pas unit at FindItemAbsoluteAt procedure, line 4060.

This code:

if ViewAt >= HeightSums[HeightSums.Count - 1] then
 Exit(HeightSums.Count - 1);

Replace with this code:

 if ViewAt >= HeightSums[HeightSums.Count - 1]+GetItemHeight(HeightSums.Count-1) then

And the system will start to work logically.

You can download modified unit here, just include into your project.

Fixes of TMemo for Samsung Android

One of my customer reported falling of the Delphi XE5 Application at his Samsung Android device.


When he was quickly typing multiple lines after while the app crashed.

It took me while to get the problem replicated, but eventually I found the bug.

It’s at the FMX.Platform.Android unit at TTextServiceAndroid.DrawSingleLine procedure.

From some reason the FCaredPosition is out of the range of the FLines StringList.

Replace this code:

if (FLines.Count > 0) then


if (FLines.Count > 0) and (FCaretPosition.Y>=0) and (FCaretPosition.Y<Flines.Count) then


Or you can download fixed unit here and simply included it into your project.

Embarcadero recently released new version of Delphi – XE6. Well I would suggest them to focus on fixing bugs at existing XE5 for people who already purchased their product, rather then release new version ever few months.

Game Development – Frames per Second


At the games development if you paint animations at the screen or you are scrolling the scene, you want it to look smooth. To do that you need paint certain amount of pictures at the screen per second. This is called Frames per Second (FPS).


When you have a PC/Mac game you usually have to buy better hardware or decrease detail quality to raise the FPS to level that it will be nice.

But if you have the iPhone it’s up to the developer to create the game in such quality to look and works nicely. (if you have Android you have more choices to buy so you can still upgrade).


But what is the optimal FPS? Well let’s put little of the technical details.

Read more

Tool to easy setup deployment files for Delphi XE5

I’m using Delphi XE-5 for development and they are contradictory.

I think that person who is responsible for whole product is truly visionary and he actually saved future of whole product.

Delphi XE5

The fact that you can by one code develop under Windows (32 or 64bit), Mac, Android and iOS is just amazing.

And it’s really working.

Well the Android app take long time until it starts because the app is not a Java but it’s a native application. Benefit is that any component will work there. It’s really great.

But there are also bad things. There are some decisions that was made and that makes me crazy.

Read more