Delphi Handbooks Collection

Delphi XE Handbook

Delphi 2010 Handbook

Friday, September 19, 2014

Free Castalia for Delphi XE7

Castalia is a great addition to the Delphi IDE and Embarcadero offers a free license of Castalia to all XE7 developers. That's a great offer.

Castalia is a great addition to the Delphi IDE and Embarcadero offers a free license of Castalia to all XE7 developers. That's a great offer. If you are already on XE7, you an download your copy of Castalia from cc.embarcadero.com/item/29995. If not, what are you waiting? Buy before the end of September and you get your 10% discount plus free Castalia!

OK, enough promotion... but I guess you can read from my words I'm particularly happy about this deal with TwoDesk and looking forward for more opportunities. Now, while some of you might have seen Castalia, I'm pretty sure others have little idea about what it is. Beside visiting www.twodesk.com/castalia/ you can get a glimpse of the features it offers by reading this blog post.

Castalia is basically a plug in of the Delphi IDE that adds a lot of features to the editor. From unit navigation (with the list of unit sections, classes and methods in upper drop downs), to begin-end blocks highlighting, to in-place metrics and refactorings, you gain a lot of power and have it really at hand. While some of the features are also part of our IDE, they are often a little more hidden and for this reason might end up being less used.

An image-driven walkthrough can help understand a little better, but if you head to the Castalia web site you'll find much more detail. Let's start with the installation and the extra item in the XE7 about box:

  

Now just open any project in the editor (like one based on the new Parallel Programming library, with use of anonymous methods), and that's how you see it:

The additional features include information about methods and direct, context sensitive refactorings:

  

Of course, there is much more, as you can guss from looking to the Castalia additional menu of the IDE and by interacting with the tool:

I'm pretty sure this is exciting news for all Delphi developers. Those who already have XE7... and all the others, given they are going to buy Delphi XE7 soon ;-)

 





Thursday, September 18, 2014

Dynamic Arrays in Delphi XE7

There is a significant new feature in the Object Pascal language for XE7 and that is the improved support for initializing dynamic arrays and operating on them.

There is a significant new feature in the Object Pascal language for XE7 and that is the improved support for initializing dynamic arrays and operating on them. The What's new page covers is here: docwiki.embarcadero.com/RADStudio/XE7/en/What%27s_New_in_Delphi_and_C%2B%2BBuilder_XE7#String-Like_Operations_Supported_on_Dynamic_Arrays.

Before we start, if you haven't used dynamic arrays in object Pascal much, I can recommend you this nice introduction by Jacob (of Castalia fame): delphiblog.twodesk.com/dynamic-arrays-how-they-work-and-how-to-use-them

So what's new in XE7? The Object Pascal language allows you to do a few new operations:

  • Assign a constant array to a dynamic array
  • Concatenate two constant arrays with the + symbol
  • Use the following RTL functions on any dynamic array (not just strings): Insert, Delete, and Concat

You might have seen code like this, that we used in some demos:

var
  di: array of Integer;
  i: Integer;
begin
  di := [1, 2, 3];    // initialization
  di := di + di;      // concatenation
  di := di + [4, 5];  // mixed concatenation

  for i in di do
  begin
    Memo1.Lines.Add (i.ToString);
  end;

Notice the use of a for-in statement to scan the array elements. In terms of using the RTL functions, you can now write code like the following: 

var
  di: array of Integer;
  i: Integer;
begin
  di := [1, 2, 3, 4, 5, 6];
  Insert ([8, 9], di, 4);
  Delete (di, 2, 1); // remove the third (0-based)

Again, this demo has been floating around, so you might have already seen it. Now, the Integer type is only one of the types you can use in a dynamic array. In fact, you can use ANY data type, including managed types (for example, a dynamic array of interfaces initialized using objects as Daniele Teti was showing me the other day with an array of ITask elements from the parallel library). Another not so obvious example? What about an array of buttons? Of course it was possible to create one even before, but not to write it this way:

var
  buttons: array of TButton;
  aButton: TButton;
begin
  buttons := [btnArrayInit, btnArrayRTL, btnButtonsArray];
  for aButton in buttons do
  begin
    aButton.Caption := aButton.Caption + '*';
  end;
  buttons := buttons + [TButton.Create(self)];

