Watch, Follow, &
Connect with Us

Embarcadero Blogs

Latest Posts


Busy live online schedule this week - you won’t want to miss a moment of it!

We have a full schedule of online events for developers this week. On Tuesday, Wednesday and Thursday - September 23,24,25 we have 13 live online events taking place covering Developer Skill Sprints, Delphi/C++Builder/RAD Studio XE7 whats new, and developing for the Internet of Things with Appmethod. You’ll find the list and registration links below. You’ll learn a wide range of tips, tricks and techniques you can immediately use in your C++, Object Pascal, VCL and FireMonkey applications. I hope to see you online for them all :)

Wednesday, September 24 - RAD Studio XE7 What’s New Webinar

See why XE7 is the must-have upgrade! - http://forms.embarcadero.com/RADStudioXE7WhatsNewWebinar

6AM San Francisco / 9AM New York / 2PM London / 3PM Milan
9AM San Francisco / 12PM New York / 5PM London / 6PM Milan
2PM San Francisco / 10PM London / 25-Sept 6AM Tokyo
5PM San Francisco / 25-Sept 9AM Tokyo / 25-Sept 10AM Sydney

RAD Studio, Delphi, and C++Builder XE7 has been available for a few weeks and customer are telling us this is the must-have upgrade. In this webinar, we will share the new features that have everyone excited about their possibilities with XE7.

Join Embarcadero’s David Intersimone for this exclusive webinar on RAD Studio XE7 and see why customers are saying:

  • “The XE7 FireUI Multi-Device designer allows us to create a master view and customize the layout for numerous other devices. The development time it saves is worth the upgrade to XE7 alone." - Andrew Tierney, CEO, CastleSoft
  • “Wow, big step forward. If you really want to go multi-platform, RAD Studio XE7 is _the_ choice." - Oliver Funcke, CEO, Software Union G.m.b.H.
  • “The Parallel Library in XE7 provides and easy and new way to think about concurrency in your applications.” - Robert Love, Team Lead, State of Utah
  • "XE7 Enterprise Mobility Services is exactly what I was looking for." - Darian Miller, CTO, Dealer Marketing Services, Inc.
  • “XE7 is mature and stable and very astutely addresses the modern day challenges that a profit conscience company is concerned to be competitive at the lowest investment, yet best quality.” - Gerhard Stoltz, U-RAD Technologies

Wednesday, September 24 - Develop for the Internet of Things with Appmethod

Become a part of the Internet of Things development - http://forms.embarcadero.com/AppmethodInternetofThingsWebinar

Wednesday, September 24, 2014
6AM San Francisco / 9AM New York / 2PM London
11AM San Francisco / 2PM New York / 7PM London
5PM San Francisco / 25-Sept 9AM Tokyo

The Internet of Things presents developers with an amazing opportunity to create a whole new category of apps that take advantage of connected gadgets and devices. With products like Google Wear, the Apple Watch, FitBit and Nest devices, our homes, cars, even our bodies, will be more connected than ever to our digital world.

The Appmethod September 2014 Release delivers new technologies to build connected apps that use Bluetooth and WiFi to connect to the Internet of Things. This webinar will demonstrate Appmethod’s ability to enable developers to easily interconnect with thousands of available Bluetooth and Wifi enabled gadgets and devices. It will show you how you can develop amazing solutions in this new world of possibilities.

Attend this webinar to learn how to:

  • Set up a gadget or device for pairing
  • Connect to the gadget to communicate
  • Integrate info from gadgets into mobile devices and cloud services
  • Tether two apps together to remote control one another

Tuesday and Thursday September 23 and 25 - Developer Skill Sprints

Tips, Tricks and Techniques in 20 minutes or less- http://forms.embarcadero.com/DeveloperSkillSprintsWebinarSeries

  • Tuesday, Sept 23 - Aspect-oriented Programming using DSharp with Nick Hodges, author of Coding in Delphi
  • Thursday, September 25 - Enterprise Mobility Services: Overview

Come join the development fun using C++ and Object Pascal


posted @ Mon, 22 Sep 2014 15:18:30 +0000 by David Intersimone


Hello Moto 360 from Delphi XE7

I really like my Moto 360 watch. It looks fabulous, and does great as an extension of my Android phone, but of course the most important question is how to make an app for it. Turns out it just works with …

