From the blog

The Ultimate Cheat Sheet On Windows 10 App Development

Today is an exciting and dynamic time to be a developer. Technology advances seem to have accelerated and, with this, our software projects seem to paradoxically expand and shrink simultaneously. They expand because more devices and environments are becoming available to them. They shrink because we tend to use the same tools for developing all variants of our work. Past developers could have a single-minded focus on a particular environment or toolset. In contrast, today’s developers have to consider so many things before starting their Windows 10 App Development journey. So, let us discuss some of the crucial points along that voyage of development. What is the history of your IDE/Framework? Knowing about history is important because historical mistakes, missteps, and abject failures might repeat themselves. As a developer, we invest a lot of resources, both physical and emotional, in a project. If fundamental tools like programming language, IDE, or frameworks drastically change overnight, we must rebuild, almost from scratch, wasting almost all our investment. This repeated rebuilding can – and mostly likely will – increase costs for our clients too, and they won’t be happy either. Delphi has a great history in this regard. Upgrading older projects to newer ones is so straightforward that we can do it in no time. In less than a week, in my work, we recently upgraded a 2003 Windows (VCL) version project to 2022 multiplatform (FMX) project. Our customer was happy and surprised too. Unfortunately, most other tools do not follow the same policy, resulting a tragic graveyard of abandoned projects. If this is growth, then what is a disaster? It is wise to search for the backward compatibility history of a tool before devoting yourself to it. What sort of longevity does the tool provide? What stability does it give when moving from one version of the tool to another in terms of compatibility? It’s important to ask these questions, because if a company abandoned backward compatibility in the past, it would also happen with you in the future, and then it will be too late. Also, if your IDE has no history, ask yourself, is it wise to invest in it heavily? Nobody wants to be the pathfinder, the early adopter who is sacrificed to ensure those who come along later benefit from their trials and tribulations. Why does compilation speed matter? A finished software project is a compilation of hundreds or thousands of iterations of build, test, debug cycles. Pascal, in general, and Delphi, in particular, are famous for high-speed compilation. The specific structure of a Pascal program and multilevel optimizations applied by Delphi gives RAD studio an extreme edge in compilation speed and executable production process. For example, in one typical test, Delphi compiled one million lines of code in under 5 seconds. This super-fast compilation speed can be your friend in hard times of late-night iterative debugging and the seemingly common deadline congestions of a product release date. How to distinguish between Low-Code hype and the real thing? Like all new jargon, many companies misuse NoCode/LowCode words in the software industry. Fortunately, it is easy to distinguish between real and over-hyped tools. Every tool geared toward novice users and non-programmers is a lousy option. Ultimately, you have to write code to push things to their limits or customize […]

Read More

Everything You Need To Use AWS SES Natively In Your Apps

Email seems so old now when considering all the messaging options available. It is old, 50+ years old! It’s been the lifeblood of many business processes and is still as important today as it ever was. AWS has a plethora of great services, but they can be a little challenging for Windows app development. With that in mind, the next release of Appercept AWS SDK for Delphi 11.0 includes support for Amazon Simple Email Service (SES). Amazon SES is a reliable, scalable, and cost-effective email service and can be used for marketing campaigns, notifying users, or transactional emails. Let’s see how we can send a simple email… program SendEmail; {$APPTYPE CONSOLE} implementation uses AWS.SESV2; var Client: ISESV2Client; Destination: ISESV2Destination; EmailMessage: ISESV2Message; Request: ISESV2SendEmailRequest; Response: ISESV2SendEmailResponse; begin Destination := TSESV2Destination.Create; Destination.AddToAddress(‘world@example.com’); EmailMessage := TSESV2Message.Create(‘Announcing…’); EmailMessage.Body.Text := ‘Hello, World!’; Request := TSESV2SendEmailRequest.Create; Request.FromEmailAddress := ‘sender@example.com’; Request.Destination := Destination; Request.Content.Simple := EmailMessage; Client := TSESV2Client.Create; Client.SendEmail(Request); end. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 program SendEmail;   {$APPTYPE CONSOLE}   implementation   uses   AWS.SESV2;   var   Client: ISESV2Client;   Destination: ISESV2Destination;   EmailMessage: ISESV2Message;   Request: ISESV2SendEmailRequest;   Response: ISESV2SendEmailResponse;   begin   Destination := TSESV2Destination.Create;     EmailMessage := TSESV2Message.Create(‘Announcing…’);   EmailMessage.Body.Text := ‘Hello, World!’;     Request := TSESV2SendEmailRequest.Create;   Request.Destination := Destination;   Request.Content.Simple := EmailMessage;     Client := TSESV2Client.Create;   Client.SendEmail(Request); end. This is just the start. Why not start your next email marketing campaign with Amazon SES with tools written in Delphi? Or, seamlessly integrate email into your existing business applications built in Delphi? Appercept AWS SDK for Delphi is available exclusively with active Enterprise or Architect subscriptions for Embarcadero Delphi or RAD Studio. You can install the SDK through the GetIt Package Manager within Delphi or RAD Studio if you have an active subscription.

