Noutați

Looking back at 2021, an inspiration for what 2022 can be

The daily chore easily makes one forget the milestones reached and the goals ahead.  As such, it is good, with the start of the New Year, to look back of what has been achieved in the past year and set the goals for the new year. First of all, let me wish you a great new year 2022! I made a habit of wishing friends & relatives “to maximize the number of happy days in the new year“. Good health, success, good relationships, interesting work, achievements, luck, new experiences all contribute to happiness. So, when you can maximize the number of happy days in 2022, it is very likely you’ll be blessed with a mix of these things! At the same time, only in utopia, every day will be filled with happiness, so it also helps being prepared for some less successful days. 2021 Looking back at our milestones & achievements in 2021 actually positively surprised me. Even when we often get the impression that on a daily basis, we sometimes spend a lot of time fighting all kinds of little or big technical issues and have the impression we only move forward in baby steps, when looking at it in the scope of a full year, it appears a lot has been done. A summary Release of TMS Web Academy In the beginning of 2021, we launched our new platform TMS Web Academy, which is an online platform for bringing webinars to you where you can learn everything about our products. Since its launch, we already organized about 20 webinars that were free to attend. If you missed these, the replays are here. Of course, we continue along this path with new webinars for 2022 we’ll shortly present. TMS Web Academy proved to be a welcomed replacement for live events we could not hold due to covid-19 as well as a way to reach more developers world-wide. Launch of TMS Miletus  Miletus is our technology that enables you to create cross-platform desktop applications created with a single code-base and using web technology. Not only did we achieve to bring application generation for Windows, Linux and macOS from just your Delphi IDE running on Windows, we added to that also the Raspberry Pi OS target and we also added support in TMS WEB Core for Visual Studio Code. With Visual Studio Code, you can generate these types of applications directly from your favorite Windows, macOS or Linux machine.  Launch of TMS FNC WX Pack A completely new product saw the light in 2022, the TMS FNC WX Pack. TMS FNC WX Pack offers functionality that is hard to find or not existing for Delphi developers based on existing and proven web technology libraries. This includes so far a WYSIWYG HTML editor, an OCR tool, QR & barcode generation & detection, JSON data formatter,… and more is coming for 2022. High DPI to TMS FNC UI Pack With the release of Delphi 11 running in high DPI on Windows, it was critical to also bring full high DPI support in TMS FNC UI Pack. TMS FNC UI Pack is our universal (cross-platform/cross-framework) UI control bundle for VCL/FMX/LCL and TMS WEB Core. Our FNC UI controls were already looking crisp in FireMonkey apps, but now they also do in VCL high DPI […]

Read More

Introduction to Python GUI Development with Delphi for Python (VCL & FMX)

Part 1 starts shortly at 9 AM CST, and Part 2 on using Delphi FMX for Python to target Android is in two weeks on January 26th at 9 AM CST. Learn how Embarcadero’s newly released free Python modules bring the power and flexibility of Delphi’s GUI frameworks to Python. VCL and FireMonkey (FMX) are mature GUI libraries. VCL is focused on native Windows development, while FireMonkey brings a powerful flexible GUI framework to Windows, Linux, macOS, and even Android. This webinar will introduce you to these new free Python modules and how you can use them to build graphical users interfaces with Python. Part 2 will show you how to target Android GUI applications with Python! Come back here for links, slides, and the replay.

Read More

The Anatomy Of A Great JavaScript Grid Library

