Delphi

Get Started Building Cross-Platform Games In Delphi FireMonkey With Alien Invasion Sample

Alien Invasion is a classic arcade-style game which features a grid of aliens that move in sync back and forth across the screen. They fire projectiles at the player who is at the bottom of the screen. On each trip back and forth across the screen, they start moving faster and faster. There are four shields near the bottom of the screen that the player can hide behind but they have a limited number of hits they can take before each shield is exhausted. The player can only move back and forth at the bottom of the screen and fire projectiles upward. What you can learn from this complete Alien Invasion game sample: Game Design Basics Game Development App Tethering Collision Detection Building Game Loops Working With Sounds/Music Cross-Platform Development Patterns TMotionSensor TBitmapListAnimation You can download this game sample from GetIt easily With RAD Studio, game development is absolutely easy to start. Moreover, with the components, your development process goes smoothly.  Furthermore, there are several game engines built with Delphi that you can create many different games from 2D to 3D! Be sure to check out these game engines and the games built with that engine!

Read More

Powerful Easy To Use Build Automation Tool For Developers Made In Delphi

FinalBuilder is a build automation tool used by thousands of developers to simplify their build process and it is built in Delphi. Some of the FinalBuilder features include integrated debugging, email, MSN, FTP & SFTP support, version control integration, detailed logging, variables, scripting support, and an action studio for writing custom FinalBuilder actions. Build scripts can be scheduled with windows scheduler, or integrate them with Continua CI, Jenkins or any other CI Server according to the FinalBuilder site. FinalBuilder lists companies such as Intel, Samsung, Symantec, Cisco, and HP among their customers. There is a massive amount of features with this product and they have a feature matrix that outlines it all. Website https://www.finalbuilder.com/finalbuilder Screenshot Gallery

Read More

Hit The Ground Running With Windows Native MongoDB Database Sample Apps For Delphi

MongoDB is a document database, which means it stores data in JSON-like documents, the most natural way to think about data, and is much more expressive and powerful than the traditional row/column model. How about connecting with MongoDB and exploring the available databases and data using FireDAC components in your Application. Don’t know where to start? This post will guide you to do that. MongoDB.Explore Sample App shows how to connect to available MongoDB Databases, access to its ListCollections, and populate to the grid using MongoDB API wrapper class. You can find Delphi and C++ code samples in GitHub Repositories. Search by name into the samples repositories according to your RAD Studio version. Components used in MangoDB.Explore Sample App: TFDPhysMongoDriverLink: To link the MongoDB driver to an application and set it up. In general, it is enough to only include the FireDAC.Phys.MongoDB unit into your application uses a clause. The TFDPhysMongoDriverLink component can be used to specify: The VendorHome – the MongoDB installation root folder. The VendorLib – the name and the optional path to the MongoDB client library. TFDConnection: To establish a connection to a DBMS and to manage associated datasets. TFDMongoDataset: Used to attach a dataset to an existing MongoDB cursor. This class allows you to attach the dataset to an existing MongoDB cursor. You can get the cursor from various MongoDB API wrapping class methods, such as TMongoDatabase.ListCollections.To open a dataset, assign a cursor to the Cursor property and call the Open method. TFDMongoQuery: The TFDMongoQuery class is used to execute a MongoDB query. You can specify a query in one of the following ways: Using the QProject, QMatch, and QSort properties at design-time or run-time. Using the Query Builder provided by the Query property at run-time. Use TDataSource to populate the fetched data to TDBGrid. Implementation Details: You can find the MongoDB Explore Demo sample project at: Object PascalDatabaseFireDACSamplesDBMS SpecificMongoDBMongo_Explore.dproj. Before running this, as a preliminary step, we need to have a MongoDB Server is running and accessible from your host. For Details, See Connect to MongoDB Database. Check the below screen for listing the databases in the MongoDB server. Upon changing the database, its list collections changes. This screen Demonstrates the “restaurants” collection of the “test” database is provisioned with test data. To provision this collection, run the MongoDB Restaurants Demo, and click the Load Data button: You can find the MongoDB Restaurants Demo sample project at: Object PascalDatabaseFireDACSamplesDBMS SpecificMongoDBRestaurants Check out the full article in the DocWiki about the MongoDB.Explore Sample. Check out the full source code for the MongoDB.Explore projects for Delphi over on GitHub. Check out the full source code for MondoDB samples in C++ over on GitHub.

