Noutați

Developer Stories: Dmitry Sidorkin Elaborates More About CST CAD Navigator

Dmitry Sidorkin started programming with Delphi in 1995. His application (CST CAD Navigator) was one of the submissions for the Delphi 26th Showcase Challenge and we interviewed him for some insights toward his accumulated Delphi knowledge throughout the years. More information about the application at the CST CAD Navigator website. When did you start using RAD Studio/Delphi and have long have you been using it? I started development in Delphi back in 1995, so I have been using it for more than 25 years. We started the development of ABViewer, our first CAD viewer, in Delphi 7 which was the latest version at that time. And now CST CAD Navigator is created with RAD Studio 10. What was it like building software before you had RAD Studio/Delphi? Before Delphi, I developed in Turbo Pascal, using Turbo Vision and Borland Pascal with the OWL library for Windows. My main programming language was Pascal and I sometimes used C/C++, that’s why when Delphi appeared, my choice was obvious. At least for me, there was no viable alternative. How did RAD Studio/Delphi help you create your showcase application? The support for cross-platform applications allowed us to create CST CAD Navigator, a CAD viewer that works on Windows, Linux and Mac. We started working on it from scratch. Without Delphi, we wouldn’t have been able to develop it so quickly. What made RAD Studio/Delphi stand out from other options? It is a single IDE, a single tool for different platforms that makes Delphi especially convenient. In this respect, there are no other options that can be alternatives to Pascal. Without any additional efforts, we created CST CAD Navigator for Windows, Linux and Mac. What made you happiest about working with RAD Studio/Delphi? Delphi is loved by lots of developers. I know that for sure because we often communicate with other Delphi developers who contact us about CAD VCL, our CAD library for Delphi supporting DXF, DWG and a wide range of other formats. But for me personally, the best thing about RAD Studio is being able to create software compatible with different platforms. Our team also appreciates the technical support provided by Embarcadero. What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? With Delphi, CST CAD Navigator can work on several operation systems, which became possible thanks to Delphi. It is also easy to transfer code between projects, thus using our own developments several times. What are some future plans for your showcase application? We are working hard on a version of CST CAD Navigator for mobile platforms – Android and iOS. After that, we plan to add support for new formats. At the moment CST CAD Navigator supports more than 50 different formats including DXF, DWG, STP, IGS, STL and lots of other ones. Our customers expect our viewer to be able to open any drawings, so we do our best to meet their expectations. We plan to add support for Autodesk Revit® formats, Catia files and improve our own parametric 3D core in Pascal. By the way, CADSoftTools is quite unique in using Pascal for such mathematical problems and having tens of thousands of customers all over the world proves the high quality our solutions. Thank you, Dmitry! You may view his showcase entry through the link below. Showcase

Read More

Quickly Build Powerful Native Cryptocurrency Charting Solutions For Windows

Coins, wallets and the tale of very big numbers It’s hard to miss the tidal wave of stories about cryptocurrency. The inexorable rise of BitCoin, Ethereum and a whole stable of others and the volatility where fortunes are made – and lost – has ensured it is the hot technical topic of the day. You can even apparently soon pay for a Tesla with cryptocurrency. In this article we’re going to visualize that volatility and plot the ups and downs of various virtual cryptocurrencies against good old hard cash. It’s surprisingly easy to do! Charts, graphs and bars In this article we are going to use Steema TeeChart for the charting functions. The RAD Studio Delphi VCL framework comes with built-in TeeChart Std. It doesn’t have some of the additional bells and whistles of the TeeChart Pro version but it’s enough to produce some really functional examples. For other platforms such as Firemonkey TeeChart Lite is provided but it has a few features that aren’t included which we would for our purposes. To overcome this you can install Teechart Pro trial version from https://www.steema.com. The trial versions are fully functional with the only limitation that a small nag screen appears when you first run them. Where are we going to get the cryptocurrency data from? We’re going to use the TFDMemTable ExchangeMemTable components to provide the data to the charts. This table contains three fields: USD_BTC (USD for one Bitcoin) USD_ETH (USD for one Ethereum) At runtime, we can retrieve actual data from the Web, or load it from some predefined files. At design time, the table comes with 12 records – last year per month. More details about the table filling see below. Creating our cryptocurrency chart Create a blank VCL form and drop TDBChart on it: Click with your right mouse and select “Edit Chart”: On “Series”, select “Add” Now select “Bar” and press “OK” We have a sample chart! A sample TeeChart bar appears. Now, expand “Series”, select “Series1”, choose “Data Source” and select “Dataset” Select ExchangeMemTable, Date for X, USD_BTC for Bar. Press the “Apply” button. Our 12-month data appears. Tidying some loose ends For this task, probably, we do not need Legend. Uncheck Visible for it: Probably, we do not need also marks, left axis is enough. Uncheck “Visible” for them: Trying out other charts We can easily select another chart style for the same data. Press “Change” for Series1: Now, select “Line” Adding additional cryptocurrencies to our VCL chart example Now, let us add another cryptocurrency. In “Series”, press Add: Choose “Line”. For Series2, select “Dataset” – ExchangeMemTable, Date for X, USD_ETH for Y and then press “Apply” to make the chart sprint into life. Adjusting for cryptocurrency variations on the example VCL chart Ethereum (ETH) values are significantly smaller than BitCoin (BTC). To improve the scaling and provide a better comparison let’s expand “ETH” to a full chart size. Let us give ETH a separate axis on the right side: How to fetch live cryptocurrency data into our VCL chart example To fill the ExchangeMemTable with actual rates from the currency exchange, you should get a free key from https://coinlayer.com/. Enter this key in the editor field. Select an appropriate time period (last year, last month, last week) and step (month, week, number […]

