Delphi

Developer Stories: Oripov Murod Converses Regarding His DovtaLab2020 Application

Oripov Murod has been programming with Delphi since 2006. His application (DovtaLab2020) was submitted as an entry for the Delphi 26th Showcase Challenge and we interviewed him to know more about his application and experiences with Delphi. You can download his application over at DovtaLab2020. When did you start using RAD Studio/Delphi and have long have you been using it? I started studying from 2003 (Delphi6)  as beginner. I use Delphi seriosly from 2012 (Delphi2010). What was it like building software before you had RAD Studio/Delphi? I used FoxPro, Basic,C, Access. How did RAD Studio/Delphi help you create your showcase application? Delphi is more simple and Delphi has a lot of tools for creating any application. What made RAD Studio/Delphi stand out from other options? It seems to me that I understand delphi better than others. What made you happiest about working with RAD Studio/Delphi? I love delphi very much What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? I liked this system and now i have more abilities to create a lot of apps in future. What are some future plans for your showcase application? I want to teach children to delphi to learn more myself.   Thank you, Oripov! You can find the link of his showcase entry below. Showcase

Read More

Websockets Harness Real-Time Power In Your Delphi Apps

Are you using websockets in your applications yet? Do you need to know what websockets can do for your apps? Read on to get up to speed on everything you need to know about using websockets with Delphi along with a run-down on some of the available component sets which take all the hard work out of making the magic happen. What are websockets? There are two sides to a websocket implementation – the client side and the server side. At the most basic level a websocket server is an application which listens for TCP traffic. The websockets clients are one or more applications or even web pages which connect to the websocket server via a “handshake” request and, if successful, a continuous connection is established between the server and the client. Are websockets just a special type of HTML? The short answer to that question is no, websockets use the TCP communication protocol – not the much more heavyweight HTTP. The websockets server is not a web server, although it can be implemented on one. The websockets TCP traffic, the data sent back and forth between the client and server, is not the familiar “200 OK” and “HTTP/2.0 a bunch of HTML” type text data. The websockets protocol is very lightweight and as a result, very fast. Websockets are also designed to be used in situations where there are prolonged and ‘constantly-on’ connections to the server by multiple clients. Compare that to HTML where the interaction is typically client makes a page request, the web server sends back its response and that’s end of interaction until the next web resource request. Websockets are more like a ‘push’ technology where the server can send updates without being asked. This push ability is more similar to the notifications on your mobile phone. Are websockets secure? The websocket protocol provides for both non-secure and secure connections. The secure protocol uses TLS/SSL. Why would I want to use websockets in my app? Websockets are really useful for applications which need to update small amounts of data frequently and on a schedule which is not predictable. You can use websockets to provide a highly efficient way of communicating that data without the overhead of things like REST which relies on HTML and therefore has all the added baggage of HTML request/response codes, headers and MIME types. Your applications cut out all that extra noise using websockets while providing a near real-time response without needing to implement things like the server or client polling for any requests or updates. This makes your app super-responsive and lightweight. What sort of applications can I write? The most common example you see given for websockets is in real-time “chat” programs which emulate popular apps like Slack, Discourse and Messenger. There are a whole host of other uses too: “Feed” type usage – like a Twitter tweet feed or an “as it happens” time and status update print-out from something like a temperature monitoring hardware control. Two-way updates between two client applications. For example, two users are both updating a shared resource like a set of notes or different parts of a patient record. Using websockets you could implement an update mechanism where both users could see the other’s changes in near-real time rather than having to hit a […]

Read More

Plunge Into A Museum Adventure With This Delphi Integration

