Delphi

What Are The Best UI Frameworks For Windows App Development And How To Add The Wow Factor To Them

The recent version of Microsoft Windows brought a vast of important upgrades and changes which also made a huge impact on the entirety of windows app development. When developing a Windows application, one of the first things to consider is the User Interface. There are a great number of UI frameworks to choose from and each comes with its own strengths and weaknesses. In this webinar, Embarcadero MVP Ian Barker will deep dive into some of the best UI frameworks for Windows and the advantage of using them for application development. He will also share some methods of creating the best User Interface possible. The challenges of using Windows 11 and the use of its native Win UI3 Library While the interface of Windows 11 is undeniably appealing, it can also be slightly terrifying for some users. The changes made in Windows 11 are all visually recognizable. One of which is the new centered toolbar. Although the new toolbar is set in the center by default, this can still be configured and placed back on the left side which we are all very familiar with. There is also a new type of Windows behavior known as Windows Snapping that allows you to align your programs up so they are more organized. Windows comes with its own UI library. The newest generation is the Win UI3 which can be used to build production-ready desktop/Win32 Windows apps. Despite being a native GUI library for Windows, Win UI 3 is notably more complex compared to other UI frameworks. If you are looking for Windows 11-friendly UI frameworks that are more manageable, Delphi’s VCL and FireMonkey (FMX) libraries are surely a perfect fit. How to add a “WOW” factor to your VCL and FMX Apps Ian Barker will also discuss how to make the user interface of your VCL or FireMonkey apps more visually appealing. There are cool things you can do with the FireMonkey and with the VCL that can emulate Window’s Fluent UI design system and some of its behaviors. You can also take advantage of third-party suppliers such as the StyleControls VCL which provides the whole set of components allowing you to produce fluent UI interfaces. Skia4Delphi can also turbo-charge your FireMonkey and VCL apps. Skia4Delphi is an open source 2D graphics library that provides common APIs that work across a variety of hardware and software platforms. We can also recall Barker creating a Star Trek-inspired data dashboard using the Skia4Delphi library. To know more about the best UI frameworks for Windows 11 development, feel free to watch the video below.

Read More

Benchmark Study: Which Target Platforms Do Electron And Delphi Support?

Which target platforms do Delphi and Electron support? The “Discovering The Best Cross-Platform Framework Through Benchmarking” whitepaper evaluates two frameworks supporting multi-platform desktop application development: Delphi and Electron. Delphi Delphi, encapsulated in the Rapid Application Development (RAD) Studio IDE, is Embarcadero Technologies’ flagship product. A proprietary version of the Object Pascal language, Delphi features graphical application development with “drag and drop” components, a WYSIWYG viewer for most mobile platforms, and robust style options including platform-standard and unique palettes that provide a fully customized look and feel. Among other features, included libraries provide GUI controls, database access managers, and direct access target platform hardware and platform operating systems. The Delphi FireMonkey (FMX) framework will compile projects to native code for 32-bit and 64-bit Windows, macOS, Android, iOS, and Linux, allowing users to develop and maintain one codebase reaching most of the market. Delphi has been available for over 25 years. Electron Electron is an open-source (MIT License), Chromium-based framework that utilizes web technologies to build desktop applications on Windows, macOS, and Linux. It is developed and maintained by GitHub, a subsidiary of Microsoft. Electron combines the Chromium-based rendering engine with a Node.js server environment. As such, the user interface for an Electron application is available via HTML5 and CSS. Generally, Electron works with most Javascript frameworks such as Angular, Vue.js, and React. The HTML5, CSS, and Javascript-based technologies found in Chromium provide a rich ecosystem of user customization familiar to any web developer. Despite its relatively young age of five years, its community boasts open source packages for database access, operating system interactions, and other common tasks. Benchmark Metrics This post is part of a series of blog posts that look more closely at each of the individual metrics used in the study, and how Delphi and Electron each fared on these metrics. The first can be found here. Download the complete whitepaper here Benchmark Category: Flexibility Framework flexibility was examined qualitatively through research and conversation with experts in Delphi and Electron and sought to analyze the application of each framework to business problems and requirements. Delphi’s major advantage in the flexibility category is its ability to deploy one body of source code to any major desktop or mobile platform as a native binary executable, maximizing application market reach while minimizing maintenance/upgrade headaches due to code duplication. The framework supports projects of every scale from logic controllers for industrial automation to world-wide inventory management and functions within every tier from database-heavy back-ends to client-side services. Finally, Delphi’s standard libraries provide simplified access to most database products , fully support Unicode and other modern standards, and broaden access to operating system functionality on every platform as well as I/O devices and sensors. Electron is an open-source framework targeting all desktop operating systems through its Chromium base. It typically focuses on web-centric, client-side applications but can accomplish middle-tier and database services using runtimes and libraries like node.js and node-postgres. Hardware access and limited operating system interactions are provided by node.js libraries and Electron’s Chromium core ensures compliance with modern Unicode standards. After reviewing both frameworks, Delphi holds the lead in the flexibility category due to its flexible and automated deployment to all major platforms, scalability to every level of development, and visual design system. Electron enjoys a lower barrier-to-entry and more development tool options but requires manual […]