Read More

Data analytics & chart visualization in Delphi

Google Analytics helps to identify user browsing behavior. It is a powerful tool to analyze & monitor data and eventually adapt the content on your website to make sure users have a better experience. The purpose of this blog post is to capture realtime page visits on your website, analyze which browser is used and visualize it in a pie chart. The component capable of doing this is the TTMSFNCChart. At the end of this blog post, a sample is provided which allows you to see the code to retrieve the data from Google Analytics and how to configure the chart to display the results. Note that this sample also makes use of the component TTMSFNCCloudGoogleAnalytics which is part of the TMS FNC Cloud Pack. Retrieving the data After setting up Google Analytics, and setting up a connection via the TTMSFNCCloudGoogleAnalytics component, we call RetrieveData which asynchronously retrieves the data we are looking for. The code to properly setup the required data fields depends on a series of request parameters which are shown in the code snippet below. procedure TGoogleAnalyticsForm.GetReportData; begin … TMSFNCCloudGoogleAnalytics1.RequestData.UserMetrics := UM; TMSFNCCloudGoogleAnalytics1.RequestData.PageMetrics:= PM; TMSFNCCloudGoogleAnalytics1.RequestData.PlatformOrDeviceDimension := DM; TMSFNCCloudGoogleAnalytics1.RequestData.SystemDimension := SM; TMSFNCCloudGoogleAnalytics1.RequestData.PageDimension := PGM; TMSFNCCloudGoogleAnalytics1.RequestData.TimeDimension := TM; TMSFNCCloudGoogleAnalytics1.RetrieveData(StartDate, EndDate, MaxResults); end; Executing this request will display results in a VCL TStringGrid. Note that we can see the amount of time the user spends on each page and which browser and resolution is used. This is realtime data! Visualizing browser usage Whilst the grid shows the data after retrieval, it doesn’t give an easy visual interpretation. You need to look carefully which browser is used, which page is visited, etc .. whilst scrolling through the grid. This is where TMS FNC Chart comes into play. Dropping an instance of TTMSFNCChart on the form immediately gives an idea of its capabilities. For this particular sample, we will configure a pie chart, which is ideal for displaying percentage numbers. We start by analyzing the browser column inside the grid, and count the duplicate entries. d := TDictionary.Create; … for I := 1 to sgReport.RowCount – 1 do begin b := sgReport.Cells[6, I]; if d.ContainsKey(b) then d[b] := d[b] + 1 else d.Add(b, 1); end; … Then, once we collected the data inside the dictionary, we can start configuring the TTMSFNCChart instance. Step 1 is to clear the default series, add a new series and set the correct type. var p: TTMSFNCChartSerie; … TMSFNCChart1.BeginUpdate; TMSFNCChart1.Clear; p := TMSFNCChart1.Series.Add; p.ChartType := ctPie; TMSFNCChart1.EndUpdate; … Step 2 is to add points to the pie series. This is done by looping through the dictionary keys, which actually represent the browser, and retrieve the total value. Adding points in the chart is done with one of the multiple overloads, depending on the chosen type. For a pie chart, we use one of the AddPoint overloads, specifically to pass a value, color and a legend text. for k in d.Keys do begin if d.TryGetValue(k, v) then begin c := gcRed; if ci < Length(ca) then c := ca[ci]; p.AddPoint(v, c, Format(k + ' %.1f %%', [v / t * 100])); Inc(ci); end; end; The default look and feel of the pie chart is sufficient for displaying the results, but we also want to visualize the actual values in a separate legend. In TMS FNC Chart each visual element is fully customizable, via […]