The pressure a modern web developer faces daily requires them to develop effective decision-making skills and always be on their toes. In the Rapid pace of modern software development, you cannot afford to take any wrong decisions or slow down. With the stakes this high, you have to make quick decisions about the frameworks you will work with and your chosen tools. Therefore you should always try selecting the right toolset before work starts.  For example, many beginner developers often make the mistake of going ahead with any library they see after searching the internet. Not many go through the documentation and Research into its developer community when deciding whether it’s a good option or not. When it especially comes to searching for the correct JavaScript data handling library, you should take some time to understand what a solid choice should look like.  When you start searching, you will realize there are many options on the market for libraries that work with data within JavaScript. However, not all of them would be advantageous. Some could potentially hurt your project’s performance and become a liability later on. To avoid such a scenario, you should consider an industry-leading option like Sencha ExtJS, which major tech companies trust worldwide.  This article will help you understand what the suitable JavaScript grid library would look like and how you can avoid making the wrong choice by keeping the aspects in mind. What Should The Right Javascript Grid Library Look Like? What are the Powerful Data Handling Abilities? The first and foremost characteristic you should extensively test when looking for a suitable JavaScript grid library is how well it handles data. The back-end performance of the library is an essential factor, and we cannot afford to pick an option that is unable to bear the brunt of massive datasets or complex operations. Therefore, you should look for a library that can promise significant data processing skills and delivers at that front. Sencha ExtJS has a sprawling library of data-focused capabilities that you can use to construct your data grids. There are powerful implementations of standard operations like pivoting, aggregation, grouping, sorting, filtering, and editing. You can also edit, drag-and-drop, and reorder rows as you please without hurting the application’s performance. Does it Support Extensive Customization? Since data is used in many different ways these days, it is a guarantee that no two data-intensive applications would be the same. Therefore, data technologies focus on being flexible and offering a diverse set of features that are useful in all different use cases. Your chosen grid library should also provide you with options to customize the back-end functionality and the front-end rendering. With Sencha ExtJS, you get a thoroughly customizable data grid library. You can edit how your rows and columns look and function. Additionally, the data binding options are flexible so that you can accept data requests from various sources like AJAX, JSON, or RESTful methods. You can also add more personalized functionalities by incorporating specific widgets. Are there Solid Integration Options With Frameworks? If your chosen JavaScript grid library intends to work smoothly in your web project, it will need to integrate smoothly with the other technologies. The whole web application will only be able to deliver the utmost performance when all the frameworks and libraries work […]

Read More

Why We Love Windows Development (And You Should, Too!)

I can say, with confidence, that desktop apps are not dead, in fact they are very much alive and thriving. Web apps are on the rise and it’s a common trope to say that web applications can replace windows app development. But they couldn’t do that. In some cases, Web apps are suitable as the primary way for users to consume your product ideas and output. But mostly, web apps are an adjunct to a more complete experience offered by full-on desktop applications. This is especially true in the business-to-business market. The majority of enterprises are still using native desktop applications especially for the line-of-business sphere like process control, specialized accounting and those apps which integrate with IoT devices. What happens when The Cloud is polluted by the fog of war? Useful web applications like productivity web apps proliferate but they do not have broad accessibility over native desktop applications and suffer from the need to be hosted by an outside organization which can pose problems of data ownership, guardianship and compliance. For example, if you are a German company and your human resources information is held in a cloud hosted in a nameless data center how can you ensure – in fact guarantee – that you comply with the eye-watering complexities of European and German laws? If that data center relocates to a new geographic territory, one which is cheaper for the cloud provider but is physically located in a region which is geopolitically at odds with your own wishes or legal obligations? If you are a US based company it may be illegal for you to hold data in a broad range of countries. Europeans may be legally prevented from using data stores outside of the European Bloc. The Cloud is really “someone else’s computer”. As a business owner – and even as an individual – you need to make sure that the “someone else” is some else you trust, and, more importantly, you are allowed to trust. What if the cloud…vanishes? If The Cloud breaks down and vanishes. Who gets the blame? The cloud provider files for bankruptcy, for example, and as long as they were not negligent, they get to walk away from those obligations. Meanwhile you are left with a compliance headache at best and a total los of business viability at worst with no ability to recoup. But even assuming that scenario doesn’t play out. What happens if your cloud app can’t access the internet? The outages at Amazon data centers took out the key functionality of substantial parts of the internet. A huge spotlight of doom was shone on the fragility of many companies’ solutions the questions being asked “was this a wise idea after all?” So, the problem is offline access to the functionality. Many web applications are building desktop versions of their products, because of the problem of offline access. Besides, web applications need persistent internet access, and this is another concern on security. That’s why big companies still feel the need to safely build native desktop applications. Are desktop applications the solution to the fragility of online-only web apps? It’s nearly impossible to deny that the desktop is probably one of the most important developments in productivity in the history of computing. Both desktop and web applications have their pros […]

Read More

Fast Track to Ext JS Learning Path Is Now Available On-Demand for Free

