From the blog

Extend TMS WEB Core with JS Libraries with Andrew: FlatPickr (part 2)

Last time out, we looked at how to incorporate FlatPickr into a TMS WEB Core project.  We had taken what might be considered the manual approach.  A link to a CDN or other source for the library is added to the Project.html file, and then a little  JavaScript code is used to manually link the library’s code to an element that has been placed on a TWebForm.  This works quite well, and is typically how I use this and many other JS libraries in my projects.  But there is another way that might be more inline with how Delphi is used much of the time – by using components. So in this post, we’ll revisit the same JS library, but we’ll walk through how to create a component that will appear on the Delphi IDE’s Component Palette.  From there, we will be able to add FlatPickr controls to any TWebForm or wherever we need the component to appear, just as easily as we do with a TWebLabel or a TWebEdit. And we’ll be able to adjust many of the options that we want to pass to FlatPickr by setting properties in the Delphi IDE Object Inspector. Motivation. Beyond just making it easier to use FlatPickr in a TMS WEB Core application, the idea of this post is to get a handle on how to create a Delphi package that can include many such controls.  As we make our way through more JS Libraries and their controls in the posts to come, we’ll hopefully be able to upgrade this package with those new controls as well, and maybe even toss in some others along the way.  This package can then be installed by anyone working on TMS WEB Core projects and thus get easier access to all the JS Libraries we’re covering in one simple step.  Note that if you’re using a JS Library in a one-off kind of situation, the work needed to create a component wrapper is likely to be substantially more work than the manual approach. But there is the potential to save time and effort in (at least) the following scenarios. When you want to use many instances of a component, perhaps in multiple forms. When you want to use the same component in multiple projects. When you don’t want to have to meddle with JavaScript or the nuances of the underlying JS Library. When you want to create something to be used with others, saving them time and effort. By having these kinds of controls in Delphi, you can simply work away as you normally would without even really having to know that you’re using a JavaScript library.   Creating a Package. But before we run off creating components, the first thing we’re going to do is create a package to hold these kinds of components.  Right out of the gate, we’ve got a few things to cover.  Writing TMS WEB Core applications in Delphi means that we’re using the Delphi IDE to do part of the work, and then transpiling our code using pas2js behind the scenes to produce the final code that runs in a browser.  But the Delphi IDE doesn’t know all that much about JavaScript or HTML or CSS or things like that – it is a Delphi environment, after all.  And once […]

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

5 Examples Of Successful Automation Testing Tools

Automation testing is critical for ensuring the effectiveness of the software. Additionally, it improves test execution speed and coverage. The main advantage of automation testing is that it does not require human intervention. This saves a significant amount of time. In addition, it is less prone to error and is most likely the best option when dealing with multilingual software. Today, however, all developers understand how difficult it is to test an application for all potential flaws. So, let’s learn more about Sencha WebTestIt to solve this issue. WebTestIt is a powerful tool that is completely free to use on your project and has excellent productivity. This allows you to save time and helps prevent major problems such as bugs from exploding for the user. In this article, we will look at the top 5 automation testing tools currently in the market. Why is WebTestIt the Best Automation Testing Tool? WebTestIt is a lightweight, integrated development environment (IDE) toolkit for developing, building, running, and debugging user interface (UI) tests for websites and web applications. Users can use popular web testing frameworks like Selenium and Protractor to build and run tests. The creation of WebTestIt was to serve the greater web test automation ecosystem. As a result, it decreases test management time while enhancing test automation efficiency.  WebTestIt design focuses on web automation, which it can utilize to generate robust tests for standard web technologies such as Selenium and Protractor in Java, Typescript, or Python. Furthermore, the “Getting Started” panel saves development time by providing sample projects, automatically applying page object patterns, built-in code snippets, useful keyboard shortcuts, and intelligent code completion. Furthermore, the tool ensures effective automation. WebTestIt scaffolds your project based on best practices and generates boilerplate code automatically. As a result, intelligent test-specific code completion saves time. In addition, it also provides support for Standard language, allowing you to write tests in Java, JavaScript, Typescript, or Python and have WebTestIt generate native Selenium or Protractor code.  In addition, with WebTestit, you can test anywhere because cross-browser testing is available on Windows, macOS, Linux, and Android mobile devices. Locally or in the cloud, you can test popular browsers or a headless browser. WebTestIt also handles the time-consuming setup process, such as scaffolding the test framework or automatically downloading drivers required to test the app on different browsers. WebTestIt also includes built-in best practices, such as creating page objects, separating test code from the testing framework, creating modular and reusable tests, cross-browser testing, and more. The result is more manageable and stable tests. Click here and visit the official documentation to learn more about WebTestIt. What Premium Features does WebTestIt Offer? Users can run the entire test suite or just the failed test cases. They can also run tests on a single endpoint or multiple endpoints in parallel and run tests from the command line with custom configurations. This makes execution more adaptable. Additionally, users can use WebTestIt’s CLI to integrate automated tests into CI servers such as VSTS, Jenkins, TravisCI, and others for continuous integration. You can also include generated reports as artifacts in your continuous integration process. Furthermore, WebTestIt’s browser support allows you to test locally on popular desktop and Android mobile browsers, as well as a headless browser. Distributing tests on a Selenium Grid or to cloud-based […]

