Archive for the ‘C++Builder XE3’ Category

Ven a verme en Ciudad de México y Guadalajara

Wednesday, May 15th, 2013


Regístrate ya para RAD Studio XE4 en Ciudad de México (21 de Mayo) y/o
RAD Studio XE4 en Guadalajara (22 de Mayo) y ven a verme en persona.

¡Estoy impaciente por verlos!


Handling iOS application events

Wednesday, May 1st, 2013

One thing that I’ve wanted to try for quite a while is doing something when an app gets put in the background (user hits the home button for example). An example of this is a game that my kids play - when they leave the game, the character yells out something like "Don’t leave!", "Come back!", "Hope you enjoy your day without me!" and other random fun stuff.

Sometimes it also schedules a notification to fire at a later date. Let’s say the kids forget to play the game for a few days… All of a sudden out of nowhere the iPad will scream at you "Come back and play NOW! I’m bored!"

How is this done? Let’s not waste anymore time… Here is the complete form source code for the simplest case - scheduling a notification upon entering the background.

unit Unit1;


  System.SysUtils, System.Classes, FMX.Forms, FMX.Platform;


  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    { Private declarations }
    { Public declarations }
    function AppEvent(AAppEvent: TApplicationEvent; AContext: TObject) : Boolean;

  Form1: TForm1;


{$R *.fmx}


procedure SendNotification;
  NotificationService: IFMXNotificationCenter;
  Notification: TNotification;
  if TPlatformServices.Current.SupportsPlatformService(IFMXNotificationCenter) then
    NotificationService := TPlatformServices.Current.GetPlatformService(IFMXNotificationCenter) as IFMXNotificationCenter;

  if Assigned(NotificationService) then begin
    Notification := TNotification.Create;
      Notification.Name := 'MyLocalNotification';
      Notification.AlertBody := 'Hello from the Delphi XE4 iOS app that you used 5 seconds ago!';
      Notification.FireDate := Now + EncodeTime(0,0,5,0);

function TForm1.AppEvent(AAppEvent: TApplicationEvent; AContext: TObject) : Boolean;
  if AAppEvent = TApplicationEvent.aeEnteredBackground then

procedure TForm1.FormCreate(Sender: TObject);
  AppEventSvc: IFMXApplicationEventService;
  if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(AppEventSvc)) then


The main things that we do in this code are:

1. Hook up the Application Event Handler on OnCreate of our form
2. Schedule a notication if the event received is aeEnteredBackground

The rest is handled by iOS for us.

Special thanks to Darren Kosinski who shared one of his test examples on how to handle iOS application events!

RAD Studio XE4 is available!

Monday, April 22nd, 2013

Check out the trial here -

Learn all about XE4 at the RAD Studio XE4 Launch Webinar - Wednesday, April 24

  • 6:00AM PDT / 9:00AM EDT / 13:00 UTC
  • 11:00AM PDT / 2:00PM EDT / 18:00 UTC
  • 5:00PM PDT / 8:00PM EDT / 11:00AM 25-Apr Australia EDT

During the webinar you will learn:

  • How multi-device app development with RAD Studio can expand the capabilities and efficiency of your development team
  • How to use RAD Studio XE4 to create true native Delphi applications for iOS devices
  • Accessing and integrating iOS sensors and services
  • Working with local databases and enterprise data
  • Pricing and availability of RAD Studio XE4

Register for the webinar at:

IBLite - embeddable SQL database for iOS

IBLite is a freely deployable, embeddable database for iOS that runs in a stand-alone environment and enables deployment of apps which directly utilize the InterBase engine. IBLite is available exclusively with RAD Studio XE4 (all editions) and Delphi XE4 (Professional with Mobile and above).

Start Building Now

Take the next step in the evolution of multi-device, true native code, on-device prototyping app development with RAD Studio XE4. Start building now.


iOS Preview "Early Bird" Special – Save 20% on Delphi Enterprise, RAD Studio Professional/Enterprise with Maintenance

Wednesday, March 27th, 2013

Get Delphi XE3 or RAD Studio XE3 today with the iOS Pre-Release Beta, and save 20% when purchased with 1-year Maintenance. Click here to buy from the Embarcadero store with the 20% discount or click below for other options. Offer available for ESD individual user licenses for Delphi XE3 Enterprise, RAD Studio XE3 Professional and RAD Studio XE3 Enterprise only.

What you get:

  • XE3 Multi-Device development with Windows/Mac and 64-bit
  • iOS Pre-release Beta to start learning mobile development today with Delphi (no AppStore deployment during beta)
  • All updates and major releases over the next 12 months. See the 2013 Roadmap for what we have planned.

Buy Online Buy from a Partner Contact Sales

Anders’ Analog Clock app ported to Delphi for iOS

Friday, March 22nd, 2013

My FireMonkey Clock app has been ported using a beta version of Delphi for iOS.

Main tab

Above you can see a screen shot of the app as it starts up. By default it uses "normal drive" - the second hand moves once per second and the minute hand moves once per minute.

The app is a Universal app (supports iPhone and iPad). The main clock screen uses a TScaledLayout to ensure proper scaling down to the iPhone (the app was designed for the iPad).

