Delphi

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

RAD Server and Sencha CRUD Grid

This post shows how to create a RAD Server REST Endpoint (JSON Web Service ) using the RAD Server Database Endpoints Wizard using a FireDAC Connection, to create REST Endpoints for CRUD functionality. And create a Sencha Web Client Application with a CRUD Grid for our data! RAD Server Steps1. Using RAD Studio, Delphi or C++ Builder:File | New | Other | RAD Server | RAD Server Package | Click OK. 2. On the RAD Server Package Wizard, select Create package with resource: Click Next.3. Enter a Resource Name (any name). I’m using the name MyDataSelect DataModule for the File type. Click Next. 4. On the RAD Server Package Wizard, un-select Sample Endpoints, and un-select API Documentation.Select Database Endpoints Click Next. 5. Select an existing FireDAC connection, and Login to your database. Click OK. 6. Select one or more tables to use for your Sencha CRUD Grid Web application. Here I’m selecting Country, Customer and Employee Tables from my Employee Database: Click Finish. 7. Your RAD Studio, Delphi or C++ Builder creates your DataModule, with your FireDAC Connection (FDConnection), and FireDAC Query components (qryCountry, qryCustomer, qryEmployee) for your Country, Customer and Employee Tables, and RAD Server (EMS) DataSetResource Components: The new EMSDataSetResource component allows for greater control of the data retrieved by desktop, multi-device, web and other service-based applications that connect to your RAD Server application. Using this new component RAD Server applications can provide access all of a data set’s data, a specific page of data, updating a data set record, creating a new data set record, and deleting a data set entry. 8. The Database Endpoints wizard we used in step 4, also added TEMSDataSetResource components for each of the tables. Looking in the Object Inspector, we see the Allowed Actions property for these tables: List, Get, Post, Put and Delete, to give us full CRUD functionality! 9. Save (File | Save Project As) your RAD Server Module in a new folder, with the name: RadServer_Sencha_CRUD: 10. Build and Run your RAD Server Module. Your RAD Server Log shows you your REST Endpoints to access data from your Tables. For example: GET for the Employee table has this REST endpoint: {“name”:”dsrEMPLOYEE.List”,”method”:”Get”,”path”:”mydata/EMPLOYEE/”The RESTEndpoint would be: http://localhost:8080/mydata/EMPLOYEE/ 11. To test this Rest Endpoint, click the Open Browser button on the RAD Server UI. and Enter the REST Endpoint: http://localhost:8080/mydata/EMPLOYEE/This is your JSON Web Service for your Employee table data.You should see a JSON Array returned for your Employee Data: Great! The RAD Server part is complete.Next, lets create a Sencha Web Client Application with a CRUD Grid for our data! Sencha Web Client Application Steps 1. Using Sencha Architect; 2. New Project | Blank | Classic Project Click Create. 3. This creates a new Sencha Ext JS Classic Web Application: 4. Click the Sencha Data UI Builder icon:  5. For the Data Source, select JSON Web Service: 6. For the Model Name, let’s call it myModel. For the URL of this service, enter: http://localhost:8080/mydata/EMPLOYEE/ 7. Parts to Create.  Select all parts (Model, Store, List View, Details View, Form View, and Controller. Click Import Fields: 8. All the columns (fields) from your Employee table get added: 9. Click Generate 10. The Sencha Project Inspector shows your project has been created with your Views, and Model: 11. Select your MyModels View. Your […]

Read More

The Next Wave In Analytics Reporting Is Your IDE Software

The world is becoming increasingly data driven. Our everyday reality now is a hugely interconnected world society with data points on everything from what we want to purchase to how many times we braked too hard on our last road-trip. Without data, businesses cannot succeed and expand. They may have a stream of data coming from different sources, but it is useless without analytics. But did you know the next big thing in data analytics and reporting is your IDE software? Why should we care about data? Data is a critical asset for businesses as it helps them make informed business decisions. Plus, data usage drives the success of a business. Which depends on analytics, and the usage of reporting tools. Reporting tools make all the information easier to parse. Without analytics and reporting tools, informed business decisions are hard to imagine. This is where Yellowfin comes into play. Gartner surveyed CIOs for analytics and reporting tools. They asked for their best pick in business’s success. As a response, the highest 24% voted for data analytics. CIOs also believe that data analysis is important to act on data. Which returns invaluable insights.  So, if an enterprise wants to succeed, it must keep up with the latest trends in data analytics. Don’t know where to look? No worries! We have prepared this guide solely for this purpose.  Continue reading to learn about big things in data analytics and reporting tools.  What are the big things in analytics and reporting tools? What are contextual analytics? Contextual analytics is a chart embedded on the page with the data. It also includes picturing and the related actions for better insights. It embeds dashboards and analytics solutions into a software application’s core workflows. In addition, users get the benefits of analytics directly in the framework. Before contextual analytics, the users had to switch away from their working environments. They did so to investigate data or derive insight. But now, with contextual analytics, the data is delivered to the end-user directly. It is in the user interface and the transaction flow. With one click, users can get instant, guided, and dynamic insights. Which helps them to train and make decisions while working as usual.  The contextual analytic’s goal is to maximize the business benefits. It does so by supporting or triggering actions users take within the app.  What are augmented analytics? Augmented analytics uses enabling technologies like AI and machine learning. It helps with data preparation, insight explanation, and insight generation.  Its primary purpose is to boost how users explore and analyze data in analytics and BI platforms. It augments the expert and citizen data scientists. It speeds up machine learning, data science, and AI model development. So, augmented analytics is transforming how businesses prepare data. It helps find insights and share the findings from those insights. It will be no surprise if data analytics becomes mainstream. It is one of the next big things in analytics and reporting tools. Thus, data and analytics leaders should not wait and incorporate it now.  What are automated analytics? Automated analytics detect relevant anomalies, trends, and patterns. Once found, it delivers insights to users in real-time with no manual analysis.  Enabling technologies like machine learning and AI are used to monitor working performance. They also help search large datasets […]

Read More

How To Generate And Use 3D Objects With C++ Builder And Delphi

We’ve already learned from the previous webinars the great advantage of combining two different programming languages in one ide software. Some languages might be good at data processing while some are writing algorithms that are very easy to understand or read. It is important to note that you are not limited to one language, and you can always mix and match languages based on your purpose. The use of C++ Builder, for instance, allows you to extend the reach of Delphi. It combines the Visual Component Library and IDE written in Object Pascal with multiple C++ compilers. How to create and use 3D Objects in C++ Builder The video below will take us back to Embarcadero’s Code Rage 2018. Here, Yilmaz Yörü will guide us through the process of creating and using 3D objects in C++ Builder for Windows. Generally, in modern application development, 3D objects are often generated using 3D Designer software. Interestingly, you can also generate and animate 3D objects using the C++ Builder in Delphi. To make it possible, we need to use the Viewport3D component to display basic 3D objects. This also requires the use of TMesh classes in Viewport3D. TMesh is a custom 3D shape that can be customized by drawing 3D shapes. In this video, Yilmaz will demonstrate the process and will provide examples of how to create and use these 3D objects in C++ Builder. The interesting part about this project is that C++Builder includes tools that allow drag-and-drop visual development. This allows you to generate and use 3D objects surprisingly easy and fast. To learn more on how to create 3D objects in C++ Builder, feel free to watch the webinar below.   

Read More