Read More

Bookmarks and Navigator are available for RAD Studio 11!

Bookmarks and Navigator, originally known as the Parnassus plugins, are some of our most-requested IDE addons. We’re very glad to let you know they are now available in GetIt for RAD Studio 11. To install, go to the Tools menu in the IDE, GetIt Package Manager, and select the IDE Plugins section in the category selector on the left: Bookmarks is a developer-favourite addon that replaces the editor’s inbuilt bookmarks, with an unlimited number of bookmarks, a handy shortcut (Ctrl+B), avoids overwriting bookmarks accidentally, caret bookmarks for quick toggling of location and reverse/stack navigation, a docked window showing bookmark context, and more. Navigator is a related plugin that helps you quickly navigate anywhere in your code: press Ctrl+G, and type to filter to show all useful elements in the current unit. You can type, for example, ‘prop Foo’ (or even shorter, ‘p f’ or even ‘f’ if you have few enough items to make this useful: it filters more as you type more) to find properties with Foo in their name, or find property read/write fields or methods related to that property… or to navigate to classes, records, enums and other types; unit sections like uses clauses; methods; variables, and more. Anything useful in your unit is shown in Navigator and is quickly accessible. It also adds a minimap to the IDE editor showing where you are in your code. RAD Studio 11 showing the Bookmarks and Navigator plugins both in use: bookmarks are shown in the editor and the docked window on the bottom right, while the Navigator plugin is providing the minimap on the right side of the editor and the floating navigation window where I’m searching for a method Bookmarks and Navigator are usually available immediately with the release, and that did not happen for RAD Studio 11. However, we have configured our internal build so that these plugins will always be available in future: that is, you can feel assured we have internal setup to not repeat the delay. The third Parnassus plugin, Debugger, should also come within a few days. The plugins are available for both RAD Studio 11.0 and 11.1; in fact, the screenshot above is taken with RAD Studio 11.0. Thankyou for your patience waiting for these plugins, and we hope you find the Delphi and C++Builder IDE even more productive and pleasant to use with these extensions! Don’t forget — they’re available right now in GetIt. Happy coding!

Read More

Windows 11 Win32 Debugging Patch for RAD Studio 11.1

There is a new patch (or hotfix) available for RAD Studio 11.1. The patch addresses an issue specific to debugging Win32 apps on Windows 11, where the IDE sometimes appears to freeze. Typical situations where you could observe the freeze include evaluating watches with side effects, opening the Threads view to switch threads, attaching to a process, and other common debugging actions. The issue is caused by getting the thread wait chain (GetThreadWaitChain()), which sometimes takes up to a minute. It is resolved by disabling the thread wait chain feature in the debugger. The exact cause of the thread wait chain delay is unknown but it appears to be related to a thread having a socket open, possibly where the thread is waiting to finish network IO. Thread wait chain information is disabled for Win32 on both Windows 10 and Windows 11. There is an environment variable to re-enable it if you need the feature: set DBK_ENABLE_WAITCHAIN=1 on a command prompt, and run RAD Studio (alternatively, set that environment variable globally for Windows.) Only Windows 11 is affected by the issue, so you only need to install the patch on Windows 11. Installation You can download this in GetIt (our recommended technique; also it will show as available on the Welcome Page when you start the IDE) or install manually after downloading from my.embarcadero.com (the zip file contains a batch file installer.) The RAD Studio 11.1 Welcome screen showing the ‘Patch available’ button. Click this to install patches, including this one. Remote Debugging Because this patches the debugger, if you do remote debugging you will also need to update PAServer on the remote machine. The patch installer replaces the (your RAD Studio install location)PAServersetup_paserver.exe file, but you’ll need to copy that over to the remote machine and install it. There are full details in the patch readme.  

Read More

Tkinter vs DelphiFMX in the Embarcadero Open Source Stream