Read More

View From The Tap – Bulgarian Firm Supports Country’s Market Leaders With Delphi And InterBase (Case Study)

Using InterBase and Delphi, Bulgarian software company Bonev Soft (BSoft) has made financial management and tax payments painless for the country’s industry leaders for over 20 years. BSoft’s flagship software, AJUR®, is an integrated management system for Windows very popular with government and non-government organizations in Bulgaria and around the world, across a number of vertical industries – from manufacturing and financial services through to power generation. More than 5,000 BSoft customers use AJUR to provide financial reports to tax authorities and various other stakeholders, and closely manage their supply chains. Among them are many of Bulgaria’s industry leaders. The View From The Tap Case Study explores how BSoft solved its scaling and efficiency challenges using a highly effective combination of Delphi and InterBase. Read The Case Study

Read More

Are You Getting The Most Out Of Your Windows App Development?

Windows 11 marks a visual evolution of the Windows operating system. As Windows moves forward, customers set a higher bar for desktop applications and massive demand for Windows app development. These customer expectations can be: Good performance on the low-cost app Native app user experience Complete matching with the latest design principles Support for modern window features like window snaps Support for shell integration or other native features support Easy to distribute on Microsoft Store Easy access to Windows App SDK or any other native libraries Great applications always meet these requirements.  Embarcadero Delphi Are you taking the right steps to build visually appealing modern Windows 11 Apps? While there are dozens of different technologies to build Windows applications, only a few of them offers all these capabilities built-in. For instance, Microsoft offers tools to make modern Windows apps with all the recent updates and features. But there is one more leading technology that has been thriving in Windows desktop development for more than 27 years now by providing the latest and freshest features and a unique graphical user interface development platform. It is Embarcadero Delphi! Since the beginning of Delphi with its Visual Component Library, it has been thriving in the Windows desktop app development industry. It offers hundreds of visual and non-visual components to build apps 5x or 10x faster than other GUI development tools. Delphi Cross-Platform Native App Development Are you using the latest Common Controls for Windows app development? Windows 11 brings beautiful UI innovations. By using new standard controls, you get the benefits of compatibility and accessibility for free. With Delphi and Visual Component Library, you can efficiently utilize modern controls. There are dozens of styles to quickly turn your futuristic UI to Windows 11 UI or even something unique. 2D & 3D Game Development with Delphi Why should you select Delphi for Windows app development? Delphi and its RAD Studio IDE profoundly improve developer productivity and product time-to-market. Not only that, developing one codebase to reach every desktop and mobile platform streamlines successive escapes and product maintenance. Delphi with Visual Component Library and FireMonkey framework gives you the best environment to quickly build any application, not only for Windows app development but also for cross-platform to Macs, iPhones, iPads, Linux computers and more.  WPF with the .NET framework offers small teams native entry to Windows applications and solid IDE but struggles to match Delphi’s productivity, IP security, and performance. Also, when you compare Electron, it gives a free alternative to Delphi and WPF and cross-platform capability like Delphi. Still, when it comes to productivity and security, it misses Delphi. Find out which is the best technology for Desktop Platform Moreover, according to that research paper, Delphi’s build time is better than Electron and WPF .NET for database connectivity. Besides, there is a clear indication that Delphi’s FireDAC database engine and network tools abstract layers of operations better than NodeJS, reducing developer effort and opportunities for error. Figure 2 – Delphi, WPF, and Electron comparison Are you using the best UI framework for Windows 11 Development? Compared to Microsoft’s technology stack, like C# WPF, or UWP, going with Delphi FireMonkey is one of the most reliable ones. It is not that they are unreliable, but they have a different approach to building the blocks and […]