Read More

Develop. Share. Inspire. – GM Update for November 2020

It is already November—time flies these days. Despite the global pandemic, we keep charging ahead. As developers are getting more used to working from home (and some love it), we see more projects picking up, which is exciting. I am especially thrilled that there are more and more public Delphi projects on GitHub, and related discussions on popular platforms, such as Stack Overflow and Reddit, are growing, though not as quickly. I know that we have our own more proprietary ones, which are great, but the more Delphi we put out there, the better! My themes lately have been simple: Develop brilliant code. Share it. Inspire existing and new Delphi developers. Have you checked any of these boxes lately? There are about 8K Delphi projects on GitHub. Some 500K+ developers know Delphi, and at least 200-300K are actively developing with it. You do the math! We recently released Bold for Delphi open source to help contribute to the community, and a fantastic group of developers is now working on the project. Embarcadero is just getting started with open source projects, so be on the lookout for more! Here are some highlights of our current efforts: 10.4 was an essential release with over 1,000 enhancements and quality fixes. Many of its features were welcomed by both large companies and individual developers. 10.4.1 is a stable and robust version, featuring a faster implementation of Delphi Code Insight based on Language Server Protocol, VCL styles that work great with High-DPI and 4K monitors, extended Apple platforms, and API coverage. It also includes a much improved GetIt package manager and many other features. 10.4.1 adds over 800 quality improvements, including 500+ for issues publicly reported on the Quality Portal site. 10.4.2 Beta is also kicking off soon for Update Subscription customers. It is a great time to upgrade! With almost 4000 people registered, this was our biggest annual Delphi event. If you missed the live sessions, register now to catch the replays. This year we included many expert panels, including with some of Delphi’s lead architects, a massive hit with everyone! Join and enjoy presentations from thought leaders and check out some of the great perks and discounts available. One of our goals with DelphiCon was to simplify the format compared to previous CodeRage events and we hope you enjoyed it. We are always looking for ways to improve, and your feedback is valuable. By popular demand, a dedicated C++ event is in the works for the spring. Product management recently updated the RAD Studio roadmap for November 2020. Always great to see what the plans are for the future, and read the commentary from product management around these plans. These roadmaps are based on the direction of the industry, and the feedback we receive from you, our users. Check out the roadmap, leave your feedback, and file feature requests on Quality Portal. We realize that budgets are tight these days and want to make working with the latest releases more economical. We have a number of attractive global promotions to fit different needs. We have enhanced the Architect SKU to include a lot of value-added products, from Ext JS and Ranorex licenses to the expanded use of InterBase and RAD Server. If you are looking for the best dollar deal, that is clearly […]

Read More

Integrate Python Threading, Windows Console, And Command Line Arguments In Delphi Windows GUI Apps