Read More

Delphi Empowers: Wagamama’s Stunning Mobile App

For good food fans in the gorgeous island of Cyprus Delphi is the power behind Wagamama Cyprus’ mouth-watering mobile ordering app. The Wagamama mobile ordering app from developer Dafera Ltd makes it a delight for the eyes and the tastebuds by powering Cypriots to have the opportunity to enjoy their favorite delicious Wagamama delivered fresh and ready at the office, at home or anywhere they wish. Firemonkey Power – Android and iOS with almost no code changes Dafera, based in sunny Nicosia, really make the app shine through their clever use of the best RAD Studio Delphi’s Firemonkey FMX cross-platform features so that the same app can be delivered on Android and iOS with virtually no changes to the code. Firemonkey and RAD Studio do the heavy-lifting. Coupled with simply stunning photography and skillful direct integration into Wagamama’s order management workflow users are treated to a seamless, trouble-free ordering and delivery experience. Great work by the Dafera team! Website wagamama Google Play wagamama Apple App Store wagamama Screenshot Gallery If you’re looking to create a professional, top quality mobile or desktop app like Wagamama Cyprus- RAD Studio has the answers and the power to make it happen – just bring your imagination! What do you want to create?

Read More

Easily Build Powerful Personalized Dashboards With Javascript

  The Dashboard is the first screen that a user wants to see in an application. There will be the most important information for the strategy of the company. There are charts and some lists with summary data to explain the current status of the business. Today we are going to create our Dashboard with a personalized design using the power of Sass based on this example and using best practices. How to Create an Ext JS Application Using Sencha CMD based on Templates Let’s start installing and configuring Sencha CMD and then create our application from the admin template. Starting with Sencha CMD If you still don’t have Sencha CMD, you can download it for free here. Once you have it installed make sure it was installed and configured properly, running this command on terminal/shell: If it returns 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. Creating the application The first thing you have to do is download the template by clicking here. The next thing to do is create your project structure and Sencha CMD can do it for you easily, just by running this command: sencha -sd /Users/fabio/sencha-sdks/ext-7.3.1 generate app -s extjs-admin-dashboard-template-master DashboardExtJS ./dashboard-extjs /Users/fabio/sencha-sdks/ext-7.3.1/ is where your Ext JS SDK folder is. extjs-admin-dashboard-template-master is the template downloaded. DashboardExtJS is the name of our application that will be our namespace for our classes. ./dashboard-extjs is the path where it will create our project structure with the needed files. Make sure when you run this command there is no error on the output. If everything was running correctly, it created your project structure. Let’s run our application with the initial structure. First navigate to your project folder: Then, run the command that will up the server on a specific port: The output of this command will show you the URL where your app will be available. For our case, it is available on http://localhost:1841/. Open it on your browser and you will see the initial app created: Why use a template? The benefits of using templates is a lot, mainly this admin dashboard template where you have the base classes and screen that you will need for your application. Project Structure Let’s understand a bit about the project structure generated, here are the important folder on our project: app is the directory where we will have our classes used on both devices (desktop and mobile). Here we can have base classes and no visual classes like Models, Stores, and some views that we will be able to reuse. classic is our directory where we have our classes used for the app running on the desktop. modern is where we save our classes that will be working to run the app through the phone. sass is where some of our important rules were defined to change the design of the app. The Dashboard In this post, we will focus only on our Dashboard and dive into some components and how it is working to make some actions. Important components to put on a dashboard are charts and lists, so let’s focus on these two kind of components. How can I Create a Line Chart with Javascript Ext […]