Read More

Upcoming free webinar: Getting started with TMS FNC Maps

Did you know that on April 22, we celebrate the 2nd birthday of TMS FNC Maps? In full first COVID19 lockdown, we successfully launched TMS FNC Maps v1.0 after many man-months of development work. It is since its launch, a product that is unmatched in flexibility and features. TMS FNC Maps works fine for your VCL Windows applications, your FireMonkey Windows, macOS, iOS, Android and Linux applications, your TMS WEB Core web client applications, your Lazarus applications… You can use TMS FNC Maps from 4 IDEs: Delphi, C++Builder, Lazarus and Visual Studio Code. And with a single property switch, you select between Google Maps, Bing Maps, Here Maps, OpenLayers, Azure Maps, MapBox, Apple MapKit, TomTom maps.   In the past 2 years, we released non-stop a wave of new versions offering new features, improved performance and more flexibility.  Free webinar If you haven’t discovered our powerful TMS FNC Maps product yet, here is your chance to participate in our upcoming free webinar “Getting started with TMS FNC Maps“. On the agenda of this upcoming webinar on Apr 13 at 3PM UTC (17h00 CEST) we have: Why TMS FNC Maps: why did we create this product Introduction to included components, services, supported frameworks and IDEs and architecture Basic mapping techniques: location, bounds, pan, zoom, controls, views Working with markers: add markers, marker properties and custom markers Graphics on maps: circles, rectangles, polylines, polygons, HTML elements on maps + helper functions Geolocation & reverse geolocation: services, sync and async handling Directions: get directions with optional waypoints Overview of other advanced features Register for our free live interactive webinar on TMS Web Academy now! Read more Meanwhile, you can already prepare for the webinar and read all about TMS FNC Maps: TMS FNC Maps Hands-on video v1.0 TMS FNC Maps book availability Release v1.1 : Directions, Google Maps marker clusters Release v1.2 : Elevation, GPX import/expert, custom tile servers in OpenLayers Tile Layers support, Plus Codes, GPX export Release v1.3 : Google streetview support, toll roads settings  Release v1.4 : Apple MapKit support, integrated directions, map rotation Release v1.5 : static map image, toll cost calculation, timezone information Helper functions: distance calculation and working with Plus Codes Google heat maps Release v2.0 : route calculator & route editing, geodesic polylines Release v2.1 : Using overlay views Free geocoding & reverse geocoding with OpenStreetMap Nomatim Free route directions with OpenRouteService Release v2.4 : Google Places, address autocompletion & polyline symbols Directions and geocoding with GeoApify Add custom controls to your map with TMS FNC Maps for Delphi Calculate square meters of an area Detect if a point is in a coordinate based polygon in Delphi  Register now & participate We look forward to meet you online in our live webinar “Getting started with TMS FNC Maps” on April 13 at 3PM UTC (17h00 CEST). Learn about TMS FNC Maps and have all your questions answered during the webinar! Register here

Read More

Angular Material Components: They’re Not As Difficult As You Think