Read more »


posted @ Fri, 19 Sep 2014 11:40:04 +0000 by Jim McKeeth


Modernize your Windows Apps with Premium VCL Styles

Our current RAD offer (valid through September 30th, 2014) includes a new premium styles for VCL. Included in the pack are the following premium styles:

  • Coral
  • Emerald
  • Diamond
  • Jet
  • Sterling

To add the premium VCL styles to XE7, extract the .vsf files from the zip archive and copy them to your styles directory: C:\Users\Public\Documents\Embarcadero\Studio\15.0\Styles\



posted @ Fri, 19 Sep 2014 17:09:29 +0000 by sarinadupont


XE7 Bonus Pack delivers new Premium FireMonkey Styles

Our current RAD offer (valid through September 30th, 2014) includes a new FireMonkey premium style pack.

This pack includes the following 4 new multi-device styles for iOS, Android, Windows and Mac:

  • Emerald Crystal
  • Emerald Dark
  • Coral Crystal
  • Coral Dark

Our existing Jet, Diamond and Sterling styles have also been extended on the Desktop side to include the same UI elements as the premium mobile styles.

PremiumFM_StylePack_XE7.png

When working with custom styles, every view (including the Master) needs to have a style loaded. Below are the steps for getting started using premium styles with FireUI in XE7:

Every view (including the Master) needs to have a style loaded when using premium style.

1. With the Master view selected, add a TStyleBook component to your form

2. On the Master view, select a Master style from the toolbar drop-down menu and then load the associated premium style from the style pack. For example, if you selected ‘Android’ as the Master style, load and assign the AndroidCoralCrystal.style file to your StyleBook on the Master view. When working with custom styles, each view must have a style, including the Master view.

3. Switch to each of your created views, select the TStyleBook component on that view and load the custom style related to that platform  (Windows style for "Windows Desktop" view, Android style for "Android…" view, Mac style for  "OS X Desktop" view, iOS style for "iPad" and for "iPhone" views).

Note: If you have different views for iPad and iPhone, you need to load the same iOS style for each view.

4. If your application consists of multiple forms, you can set TStyleBook.UseStyleManager = True in each view in order to use the same custom styles for all other forms at runtime. If TStyleBook.UseStyleManager = True is set, then custom styles fully override system styles in all other forms (Form2, Form3etc.)  that are part of your application for that particular platform. If  TStyleBook.UseStyleManager = False is set, then new forms (Form2, Form3 etc.) will use the default platform style and for customization, you must add TStyleBook to Form2’s "Master" view and load each custom style again for all created views of the additional forms that are part of your application.


posted @ Fri, 19 Sep 2014 16:15:40 +0000 by sarinadupont


Delphi XE7 Moto 360 Support w/FireUI

Jim McKeeth walks thru Moto 360 support for Delphi XE7. Jim is using XE7’s new FireUI and the new Moto 360 circular FireUI view (available soon as a free XE7 download) to build and deploy a native Moto 360 app to the watch. Demos for C++ and Appmethod also soon. Developers without access to a Moto 360 can deploy/debug to the Android Wear round face emulator. Note: the Android emulator requires high performance PC and host GPU turned ON.

Download the FREE XE7 Trial today, and remember that you only have until September 30th to get an add’l 10% early adopter discount, plus you get theFREE XE7 bonus pack including FREE Castalia Full Version and FREE FastCube VCL 2.

With Delphi XE7, C++Builder XE7, and RADStudio XE7 you can build and deploy your apps to a wide variety of Android devices including phones, tablets, Google Glass, game consoles, and smart watches. Look for more FireUI view support for more devices as they are added.

FireUI is one of the most popular and talked about new features but there are many more new features in XE7, and lots of enhancement and improvements to the new capabilities introduced in XE5 and XE6.

“The XE7 FireUI Multi-Device designer allows us to create a master view and customize the layout for numerous other devices. The development time it saves is worth the upgrade to XE7 alone.”
Andrew Tierney - CEO - CastleSoft

“FireUI is like heaven! XE7 users will be lightyears ahead of other developers”
Erik Bellaard - Developer - *WEGA Automatisering VOF, NL