Are you an aspiring Ext JS developer just getting started with the framework? Or are you looking for the right resource to upskill your team? We’ve got exciting news for you about Fast Track to Ext JS! One of our most popular Ext JS training courses is now available on-demand for free. This means you’ll get access to quality learning materials and learn from Sencha Ext JS experts at your own pace. It’s completely free! Fast Track to Ext JS: Building Desktop & Mobile Apps with Modern Toolkit In this course, you’ll learn the fundamentals of the Ext JS development framework, including: Application Architecture Views; View Controllers; View Models Sending and Receiving Data Data-aware Components And many more It’s also extremely hands-on with labs for development works that connect to live data feed. So you can learn how to build the application from scratch. To start learning, you’ll need: A computer A course folder to hold your work Google Chrome Sencha Cmd Sencha Ext JS A source code editor or IDE If you haven’t already, get your 30-day trial of Sencha Ext JS for free. This course is also designed to help you make the most of your evaluation period. What’ll you be coding A music application that shows iTunes music video thumbnails for the top music videos. And users can play the preview video in a popup window. Music Video Application By completing the Fast Track to Ext JS course, you’ll be equipped with the essential skills to develop a full-featured application using the Modern toolkit for both the desktop and mobile user interfaces​. Get Started Now About the instructor Max Rahder World-class expert in Ext JS and Sencha Test Expert in technologies and architectures, and other front-end libraries, such as Ionic, Angular, and React. Max’s recent projects include: ExtJS app version upgrades (from 3.x and 4.x to 6.x) ExtJS app feature enhancements Mentored numerous clients on architecture and design Wrote all courseware for Sencha, Inc.: ExtJS, ExtReact, and Sencha Test Wrote Ionic courseware Converted a large ExtJS app to Ionic/Angular Given scores of corporate training and mentoring classes on web technologies Wrote the Java curriculum used by the State of Wisconsin and UW System

Read More

You Need To Know The Compelling Reasons For Native Apps

Native app development has substantial benefits over framework-based “one size fits all” comprises whether it’s for native windows development or mobile devices. It is simpler, less convoluted and circuitous to create, easier to run, and the user interface is typically smoother with noticeable responsiveness. Often, developers feel there is a barrier holding them back from embracing native development. They believe that they need to have multiple versions in different programming languages so they can develop applications for differing operating system targets. But there is a solution for that! Why do I need native app development? Here is why you need to be developing native apps: User experience – from smooth scrolling to device-specific features. With Native development tools, it’s easy to get these qualities. Native Apps are more secure – Building a native application is a great way to guarantee your users reliable data protection. Performance – With native applications, you can get higher performance. Easy access to all features of the device – Native applications have direct access to hardware, for instance, GPS, camera, microphone, and way faster in execution. Be sure to continue reading to learn about how to develop cross-platform native applications! In this article, I will show you why you need to consider Delphi to build your next products Why should I use Delphi to produce my apps? In short, with Delphi you can: Have confident long-term plans Create the most secure application Have fast time to market Have visual creation through powerful WYSIWYG Have 5x Faster Productivity Have Flexibility and Functionality Build an app for 5 different operating system with only one codebase How can I benchmark help me make a good choice of programming language? There are an overwhelming number of different benchmarks which attempt to provide an objective (and sometimes skewed) comparison of programming languages. Those white papers mostly compare and analyze energy efficiency and memory efficiency. But the real measure of the language is the productivity, engineering time, and efficacy of effort for developing a real-world application with any given programming language? Embarcadero Technologies produced a benchmark which fairly measured between 3 different software development tools to create a calculator application using these technologies: Windows Presentation Foundation (WPF) – with .NET framework Electron Delphi – Embarcadero Technologies RAD Studio If you go over and download the whitepaper yourself, you can learn more about every analysis with each detail. What were the key measures and findings of the whitepaper about developer productivity? Here you can find, conclusions of Productivity – is the measure of effort and code required for developers to complete typical development tasks. Productivity can be realized in 2 distinct ways – reduced coding requirements due to native libraries and IDE tools like code-completion and visual design Business functionality – refers to a framework’s business suitability and impact on long-term plans. Excellent functionality allows companies to easily build custom tools or extensions, develop on a platform of their choosing, protect their source code from exploitation, and have confident that their applications will be maintainable for decades. Functionality – long-term feasibility like does the framework have a history of stability and backward compatibility. Testing support, accessibility, and intellectual property security by securing project source code. Flexibility – flexible frameworks allow businesses to target a broad audience, build software for any field and access all the hardware […]

Read More

5 Great Reasons To Visit LearnCplusPlus.org Today