We are starting something new, and I’m pretty excited about it. This is the first in a series of regular live streams discussing the latest in open source projects. Both projects sponsored by Embarcadero and key projects in the community. I will be the the host, and I’ll be joined by members of the community, developers involved in these open source projects, as well as members of Embarcadero and Idera’s Product Management. Our first stream, next week, is focused on Tkinter vs DelphiFMX for Python GUI development, so is squarely aimed at the Python developer. Thursday, Jun 2, 2022 at 10:00 AM CDT These streams serve multiple purposes: Collaborate for me with other project managers at Embarcadero and Idera to shape the roadmap and how we support these projects Share behind the scenes conversations with the community of these conversations Collaboratively shape the future of these open source projects Regular updates for what’s new with these projects and the community The goal is to rotate through projects each week and include a theme with the project. For example this week we are discussing the DelphiFMX for Python GUI library and comparing it with Tkinter, the existing de facto Python GUI library. This is a good opportunity to see gaps where DelphiFMX can improve, while seeing what DelphiFMX does to improve the life of the Python developer. Speaking of Python GUI development, we have a new . We will also look at some of the related projects for Python : Agenda for the stream: Tkinter vs. DelphiFMX Overview and comparison of the two libraries Where can DelphiFMX improve? What’s new in DelphiFMX Review Issues & Pull Requests Answer Questions Other feedback or contributors Plan roadmap for future changes Future streams will cover other projects in our Python Ecosystem, non-Python projects, and even community projects we love! This is the latest map of your Python Ecosystem. I’ve split it into two parts, the top half is projects for Python developers, and is the focus of the stream on June 2nd. We are planning on June 9th to focus on projects for Delphi developers that wrap Python libraries for simple Open Pascal based development. I’m really excited to show what we are working on there. Here is a list of some other open source libraries we may discuss in future streams: SonarDelphi Sonar-Delphi plugin used to analyze Delphi projects with SonarQube Bold for Delphi – A Model Driver Architecture (and ORM library) for Delphi Dev-C++ – A fast, portable, simple, and free C/C++ IDE C++ Arcade Games – 4 arcade games developed in C++Builder with FireMonkey for Windows, macOS, iOS and Android DelphiArcadeGames – 4 arcade games developed in Delphi with FireMonkey for Windows, macOS, iOS and Android DelphiBigNumbers – Really, really big integer and floating point numbers in Delphi Kastri – General purpose Delphi library skia4delphi – 2D GUI Library for VCL and FireMonkey Hashload Boss – Dependency Manager for Delphi and Lazarus And open to community suggestions As part of the live stream I will share more detailed documents about the project, but here are a few stats as a preview. Hope to see you online for the webinar on Thursday, Jun 2, 2022 at 10:00 AM CDT.

Read More

What Are Code Editors And What Is IDE Software?

Whether you’re new to programming or an expert developer, you need tools that make it easier to write and edit code. That’s why most developers these days use IDEs and code editors to simplify the process of coding and save time. An IDE software essentially consists of common development tools, such as a code editor, debugger, compiler, etc. In this article, we’ll discuss what exactly are IDEs and code editors and what you should look for in IDE software. We’ll also show you the best IDEs and code editors that you can use for your next project. What is IDE software? When we talk about IDE software (Integrated Development Environment) we mean a specialized software application that provides a set of tools required to write and test code. IDEs are becoming more and more popular as they make the process of coding/programming smooth and efficient. Additionally, IDEs help with faster coding and minimize bugs and coding mistakes. Most IDEs consist of a text editor or code editor, a compiler, and a debugger. Developers use the code editor to write and edit source code. The compiler then translates that source code into another programming language that a computer can understand. The debugger is used to test the software. Without IDEs, developers would have to use, configure, integrate and manage all of these tools separately. Some IDEs also come with other useful features, such as auto code completion, allowing developers to comment on lines of code, find references to other resources, and many more. What is a code editor? A code editor is also a software application that allows programmers to write and edit code. Code editors offer useful features, such as auto-complete, HTML tag highlight, syntax highlight, color-coding,  and many more to help programmers write and edit code more efficiently. Advanced code editors support a wide range of programming/coding languages, such as JavaScript, HTML, PHP, C++, Python, and more. What should you look for in IDE Software? Here are some of the key questions you should ask before choosing an IDE: Does your IDE offer features for faster and smarter coding? When you’re choosing an IDE, you should consider which features it offers for faster and smarter coding. Efficient IDEs like Embarcadero RAD studio offers features like auto code completion, auto code formatting, smart code navigation, auto code error detection, and more to save time and effort. Does the IDE software have an integrated toolchain? A powerful IDE like RAD Studio or Delphi is an integrated toolchain. This means the IDE provides you with all the tools (editors, compilers, and debuggers) you need for efficient software development, so you don’t have to search and buy any other additional tools or applications. Simply put, an IDE’s toolchain should include everything you need to create fully functional software. Does the IDE have efficient debugging capabilities? Good IDEs like RAD Studio or Delphi have powerful debuggers to help developers detect and fix bugs and errors in their code efficiently. RAD Studio and Delphi’s debuggers allow you to add breakpoints so that you can pause the program conditionally or at a specific location, trace the execution route of the code, inspect the current value of variables, and more. Good IDE software help you improve code quality A good IDE like RAD Studio is capable of […]