This snippet highlights the fact you can use this feature in countless different scenarios. Arrays of interfaces, records, objects, native types... just beware that if the type is not managed, you'll have to delete the actual elements when the array is disposed, at least on non ARC-enabled platforms.

Happy coding in XE7... and if still don't have it, take advantage of the 10% discount available until the end of September:  http://www.embarcadero.com/radoffer

 

Friday, September 12, 2014

Presenting XE7 In Milan on Tuesday

I'll be presenting RAD Studio XE7 in Milan on Tuesday. If you live in Northern Italy, don't miss this live event.

I'll be presenting RAD Studio XE7 in Milan on Tuesday. If you live in Northern Italy, don't miss this live event. With me, Daniele Teti will cover some of the topics.

Sign up now at forms.embarcadero.com/EM14Q3ITDeveloperDirectLive (The event is in Italian, and so it the sign up page).

There will be another event in Rome, 2 days later, with Daniele alone. Same signup page.

Interested in other stops of the XE7 World Tour? There are over 50 listed at  www.embarcadero.com/world-tour

 

Delphi XE7 Blogs of the Week #18

A special weekly blogs posts collection focused on XE7

A special weekly blogs posts collection focused on the recently released XE7, grouped in categories.

Reviews

Blogs on New Features 

Blogs on Related Features

Third Party Components

Seminars and Webinars

That's all for now.

Wednesday, September 3, 2014

Delphi Tage 2014 on Saturday

On Saturday I'll give the keynote at the Delphi Tage in Bonn, Germany

On Saturday, September 6th, I'll give the keynote at the Delphi Tage in Bonn, Germany. Even if the description is a bit generic, I'll talk about XE7 and product directions.

For information about the event (in German) see  www.delphitage.de . While there are a few sessions in English, most of the content and attendees are part of the 3 German user groups, who organize the event with the help of Embarcadero's German office.

While I won't give technical sessions, others from Embarcadero will to that, including Matthias and Dmitry.There are several MVP and many other Delphi experts giving session, I'm pretty sure there will be plenty of technical content during the day. If you are attending, feel free to stop by and ask any Delphi question, technical or not. I'll be in sessions or wandering around.... and I'll also join the "community abend" looking for a good beer.

 

Delphi XE7: New Classes and More

Delphi XE7 includes many new classes, here are only a few of them... along with some more information.

Delphi XE7 includes many new classes, here are only a few of them... along with some more information.

Delphi XE7 New Classes

Here is a list of the top 15 new XE7 classes in the various libraries that ship with the product (not in all editions):

  • TMultiView (FMX)
  • TJumpList (VCL)
  • TMultiTouchManager (FMX)
  • TFormSaveState
  • TParallel
  • TTask
  • TBluetoothManager
  • TBluetoothAdapter
  • TBluetoothDevice
  • TNetEncoding
  • TFDConnectionDefParams
  • TFDBatchMove
  • TEMSProvider
  • TEMSFireDACClient
  • TEMSResourceAttributes

More Information

 





Tuesday, September 2, 2014

RAD Studio XE7 Released Today

Delphi XE7, C++Builder XE7, and the combined RAD Studio XE7 products have been released today by Embarcadero Technologies.

Delphi XE7, C++Builder XE7, and the combined RAD Studio XE7 have been released today by Embarcadero Technologies. You can read the official press release at www.embarcadero.com/press-releases/embarcadero-launches-rad-studio-xe7.

You can refer to the web site and other online documents to learn about all of the new features. The most relevant are the following:

  • FireUI Multi Device Designer, combined with the new MultiView component and the FireMonkey behavior services, offer the best option for visual, single source, multi device mobile development available today. If FireMonkey in XE6 was already a great multi-device tool, XE7 offers an extended, revolutionary, approach.
  • Parallel Programming Library, offering for both VCL and FireMonkey extensive threading and multi-core features, including parallel for loops, futures, task, thread pooling, automatic task scheduling, and more
  • Bluetooth support, covering both the classic and the LE versions, integrated with App Tethering, and available for most platforms (given not all platforms really support all versions of Bluetooth).
  • A new middleware solution, called Enterprise Mobility Services (EMS), which is a turnkey, ready-to-use solution, based on REST and HTTP, fully stateless and scalable, offering custom API hosting, integrated users management, extensive users and API calls analytics