Today, many people use Angular to develop their web applications. This is because Angular is a prominent JavaScript framework that takes a component-based web application design and development approach. Angular material components offer an interactive user interface creation experience. But Angular has one downside. It has no pre-built components — developers either build them from scratch or get them from the community.  There are, however, several Angular Material component libraries to solve this problem. For example, Sencha ExtAngular provides 140+ pre-built UI components to help developers build high-performing web applications. It also offers several tools that make a programmer’s life easier. So, if you want to build high-performing web and mobile UIs using Ext Js Angular material components, then it is not as difficult as you think. Keep reading to find out why it is not complicated. What Angular Material Components Can You Use?  ExtAngular provides more than 140 pre-built UI components. You can use Grid components to load millions of data points, perform data manipulation like sorting and grouping, and include robust analytics in your application. There are also Layout components that you can use to configure the sizing and positioning of all your components. Finally, you can use charts to add visual representations to your data. How do You Use ExtAngular Generator to Create New Angular Material Components?  To make getting started easy, Ext Js includes the ExtAngular Generator to kick start new ExtAngular projects. To use it, you need to have Node and NPM installed. Once you have done that, access the Sencha NPM repository and install App Generator ‘ext-angular-gen’ command. Then, the ‘ext-angular-gen’ command creates an ExtAngular application form. From there you can start developing. Since the generated application uses the webpack-dev-server to auto-reload the changes, the changes you make to your source code are immediately visible in the browser. There are many benefits to using the ExtAngular generator.  It will make your life easier with best practices and tools that make you more productive. How Do You Package and Optimize Your Application?  After you have completed your development tasks, optimizing and packaging the application is easy if you have the right packaging module. A webpack module is a way to bundle static modules for Angular applications. They enable developers to bundle their dynamic applications into a package of static files you can deploy to the server. ExtJs offers the ExtAngular Webpack Plugin to bundle and optimize the ExtAngular material components of an Angular web application. To be most efficient, use Webpack 4+ to build your ExtAngular application. To make it even easier, the plugin works with Sencha Cmd.  How does ExtAngular TypeScript Definitions Help Your Development? Automatic code completion will help you reduce development time and be more productive. ExtAngular TypeScript definitions provide code completion functionality in several code editors, including Visual Studio Code. Using typescript definitions, developers can also avoid the usual code errors. From these definitions, developers can quickly identify imports and exports, variable and function types, create tests for the code, and much more. How Do You Easily Add Themes to Your Components? No web application with Angular material components is complete without themes. With ExtAngular, you can always use the existing default themes. However, you can also develop your own themes or add a standardized theme to maintain consistency across your company’s […]

Read More

Interbase ADO.NET Driver Update Enhances Visual Studio Support

Embarcadero has released an update to the new InterBase ADO.NET driver for Visual Studio published in May of 2021 that introduces support for InterBase’s award-winning ChangeViews™ feature.  The ADO.NET driver has both 32 and 64 bit support for InterBase and integration with DDEX and Entity Framework 6, giving you full customization and control over your development with InterBase and Visual Studio. The updated driver, made available as a Nuget package and listed in the Visual Studio marketplace, will offer Visual Studio 2022 IDE integration and full support for ADO.NET and the Entity Framework. What is ChangeViews™? Change Views™ is an IoTA-award winning data synchronization feature of InterBase. Change Views™ improves data security and eases data management workload by answering the question “what data has changed since I last viewed it?“ Change Views™ uses the multigenerational architecture of Interbase to capture changes to data. With Change Views™ there is no performance overhead on existing transactions because it maintains a consistent view of changed data observable by other transactions. The NuGet packages and the driver include: Core ADO.NET framework support and integration, including both InterBase server and the local, embedded IBLite/IBToGo (see image below)               Entity Framework support, offering the ability to use the popular .NET Object-Relational mapping layer with InterBase (this support requires adding a specific InterBase UDF extension library to your database installation) Visual Studio DDEX integration, with the ability to navigate the database connection and the actual data within the Visual Studio IDE (see image below)               The InterBase NuGet Package The NuGet package for Visual Studio includes the updated ADO.NET driver for InterBase, and additional features for seamless integration with the Visual Studio IDE and the .NET platform overall. The features are available in two separate NuGet packages here: The ADO.NET driver and all support code is available also as open source on GitHub at https://github.com/Embarcadero/IB.NETDataProvider. For more information on the InterBase ADO.NET driver and its capabilities, please visit the InterBase docwiki at http://docwiki.embarcadero.com/InterBase/2020/en/ADO.NET_Driver. We are also providing documentation and demos with the NuGet package itself. The replay of the webinar around the launch of the original new ADO.NET driver in May 2021 is available here:Introducing InterBase’s New ADO NET driver For a deeper look at InterBase’s ChangeViews feature, read Fernando Rizzatto’s related blog post: “.NET Apps And Interbase Change Views – How to Track Data Changes Automatically” Other InterBase Connectivity Options Besides the new ADO.NET driver for Visual Studio, InterBase also offers great connectivity and integrated drivers for Embarcadero RAD Studio (via FireDAC and IBX). InterBase has expanded its role in relation with RAD Studio to include cross platform support for a single database file format working across Windows, macOS, Linux, iOS and Android. Additionally, InterBase includes a JDBC driver for Java applications and an ODBC driver for most other development environments and programming languages. Learn More About InterBase InterBase is an ultrafast, scalable, embeddable SQL database with commercial-grade data security, disaster recovery, and change synchronization. With a long history as a powerful and reliable database system, InterBase has a very small footprint and can be deployed in a server but even embedded in a mobile application. For more information please visit https://www.interbase.com