This really wonderful Delphi app makes truly creative use of the integration of museum visitors with exhibits. Written by Oz Software of Spain, vCoolture makes a trip to the museum into an adventure where visitors using the app not only hear the descriptions offered by traditional audio guides but a plethora of additional information such as a biography of the painter or sculptor of an art exhibit, links to relevant web pages such as a contemporary artist’s own website or other publicly available information like a Wikipedia article. How does vCoolture achieve this integration magic? Oz Software makes use of Delphi’s ability to integrate with iBeacons – discrete little Bluetooth Low Energy devices – which are carefully placed at strategic points around the museum or art exhibition. When a visitor using the mobile device app comes within range of an iBeacon the app looks up the iBeacon’s hardware ID and retrieves the facts, photos and links associated with it. As well as visual information at the same time the device begins playing any audio linked to the exhibit’s iBeacon. To the visitor it all seems to work by some kind of invisible magic, but that magic is pretty easy to achieve with RAD Studio Delphi and a little imagination. What other types of integration does the app enable? Along with the images and audio the app also provides a map of each room as the user enters it. This map/iBeacon integration means the user not only sees a smaller, more concise map but can have relevant exhibits highlighted on the map in greater detail than could be done on a simple full-build floor plan. vCoolture is an example of software for mobile devices that substantially improves the user experience in visiting museums or any kind of exposition, offering many more services than those offered by traditional audio guides. vCoolture also uses the ready-to-go components in Delphi to provide in-app billing using Google Ad integration as well as the ability for the museums to display virtual reality ‘billboard’ advertising which seem to be projected on the floor of the halls or even the exhibits themselves! Gift merchandising information can also be integrated into the information associated with the iBeacons so things like relevant books, mementoes and T-shirts sold in the museum gift store can be displayed next to an exhibit. But there’s more than just hardware integration! As if all of this wasn’t enough, vCoolture has one more trick: to make a great visit even more interesting, vCoolture includes a ‘Enigma’ game built in. Visitors have to find the answers to questions posed by the app which allows them to ‘find’ 10 objects hidden ‘behind’ of some works of art. There is an interactive or group play element to because the game allows you to compete with friends or colleagues. What does the Oz Software say about vCoolture? “The vast majority of applications using iBeacons are specific to a particular museum and only serve for that particular use, so often the visitor is very reluctant to install a heavy application for a single use. vCoolture is a single App for any museum or exposition, there is no limitation, since all the information is loaded on demand from a local or remote web service. But also, every museum/exposition can personalize vCoolture for […]

Read More

Automate Access To Current And Historical Currency Exchange Rates Via API

