From the blog

Meet Xpand – Beautiful, Simple And It’s Totally Addictive

When it comes to computer games it’s often the most simple ideas which are the most addictive and compelling. Hitting on a winning combination of simplicity but in a way which engages the game player so well they keep wanting more is like writing that elusive musical chorus; the ear worm, the thing which feeds some deep pleasure center of our distractible brains. Software developers are the kindred spirits of musical maestros If you can come up with that must-have app formula it’s a golden moment and extremely satisfying for a software developer. After all, we want our programs and apps to be used and, even better, we want them to be loved. We developers are an odd bunch but the music industry is also full of that same kind of slightly left-field thinking. Like a song writer or musician harnesses that creative side of mankind while working within the science and rules of the musical keys, developers turn ideas into apps while they corral the capabilities and restrictions of the hardware device and operating system. Programming is an art…and a science. Xpand takes a simple idea and executes it beautifully The rules of Xpand are simple; conquer the board or leave opponent out of moves by filling fields until they expand to nearby fields where the opposition become overwhelmed. The gameplay allows you, the player, to pit your skills against a custom-written AI opponent who plays a surprisingly strong strategic game! The game uses touch to control where you place ’tiles’ or discs. Like similar games such as Reversi and checkers or draughts there are not a whole load of different moves. The skill is in the strategic choosing of cells or squares and anticipating your opponent’s next steps. There’s a great twist where ‘chain reactions’ are created and corner fields hold a special significance which becomes clear as you play along. You can choose to play against the computer/device’s AI opponent or against a real live friend. Another great game written using RAD Studio Delphi Xpand is just one of an increasingly substantial cohort of mobile games written using Delphi and the powerful cross-platform capabilities of the FireMonkey FMX framework to work its magic. Reusing the same code base the winning combination of FireMonkey and Delphi allows US developer Davor and Robi to offer Xpand on both iOS and Android devices with little or no code changes. Delphi is pretty much the original low code platform and it continues to meet this challenge even on today’s constantly xpanding range of platforms, devices and operating systems. Apple App Store Xpand Google Play Xpand Screenshot Gallery

Read More

This Exciting Game Score Application Is Built In Delphi

The versatility and reliability of Delphi along with its ease of use and cross-platform capabilities means there are apps everywhere which are written using it. We’ve seen everything from fun games like the hilarious Good Cat Bad Cat to life or death utilities like the impressive E6B flight computer. RAD Studio’s powerful development environment when coupled with the comprehensive run time libraries and component ecosystem means the tough jobs are made easier and the fun apps can be fun to write too with the drudge of ‘scaffold’ code of other computer programming languages being almost entirely avoided. There are very few systems out there which really do mean “low code” in the way Delphi does and an even smaller selection of those are able to even get close to the cross-platform capabilities of Delphi’s FireMonkey FMX framework which lets developers write apps with apps able to run on Microsoft Windows, macOS, iOS, Android and Linux. Not only that, the cross platform apps achieve this with very few changes to the code. Score Note uses Delphi to do the hard work Keeping score is one of those task which can be made easier and perhaps even more fun by using an app to do it. Are you still looking for pen and paper to record your score while the game is in progress? With the Score Note app you can stop juggling messy pieces of paper or smudging chalk boards. Instead you can use your mobile device to keep score and leave the pen behind. The game score will be permanently saved (unless you delete it manually). You can save scores of multiple games in progress at the same time. Written by developer Max Lin Score Note is a great way to bring the art of score-keeping into the 21st century. Google Play Score Note Screenshot Gallery Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder. Design. Code. Compile. Deploy. Start Free Trial   Upgrade Today    Free Delphi Community Edition   Free C++Builder Community Edition

Read More

Tutorial: Rapidly Build Powerful Custom Calendars In Javascript