Read More

An Introduction To App Builder Software For Mac

When choosing the best app builder software for Mac, we use many heuristics and yardsticks to measure and justify our decision. But the irony is if our decision is wrong, our company and our client also have to pay the price. We should be very logical and careful when choosing our development tools. There are many tools and routes available for Mac development. We should consider several things in deciding the best one. In this article we provide an overview of app builder software for Mac, discuss the benefits and how to make good choices when developing cross platform apps for the Mac. Why develop for Mac? macOS is a great environment, and as a developer, you have to build some apps for Mac. Although its market share is several times lower than Windows, its share percentage is snowballing. For example, IDC said that the average adoption of macOS devices is now 23% (Up from 17% in 2019) in the United States, which is a considerable boost. Furthermore, many pundits believe that Mac shipments grow twice as fast as overall PC shipments. Excellent performance by the M1 chip might be one reason behind this. Moreover, the purchasing power of Mac users is more than PC users, and everything is moving toward a bigger and better macOS ecosystem. That is why no developer can ignore Mac. Why should you avoid No Code solutions? If you search online for “app builder software for Mac,” you will find that there are many no-code solutions touted as the best tool in the world. However, this anti-programming mindset is not the right path to take. First of all, if you want to be a great swimmer, then why avoid swimming. Secondly, to date, programmers are not replaceable because the system cannot program their roles for all scenarios. Finally, you must love coding to be a great programmer and always be proud of your profession. Then and only then can you find excellent time-saving tools developed by great programmers. Delphi is at the pinnacle of such tools. What are the criteria for choosing the best app builder software for Mac? Basic options like database development and reporting, theming support, native look and feel, regular updates, etc., are essential to have in any development tool, and that is obvious. Still, there are many other capabilities we need to have in a modern macOS App Builder Software. Let us consider them. Is productivity essential for your development? If the answer to the above question is yes, let me assure you that the RAD Studio is an excellent productivity powerhouse that can help you develop elegant solutions quickly and easily. Why is cross-platform development essential, and what is the easiest way to do it? Cross platform development is vital because it is the way of life of today’s users. Customers expect to have apps for all popular devices they use. However, developing and maintaining an app for multiple devices is tedious and costly. The best way to solve this puzzle is through Delphi. With its cross-platform FireMonkey framework, you can develop a single codebase app to generate NATIVE apps for all devices without costing you an arm and a leg. Why do I think game and media development is necessary to a healthy tech ecosystem? Chip manufacturers are adding […]

Read More

What You Need To Know About TabOrder And Cross Platform Apps

Developers often get requests to create forms where it is crucial to pay attention to the position of a cursor after the Tab key is pressed at every point of the program execution. This can be particularly important when developing cross platform apps where following user’s expectations of how user interfaces should behave can help make your app seem professional. It can be important from different perspectives, including user experience, client’s requirements, and important things like functionality. Delphi provides wide opportunities for this thanks to the implementation of the “TabOrder” property. In this article, we offer you to take a closer look at the TabOrder property in Delphi, to analyze how it’s supported, how it can be used and to see whether there are any limitations. What is a taborder and what does it do? The TabOrder property has been a part of Delphi since the release of Delphi 1. In earlier versions of Delphi, TabOrder was a part of the VCL hierarchy while in newer versions it is a part of FMX with small changes in the hierarchy. When the Tab key is pressed, the focus moves from one control to the next one. Due to the peculiarities of their design, not all controls can receive focus (E.g. TLabel) and not all controls can participate in the tab navigation. Even controls that can receive focus must be explicitly included in the tab sequence. In VCL, TabOrder is defined in the TWinControl class that normally unites components that are derived ultimately from the TWinControl class and will have the TabOrder property. Below you can see a typical declaration of the TabOrder property in the TWinControl class. property TabOrder: TTabOrder read GetTabOrder write SetTabOrder; TTabOrder is defined as an Enumeration that can contain values from -1 to 32767. Controls with a TabOrder value that equals -1 will be skipped during the Tab Ordering when the tab key is pressed. How is taborder different in a cross-platform app? In FMX, TabOrder is a part of the TControl class and is declared similar to the TWinControl class in VCL as described above. There is one more property named TabStop which determines whether a control will receive focus or not depending on the TabStop property value. Controls with a TabStop value that is False will not receive focus regardless of their TabOrder value. This principle is similar to the cases when the TabOrder value equals -1. As per the Embarcadero documentation, the TabOrder property is indicated as the position of the control in its parent’s tab order. This means that each parent control will have its own list of Tab Orders. An ultimate parent form that has all controls sitting over it also contains a list of tab orders for all controls (except the ones which are children of other controls on the same form). The control on the parent form which has a TabOrder set to 0 will have focus when the form first appears. Initially, when you create components at the design time, the tab order is always the order in which controls were added to the form. The first control added to the form has a TabOrder value of 0, the second one’s value equals 1,  the third one has a value of 2, and so on. As we have seen […]