Hello C++ and Delphi Developers, We have new posts every day on LearnCPlusPlus.org packed full of great articles for professionals and beginners alike. Lots of new modern C++ topics to speed up your C++ app (or apps!) and to make them look visually stunning with an updated, modern look in a few simple steps. In the articles we have selected today we explain how you can simply compile Delphi projects in C++ Builder, how to Make A Millisecond Timer. We have some posts about Programming Artificial Intelligence, the Softmax function, and the Hyperbolic Tangent activation function in Neural Networks. What Is The ANN Function? There is a CppCon video about to analyze includes in C++ with Cppinclude. If you are new to RAD Studio, we think these posts may help you as much as a rapid introduction to programming in C++, all the way to the most robust, modern, and latest techniques for those more experienced with the language. For those who are perhaps wanting to expand their knowledge with the most up-to-date features, routines, and methodologies this is a great little boost (pun intended) to your C++ knowledge. The new RAD Studio 11, C++ Builder 11, Delphi 11 are released with great new features and we are developing and testing new examples for you with the latest RADS 11 that means.LearnCPlusPlus.org examples are working well with the latest C++ Builder. You can see more of our C++ posts on this blog by clicking the following dynamic search link: https://blogs.embarcadero.com/?s=C%2B%2B Here are today’s selections: How can we use C++ Builder in the most modern and efficient ways? These posts are designed to be easy to understand the modern and professional ways that we use in C++. Here are the topics, What You Need To Compile Delphi Projects in C++ Builder How To Make A Millisecond Timer In C And C++ What Is The SoftMax Function in Neural Networks? What Is The Hyperbolic Tangent Activation ANN Function? This Is How To Analyze Includes in C++ With Cppinclude What kind of C++ questions are we answering? These are the questions that we answer in this collection: How to compile Delphi projects in C++ Builder projects? How I can use Delphi or Pascal files in C++ applications? How to compile pascal files with C++ Builder? What is the challenge of timing very small intervals? Why would I need to time my program’s functions? How can I use the time library to time my C++ code execution speed? How can I use the chrono Library to time and measure my C++ app functions? What is the SoftMax function in Neural Networks? How can we use the SoftMax function in ANN? Where can we use SoftMax in AI technologies? Is the SoftMax function is an activation function in ANN? What does an activation function mean in AI? What is a Hyperbolic Tangent function? How can we use Hyperbolic Tangent Function in C++? Is there a simple ANN C++ Example of the Hyperbolic Tangent function? Can I analyze Include libraries in C++? How can I analyze Includes in C++ With Cppinclude? Where can I get the Cppinclude C++ tool? Where can I learn how to use Cppinclude? Is C++ Builder able to answer all those C++ questions? C++ Builder can answer and apply all the answers to those questions above with very simple step examples. […]

Read More

We kick of 2022 with ,How it works with Holger’: base64 data

We kick of the New Year with the first of “How it works with Holger” for 2022 and this first one this year is about using base64 encoded data.With REST APIs, JSON data, web client apps, string encoded binary data in URLs… ever more prominent in software developments, the use of base64 encoded data is everywhere. So, our colleague Dr. Holger Flick explains how you can use base64 encoded data with newer versions of Delphi out of the box and how the TMS FNC Utility library in TMS FNC Core goes a step beyond to make your life easier. Enjoy this first video of the year and watch for many more to come: Your idea could be on the next “How it works with Holger”! Submit your ideas here as comments or send us an email. Our list of subjects is growing. Your suggestion could be on it soon.

Read More

Writing Your Own Components For The FastReport Dialog