Read More

Ambitious art: How Mistwalker fulfilled their magnificent vision for FANTASIAN

Tell us about the Dimengeon system and how you worked on the design. At first glance, it seems to be a great innovation for random encounters. But after looking more closely, it appears specifically useful for mobile players, who wouldn’t typically be able to engage in long or complex battles. Nakamura: This was Sakaguchi’s idea. In FANTASIAN, if you touch a treasure chest in the distance where you can’t see the route, NavMesh will automatically take you there. We talked about how new and exciting this was, but the problem was that it became stressful when interrupted by encounters along the way. So we came up with the idea of a dimension system, where encounters are stored. This system was initially created for field exploration. Still, it led to the exhilaration of defeating many enemies at once by curving magic trajectories in battle. It also made the humble task of leveling up more efficient. I think it’s a very unique and innovative system.   How did you ensure that the visual effects, lighting, and shadows would work with the data captured from the dioramas to maintain your artistic style? Nakamura: The most effective way to achieve harmony centers on the texture of the characters and the atmosphere. First of all, for the characters, we tried to create a figure-like texture that’s not entirely realistic. I adjusted this until the end to fit with the miniature, handmade feel of the diorama. The lighting was also handled with a stronger ambient to bring out this figure-like feel. We added a customized vignette post-effect to create a natural atmosphere. Vignetting is an effect that darkens the corners of the picture, but in FANTASIAN we used it to add color to the image’s corners, as if it were a fog. It’s easier to add color in 2D than in a fog that depends on the diorama’s depth. As FANTASIAN uses photographs, the depth of information is not perfect. That’s why we aren’t as good at depth-based post-effects like fog or depth of field (DOF).   Do you have any tips to share with Unity developers looking to create their own JRPG-style games? Nakamura: JRPGs are simple in structure, but they tend to be significant in volume. We needed many assets, so the most important thing was to manage them effectively. For FANTASIAN, we set up rules for naming and folder structure and then used import scripts to automate the process to a certain extent. This helped us manage the assets. Debugging is also essential. The simplicity of the structure means that crash bugs are unlikely to occur, but bugs such as flagging errors that prevent the story from progressing are more likely. It’s a good idea to have debugging tools in place to detect and reproduce such bugs.   Lastly, we would love to know if there are any fun facts or secrets behind the game to share with fans and other developers? Nakamura: Sakaguchi is quite flexible and open to individual ideas. Many of the storylines and characters have been changed based on the opinions of our team members. For example, we didn’t have a female character named Valrika at first, but the artist wanted to create a mature female character, so we added her in. He also agreed to make one character […]

Read More

Top 10 Webinars: C++ And C++Builder