Whether you are an individual or a business, organizing your personal or professional time with effective scheduling is an important part of being efficient. Most people organize their days using a calendar of some sort. If you are keeping track of your next Zoom meeting, tracking your deadlines, or trying to remember a co-worker’s birthday, calendars keep you on track. They help you avoid the unpleasant surprise and embarrassment of missed appointments. However, to be truly useful, a calendar also has to be available. That means having access to your scheduling information or personal calendar on all of your devices, not just your laptop or company desktop. This demand for always-there calendar information has spurred the development of a number of complex web calendar components. While it may be difficult to choose and implement the one that is right for you there is an easy solution — the Ext JS calendar component. The Ext JS calendar has all the high-end scheduling features you will ever need. These include creating or moving events with drag and drop, easy Google Calendar account connection, and much more!  With Ext JS, you can easily build and drop the calendar perfect for you straight to your app. Today we are going to implement a powerful calendar in a few steps that cover all the important details and use best practices. How can I get Getting Started with Sencha CMD? The first step, as always begins, in Sencha CMD. If you still don’t have Sencha CMD, you can download it for free here. Once you have it installed you can make sure you have it properly installed and configured by running this command on terminal/shell: If it returns the sencha cmd version, you are good to go. Here are more details on how to install, configure and use Sencha CMD, but this article will show all the important details. How can I create the Sencha application? The first thing you want to do is create your project structure. Sencha CMD can do this for you easily–all you need to do is run this command. If you have any questions, take a look at the bullet points below. They explain what everything in the command does and what you will need to change to personalize your application. sencha -sdk /Users/fabio/sencha-sdks/ext-7.4.0/ generate app modern Calendar ./calendar-extjs /Users/fabio/sencha-sdks/ext-7.4.0/ is where your Ext JS folder is. Calendar is the name of our application and the namespace for our classes. ./calendar-extjs is the path for our project structure and the necessary files. modern is the toolkit for our application. Make sure when you run this command that there is no error on the output. If there is no error, and everything runs correctly, you have successfully created your project structure. To be sure, however, let’s run our application with the initial structure. To do this, first navigate to your project folder: Then, run the command to open the server on a specific port: The output of this command will return the URL where your app is available. In this case, it is running on  http://localhost:1841/. When you open it on your browser you will see a screen like this: How can I clean up the Sencha project? Once you have your basic project running, you can clean it up by removing the files and […]

Read More

6 Easy Ways to Connect to the Top Databases You Should Know

Processing of data is the soul of computing. Almost every single computer ever invented was designed so that human beings could take information in the form of data and manipulate it in one way or another either through visualizations or to use in other ways to make decisions about our lives, work and future. If data processing is the soul then the pieces of data itself are the bones we use to build the body of computing. In this article we’re going to take you on a tour of different ways to access, manipulate and master those building blocks. What do people mean when they call something a database? According to Oracle who specialize in the field, a Database is an organized collection of structured information, or data, typically stored electronically in a computer system. A database is usually controlled by a database management system (DBMS) which makes it easier to create, and generally control the database’s data and the programs which make the database work. Together, the data and the DBMS, along with the applications that are associated with them, are referred to as a database system, often shortened to just database. The evolution of the database The 1960s: Navigational databases such as the hierarchical database (which relied on a tree-like model and allowed only a one-to-many relationship), and the network database (a more flexible model that allowed multiple relationships), were the original systems used to store and manipulate data. Although simple, these early systems were inflexible. The 1980s: Relational databases became popular. The 1990s: Object-oriented databases became popular. The 2000s – Now: NoSQL databases came about as a response to the growth of the internet and the need for faster speed and processing of unstructured data. Today, cloud databases and self-driving databases are breaking new ground when it comes to how data is collected, stored, managed, and utilized. What types of databases are there? To make a better decision about the types of databases you need, first, you need to learn more about the different kinds of databases. Below are some common types of databases you may encounter either during your personal life or in your business, as collected by Indeed Editorial Team: Centralized database Cloud database Commercial database Distributed database End-user database Relational database NoSQL database Graph database Object-oriented database Open-source database Operational database Personal database Why use Python for working with databases? Python is perfectly fine for most applications for creating database clients. Python provides a vast set of libraries to work with an extensive variety of databases. Python is good for rapid prototyping. Read more here, to see “How Python is Ideal for Handling Data Intensive Tasks”: Delphi adds powerful GUI features and functionalities to Python In this tutorial, we’ll build Windows Apps with extensive Database capabilities by integrating Python’s Database libraries with Embarcadero’s Delphi, using Python4Delphi (P4D). P4D empowers Python users with Delphi’s award-winning VCL functionalities for Windows which enables us to build native Windows apps 5x faster. This integration enables us to create a modern GUI with Windows 10 looks and responsive controls for our Python Database applications. Python4Delphi also comes with an extensive range of demos, use cases, and tutorials. We’re going to cover the following… How to use SQLite, SQLAlchemy, pymongo, mongoengine, redis-py, and FireDac Python libraries to interact with databases All […]