{     “success”: true,     “timestamp”: 1618443847,     “base”: “EUR”,     “date”: “2021-04-14”,     “rates”: {         “AED”: 4.401602,         “AFN”: 92.987438,         “ALL”: 123.189782,         “AMD”: 622.325441,         “ANG”: 2.150997,         “AOA”: 771.454377,         “ARS”: 111.049893,         “AUD”: 1.550998,         “AWG”: 2.156941,         “AZN”: 2.046165,         “BAM”: 1.960773,         “BBD”: 2.419639,         “BDT”: 101.557685,         “BGN”: 1.956108,         “BHD”: 0.4518,         “BIF”: 2355.859391,         “BMD”: 1.198301,         “BND”: 1.602747,         “BOB”: 8.262446,         “BRL”: 6.775187,         “BSD”: 1.198391,         “BTC”: 1.9067596e–5,         “BTN”: 90.06308,         “BWP”: 13.096988,         “BYN”: 3.135003,         “BYR”: 23486.695865,         “BZD”: 2.415529,         “CAD”: 1.499979,         “CDF”: 2391.808752,         “CHF”: 1.105916,         “CLF”: 0.030816,         “CLP”: 850.318038,         “CNY”: 7.824422,         “COP”: 4381.9464,         “CRC”: 734.603479,         “CUC”: 1.198301,         “CUP”: 31.754971,         “CVE”: 110.932648,         “CZK”: 25.94405,         “DJF”: 212.962255,         “DKK”: 7.437344,         “DOP”: 68.255016,         “DZD”: 158.571629,         “EGP”: 18.777483,         “ERN”: 17.976802,         “ETB”: 49.55004,         “EUR”: 1,         “FJD”: 2.452563,         “FKP”: 0.870416,         “GBP”: 0.869667,         “GEL”: 4.140164,         “GGP”: 0.870416,         “GHS”: 6.926206,         “GIP”: 0.870416,         “GMD”: 61.113259,         “GNF”: 11983.008607,         “GTQ”: 9.248383,         “GYD”: 250.707366,         “HKD”: 9.305333,         “HNL”: 28.903569,         “HRK”: 7.57158,         “HTG”: 97.906362,         “HUF”: 358.507893,         “IDR”: 17515.083611,         “ILS”: 3.931206,         “IMP”: 0.870416,         “INR”: 89.904135,         “IQD”: 1751.316633,         “IRR”: 50454.456016,         “ISK”: 151.714206,         “JEP”: 0.870416,         “JMD”: 179.460912,         “JOD”: 0.849552,         “JPY”: 130.510579,         “KES”: 127.98481,         “KGS”: 101.611855,         “KHR”: 4847.126741,         “KMF”: 492.801162,         “KPW”: 1078.470959,         “KRW”: 1338.046775,         “KWD”: 0.361276,         “KYD”: 0.998693,         “KZT”: 516.331626,         “LAK”: 11287.993862,         “LBP”: 1825.846885,         “LKR”: 241.461698,         “LRD”: 206.832071,         “LSL”: 17.555151,         “LTL”: 3.538271,         “LVL”: 0.72484,         “LYD”: 5.410369,         “MAD”: 10.702619,         “MDL”: 21.535088,         “MGA”: 4535.568261,         “MKD”: 61.636388,         “MMK”: 1689.632611,         “MNT”: 3415.939059,         “MOP”: 9.586206,         “MRO”: 427.793183,         “MUR”: 49.357594,         “MVR”: 18.514034,         “MWK”: 943.661381,         “MXN”: 24.066602,         “MYR”: 4.947184,         “MZN”: 73.899259,         “NAD”: 17.5549,         “NGN”: 455.949342,         “NIO”: 42.036495,         “NOK”: 10.054341,         “NPR”: 144.100848,         “NZD”: 1.677843,         “OMR”: 0.461273,         “PAB”: 1.198391,         “PEN”: 4.348335,         “PGK”: 4.229665,         “PHP”: 58.092767,         “PKR”: 183.160095,         “PLN”: 4.554208,         “PYG”: 7547.686137,         “QAR”: 4.363013,         “RON”: 4.926575,         “RSD”: 117.877158,         “RUB”: 91.127306,         “RWF”: 1171.339041,         “SAR”: 4.494591,         “SBD”: 9.559982,         “SCR”: 18.14974,         “SDG”: 455.955933,         “SEK”: 10.143077,         “SGD”: 1.600804,         “SHP”: 0.870416,         “SLL”: 12252.625895,         “SOS”: 699.807988,         “SRD”: 16.960723,         “STD”: 24839.742882,         “SVC”: 10.486172,         “SYP”: 1506.944044,         “SZL”: 17.554312,         “THB”: 37.538567,         “TJS”: 13.664046,         “TMT”: 4.206036,         “TND”: 3.287535,         “TOP”: 2.735603,         “TRY”: 9.677839,         “TTD”: 8.146733,         “TWD”: 33.952055,         “TZS”: 2778.859514,         “UAH”: 33.497945,         “UGX”: 4315.378685,         “USD”: 1.198301,         “UYU”: 52.971442,         “UZS”: 12589.347994,         “VEF”: 256232928513.0559,         “VND”: 27655.584381,         “VUV”: 131.260508,         “WST”: 3.033771,         “XAF”: 657.576278,         “XAG”: 0.047174,         “XAU”: 0.00069,         “XCD”: 3.238468,         “XDR”: 0.841171,         “XOF”: 660.854586,         “XPF”: 120.009287,         “YER”: 299.994695,         “ZAR”: 17.244269,         “ZMK”: 10786.147736,         “ZMW”: 26.585877,         “ZWL”: 385.853094     } }

Read More

Creating custom File Dialogs: ShellBrowser Delphi Components

No doubt, the VCL FileDialogs offer a multitude of configuration options that cover most standard use cases. But sometimes this might not be enough and you want to create a specialized custom dialog with a different layout, additional controls (e.g. for import/export dialogs) or different looks. Rebuilding the dialog from scratch, including all the file system related components, will however in most cases not be a feasible alternative. At this point, the ShellBrowser Components can fill the gap quite comfortably: All the Win32 shell related functionality is wrapped into easy-to-use components so you can concentrate on your special use case. You can obtain a trial version of the ShellBrowser Components via Embarcadero’s GetIt Package Manager or using the link at the end of this article. After installation, you will find the ShellBrowser components in the “JAM Software” section of the component palette. The Windows Explorer style The quickest way is using a “TJamExplorerBrowser” component as the main building block of the dialog. Similar to the FileDialog components of VCL, ExplorerBrowser is built around a Windows COM object, representing a configurable file system browser which shares most parts with the Windows File Explorer. Using the “VisiblePanes” property, you can configure what parts of the control you want to show (the folder view on the right side cannot be hidden). Other design time options for the control include setting the path or “Special Folder” – a collection of named locations, including file system folders (e.g. SF_DOWNLOADS) and virtual folders (SF_DRIVES), as well as different filtering and view settings. To make the dialog complete, we’ll add two more typical file dialog components, the “TJamOpenSaveComboBox” for the file name to be opened or saved, and the “TJamFilterCombo” for specifying file extension filters which can be applied. Keeping controls in sync There is no need to write code to synchronize the components! This can be done using a “TJamShellLink”. You can simply drop an instance from the component palette and assign it as the “ShellLink” property of the ShellBrowser controls that should be synchronized. Let me show you in this small example: All ShellBrowser controls on the form use the same ShellLink. TJamShellLink synchronizes selected paths, files and filters among attached controls. The ShellLink can be used to restrict navigational access to an allowed range of folders, too. In the example below, it will apply the filter that is set in the TJamFilterCombo to ExplorerBrowser, set the text of the “TJamOpenSaveComboBox” to the file name that is selected in ExplorerBrowser and navigate to the path that the user types in the TJamOpenSaveComboBox in ExplorerBrowser. Using the ExplorerBrowser as the main file system component in this example has the benefit that – being a Windows control – it looks and behaves exactly like Windows Explorer. The drawback is that not all details of appearance or behavior can be accessed or modified. E.g. there is no way to filter the visible root nodes of the navigation tree; ExplorerBrowser also does not support VCL Styles or any other form of dark theme. Even more control: TJamShellTree and TJamShellList As an alternative approach, the ExplorerBrowser component can be replaced by various other ShellBrowser controls, such as the TJamShellList, TJamShellTree and TJamShellBreadCrumbBar. These are not based on a Windows COM object, but replicate its look and behavior as closely as […]