Read More

10 Tell-Tale Signs You Need To Get A New Python Development Tool

Python is a general-purpose, high-level programming language which was first launched 31 years ago. It is known for its simplicity, readability, and excellent libraries. It consistently appears in lists of the top programming languages, so many part-time developers consider giving it more airtime. However, to do more in Python, you need a better Python development tool and learn new ways. Change is always easy for newbies as they have less to unlearn. Thus, if you are a seasoned Python developer, updating might be difficult. But as change is inevitable, embracing better tools and ways will keep you ahead of the competition as a senior Python developer. So here is our list of the best Python development tools and ten reasons you should add them to your development environment. 1. Do you want to Quadruple your Python development? Productivity in software development is all about getting results fast. You can quadruple your Python development to produce outstanding Python solutions by following these methods: Re-use available quality code quickly and easily by getting hands-on experience with more libraries and leveraging already available quality code. It will improve your coding skills and productivity. You can read about two great libraries, Python4Delphi and Delphi4Python, below. Joining an excellent Python community will help you out when you are stuck and learn from fellow programmers’ posts. Contributing to Open Source Python projects like PyScripter will increase the Python Pie available to all of us, and it will also make you a master of Python programming. Use a better Python development tool and Improve your problem-solving skills by Pair programming and code review sessions. 2. Do you know about VCL and FireMonkey frameworks? Delphi VCL is a mature Windows native GUI framework by Embarcadero Technologies. It comprises hundreds of easy-to-use components and third-party tools. DelphiVCL for Python brings all these native GUI-building capabilities to Python with minor efforts and learning. This framework will give you the ultimate edge for designing windows GUI-based apps in Python. FireMonkey by Embarcadero Technologies is a cross-platform GUI framework available for Windows, macOS, iOS, and Android. Also, with a third-party library of FMX Linux, you can extend it to Linux. DelphiFMX for Python brings massive FMX powers to Python developers. See this video for a quick start of the best Python GUI design capabilities. > 3. Do you know about Python4Delphi? With Python4Delphi, you can create Python extension modules through Delphi classes and routines. You can also use Delphi objects in Python scripts. This capability means you have a world of the tested and optimized codebase at your disposal for immediate use in Python. It can significantly improve your Python coding performance, and any time you spend learning this module is an investment. Also, this open-source project comes with an MIT license. It has an extensive range of demo applications that makes it trivial to master this module and supercharge your Python development. 4. Is Windows your primary development system? If Windows is your primary development system, like most developers, there is no need for cross-platform IDEs. Instead, you need an IDE that performs well on windows. Only native windows applications can perform well on windows, and everything else is compromised. PyScripter is the most performance-oriented Python IDEs available for the Windows platform. 5. Do you know why Java-based IDEs are poor […]

Read More

New blog series coming about extending TMS WEB Core with popular JS libraries

We are pleased to announce that a new blog article series is coming with Andrew Simard with the working title: “Extend TMS WEB Core with JS Libraries with Andrew”. Every week, TMS WEB Core power user Andrew Simard, will offer insights into working with popular JavaScript libraries from TMS WEB Core and share tips, tricks, code and projects. Andrew shares for quite some time already tips, tricks & insights for TMS WEB Core users via our Support Center in a special topic you can find here. The first series of +/- 20 blog articles is already planned and will come to you from April 2022. Watch our blog to learn all about it!    Want to get to know Andrew Simard already? See Andrew in the replay of the TMS WEB Core power users webinar we held a couple of weeks ago where Andrew presents his project he is building with help of TMS WEB Core.

Read More