Read More

Must Have: This Free & Powerful Report Generator For Your Windows Apps

Sooner or later your applications need to create some sort of visualization of the data they handle. RAD Studio users already get a bundled version of the TChart graphing component so you can easily produce pie, bar and line graphs. Our rich eco-system of technology partners also provide a number of different takes on report writers and generators ranging from spreadsheet-based generators thru PDF creators to banded reporting tools. Reporting and Visualization 101 – in case you’ve been living under a rock Reporting and visualization tools include generalized reporting in the style of a typed document, decision-making pivot tables, and market analysis graphing. It’s really about translating raw data into marshalled, organized, hard-copy to make it more ‘human friendly’. But then you knew that already, didn’t you? Name your price Prices for reporting tools vary quite widely from under $100 US to several thousand. Or..free… as is the case with FortesReport. What is FortesReport? FortesReport is a powerful report generator available as a package of components for Delphi developers. In FortesReport, the reports are composed of bands that have specific functions in the print stream. uses ufrmReport, ufrmReportImagem; {$R *.dfm} procedure TfrmPrincipal.btnRelatorioImagemClick(Sender: TObject); begin if OpenPictureDialog1.Execute then begin frmReportImagem.RLImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName); frmReportImagem.RLReport1.Preview(); end; end; procedure TfrmPrincipal.btnRelatorioTextoClick(Sender: TObject); begin if OpenDialog1.Execute then begin frmReport.rlmmTexto.Lines.LoadFromFile(OpenDialog1.FileName); frmreport.RLReport1.Preview(); end; end; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 uses   ufrmReport, ufrmReportImagem;   {$R *.dfm}   procedure TfrmPrincipal.btnRelatorioImagemClick(Sender: TObject); begin   if OpenPictureDialog1.Execute then   begin     frmReportImagem.RLImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);     frmReportImagem.RLReport1.Preview();   end; end;   procedure TfrmPrincipal.btnRelatorioTextoClick(Sender: TObject); begin   if OpenDialog1.Execute then   begin     frmReport.rlmmTexto.Lines.LoadFromFile(OpenDialog1.FileName);     frmreport.RLReport1.Preview();   end; end; You can define groupings, sublevels, and totals simply by the hierarchical relationship between bands. Moreover, the FortesReport has a rich palette of components for text, charts, formulas, bar codes, filters, and layout. The repository also has several demo applications so you can see it in action for yourself. Head over and check out the FortesReport report generator components here: https://github.com/fortesinformatica/fortesreport-ce Great work, excellent quality and quite amazing for it to be an open-source product too.

Read More

Developer Stories: Rafael Antonio Rojas Jaque Explains About SADIS

Rafael Antonio Rojas Jaque started to use Delphi in 2008. He has submitted a showcase entry (SADIS) for the Delphi 26th Showcase Challenge and we wanted to know more about his application. You can check it out at SADIS. When did you start using RAD Studio/Delphi and have long have you been using it? En el 2016 RAD Studio, Delphi lo uso desde 2008 I have been using RAD Studio since 2016, and Delphi since 2008. What was it like building software before you had RAD Studio/Delphi? Antes de RAD STUDIO era mas demorado crear software, no existian programas para desarrollo multiplataforma en Delphi. Before RAD Studio, it was more time consuming to create a software. There were no programs for cross-platform development in Delphi. How did RAD Studio/Delphi help you create your showcase application? Me ayudo en integrar las herramientas en una sola plataforma, facilitando e integrando los desarrollos, ademas de poder crear aplicaciones web. It helped me to integrate the tools in a single platform, facilitating and integrating the developments, in addition to being able to create web applications. What made RAD Studio/Delphi stand out from other options? Ya tenia aprendido Delphi, fue natural pasar a RAD STUDIO, otras opciones no daban tantas herramientas en una sola plataforma. I had already learned Delphi, so it was natural to go to RAD Studio. Other options did not give so many tools in a single platform.  What made you happiest about working with RAD Studio/Delphi? Pase naturalmente a trabajar en RAD STUDIO, lo que tenia aprendido en DELPHI  no se perdio, antes aprendi mas. Naturally, I went to work with RAD Studio. What I had learned at Delphi was not lost, I learned more before.  What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? Logre crear una plataforma que soporta el trabajo en web, que envia y recibe los datos desde una aplicacion celular. Envio de Fotografias, Firmas, GPS, Datos capturados en terreno que fluyen a la nube o los servidores SADIS. I managed to create a platform that supports web work, which sends and receives data from a cellular application. Sending of photographs, signatures, GPS, data captured in the field that flow to the cloud or SADIS servers. What are some future plans for your showcase application? Seguir agregandole modulos, la plafaforma atiende diferentes clientes de diversas areas, Ingenieria, Salud. To keep adding modules. The platform serves different clients from different areas, engineering, and health. Thank you, Rafael! Open the link below to view his showcase entry. Showcase