“The most important XE7 feature for me is FireUI Multi-Device Designer. I love it.”
Bogdan Bogus- Project manager - Metaproiect Software srl, Tirgu Mures, Romania

“XE7’s FireUI delivers the promise of single-source development across all the FMX platforms”
Ptere Ingham - Independent Software Development Consultant

“FireUI in XE7 is awesome. It rocks. Love the concept and the use of inheritance.”
Keith Brown, independent programmer, Keith and Lisa Brown, LLC

Twitter @Mike_Swindell


posted @ Fri, 19 Sep 2014 16:47:02 +0000 by Michael Swindell


Bluetooth App Tethering with RAD Studio XE7

With RAD Studio XE7, you can easily extend your existing Windows VCL and FireMonkey apps to connected devices, sensors, data and services using Application Tethering.

In XE7, we have added support for Bluetooth tethering, in addition to Network based tethering.

Here are some of the features that App Tethering provides:

  • Extend FireMonkey and VCL Apps
  • Auto Device Discovery
  • Trigger Events and Methods on Other Devices
  • Remote Control Apps
  • Send Data back and forth
  • Bluetooth & Wifi Support

If you used network (Wifi) based application tethering with XE6, you can easily switch your existing apps to use bluetooth tethering in XE7.

The only change you need to make is to switch the AllowedAdapters property from Network to Bluetooth on your TetheringManager component. You will need to make this change to the TetheringManager component on all tethered apps.

tether_bt_mac1.png

Before running the application, ensure that both of your devices are paired. In my example, I am using a 2012 Nexus 7 that I paired to my Macbook Pro. On my Nexus 7, I selected Settings, and turned Bluetooth on. I then clicked on Bluetooth and selected to ‘Search for Devices’. Once I found my Macbook Pro, I clicked on it to pair my Nexus 7 device to it. My Nexus 7 then also appeared in my list of Bluetooth devices on my Macbook Pro.

The tethering demo you see in my screenshots and the video below can be found under:

C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\Mobile Samples\Media\MediaPlayer

C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\CPP\Mobile Samples\Media\MediaPlayer

paired.png

Click here to find out more about our introductory 10% Discount on qualifying XE7 products through September 30, 2014!


posted @ Fri, 19 Sep 2014 15:32:53 +0000 by sarinadupont


Castalia IDE plug-in is part of the XE7 Bonus Pack

Castalia is an amazing IDE productivity tool. If you haven’t checked it out, you should. And now you can as part or your RAD Studio or Delphi XE7 purchase by September 30th. Marco shares some excitement about it on his blog: http://blog.marcocantu.com/blog/2014_september_free_castalia_xe7.html.


posted @ Fri, 19 Sep 2014 14:43:42 +0000 by J T


Designing App Navigation with TMultiView in RAD Studio XE7

In RAD Studio XE7, we introduced a new smart menu component called TMultiView. With TMultiView, it is really easy to create app navigation that automatically adjusts itself depending on form factor, orientation and target platform using our new behavior services. TMultiView is a container component which means that you can parent many different components to it, such as a top aligned TToolbar or a client aligned TListview.

To use the new TMultiView component, drag and drop the TMultiView component onto your Multi-Device form. You can also use the Master/Detail Multi-Device template (File->New->Multi-Device Application) as a good starting point.

The MultiView component has some default built-in behavior that defines its appearance at runtime based on form factor and orientation.

Blog_Table1.png

The drawer menu, for example, can overlap with the content shown on the form, or push the content off its current position. You can also define the duration of the sliding drawer. The drawer is automatically invoked by swiping across the screen from either the left or the right side (depending on the placement of the drawer), and you can also hook it up to a button.

Masterbutton1.png

Also included with RAD Studio XE7 are both C++ and Delphi TMultiView demos:

  • C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\Mobile Samples\User Interface\MultiView
  • C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\CPP\Mobile Samples\User Interface\MultiView

Blog_Table2.png

The following mobile demos also use TMultiView:


posted @ Thu, 18 Sep 2014 17:24:13 +0000 by sarinadupont


Dynamic Arrays in RAD Studio XE7

Marco discusses a significant new language feature for Dynamic Arrays.

http://blog.marcocantu.com/blog/2014_september_dynamic_arrays_delphixe7.html