Read More

Incredible Real-Time Mobile App Is Built With Delphi

The OCEASet™ real-time mobile application is the companion tool for configuring the OCEABridge™ Bluetooth®/Cloud gateway. OCEABridge™ is a gateway device that provides a transparent link between customer’s local Emerald™ or Atlas™ dataloggers and the OCEASOFT Cloud service via the Internet. Readings are taken in real-time by dataloggers and are captured wirelessly and automatically by OCEABridge™.  The readings are forwarded to the Cloud for monitoring and reporting. What kind of real-time data can be captured? According to OCEASoft’s website the apps provide: Wireless data logger communication with Bluetooth Configurable data logging start time Definable high and low limits, with delays Fast access to readings, events, and alarms Automatic data transfer to OCEASOFT’s secure OCEACloud platform Values displayed in °C or °F, in GMT or local time Generates e-mail with mission report and attached CSV file with all information Download complete reports in PDF, XLS, and CSV format The apps are written using RAD Studio’s Delphi with the Firemonkey cross-platform capabilities and this means they’re available on both iOS and Android. Website OCEASet iOS App Store ‎OCEASet on the App Store (apple.com) Google Play OCEASet 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

Developer Stories: Themba Sivate Talks About The ST Auto Player Lite Software

Themba Sivate has been a Delphi programmer since 2012. He introduced his application (ST Audio Player Lite) at the Delphi 26th Showcase Challenge and we got to converse with him to have an insight on his Delphi expertise. Find out more about his software at ST Software When did you start using RAD Studio/Delphi and have long have you been using it? I started using RAD Studio on 2012 at University. A year later, I started to learning building applications from scratch using C++ builder installed on institution’s machines, until today. What was it like building software before you had RAD Studio/Delphi? I tried both QT Creator and visual studio before, and it was a pain and limitations too. Rad Studio will let you call Delphi code within C++. Meaning you can reuse Delphi libraries on c++, How did RAD Studio/Delphi help you create your showcase application? RAD Studio is easy to use, simplified drag and drop, simplified packaging. It help me to complete my audio player in less time. What made RAD Studio/Delphi stand out from other options? Easy to use, backwards compatibility, tons of libraries/components, simplified drag and drop, cross-platform outputs. What made you happiest about working with RAD Studio/Delphi? Less development time. Good database handling and development. Its sad that the I cant afford the license at this stage, but I’d be happy to build the list of applications I had on my mind which requires a paid version of RAD Studio. What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? Debugging was pretty easy and straight forward. Most can be achieved by modifying values of the properties, without writing a line code. What are some future plans for your showcase application? I’m planning to upload it on windows store. Future releases are planned and bug fixes. Also planned to support multiple languages. Thank you, Themba! You can check out his software’s showcase entry below. Showcase

Read More

How To Make An Epic Dashboard Visualization For Windows, Mobile And The Web The Easy Way