We know how to do Multithreading in Delphi. How about a simple python script that performs threading in Python and runs the script in the Delphi application? This brings the advantage of using existing multithreaded or new python scripts in your Delphi application. This post guide you to do that with the Python4Delphi Sample app. You can also use Python4Delphi with C++Builder. Python4Delphi Demo22 Sample App shows how to create a Python script in Delphi Application which demonstrates creating thread and output the result in windows console, passing arguments in the command line. You can find the Demo22 source on GitHub. Prerequisites: Download and install the latest Python for your platform. Follow the Python4Delphi installation instructions mentioned here. Alternatively, you can check out this video Getting started with Python4Delphi. Components used in Python4Delphi Demo22 App: TPythonEngine: A collection of relatively low-level routines for communicating with Python, creating Python types in Delphi, etc. It’s a singleton class. You can find the Python4Delphi Demo22 sample project from the extracted GitHub repository ..Python4DelphiDemosDemo22.dproj. Open this project in RAD Studio 10.4.1 and run the application. Implementation Details: PythonEngine1 provides the connection to Python or rather the Python API. This project uses Python3.9 which can be seen in TPythonEngine DllName property. It uses a Python Script file threading_test.py where the below list of modules was used. threading: This module constructs higher-level threading interfaces on top of the lower level _thread module.  collections: This module implements specialized container datatypes providing alternatives to Python’s general-purpose built-in containers, dict, list, set, and tuple. In this sample, deque is used. time: This module provides various time-related functions. threading_test.py contains, ProducerThread, ConsumerThread, BoundedQueue class within the function _test. Memo1, used for providing the Python Script to execute. On Clicking Execute Button the below code executes the python script. procedure TForm1.Button1Click(Sender: TObject); begin PythonEngine1.ExecStrings( Memo1.Lines ); end; procedure TForm1.Button1Click(Sender: TObject); begin   PythonEngine1.ExecStrings( Memo1.Lines ); end; The script below is executed which will opens a window console, create threads put in a queue and execute one after other. import threading_test import sys # the following is needed to use the newly allocated console! sys.stdout = sys.stderr= open(‘CONOUT$’, ‘wt’) try: count = int(sys.argv[1]) except: count = 3 for i in range(count): print (“**** Pass”, i) threading_test._test() print (“**** Done.”) import threading_test   import sys # the following is needed to use the newly allocated console! sys.stdout = sys.stderr= open(‘CONOUT$’, ‘wt’)   try:   count = int(sys.argv[1]) except:   count = 3   for i in range(count):   print (“**** Pass”, i)   threading_test._test() print (“**** Done.”) Head over and check out the open source Python4Delphi project which makes it easy to build Python GUIs for Windows with Delphi.

Read More

Archaeological Museum Utilizes Powerful RAD Server And Beacon Fence Solution With Delphi

Miyazaki Prefectural Saitohara Archaeological Museum has built an app for smartphones, “Saitohara Archaeological Expo Navi,” which provides navigation in the museum, guidance on exhibits, etc. in multiple languages ​​using solutions provided by Embarcadero and Marubeni Information Systems. did. This solution consists of a power-saving beacon that emits radio waves (using “rapiNAVI Air2” manufactured by Marubeni Information Systems) and Embarcadero’s software development function “Beacon Fence” that detects the position using this beacon. At the Saitohara Archaeological Museum, you can use the in-house navigation system “Saitohara Archaeological Expo Navi” that utilizes beacons. With this system, you can check the current location of the museum on your smartphone, and read the explanation of the exhibits in front of you in four languages: Japanese, English, Chinese, and Korean. In this session, we will introduce how this system was built at the museum, along with an overview of the system and the features of RAD Studio / Delphi + BeaconFence used. Case Study http://forms.embarcadero.com/saitobaru-case Website http://saito-muse.pref.miyazaki.jp/web/english/index.html Screenshot Gallery

Read More

Impressive Procedural Game And 3D Engine Built In Delphi Is A Work Of Art

Developer Zudomon (Nick Pützer) has been building an impressive procedural game called StoneQuest and 3D engine in Delphi. He has put in over 12,000 hours since 2011 building the engine and game. The whole game and content is less than 15MB in size! One of the goals of the developer is for him to build it entirely himself in Delphi. The current gameplay is reminiscent of Minecraft. According to the developer “I use a lot of procedural content. All the models are created by code only. This mean, later I can do many different models from them! My engine is able to spread microgeometry over the world, real tiny 3d models. Every grass blade and clover plant is real and interact with players. Every cube face of the voxel world has it’s own texture. I only have a few procedural textures yet. They doesn’t repeat. There are dynamic volumetric 3d clouds. And volumetric fog in the valley, where sun rays shine through the trees. For me atmospheric and immersion is a very important thing.” The project is still in active development but you can download and play it in it’s current state. At this point it is a work of art which is beautiful to behold. Website https://stonequest.de/ Ready to get started with the latest RAD Studio version? Start Free Trial or Learn More About Upgrading Patreon https://www.patreon.com/Zudomon 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

Easily Bridge Your FireMonkey Windows Apps And JavaScript Using ScriptGate