When creating a report, it is important not only to make a beautiful printed form that will display the data necessary for the user, but also a convenient prepress dialog where the user can set the parameters for generating the report. In the RAD Studio ide software, on the fastReport prepress dialog, there are already a number of components, for example, Label, Edit, Button, Memo. But sometimes this is not enough and you have to write your own dialog components for FastReport. In fact, they are analogues of ordinary Delphi-components, which can be used in dialog forms FastReport. Accordingly, in this article and will talk about writing such a component. For more information, we recommend reading the official documentation FastScript documentation: https://www.fast-report.com/en/product/fast-script/documentation/ FastScript VCL documentation: https://www.fast-report.com/en/product/fast-report-vcl/documentation/ To display data from the database, this article uses the DBGridEh component from the EhLib VCL library,which will be integrated into the FastReport dialog. Delphi 10.4.2 is used as the development environment, but everything described below will be suitable for any other Delphi starting from version 7 (adjusted for the version). Create a new package (dpk) and give it the name frxDBGridEh27. We add a new file frxDBGridEhControl.pas, which will be the basis of our grid. In this file, for registration in Delphi, we will declare the component: TfrxDBGridEhDialogControl = class(TComponent); TfrxDBGridEhDialogControl = class(TComponent); We begin to describe the TfrxDBGridEh component, which we will create from the base dialog class TfrxDialogControl. Essentially, we are re-declaring the properties of the base DBGridEh component into a component for use in FastReport. You can not declare all properties, methods, event handlers, but only those that are needed for work. In the private section, I recommend paying special attention to the following: private FDBGridEh :TDBGridEh; // The base component, the properties of which we will set and methods of which we will call FDataSource :TDataSource; // Interface between grid and data source in FastReport // Variables that will store the name of the event handlers FOnGetCellParams :TfrxGetCellParamsEvent; FOnGetBtnParams :TfrxGetBtnParamsEvent; FOnTitleBtnClick :TfrxTitleClickEvent; FOnDrawColumnCell :TfrxDrawColumnCellEvent; FOnColEnter :TfrxColEnterEvent; FOnCellClick :TfrxCellClickEvent; FOnColWidthsChanged :TfrxNotifyEvent; // These system procedures are needed to save and restore grid columns to the fr3 report template. procedure ReadData(Reader: TReader); procedure WriteData(Writer: TWriter); // These three methods are needed to be able to connect a basic data source of the TfrxDBDataset (FastReport) or TDataSet (Delphi) type to the grid. function GetDataSet: TDataSet; procedure SetDataSet(const Value: TDataSet); procedure SetDataSetName(const Value: String); // This is the event handler code procedure DoGetCellParams(Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor; State: TGridDrawState); procedure DoTitleBtnClick(Sender: TObject; ACol: Integer; Column: TColumnEh); procedure DoGetBtnParams(Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor; var SortMarker: TSortMarkerEh; IsDown: Boolean); procedure DoDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); procedure DoColEnter(Sender: TObject); procedure DoCellClick(Column: TColumnEh); procedure DoColWidthsChanged(Sender: TObject); 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 private   FDBGridEh      :TDBGridEh;   // The base component, the properties of which we will set and methods of which we will call   FDataSource    :TDataSource; // Interface between grid and data source in FastReport     // Variables that will store the name of the event handlers   FOnGetCellParams    :TfrxGetCellParamsEvent;   FOnGetBtnParams     :TfrxGetBtnParamsEvent;   FOnTitleBtnClick    :TfrxTitleClickEvent;   FOnDrawColumnCell   :TfrxDrawColumnCellEvent;   FOnColEnter         :TfrxColEnterEvent;   FOnCellClick        :TfrxCellClickEvent;   FOnColWidthsChanged :TfrxNotifyEvent;     // These system procedures are […]

Read More

An Introduction To JavaScript Grid Libraries

Rendering large volumes of information is a crucial requirement for many website features, for which websites often use tables for organizing the rendered data. When loading and processing a large data set on a web page, efficiency is important because it should have a minimal impact on the user experience. When you want to show information in tables, a data grid helps you show many records without significantly affecting the website’s performance. A data grid is like an HTML table that renders data in rows and columns, and today, many JavaScript Grid Libraries provide unique features for implementing and operating data grids. If you are a web developer looking forward to using a grid library for your applications, it is important to know what they are and what you should look for when choosing a grid library. A Javascript grid library is a collection of functions that enables you to easily create data grids for large data sets. Also, a grid library allows you to do various useful functions on the data, such as data fetching, scrolling, sorting, grouping, and filtering. More advanced grid libraries support advanced grid operations such as pagination, advanced searching, sorting with different conditions, and many more. JavaScript is the main language used by web applications,s and todays’ websites need to deal with a large volume of data. Therefore, implementing data grids and related functionalities from scratch will consume a lot of development time. A data grid library allows web developers to significantly accelerate development tasks and save development and testing time. Also, developing data grids from scratch while preserving the website’s performance is a challenging task. Most data grid libraries can perform data rendering and other related operations efficiently without significantly affecting the website performance. Therefore, JavaScript grid libraries have become popular for data display and manipulation in web and mobile applications. There are many JavaScript libraries on the market. Sencha offers a high-performing grid that lets developers load and manipulates a massive data set on the client-side within milliseconds. Experiments have shown that the Ext JS data grid has an outstanding scrolling speed 300x faster than other popular javaScript grids, which can fetch and display massive sets of data in less than one second. Ext Js Grid offers simple to advanced grid functionalities such as filtering, grouping, live data streaming, infinite scrolling, and many more. Using plugins, you can add extra functionalities such as column re-sizing,  row operations, and paging toolbar. There are also many open-source javascript grids available. For example, Grid.js is also a free and open-source JavaScript grid library based on TypeScript. You can easily use it with other javascript frameworks such as React, Angular, and Vue.js. Another popular JavaScript grid is the Jquery Grid. This enabled jQuery plugin uses Ajax callbacks to load data dynamically integrated with any server-side technology like PHP, ASP, JSP/Java Servlets, ColdFusion, Perl, etc. Grid Performance Many JavaScript grids fail because of slow data loading experience creates user frustration. Therefore, when choosing a grid library for your needs, it is very important to check its performance. If the grid is agh-performing, its initial data load time will be smaller. In addition, check the grid’s scrolling performance because users often need to scroll through many records. A good scrolling speed indicates that users can quickly scroll through the […]

Read More