If these are the core features, highly visible on our web sites and in our marketing material, there is much more, offering features for most of our developers. From a new VCL component to manage Jump Lists, to multi touch support for FireMonkey, from extended database streaming support in FireDAC to simplified deployment, from Git integration to OmniXML, from FireMonkey dual monitor support to optimized database batch moving, from Android KitKat full screen support to platform native iOS edit controls... there are so many new features that we are sure it will take a little to fin out them all.

How to get started? Download the RAD Studio trial today, sign up for the XE7 First Look webinar on Thursday , or attend one of the many live events of our XE7 world tour.

Existing XE6 users can recharge for a special low price, and anyone elase can take advantage of the  introductory 10%   discount  valid until the end of Septemebr. 

PS. You can already read a review by Tim Anderson at  www.itwriting.com/blog/8689-embarcadero-rad-studio-xe7-delphi-cbuilder-is-seven-the-magic-number.html . 

Monday, September 1, 2014

Delphi Blogs of the Week (or Month) #17

More monthly than weekly again, but there is a lot of interesting stuff in the Delphi world... and in the related development world. So here is another round of useful links.

More monthly than weekly again, but there is a lot of interesting stuff in the Delphi world during the month of August... and in the related development worlds. So here is another round of useful links.

Windows Udpate and old Delphi IDEs

Delphi, and C++, and FireMonkey Ideas, Tips, Article, and Components

Made with Delphi

And A Blast From the C++ Past

 

 

Thursday, August 28, 2014

RAD Studio Tech Preview Webinar on September 4

Next thursday Embarcadero will host a tech preview webinar of the coming version of RAD Studio, Delphi, and C++Builder. If you want to know what's coming in the next version of our products, sign up now!

Next thursday Embarcadero will host a tech preview webinar of the coming version of RAD Studio, Delphi, and C++Builder. If you want to know what's coming in the next version of our products, sign up now at  forms.embarcadero.com/RADXE7FirstLookWebinar . The webinar will show the new product in action, with extensive demos and technical details.

At this point I guess you'll be wondering which new features are going to be covered and when the product will be announced. For that, you'll have to wait until next week. As you can read in the webinar description:

"Join Embarcadero’s John Thomas and Marco Cantu for this exclusive Tech Preview webinar for RAD Studio to:

  • See new and revolutionary innovations in multi-device development
  • Learn how to easily build and deploy enterprise services
  • Get expert advice on building connected apps..."

What does this exactly mean? At the webinar you'll see a breakthrough in designing multi-device user interfaces... but there is more. What if we also had a brand new parallel programming library you could use on all your existing VCL and FireMonkey applications? Enough said...





Monday, August 25, 2014

Mobile Platforms August 2014

Some completely personal consideration on the current status of mobile platforms, with a few interesting links.

Some completely personal consideration (not an Embarcadero point of view) on the current status of mobile platforms, with a few interesting links. Given this is a specific topic, I didn't want to include these in my Delphi bi-weekly blog posts. These are mobile posts with some comments:

IDC numbers regarding last quarter smartphone shipments (that is, new phones), indicate that Android lead is growing (both in absolute and relative numbers), iOS is growing in absolute numbers but reducing in market share, while Microsoft is doing pretty bad on both counts: http://www.idc.com/getdoc.jsp?containerId=prUS25037214. From the graph you can also see that iOS has a good percentage on the high-end devices (which is why Apple keeps making a lot of money), while Microsoft is focused on the lower and, even more than Android.

I find some Microsoft defenders tentative to belittle iOS a little childish. See for example Thurrott (see winsupersite.com/windows-phone/how-perception-will-kill-windows-phone): the value of the iOS market is beyond the device numbers. The Apple ecosystem is very healthy. Latest estimates I saw (sorry, cannot find the link any more) claim the developer ecosystems for iOS and Android to be very similar in size. What's about Microsoft? Their quality App Store seems not so quality driven (not that Android is that great, either, but it was supposed to be a great differentiator for Redmond).

Not saying this is the complete picture... but this is how it looks to me. Do you think Windows phone still has a real chance? That Android dominance is going to reduce over the next couple of years (by iOS, Windows, Tizen, or some other OS)? I think Google greatest enemy is Android forks, like Amazon, the many in China... and the now defuct Nokia X.

Update

Found a related additional article on Forbes about how the apps define the ecosysten and lock it: www.forbes.com/sites/ewanspence/2014/08/26/how-every-app-developer-helps-defend-android-and-ios-against-a-smartphone-revolution/