Read More

Flex Your Vultr Muscles In Windows & Mobile Apps With This Super-Easy API

The great thing about Delphi is that it makes the tough jobs really easy. For instance, take the task of controlling cloud servers. By using RAD Studio Delphi’s cross-platform Firemonkey FMX framework you can actually EASILY write a small application which allow your users to control cloud-based virtual machines, cloud computer instances and even full-on “bare metal” cloud servers. What’s more; we’re going to do it in just FIFTEEN lines of code! There are almost no other programming languages around which offer this kind of power in so few lines of code. What is Vultr? Vultr is a commercial company offering a range of cloud-computing resources along the lines of Microsoft Azure, Amazon AWS and Digital Ocean. We wrote about Digital Ocean before when we accessed their API in the post: Easily Automate The DigitalOcean API From Windows And Mobile Just like DigitalOcean and many of the other cloud hosting companies, Vultr (https://www.vultr.com) also has a comprehensive collection of APIs to access from our applications. What are we going to use the Vultr API for? We’re going to produce some code which allows us to start, suspend/pause and end Vultr virtual instances. The basics of this technique can be used to control other vendor’s offerings too such a DigitalOcean Droplet because the access process to their APIs are very similar. How do I set up an  Application with Vultr’s API? Go to the main Vultr website and sign up for an appropriate account which meets your needs. There’s something for everyone there but even the most basic levels support the API. Sign in to Vultr Account here https://my.vultr.com Go to Account Menu and then the API tab – by default it is disabled, so you have to enable it. Just follow their instructions which are straight-forward. Vultr API is using Access Control layer to using our API Key, We have to set the IP subnet to access our API Key, or temporarily set “Allow” to all for development purposes. Now, create a new Multi Device Application in your RAD Studio Delphi IDE. In the previous DigitalOcean post we created a client API Rest connection to control the process of instance creation, deletion and to get all instances. For Vultr you can read the process in their documentation here, but of course you can check full source code here for how to code them. Since in this article we’re discussing how to Start, Stop or Halt the Vultr instance we have created the first thing we should do Start a Vultr instance. In the Vultr API documentation the examples says we can call their API as shown in the examples below: Start a Vultr instance curl “https://api.vultr.com/v2/instances/{instance-id}/start” -X POST -H “Authorization: Bearer ${VULTR_API_KEY}” curl “https://api.vultr.com/v2/instances/{instance-id}/start” –X POST –H “Authorization: Bearer ${VULTR_API_KEY}” Reboot a Vultr instance curl “https://api.vultr.com/v2/instances/{instance-id}/reboot” -X POST -H “Authorization: Bearer ${VULTR_API_KEY}” curl “https://api.vultr.com/v2/instances/{instance-id}/reboot”   –X POST   –H “Authorization: Bearer ${VULTR_API_KEY}” Reinstall a Vultr instance curl “https://api.vultr.com/v2/instances/{instance-id}/reinstall” -X POST -H “Authorization: Bearer ${VULTR_API_KEY}” -H “Content-Type: application/json” –data ‘{ “hostname” : “Example Instance” }’ curl “https://api.vultr.com/v2/instances/{instance-id}/reinstall”   –X POST   –H “Authorization: Bearer ${VULTR_API_KEY}”   –H “Content-Type: application/json”   —data ‘{     “hostname” : “Example Instance”   }’ Delphi Vultr API code example Based on those examples, we can create the Delphi code as follows like so: function InstanceCommand(AnInstanceID, ACommand: string; AData: TJSONObject = nil): boolean; var LRestClient: […]

Read More

Do All Your Windows Applications Look Like A Computer Virus?

OK, so you’ve written something brilliant, the Next Big Thing.  You’re taking the modern approach.  You’ve read up – or watched – our series on Fluent UI and maybe even applied a few visual things like neo skeuomorphism we learned about at the Desktop First conference.  Perhaps you’ve applied some VCL themes to your app and integrated the ability to detect Windows 10 dark mode / light mode in your Delphi application? Everything is going well… until the users try to use your applications. This is the message you get when you run a very popular open source project which has 100,000+ downloads. You start getting complaints from your users they can’t download your application.  Or, when they do finally manage to fight back against the modern web browser’s paranoia your app gets blocked by Windows 10 or, more mysteriously, simply disappears altogether into a blue cloud of corporate group policy genie smoke. You didn’t take the last step: signing your code to prove that your wonderfully-crafted application is from you, and only you, and has not been infected by a computer virus or cryptolocker trojan. In the recent security-themed TCoffeeAndCode we had intended to talk about code-signing but we kind of got distracted by the many other security things which cropped up.  To be fair, we did say it’s not scripted! What is code-signing? Code signing is a manual process which you can make happen just after or at the point of the final building of your application.  It adds a small resource to your exe containing a digital signature.  The signature identifies who, in theory at least, wrote the code and adds in information which takes a checksum of your application’s exe file.  This information – the code signature – when taken altogether means that any user running your applications can be sure that the exe file has not been modified since you created it on your computer or build server.  Any changes to the exe, for example, by a virus, will break the cryptographic checksum so users can tell something has gone wrong. A properly code-signed app (the image is old – the certificate would show a current expiry date) Delivering apps via a weblink pretty much demands code-signing Code signing doesn’t just help identify the original developer, it also plays a part when your programs are downloaded from a website or similar online delivery mechanism.  Most browsers (probably all) will warn you about downloading exes from a website, especially one which is not using HTTPS. Microsoft Edge and Windows combined goes a little further and will actively scream at you if the exe does not bear a digital signature (another way of saying it’s not code-signed). Unsigned apps look just like computer viruses If your users do finally manage to jump through all the various hoops and actually get the exe to download on your computer some of them may find that the downloaded file has magically disappeared.  This is because it’s fairly common for corporate networks to enforce a rule which says that users may only run certain trusted applications.  No code signature usually means your application is not trusted.  Some go even further, although this is less common and insist that all user applications must be 64bit, especially server-side applications and Windows services. Corporate […]

Read More

Developer Stories: Luis Hernandez Shares About His VisualNEO Web Software

Luis Hernandez has been developing on Delphi for two and a half years. He submitted a showcase entry (VisualNEO Web) for the Delphi 26th Showcase Challenge and we wanted to know about his process with developing the software. His works can be found over at VisualNEO Web. When did you start using RAD Studio Delphi and have long have you been using it? Two and a half years ago the opportunity arose to continue with the development of NeoSoft’s software products, because its main developer, David Riley, left the project. For that reason I had to start programming in Delphi in order to continue with the development of NeoAppBuilder, then a beta and now called VisualNEO Web. What was it like building software before you had RAD Studio Delphi? Although I consider myself mainly a web developer, my previous programming tool for Windows was NeoBook (now called VisualNEO Win). It is an extremely simple but very powerful tool, although not as much as Delphi of course. How did RAD Studio/Delphi help you create your showcase application? Delphi is a very powerful programming tool, which allows to make almost any software project a reality. Thanks to its easy-to-understand structure and syntax, it has allowed me to take on a complex project without being an expert. What made RAD Studio/Delphi stand out from other options? In my case, I had no choice. When I took over the VisualNEO Web project it was still a beta but in a very advanced state of development. I found it such an interesting opportunity that I decided to learn Delphi, which I am still doing today. If VisualNEO Web had been programmed in another programming language, it might not have been possible for me. What made you happiest about working with RAD Studio Delphi? What makes me happiest about working with Delphi is knowing that it is a platform where almost everything is possible.  It’s hardly possible to find something Delphi cannot do. What have you been able to achieve through using RAD Studio Delphi to create your showcase application? Thanks to this powerful tool, I have been able to push through a number of upgrades and new versions of VisualNEO Web. I keep alive a software that is indispensable in my work and that otherwise might have been abandoned. I have been able to grow an incredible community of users passionate about the VisualNEO project and meet people from all continents. I can say that my life has changed since I decided to learn Delphi to continue with the development of VisualNEO. What are some future plans for your showcase application? VisualNEO Web is based on web technologies and as such, has no limits. There are many fields yet to be explored and incorporated into NeoScript, VisualNEO’s simple programming language, to make web application programming easier and faster for everyone. I would also very much like to expand the compilation options to reach more platforms. Personally I would like to involve more programmers in its development since right now it is a personal project to which I cannot dedicate as much time as I would like. Thank you, Luis! Read about his showcase entry by clicking the link below. Showcase

Read More