Category Archives: General

For stuff I forget to categorise! Doh!

Migration Links from DelphiCon 2020

Firstly, thank you to the hundreds of you who joined us for the panel discussion at DelphiCon2020. As promised during that session, here is a summary of the links we shared during the panel discussion..

Migration and Upgrade Center

A lot of useful content and papers are on the Migration and Upgrade Center on the Embarcadero website http://embt.co/MigrationCenter

This includes

  1. Unicode
  2. 64bit Migration
  3. Database and Middleware
  4. 3rd Party Components
  5. Monetization 

Tip & Tricks, White Papers, Videos, Articles

YouTube

There are so many useful channels. But the official one for Embarcadero, including links to language specific content is https://www.youtube.com/c/EmbarcaderoTechnologies

A special call out t o the Modernizing Your Apps (Upgrade and Migrate) section that has 15+ helpful videos, including the move to Windows 10

Migration Automation links

reFind – The_Search_and_Replace_Utility_Using_Perl_RegEx_Expressions.
http://docwiki.embarcadero.com/RADStudio/Sydney/en/ReFind.exe

Delphi Parser – Great 3rd party tool for helping migrate Delphi and C++ code.
https://delphiparser.com/

Unicode Analysis Tool – Great for working out the scope of what you need to do.
https://cc.embarcadero.com/item/27398

String to AnsiString Convertor tool (Falling back to AnsiString) – If you don’t need Unicode, this might be the way to go.
http://www.innovasolutions.com.au/delphistuf/ADUGStringToAnsiStringConv.htm

InterBase DataPump – Great for migrating from BDE to InterBase
https://clevercomponents.com/products/datapump/index.asp

Mida – VCL to FireMonkey Converter Toolhttp://www.midaconverter.com/

Other Links

Migrating Midas to DataSnap (Middle-Tier migration)https://blogs.embarcadero.com/migrating-legacy-dcom-based-datasnap-servers-from-delphi-2007-and-earlier-to-delphi-2009-2010-and-later/

3rd party components/libraries (GeitIt Partner Center)
https://getitnow.embarcadero.com/?q=partnercentral.exe

Migrating BDE Applications to FireDAC (the_Search_and_Replace_Utility_Using_Perl_RegEx_Expressions)
http://docwiki.embarcadero.com/RADStudio/Sydney/en/Migrating_BDE_Applications_to_FireDAC

Converting 32-bit Delphi Applications to 64-bit Windows
http://docwiki.embarcadero.com/RADStudio/Sydney/en/Converting_32-bit_Delphi_Applications_to_64-bit_Windows

DelphiCon 2020 : T-5 Days!

We are now only 5 days away from the start of DELPHICON 2020, and the line up is looking pretty cool! I also hear registration is pretty high too.

If you have not already registered, it’s free to do so and to pick the sessions you want to attend. Sign up now for DelphiCon2020

Below is a snapshot of what I’m looking forward to, and sessions to look out for!

Sessions to watch out for on Day 1! (17th Nov)

1) Opening Key note by Marco – The State of Delphi

I will definitely be attending Marco’s Opening keynote: The State of Delphi. I hear there could well be exciting product roadmap updates included in that session.

November 17, 2020, 3:00 pm GMT

Continue reading DelphiCon 2020 : T-5 Days!

Key Target Platforms Update

I wanted to share some interesting data following a recent presentation looking into Modern Windows development.

75% of Windows Desktops use Windows 10!

Source: https://gs.statcounter.com/windows-version-market-share/desktop/worldwide/#monthly-201709-202009

Windows 10 is now used by 3 out of every 4 Windows desktop machines! This market share is up around 10% in 2020, having originally passed Windows 7 back in late 2017.

Windows 7 is down to around 18%, and falling. In part as Enterprises continue to shift to Windows 10 following Windows 7 going End of life in January. Windows 8.1 is stable at around 4%

What does it mean for me as a developer?

You need to make sure you applications are Windows 10 ready more than ever. Windows 10 has made fundamental adjustments to the UI layer in reaction to a number of hardware innovations, and patterns of use. This includes adjustments for PerMonitor support for different resolutions and DPI’s, and the enhancements around HighDPI support.

HighDPI support is no longer an optional item, without it your application could be rendered unusable on certain screens and the end user experience will suffer.

That said, there is still a reason to have backward compatibility to older versions of Windows. (Something the VCL helps support with its implementation of the new Windows 10 controls – YES – you can run then on Windows 7 and Windows 8 if you use the VCL)

If you are looking to add HighDPI support to your Windows applications, then I suggest starting with images, and check out the new TImageCollection and TVirtualImageList and also watch this webinar replay

For more about Windows 10, and some of the new controls and Windows 10 features in RAD Studio for Delphi and C++Builder, this 5 Unique Features for Windows 10 blog post is a good summary.

Windows and Android rule the roost!

Source: https://gs.statcounter.com/os-market-share#monthly-201809-202009

The numbers are pretty clear.

  • 38.51% – Android
  • 36.27% – Windows
  • 14.12% – iOS
  • 08.25% – macOS
  • 00.83% – Linux

When it comes to the type of devices on the mobile side – its mobile (50.33%) and desktop (47.04%) all the way, with Tablets accounting for just 2.63% of the market share.

Source: https://gs.statcounter.com/platform-market-share/desktop-mobile-tablet#monthly-201709-202009

What does it mean for me as a developer?

It means Android (and also iOS) are a key platform and technical asset to target to expand the technical capabilities of your desktop applications. This barrier to entry is low as the adoption is high. This makes it an ideal target to enhance your product offering and maximize development return.