posted @ Thu, 18 Sep 2014 17:12:52 +0000 by J T


Bluetooth LE support in RAD Studio XE7

RAD Studio XE7’s integrated wireless support (Bluetooth and Wifi) works with thousands of consumer and industry specific devices. RAD Studio’s approach makes it easy to integrate virtually any device into the app user experience, and even support multiple device vendors with the same code.

In RAD Studio XE7, we have a new Bluetooth LE component for connecting to many different Bluetooth Smart Devices that work with the different GATT profiles.

We ship several Bluetooth demos with the product that you can look at. For Bluetooth LE, we have a heartrate monitor demo that displays your current heart rate by connecting to a heart rate sensor.
You can find the demo under: C:/Users/PublicDocuments/Embarcadero/Studio/15.0/Samples/Object Pascal/Mobile Samples/Device Sensors and Services/Bluetooth/HeartRateMonitor

I am using the Zephyr heartrate monitor for this, but have also used Polar’s H7 heartrate monitor.

I extended the demo slightly by adding a Listbox for logging the heartrate. Also, for the iPhone version, I customized my iPhone view using the new FireUI Multi-Device Designer to display a + icon instead of the ‘Save’ text for logging my heart rate since I am working with less screen real estate.

heartrate.PNG

heartrate2.jpg

bluetooth_iPod.jpg bluetooth2.jpg

Below are the necessary UUIDs we need to connect to our heart rate sensor:

const
  HRDeviceName = 'Cardiosport HRM';
  ServiceUUID = '';
  CharactUUID = '';

  // From the Bluetooth website Home > GATT Specifications > Services > ServiceViewer
  // Exposes heart rate and other data from a Heart Rate Sensor 
  HRSERVICE: TBluetoothUUID = '{0000180D-0000-1000-8000-00805F9B34FB}';

  // from the Bluetooth website under Home > GATT Specifications > Characteristics > CharacteristicViewer
  HRMEASUREMENT_CHARACTERISTIC: TBluetoothUUID  = '{00002A37-0000-1000-8000-00805F9B34FB}';
  BODY_SENSOR_LOCATION_CHARACTERISTIC: TBluetoothUUID  = '{00002A38-0000-1000-8000-00805F9B34FB}';

  //Body Sensor Location Characteristic value used to index the array to display the string
  BodySensorLocations : array[0..6] of string = ('Other', 'Chest', 'Wrist', 'Finger', 'Hand', 'Ear Lobe', 'Foot');

  HR_VALUE_FORMAT_MASK = $1;
  SENSOR_CONTACT_STATUS_MASK = $6;
  ENERGY_EXPANDED_STATUS_MASK = $8;
  RR_INTERVAL_MASK = $10;

Here is the btnScanClick code:

procedure TfrmHeartMonitor.DoScan;
begin
  ClearData;
  lblDevice.Text := '';
  lblBodyLocation.Text := '';
  lblContactStatus.Text := '';
  BluetoothLE1.DiscoverDevices(2500, [HRSERVICE]);
end;

We also set up several additional events:

bluetoothlecomponent.PNG

procedure TfrmHeartMonitor.BluetoothLE1EndDiscoverDevices(const Sender: TObject;
  const ADeviceList: TBluetoothLEDeviceList);
var
  I: Integer;
begin
  // log
  Memo1.Lines.Add(ADeviceList.Count.ToString +  ' devices discovered:');
  for I := 0 to ADeviceList.Count - 1 do Memo1.Lines.Add(ADeviceList[I].DeviceName);

  if BluetoothLE1.DiscoveredDevices.Count > 0 then
  begin
    FBLEDevice := BluetoothLE1.DiscoveredDevices.First;
    lblDevice.Text := HRDeviceName;
    if BluetoothLE1.GetServices(FBLEDevice).Count = 0 then
    begin
      Memo1.Lines.Add('No services found!');
      lblBPM.Font.Size := 26;
      lblBPM.Text := 'No services found!';
    end
    else
      GetServiceAndCharacteristics;
  end
  else
    lblDevice.Text := 'Device not found';
end;

Here is a video of our Bluetooth LE support in action:


posted @ Thu, 18 Sep 2014 17:00:40 +0000 by sarinadupont


Server Response from: BLOGS1