Read More

How To Add Website Metrics To Your Apps Right Now

Website metrics are very important for webmasters to analyze and judge the efficacy and usefulness of their websites. Typically the metrics will show the ranking information, indexing information, spam ranging and many more information to get an idea about the page. The downside is that many website metrics APIs have results pages which are either tricky to get to directly or you wish to consolidate and visualize the data in different ways to the pre-made versions. We’re going to show you how to add the ability to obtain the data behind the website metrics in your desktop and mobile apps so they can be more easily viewed offline and how to get that data to the point where it could be extracted into a database. Why are website metrics so important? According to the metrics, you can take decisions about the future direction the website’s content and the areas on which to focus or tweak. Also URL metrics are very important for link building. Links from outside websites are viewed by most search engines as a form of endorsement. The more good quality external links you have pointing to your site the more the search engines may consider your site notable or worth boosting in the search ranking. URL metrics is a clear indication of how your website and its content is viewed and consumed by the rest of the world and, with that, the relative importance searchers may place upon you. What is Moz? Moz is a good friend of SEO Engineers. They offer all in one tools for a successful SEO. It will help to find the barriers for indexing your site like broken links, missing important tags and many more issues. It will summarize all matrices into a charts and you will get an idea at a glance. They can track your ranking over time and show it in a chart. Backlinks are very important for SEO, with Moz you can get reliable backlink metrics. Ranking with the wrong keyword doesn’t do any good for your website. With Moz, you can do the correct keyword research. How to get URL metrics of your website? Moz provide an easy to use API for URL metrics. It will give you more than fifty metrics about the domain / URL you provide. They offer you a free trial with more than enough API request for small scale projects. They you just have to make a REST request with the API Access ID, Secret Key and the URL you going to get matrices. Both Request and response is in JSON format. How to get URL metrics to a Delphi / C++ Builder application? Delphi provide an easy way to get Moz URL metrics. You can generate GUI components by the FREE Embarcadero tool called “Embarcadero REST debugger” and paste it in to your Delphi or C++ builder application. It will copy REST components and components for memory database and you can paste those directly into your form. First, run the Embarcadero REST debugger and set the parameters as following. Note that: you have to set the Moz “Access ID” and “Secret Key” as username and password for BASIC authentication in Authentication tab. How to add REST components to your Delphi or C++ app Now you can check everything by sending a […]

Read More

Powerful Bluetooth Control App Displays Delphi’s Flexibility

For those fortunate enough to have access to a pool all that splash-time fun comes at the price of a not inconsiderable amount of effort. Pools, on the face of it, seem to be not a huge amount more than fancy holes in the ground filled with water. When you accidentally own a swamp The reality is though that water is a delicate little ecosystem which can very quickly go from a place of enjoyment to the source of a broad range of diseases. It takes a very finely tuned collection of chemicals which must be in just the right balanced quantities. If you get that balance wrong you might find yourself responsible for streaming, stinging eyes for your swimmers or be greeted one day by a green pond of foul-smelling swamp slime. Delphi to the rescue! New Zealand based company Select Chemicals Limited have cleverly used the cross-platform power of RAD Studion Delphi and the FireMonkey framework to create a totally beautiful yet practical mobile app which takes the hard work out of calculating the correct chemical balances to make sure that your pool oasis remains a place you retreat to – not recoil from! The app looks effortlessly beautiful thanks to RAD Studio themes SCL recently updated the app recently to use one of Delphi’s gorgeous custom professionally designed user interface themes. This, combined with Delphi’s ability to interact natively with the mobile device’s Bluetooth communications means the app is a great tool for its users without a huge learning curve for the developers. According to the developer, “The SCL Bluetooth Control is used to control a wide range of Smart products from Select Chemicals Ltd: SmartDoser – A versatile general purpose chemical doser, pHydroMate – A pH correction controller using a pH probe. PoolMate – A pool management controller dosing managing both Disinfectant and pH correction using a combination pH and ORP probe.” Google Play SCL Bluetooth Control Screenshot Gallery Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder. Design. Code. Compile. Deploy. Start Free Trial   Upgrade Today    Free Delphi Community Edition   Free C++Builder Community Edition