With more mobile devices in use that desktops, mobiles can not be ignored when it comes to product innovation. Mobile devices offer a developer a key different set of technical capabilities. e.g. Camera, Accelerometer, Compass etc, and when paired alongside Desktop solutions, enable innovative ways to do data capture.

With the core System libraries in Delphi being cross platform, it means you can fast track your mobile development through the use of a single code base as well. Large parts of the business logic can move from Windows, over to iOS and Android rapidly.

It’s also worth looking at the Enterprise version of Delphi to get access to InterBase ToGo for mobile as a run-time royalty-free database. The full on-disk encryption of the database provides the highest level of data security, typically reserved for enterprise servers, yet still within a small footprint, highly distributable database.

If you are looking to use a mobile alongside a local application, (and don’t need the data to go centrally first for processing) then the unique approach of AppTethering is certainly worth a look. AppTethering avoids the need for pushing data to a central server, making it faster (as data is local). If this sounds of interest, then definitely check out this webinar replay.

Alternatively, RAD Server is a great way to take existing business logic and make it accessible as a remote API. Click for more blogs on RAD Server

Regional Specific Trends

If you want to delve deeper into regional-specific trends, then I would suggest visiting https://gs.statcounter.com/ and using the Interactive chats, powered by Fusion Charts (which also recently became a member of the Idera Group)

Installing Help and Samples for RAD Studio

The Help and Samples (for both Delphi and C++) are very useful when Programming as they provide quick reference and examples of how to use different language and component features.

If you are using the RAD Studio IDE and find that F1 is not opening up the help files, then the most likely answer is that the Help installation was skipped during the initial install.

To check (and install if missing) go to Tools > Manage Platforms

This dialog allows you to install additional platforms, but also (under Additional Options) manage the installation of Help and Samples.

Simply, tick the box for Samples and Help and then Apply, and you should then be ready to use F1 help in the IDE.

3 Libraries for improving Existing Applications built with Delphi

One topic I get increasingly asked about Delphi Programming when developers are migrating to the latest version of RAD Studio is “quick ways to improve their applications”. So in this post, I am going to summarise 3 favorites by focusing on the libraries in RAD Studio. If you are new to RAD Studio, then I would also recommend reading these, as they are very easy to implement and provide quick wins to new code too.

As with any actively developing and improving language and IDE, RAD Studio / Delphi is improving all the time. This summary is based on the questions I receive weekly focusing on what is in the box so to speak. While I barely scratch the surface here, I also want to point out that there is a great 3rd party community of developer tools offering even more options that you can explore.

Continue reading 3 Libraries for improving Existing Applications built with Delphi

Setting up the IDE for your First Android App

I have had a growing number of customers asking recently about getting started with Android programming with Delphi, so I thought it was a good time to refresh how to check your IDE is set up, how to enable developer mode on an Android phone, and show how you can rapidly get Android applications run and debugged from RAD Studio.

If you are new to Android development, then the first thing to note is that you need to ensure the IDE has Android support enabled. Under Tools > Manage Platforms, ensure Android is enabled.

You will also need to check Java is setup on your machine. This is because RAD Studio uses the Android SDK and NDK as part of the process for packaging and deploying android applications. One such part is the ADB program which tells the IDE what Android devices are attached to the computer.

If you already have Java installed, you can set the paths to the required elements required by the IDE under Tools > Options > Deployment > SDK Manager

With Java setup and Android tools enabled, you should be able to put your phone into developer mode and connect it to the Windows host to see it in the IDE.

If you have any issues with Android phone setup – check this post out.

The rest of the video shows running your first Android application directly from the IDE. If you want to debug the application, ensure you use DEBUG mode rather that RELEASE build. from the build configurations.

If you are using Debug mode, you still need to choose Target platform (for 32bit or 64bit), a target device, and then a configuration. – e.g. Development.

These options are used to setup and manage the development, release and files deployed. Something I will cover another time.

For more on Android development, check out the Embarcadero docwiki on Android app development

MKS Covid19 App Saving LiVes

The Military Institute of Medicine in Poland has been making the news recently with its app that is helping fight the spread of the global SARS-CoV-2 pandemic.

Piotr Murawski Ph.D, (Head of ICT, Military Institute of Medicine, Warsaw, Poland) shared recently with me how back on the 13th March, 2020, that after the SARS-CoV-2 epidemic reached Europe, the experience of other countries alerted his team that it will not be easy to control the infection, and testing will take a longer time than normal due to the numbers. This intern would have a negative impact on controlling the spread of the disease.

The solution

Continue reading MKS Covid19 App Saving LiVes

Auto Inc Fields in RAD Server with InterBase

How to create Auto Incremental Fields in RAD Server with InterBase, FireDAC and TEMSDataSetResource

One key feature when asking a remote server to add a record is to get the new record ID value returned. Thankfully this is easily achieved with InterBase and FireDAC via RAD Server with TEMSDataSetResource

InterBase has a concept of Generators. These provide a unique sequential integer value that can be used to provide a primary key field value. You can create up to 32,767 Generators in an InterBase database, but typically you would create one for the database or create and name one for use per table.

FireDAC Query UpdateOptions AutoInc

Part of the FireDAC framework is the ability to treat database fields as Auto-Incremental Fields. For Databases that do not have an AutoIncremental field data type, you can set the UpdateOptions properties to define the Generator and key fields.

Continue reading Auto Inc Fields in RAD Server with InterBase