IF C++ and C++Builder are part of your development repertoire (and even if they aren’t), we invite you to enjoy our top 10 webinars around both, plus a bonus video with a rather influential figure in the history of C++ (scroll to the bottom to find out who it is).         Why C++Builder? C++ has consistently dominated “Top Programming Languages” lists worldwide this year. With such a strong demand, C++ developers are well-positioned to experience a good problem: too much work. Join presenter and C++Builder Product Manager, David Millington, to explore the features and functionality that set C++Builder apart by helping C++ developers worldwide build stunning apps faster. Additionally, get an exclusive sneak peek into the powerful updates coming soon to C++Builder. Watch Webinar           Installing C++Builder 10.4.2 CE – Summer Camp 2021 Installation of and introduction to C++Builder 10.4.2 CE Part of the Learn to Code Summer Camp 2021 Watch Webinar           Migrating and Modernizing C++ Projects Learn more about Embarcadero Technologies products at https://embarcadero.com Try the latest version of C++Builder for FREE Watch Webinar           Migrating your C++Builder Projects to Unicode, with Al Mannarino This session focuses on helping you migrate your legacy C++Builder apps to Unicode. CodeRage XII, Session 1. Migrating your C++ Builder Projects to Unicode, by Al Mannarino. Watch Webinar           Rapid C++ Development, with Rob Swindell – C++Builder GUI Development Rapid C++ Development, featuring Embarcadero MVP Rob Swindell.Chapter 8: Comparing GUI Development Part 2 – C++Builder VCL Watch Webinar           Quick C++Builder CRUD with FireDAC and InterBase A C++Builder multi-device FireMonkey application connecting to InterBase using FireDAC and displaying data in a TGrid using LiveBindings with simple create, read, update, and delete (CRUD) functionality. Watch Webinar           Using C++ Builder to Extend the Reach of Delphi – with David Millington Many people know you can mix C++ and Delphi in one app. But not everyone knows how, or even why you might do it. But there are lots of reasons – faster app performance for critical code, using the vast number of open source C or C++ libraries, even just the options a different language approach can give you to solving a programming problem. Join this talk to learn what C++Builder can offer to your Delphi app, and how you can easily make use of it from what feels like native Delphi code. Watch Webinar            Catch Leaks in Delphi and C++ Builder [On-Demand] How to find leaks in RAD Studio 10.4 Sydney, Delphi and C++Builder Watch Webinar           Python for C++ Developers with David I. & Kiriakos Vlahos – Webinar Replay David I. has a fantastic blog post on using Python4Delphi with C++Builder. This was inspired by our previous webinars on the topic. and is the result of his collaboration with Kiriakos (AKA PyScripter), the maintainer of Python4Delphi, who also made some changes in the library to work better with C++Builder. By popular request, David and Kiriakos have also agreed to run a Python for C++ developers webinar where you can learn to leverage Python from your favorite C++ developer tools. Watch Webinar           LLDB […]

Read More

What You Need To Start Windows Development For IoT Devices

Just recently I was invited by fellow MVP and Serge Pilko, CEO of Embarcadero tech partner Softacom to discuss Windows development to work with IoT devices. IoT, or “the internet of things” is a hot topic right now. Devices like Arduino and Raspberry Pi have opened up a whole new market of very low-cost devices which can control, sense and record all sorts of things from air pressure to moisture content of soil and can perform all sorts of incredible real-world functions. It’s a beguiling and addictive subject and, as you’ll see in the video, once you start looking into it you may soon find yourself hooked! How do I get started in IoT Windows development? Serge and I discuss the basics of what is meant by an IoT device, what does IoT really mean, and what can an IoT device do. I brought along a selection of different IoT devices, ranging from commercial biometric units like fingerprint readers and face scanners to tiny tag-like Bluetooth Low Energy (BLE) tags. How to program an IoT device and link it to a Delphi program In the video I show how I program a really cool tiny Arduino-based computer, smaller than my thumb, and then write a short Delphi program to respond to button pushes on that midget computer on my Windows development PC. This all happens with just a few lines of code. It’s the really cool thing about Delphi, how it enables low code Windows development of all sorts of apps. What sort of IoT devices are shown in the video? In the video I show a BLE device from Blue Charms which is detected using Delphi’s BLE device scanner sample app. Serge and I also talked about a really great internet and cloud-connected relay from Shelley. I showed the Shelley 1PM which can be found here. You can get your Delphi app to communicate with the Shelley device either via REST – the Delphi REST Debugger helps a lot with that – or protocols like MQTT and Windows sockets. What is the Arduino IDE and how can it be used for IoT Windows development? The real star of the show is the super tiny, smaller than my thumb M5StickCPlus. Serge and I talked about quite how amazing this tiny device is and how easy it is to program. It is based on the mighty Arduino system, and you can use the Arduino IDE to send down your own code to it. How do I make an IoT device talk to a Delphi app? Once the IoT code, written in embedded C, is sent down to the M5Stick it registers itself on the free to use Mosquitto MQTT server found at http://test.mosquitto.org I used the MQTT component from Embarcadero tech partner TMS Software to handle the actual technicalities of communicating using the MQTT publish and subscribe protocol. It made it easy and in only a few lines of code I was receiving messages from the IoT device and making it beep every time I pressed the button on the M5Stick. Simple, really. As always, Delphi makes IoT Windows development pretty easy. Watch the whole IoT Windows development video between Serge and Ian Barker The whole IoT video can be found here. Ignore the “Baker” on the thumbnail – Serge gets […]