Read More

My 7 Favorite Software Development Productivity Tools

There are a huge number of desktop software development tools available on the market. However, not all of them can boost productivity effectively. So, choosing the right one can be tricky. In this post, you will find 7 of my favorite desktop software development tools. They have enabled me to enhance my productivity significantly. Let’s take a look at them. 1. Delphi Delphi is an advanced IDE for developing cross-platform applications on a variety of platforms, including Windows, macOS, iOS, Android, and Linux. It enables you to develop native apps rapidly. Thanks to the powerful designing tools and features. The visual designing menu enables you to drag and drop components to the pallet easily. Also, Delphi supports highly optimized compilers for quickening lengthy compiles. Besides, it helps you to code quickly and accurately by utilizing Code Insight™. Overall, it’s a complete desktop software development productivity tool. 2. RAD Studio RAD Studio is a powerful IDE for building high-performance applications in both Delphi and modern C++. It offers a comprehensive set of tools for streamlining and simplifying the desktop software development lifecycle. You can create user interfaces quickly by dragging and dropping components from Tool Palette to the form. Also, it auto-generates a significant portion of your application codes as soon as you start the project. Besides, UML modeling helps you to improve the performance of your app. So, with the RAD Studio, you get all the productivity features in a single place. 3. REST Debugger REST Debugger helps you to explore and integrate RESTful web services conveniently. You can use it to perform testing across the application development cycle. REST Debugger enables you to test and understand RESTful web services. You can dive right into REST data with filterable JSON blobs to analyze how everything is working. Also, you can copy and paste components from the REST Debugger to Delphi, C++ Builder IDE, and RAD Studio. You don’t have to write any code. So, it can boost your software development productivity. 4. FireDAC FireDAC is a powerful universal data access library. It provides you with all the features to build data-intensive applications conveniently. FireDAC offers high-performance data access. The Live Data Window mode enables you to navigate through large datasets quickly. With Cached updates mode, you can track correlated changes for different datasets easily. Also, FireDAC comes with a powerful data access engine, which you can use with the desktop applications directly. Besides, it supports a unified API for helping you to code without worrying about the subtle differences between different database management systems. 5. Low Code Wizard Low Code Wizard helps you to boost your productivity by generating the framework of an already working application with basic functionalities. So, you don’t have to start from scratch. Once installed, the tool runs a wizard, which guides you through the process of generating basic functionalities quickly. There are a variety of options to choose from, including User Account and Application routines. You can configure the Settings screen to change the theme to light/dark. Also, Low Code Wizard enables you to add more screens to your application with less code. 6. LiveBindings LiveBindings helps you to visualize live data efficiently. You get the creative freedom of presenting the information more intuitively. LiveBindings helps you to bind objects to dataset fields. You can […]

Read More

TMS WEB Core v1.8 Sirolo beta available