Before knowing how to bridge FireMonkey application and JavaScript using ScriptGate, Let’s understand what is Native App and Hybrid App? What’s the difference between them? How to develop a Hybrid App using Delphi? Is it possible? What’s the challenge? This post will guide you to understand better. Native Apps : A software application built in a programming language, for the specific platform like iOS, Android ,Windows, macOS and Linux. The pros and cons are, The Best performance – no extra calculations or interpretations layers. No way to update UI without updating the app (only if you don’t have some built-in UI update engine) Your app can be used only for target platforms. You cannot start the app inside the browser without using something like Thinfinity Virtual UI. Hybrid Apps: Hybrid apps are part native apps, part web apps. It can take advantage of some device features available. Like web apps, they rely on HTML being rendered in a browser, with the caveat that the browser is embedded within the app. The pros and cons are, Possibility to update the UI and logic without updating the whole app. Great opportunity if you like to use HTML/CSS/Javascript for UI and even for business logic. Not the best performance – your app UI or business logic ( like Javascript) executes inside the browser component. Risk during submission to app stores (but your app still looks like a native app to the play store). Hybrid apps with Delphi is that possible? Yes, using the TWebBrowser component and ScriptGate. Why do we want to use ScriptGate? It looks like a native application, access to platform-specific features, like get device token, working with push notifications (including background mode), access to BLE and other hardware onboard features, working with permissions, and so on. Possibility to publish the application to app stores like a native app. What’s the challenge here?The main challenge – organize communication between your HTML/CSS/JavaScript web application, stored inside the TWebBrowser component, and your Host application code..E.g) Get Push notifications token in the host app and transfer it to the web app. Initiate permission requests from web app before calling some restricted function, e.g perform calls. Register geofences for the platform, e.g get a list of geofences via Rest API from Web Server using javascript code and put them to the OS using host app. ScriptGate solves the above challenges: ScriptGate is a library that allows you to call back and forth between JavaScript and Delphi code on TWebBrowser across Android, iOS, macOS, and Windows. Watch the Video Demonstration on how to bridge the FMX and JavaScript using ScriptGate mentioned below. Check out the other ways to Bridge Your Delphi Application and Javascript here. You can download the ScriptGate library for Delphi over on BitBucket.

Read More

Feel The Lightning Speed Of The Delphi Compiler For Maximum Productivity!

In this demonstration, you can see the speed of Delphi compiler which compiles one million lines of code in 5 seconds! This is epic! This demonstration has done using Delphi 10.1 Berlin version. Since then, we have got big major updates, compiler enhancements, and Delphi language enhancements. Be sure to check out the latest update in this post: 1 Million Lines of Code: 18,000 pages of printed text 14 copies of War and Peace 25 copies of Ulysses 63 copies of Catcher in the Rye Check out this million lines of code visualization Improving Compile Times Library packages – Built-in, 3rd party, and shared libraries are precompiled so they don’t need compilation with each build Precompiled units – Only new compile the units that change since the last compile Divide large projects into multiple smaller packages Inlining compiler optimizations, run time packages, optional debugging, and RTTI Watch the demonstration and feel the speed!

Read More

Powerful Visual Optimizer For Investment Portfolios Built In Delphi

OptiFolio is an advanced interactive portfolio optimization software built in Delphi. According to the developer “OptiFolio can produce an interactive visualization of all possible investment strategies for any given set of financial assets. Delphi’s compiled code extreme execution speed makes it possible to examine millions of strategies per second. This global perspective of feasible portfolios helps investors around the world to identify their best long-term strategies.” Some of it’s portfolio optimization features include: Apply quasi-stochastic and stochastic optimization methods, Find global optimums even with numerous and complex constraints, Report the composition of each point along the efficient frontier, and Save optimum portfolios for further analysis. Additionally, it has performance statistics to Calculate expected return, standard deviation and Conditional Value-at-Risk and Use multivariate copulas to forecast the performance of any portfolio. Website https://www.optifolio.net/ Ready to get started with the latest RAD Studio version? Start Free Trial or Learn More About Upgrading 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