Read More

Unity Art tools: A new era of creativity

Many artists have told us that they find the tools and pipelines for digital content creation fragmented. Not only do they require excessive manual work, they don’t always lend themselves well to effective collaboration. Success with these tools, then, primarily requires the removal of the barriers caused by those fragmented datasets and disjointed creation systems. Over the past two years, Unity has been developing and refining its existing artistry tools to bring content authoring technologies together and remove those barriers from the creation process. This is a major priority moving forward, as Ziva Co-founder and Academy Award Winner James Jacobs notes: “We have worked really hard to make sure that creators have the best possible experience.” For Unity, this means accelerating solutions to the hard problems that artists face and making iteration of content creation more approachable than ever. “I’m super excited about 3D art expanding beyond just simple assets and modest ambitions.” Bay Raitt, the talented creator of Gollum’s facial animation system for the LOTR trilogy, and now a developer at Unity, provides direct insight into why this artist-first mentality is crucial for building out our professional artistry toolkit: “It was always a little frustrating that [some content creation tools] are landlocked… When you move away from that studio you think, ‘oh, these fragmented pieces don’t have to be done in separate ways. They can be done in this sort of networked way, in concert together.’”

Read More

Enter the Skia4Delphi GUI Beauty Contest

TL;DR: Make a cool demo using Skia4Delphi and Delphi 11.1 Alexandria, post it on GitHub, be the envy of all your friends, and maybe win a prize! We all know Delphi is the best tool when it comes to making amazing GUI applications. Use Skia4Delphi to take it to the next level in this contest. Skia is a super powerful, high performance, open source, cross platform 2D graphics library. Thanks to Skia4Delphi you have full access to Skia’s amazing features. Combine that with Delphi 11.1 Alexandria and you can create amazingly beautiful applications on Windows, macOS, Linux, iOS, and Android, all with the same code base. Skia4Delphi works with VCL and FMX. With FMX, you can switch to Skia as your rendering engine to improve the performance of your FireMonkey application, and unlock smoother animations with a single line of code. uses System.StartUpCopy, FMX.Forms, Skia.FMX, Unit1 in ‘Unit1.pas’ {Form1}; {$R *.res} begin GlobalUseSkia := True; Application.Initialize; … uses   System.StartUpCopy,   FMX.Forms,   Skia.FMX,   Unit1 in ‘Unit1.pas’ {Form1};   {$R *.res}   begin   GlobalUseSkia := True;   Application.Initialize;   … Review the webinar, install Skia4Delphi, and impress the world with your creative genius! To explore the amazing potential of Skia4Delphi in your applications we are hosting a contest. The requirements are straightforward. Install Skia4Delphi – it is available via GetIt or on GitHub. Use Delphi 11.1 Alexandria to create or update a VCL or FMX application using Skia4Delphi. Record a short video demonstrating your application in action.  Post it on YouTube, Vimeo, or other video hosting platform. Capture a few screenshots of your beautiful user interface. Post your code on GitHub.  Include the images and a link to your video in the readme. Include an overview of your project, details on how to build it, a description of what it does, why’s it cool, and how Skia4Delphi makes it amazing in the readme.md!  Use the topic tags: Delphi, Skia, Skia4Delphi, and others (FMX, VCL, Android, etc.) as appropriate. Include links to this blog post, Skia4Delphi, and Delphi’s home page. Share your entry on social media, tagging Embarcadero on Twitter, Facebook, LinkedIn, etc. Fill out the official entry form. Stay tuned to this post and our blog for updates and more details. Prizes Grand Prize is an Apple M1 Mac Mini so you can take advantage of the great new support for Apple Silicon in Delphi 11 Alexandria.  We will feature some of the entries we like best in blog posts and social media. Other prizes may be added depending on the number of entries received. Rules You are free to use any other 3rd party libraries, components, etc., but don’t include that code on GitHub. Make sure you include links and details on where to get them in your description. Feel free to use external graphical resources to make your user interface look great. If your project is complicated to build then be sure to include a pre-built binary as a release.  Skia4Delphi doesn’t officially support C++Builder yet, but you are welcome to use C++Builder in this contest if you want to make it work. Yes, you need to post your code, but you can use any license you want. We recommend MIT or BSD, but the choice is yours. The video doesn’t need to be anything fancy, just show off your application in action. […]

Read More