TMS WEB Core v1.8 beta is here It was of course highly anticipated and awaited, this new version of TMS WEB Core v1.8 named Sirolo. Sirolo is a small but beautiful town along the Italian coast at the Adriatic sea. After city Ancona (name of TMS WEB Core v1.7 release), it is a nearby little town the Mille Miglia race in 1955 crossed. Other than the reference to this beautiful place, what does TMS WEB Core v1.8 brings on the table for Delphi developers: 1) Miletus support for macOS and Linux After Miletus targeted Windows in TMS WEB Core v1.7, our team now accomplished the phenomenal next step to create cross-platform web technology based desktop applications for Windows, macOS and Linux. And all that with a minimal footprint. On Windows and Linux this means single executable file apps and for macOS the typical application folder but also here with a single application executable file. Deployment can be done via ultra simple XCOPY deployment. In a nutshell, you can create desktop applications from a single source code base from your Delphi IDE on Windows. You do actually not need an Apple mac machine or Linux box to create these applications. The GUI of these applications is rendered in the browser and therefore empowered by HTML5 and CSS3. You can take advantage of existing web application templates to create wonderfull GUIs. Not familiar with Miletus? You can learn all about it from this webinar replay 2) Extended Miletus local databases support In this new version, we added two more possible local databases that can be directly used from a Miletus application and that is Interbase and Firebird. No need here to create a REST API interface, you can directly connect a client dataset to local databases. In v1.8 this is now: MS Access, MS SQL, mySQL, SQLite, Interbase and Firebird.               3) Miletus support to access INI files and registry Convenient for storing application settings, INI files or registry is what developers frequently use. So, from a Miletus app you can now easily access these INI files and the registry in the same way as you can from a VCL or Firemonkey application. Of course, there is no registry on macOS or Linux and here there is automatic fallback on INI files. 4) Two new UI components We have added two new controls to TMS WEB Core v1.8. This is a chatbox control and a rating panel. With the TWebChatbox control, you can write web chat applications with little to no code. Drop this component on the form and all you need to do is write some lines of code to send the message to your chat server of choices or receive messages from there. The other new component is the TWebRatingPanel. This is the classic UI pattern of rating via clicking a number of stars (or other icons of choice). The rating panel offers setting rates in units of 1, 0.5 or fully fractional. 5) SHA1 encryption support in the TWebCrypto component As SHA1 is often needed in communication protocols, we extened the TWebCrypto component that is internally using the browser crypto API to also offer SHA1 support. 6) Lots of smaller improvements and new features Based on your feedback and that of our team, we did […]

Read More

Writing components for TMS WEB Core

Unfortunately, at this time we do not yet have a seminal book like Danny Thorpe’s book “Delphi Component Design” (https://www.amazon.com/Delphi-Component-Design-Danny-Thorpe/dp/0201461366) for component design for TMS WEB Core. It is definitely on our todolist to write a book on TMS WEB Core component design, but until this happened, there are already a couple of resources that we wanted to bundle here that can help you out. Component types There are actually different component types in TMS WEB Core and depending on your needs, you might select the best type that fits. – Components build from HTML elements  In this component type, the component is rendered from HTML elements, like DIV, BUTTON, INPUT, IMG, SELECT, … To render the component, we basically create such HTML elements in the DOM and attach via Object Pascal code technically JavaScript event handlers to the elements and manipulate the HTML element attributes, content & style properties.  As most components included in the TMS WEB Core framework are of this type, the source code of the framework is of course also a great resource to learn from. – Components similar to VCL controls that are based on painting on a canvas A VCL custom control is basically a class that will paint itself and that will react to user interface inputs like mouse, keyboard, touch… The painting in a VCL control is done via drawing on the TCanvas. Well, the good news is that this component model also exists in TMS WEB Core. It can provide an easy way to port existing VCL UI’s to the web. We in fact did this with Tetris game original VCL Delphi code we found for this. You can find all the information in this blog article https://www.tmssoftware.com/site/blog.asp?post=446. Delphi developers should be quickly familiar developing this kind of custom control by descending from the TGraphicControl class and write overrides for OnMouseDown/OnMouseMove/OnMouseUp or OnKeyDown/OnKeyPress/OnKeyUp and also override the Paint method. The TCanvas class in TMS WEB Core has the same interface as TCanvas in VCL, so you will be quickly familiar using a Brush/Pen and methods like LineTo(), Rectangle(), Draw(), … – FNC Components Use the FNC component architecture and develop the component as FNC component that will also work in a web application. This is another approach and comes with the additional benefit that your custom control will not only work in a TMS WEB Core web client application but also in a VCL Windows application or a Firemonkey cross platform application. And it will also work in the free Lazarus IDE with the LCL framework. Component development for FNC is quite similar to VCL or FMX component development. One basically also overrides methods for UI inputs such as keyboard, mouse and touch and performs the drawing of the control. A difference for the drawing is that this is done via the TTMSFNCGraphics context (and not the TCanvas like in VCL). The TTMSFNCGraphics is an abstraction layer that works in all supported frameworks with the same code. A good starting point for beginning to develop FNC custom controls is this blog article https://www.tmssoftware.com/site/blog.asp?post=346.  Other resources Of course, TMS WEB Core full versions ships with the full framework source code, so it is a great learning resource for writing components. In addition to this, we have published several open-source components you can directly […]

Read More