Read More

Everything You Should Know About Windows Subsystem for Android in Windows 11

Probably one of the most exciting new features of Windows 11 is the addition of the Windows Subsystem for Android (WSA). This enables your Windows 11 device to run Android applications that are available in the Amazon Appstore. This new feature is extremely beneficial for both end-users and developers. Similar to Windows Subsystem for Linux (WSL), WSA makes cross platform development of Android apps on Windows easier and more manageable. In this video, Jim McKeeth and Scott Hanselman will discuss everything about WSA from the perspective of developers. How to set up WSA and use it for cross platform development This webinar is hosted by Embarcadero’s Developer Advocate Jim McKeeth and Microsoft’s Partner Program Manager Scott Hanselman to discuss the newly added Windows Subsystem for Android feature in Windows 11 from the developer’s perspective. WSA is indeed a great advantage for end-users because it finally allows them to access their favorite apps using the Windows operating system via Amazon App Store. This also means that they do not need any third-party emulators like BlueStacks or NOX to access their apps straight from their PC. However, how does this feature weigh-in for app developers? Watch the video for a ton of Windows cross platform development tips The discussion will take a deep dive into WSA from the process of installation to the easiest way to configure WSA for Android for use in software development. See what is required to run WSA as well as what is required to target it from your Android development. WSA is available for public preview on Windows 11 and you will be asked to download the Amazon App Store from the Microsoft store to download your favorite apps. What is the Houdini software and how does it help cross platform development? The video will also briefly highlight Houdini, a 3D animation software application for app developers. We will also get details about ADB (Android Debug Bridge), a command-line tool included in the Android SDK development kit. With the help of the Android Debug bridge, you can install custom ROMs, mods, GApps, backup Android, flash official stock firmware, and install Android apps. Here, we will get some important ADB sideload commands. To know more about WSA in Windows 11, feel free to check the video below.  

Read More

How To Get Cross Platform Apps To Connect To A MySQL Database

Whether you are working with small or large-scale databases, MySQL is probably one of the most popular database systems today. The webinar video below will take us back to CodeRage 2018 where Yilmaz Yoru will discuss the process of creating a MySQL Database and connecting the database using the MyDAC components through C++ Builder. MySQL is undeniably one of the most popular database servers and has been part of many windows application development projects. Thanks to its free Community Edition, the server is relatively more accessible than other open-source database systems in the market. How to connect to a MySQL Database using MyDAC Components? Normally, if you are using C++ Builder, you can connect MySQL Database using the official FireDAC component, a powerful Universal Data Access library that is a relatively easier-to-use access layer that supports, abstracts, and simplifies data access, providing all the features needed to build real-world high-load applications. However, there are also third-party components that you can use and this is where Devart’s MyDAC comes into play. MyDAC is a library of components that provides direct access to MySQL and MariaDB from Delphi and C++Builder on various Operating systems like Windows, Linux, macOS, iOS, and Android for both 32-bit and 64-bit platforms. To use MyDAC with C++ Builder, first, you must download a trial or purchased version from their site and you must install it for both VCL and FireMonkey Projects. In this video, Yilmaz will demonstrate how to create a new MySQL Database with a New User on a host server. It will also encourage you to install MySQL Workbench for table creation. In this webinar, all will be explained by a C++ Builder example. MyDAC is a good component to connect MySQL database for all platforms. It also supports the FireMonkey platform, which allows you to develop visually spectacular high-performance desktop and mobile native applications. To learn more about connecting MySQL databases using MyDAC components, feel free to watch the video below.

Read More