If you hit the Info button it will take you to the setup tab, where you can select "Flame" (or FireMonkey second hand) as well as "Smooth drive" - the second and minute hands move smoothly.

Setup tab

The setup screen uses a combination of items that scale and items that don’t scale. For instance, the toolbar, the back button, and the listbox with its items are not supposed to scale, but still be aligned properly. The clock faces, however, do scale inside of a TScaledLayout.

FireMonkey second hand

Above you can see what the FireMonkey second hand looks like.

Below is a screen shot of my Structure Pane where you can see how I designed the app:

Structure View

I also wanted to mention performance. The previous version of the app was created in XE2 where I got about 2-3 frames per second in smooth mode - not very smooth. However, this version created with our upcoming product gets a blazing 60 frames per second on the iPad 3 using iOS 6.1.3 and almost the same fps rate on iPhone 4 (iOS 5.1) and iPad 2 (iOS 6.1) at about 55+ frames per second.


PS: The screen shots above are actually from the *next* update I will be pushing soon… The current one looks almost the same, except for a few changes in layout.

Webinar: C++ in the Multi-Device Enterprise

Wednesday, March 20th, 2013

Across social media, industry articles, and corporate polices, we hear more terms like “BYOD” (Bring Your Own Device).  Enterprises these days are seldom just Windows or Mac, onsite or cloud.  Multiple devices are the new reality for software developers, but how can you keep up with it all?

Join us for “C++ in the Multi-Device Enterprise”, a live webinar on Tuesday, March 26th. This webinar showcases how C++ can help satisfy the Enterprise’s need to support multiple devices on desktops, servers, web, mobile and multi-tiers in their infrastructure.

Sign Up Now!

MVP Nuggets #14 and #15 - New MVPs!

Friday, March 8th, 2013

First off, congrats to the following new MVPs since my last announcement:

Jennifer Kuiper
Volker Hillman
Dmitrii Kuzmenko

This installation of the "MVP Nuggets" covers the period Feb 23-Mar 8.

Francois Piette

High speed generic queue class
Operator overloading for records

Ricardo Boaro

Delphi XE3 pointers on how to use VCL and FireMonkey (Portuguese)
Dynamically Loading Packages in Delphi XE3 (Portuguese)
Installing FireDAC into RAD Studio XE3 (Portuguese translation of Marco’s blog)

Radek Cervinka

Export PDF/A in Fast Report - Czech - English
FireDAC - monitoring the implementation of SQL - Czech - English

Primoz Gabrijelcic

Embarcadero Academy: The Power of XE3

Germán Estévez Ruiz

Persistence of a class structure - Spanish - English


MVP Nuggets #12 and #13

Monday, February 25th, 2013

This installation of the "MVP Nuggets" covers the period Feb 9-22.

Francois Piette:

Using Universal Plug And Play (UPnP) with Delphi

Marcos Antonio Moreira:

Introduction to Metropolis in Delphi XE3 - Portuguese - English
Zarko Gajic:

Have Hints For Some Delphi Controls Stay Longer – Control Specific Hint Hide Timeout Values
Radek Cervinka:

Synapse for Delphi POSIX (OSX and future Linux, iOS, Android) - Czech - English
Jens Fudge:

Mobile Preview Webinar Summary
Felix Colibri:

Mobile Preview Webinar Summary
Primoz Gabrijelcic:

Workshop: Multithreaded Programming 1.1
Cary Jensen:

Delphi Developer Days 2013 Cities and Dates
Delphi Editor Key Combination Table Updated
Robert Love:

Legacy Code: Scoping
Legacy Code: Abstract to Interface
Nick Hodges:

Review of the Mobile Preview Webinar
Delphi and the Factory Pattern: Simple Factory
Luis Felipe González Torres:

C++Builder XE3. DataSnap (64bits, C++11 auto y lambda) FireMonkey LiveBinding Designer. Mobile Connector (Android, iOS) - Spanish


Embarcadero Acquires AnyDAC From DA-SOFT

Tuesday, February 5th, 2013

SAN FRANCISCO – Feb. 5, 2013 – Embarcadero Technologies, a leading provider of software solutions for application and database development, today announced it has acquired AnyDAC from DA-SOFT Technologies. AnyDAC is a powerful, yet easy-to-use software development library for Enterprise-class data access. AnyDAC is known for its high performance, rich developer feature-set, and ease of use. Embarcadero plans to incorporate AnyDAC based technology into its multi-device app development tools which include Delphi, C++Builder, and RAD Studio. Embarcadero developer tools roadmap includes single source native deployment to Windows, Mac, iOS, and Android devices in 2013.

Full Press Release

MVP Nuggets #9

Friday, January 25th, 2013

This week was video week in MVP land! Some awesome content here. Most of it in the speakers native tongue.

Ricardo Boaro:

Using the Windows 8 Style in VCL and FireMonkey apps
Using LiveBindings in VCL and FireMonkey DataSnap clients
Working with TFlowLayout and TGridLayout in RAD Studio XE3
Working with Visual LiveBindings

Victory Fernandes:

Standard Gestures in C++Builder XE3

Alister Christie:


Luis Felipe González Torres :

Introduction to DataSnap using C++Builder XE3
Using RTTI with Delphi XE3

Bad Behavior has blocked 968 access attempts in the last 7 days.