Dashboards, a graphical visualization of data, seem to be everywhere, especially in these pandemic times where daily and weekly trends take on a very personal significance. In this article we are going to look at a beautiful dashboard which you can very easily customize to suit your own needs. Visualization is the art of making the useful, beautiful. There is only so far you can get with tables of facts and figures. Sooner or later there comes a time when you will need to create a graphical visualization of your data. Pictures really do save a thousand words, but they also help your users get a grasp of the information in a more easily consumed way. Most Delphi programmers are probably familiar with the basic TChart component which has been bundled with nearly every version of Delphi. For more recent versions of RAD Studio such as Sidney, you had to tick an optional checkbox to get the TChart component to appear on your component palette. That bundled version of the TChart component is provided by Steema Software based in Spain. The dashboard we are writing about here is also produced by Steema to demonstrate the power of their Pro versions of TeeChart as well as their TeeGrid. More on that in a moment. What does the dashboard visualization look like? It’s beautiful! Where can you get the dashboard visualization? The great news is the Steema dashboard example is freely available for download from GitHub here: https://github.com/Steema/TeeChart-FireMonkey-samples/tree/master/Dashboard I used the cross-platform GitHub desktop project to download the sample directly from the repository. What components do you need? To work with Steema’s dashboard visualization example you’re going to need a copy of their Pro TeeChart component. This is NOT the same as the bundled version. In fact, if you have the bundled version installed you will need to completely uninstall it first because it will clash with the Pro version. You will also need to install Steema’s TeeGrid component too. What if I don’t have the TeeChart Pro or TeeGrid component packs? Not a problem – Steema’s website has a download for a fully functional 30-day trial of both component libraries. I used the trial versions to write this article and they worked without any problems. Go to this link to download them: https://www.steema.com/product/vcl Just make sure you uninstall the bundled version of TeeChart that came with RAD Studio FIRST because I didn’t remember and got myself into a bit of tangle. If that happens to you, uninstall both the new component packs using their uninstaller. Then go into the IDE, select “component” from the menu, then “install packages”. Now scroll down and make sure all references to the TeeChart and TeeGrid components are gone. Click on any that are there, and then “remove”. Now close the IDE and install the TeeChart Pro and TeeGrid components using their installers, and all will be well. I make these mistakes, so you don’t have to! What does the dashboard visualization do? Well, the source code reads from an included SQLite database. Almost all the data retrieval is done using LiveBindings. All the data access components use the FireDAC query components. There are a few areas in the program where the data is read and manipulated in code but overall, it’s nearly all the LiveBindings […]

Read More

Powerful Real-Time Retail Dashboard App is Powered by Delphi

RunIt Pulse mobile app provides owners and managers of retail chains with a real-time “on-the-go” dashboard and it’s made possible by the perfect partnership of Delphi coupled with developer skill.  This powerful and featured-packed app allows them to view critical, real-time metrics about their stores.  Written by Run It Systems based in New York, the app is available on just about any kind of hardware users might need including Windows, maxOS, iOS and Android. Also, Run It targets a number of different types of hardware too not only desktops and laptops but also tablets and mobile phones.  In fact, wherever Run It’s users are or whatever they are doing they can have a retail dashboard at their fingertips updated in real-time. RunIt Systems Website What sort of real-time data can RunIt Pulse display? RunIt Systems tell us the real-time RunIt Pulse allows the user to view: The latest sales statistics, broken down by store Number of receipts, voids etc. Top selling items, including on-hand and on-order Sales results by employee Sales trending graphs Google Play RunIt Pulse Apple App Store ‎RunIt Pulse on the App Store 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

Developer Stories: Jarrod Davis Speaks Of His GameVision Toolkit Application

Jarrod Davis has been using Delphi ever since Turbo Pascal 3.03. He registered his application (GameVision Toolkit) to the Delphi 26th Showcase Challenge and asked for his thoughts on using Delphi. More information of his application is on GameVision. When did you start using RAD Studio/Delphi and have long have you been using it? I have use every version starting with Turbo Pascal 3.03 back in the day through to the most recent version of Delphi What was it like building software before you had RAD Studio/Delphi? I’ve always used Object Pascal/Delphi, but in those times when I had to use a different development tool for whatever reason, I was never nearly as productive as I am using Delphi. How did RAD Studio/Delphi help you create your showcase application? I was able to take advantage of my knowledge using Delphi, source code, utilities and libraries I have accumulated over the years. What made RAD Studio/Delphi stand out from other options? Object Pascal is just a nice and expressive language for me and the Delphi IDE has all the features for rapid application development What made you happiest about working with RAD Studio/Delphi? Ease of use, rapid application development. Everything “just works.” What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? Take my version 1.x and add all the features I had been planning in a impressively short period of time. What are some future plans for your showcase application? Continue to improve and add features. Thank you, Jarrod! The showcase entry for his software can be found below. Showcase

Read More