C++ Builder

Learn A Quick Way To Connect To A MySQL Database With The Delphi FireDAC Access Sample App

Do you want your Delphi and C++Builder Applications to connect with MySQL Database ? How to start ? Don’t worry, FireDAC offers robust components to connect with MySQL Database. FireDAC.MySQL Sample app demonstrates how to use FireDAC to work with My SQL Database. You can find Delphi code samples in GitHub Repositories. Search by name into the samples repositories according to your RAD Studio version. Components used in the Sample App: TFDQuery : To execute SQL queries, browse the result sets, and edit the result set records. TFDPhysMySQLDriverLink: To link the MySQL driver to an application and set it up. In general, it is enough to only include the FireDAC.Phys.MySQL unit into your application uses clause. The TFDPhysMySQLDriverLink component can be used to specify: The VendorHome – the MySQL installation root folder. The VendorLib – the name and the optional path to the MySQL client library. TFDConnection : To establish a connection to a DBMS and to manage associated datasets. And some of the UI components, like TDBGrid,TDBComboBox, TFDGUIxWaitCursor1,TFDGUIxLoginDialog1,TFDGUIxErrorDialog1 Implementation Details: The simplest to configure connection to MS SQL database at run-time is to build a temporary connection definition: In the sample, the temporary definition is created when clicking the Connect button. Check to how to connect to MySQL Server. In the demo database, the Categories and Products tables have one-to-many relation by CategoryID field. Mention the query to the qryCategories.SQL property and qryProducts.SQL property. Finally, the qryProducts.MasterSource property is set to dsCategories, while the MasterFields property is set to CategoryID. This creates a master-details relationship between the datasets. Simple queries execution is demonstrated via ExecSQL method of TFDConnection. Check out the full article in the DocWiki about the FireDAC MySQL Sample. Check out the full source code for the FireDAC.MySQL projects for Delphi and C++Builder over on GitHub.

Read More

Learn Ultra-Fast Database App Development With Delphi LiveBindings Sample App

Connecting to database and data-aware controls was no more a time consuming task for Delphi/C++Builder developers. With Absolute no code you can just and drop components and bind visually to show case your valuable data to the user interface controls faster. BindGridLinkVCL Sample demonstrates the use of a TBindGridLink. 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 BindGridLinkVCL App: TStringGrid represents a grid control designed to simplify the handling of strings and associated objects. TBindGridLink: Used when binding controls to grids. TBindGridLink is built on the TCustomBindGridLink class TBindingsList: Built on the TCustomBindingsList component and publishes additional properties that can be accessed from within the Object Inspector. Add a new binding and select TBindGridLink under Quick Bindings.  TBindingSourceDB:  Nonvisual component that provides a way to make data contained by the specified data source available to all components that want to access it, using LiveBindings. Along with these TDBNavigator, TDataSource,TClientDataset and other UI components such as TLabel, TEdit ,TImage were used. Implementation Details : When you run the application, it shows a string grid with data rows from the connected database. DBNavigator is to navigate among the records in the StringGrid. When you select a record the corresponding fish category and image is populated. Create TBindGridLink Bindings to link the StringGrid Control and TBindSourceDB. Also other bind links such as label, image were made. Set the BindSourceDB’s Dataset with TClientDataset created. Activate the client dataset. Check out the full article in the DocWiki about the BindGridLinkVCL Sample. BindGridLinkVCL Sample App Check out the full source code for the BindGridLinkVCL projects for Delphi and C++Builder over on GitHub.

Read More

Start Building Apps for Single Board Computers With Delphi or C++ Builder Now!

In this webinar, you can learn about other possibilities of Delphi and C++ Builder on Raspberry Pi and SBC. What is SBC? It stands for Single Board Computer.  Overview of the webinar: SBC and use cases Exploring CPU Architectures Linux vs. Android vs. Windows  Examples, Demonstration, and Resources to follow SBC is usually a very small form factor and you get all the hardware on the board. Maybe you can extend with other tiny hardware like Wifi adapters. Raspberry Pi is one of the popular board computers that you can create your projects or make you a small server with that. Usually runs on Linux or Windows 10 IoT. And as I said before, it could be ideal for embedded systems or IoT projects. Use Cases: Electronic Kiosk Dedicated data collectors Automation control systems Point of Sales systems Hobby projects Home media centers Edgeware & EdgePoints Smart Beacons and e.t.c Moreover, you might find amazing other single board computers and lots of available options to develop projects with SBCs. Be sure to watch the whole session and share it!

Read More

Quickly And Easily Build A REST Based Notes App With RAD Server In Delphi And C++

EMS.NotesResource Sample is a server-client EMS demo. It requires InterBase to be installed on the machine or to connect to a remote server. Make sure that the server is running before you run the sample. InterBase is used to store the information with the server connections. Use the RAD Server Console to display the statistics. The first part consists of creating an EMS Package with a new ResourceName (Notes). Once you run the package, the resource is registered on the EMS server and can be accessed by a client application using REST. The client needs a TEMSProvider to connect to the EMS Server and to retrieve the JSON data. How to Use the Sample Run the EMS Package When you run the NotesResourcePackage project, the EMSDevServer starts automatically. If the configuration file is missing, a wizard launches. Navigate to the location given above and open: Delphi: NotesResourcePackage.dpk C++: NotesResourcePackageCpp.cbproj Press Shift+Ctrl+F9 or choose Run > Run Without Debugging. The EMS Development Server opens. If it is the first time you are using EMS on the machine, you need to run the configuration wizard in order to create the EMS server configuration file. When the Confirm dialog opens, click Yes. Leave all the parameters by default and go through the different windows by clicking Next. Click Finish to close the wizard. An Information window appears. Click OK. The server starts automatically. Minimize it. Run the Client Application The client expects the EMSDevServer to be running at localhost:8080. If you are running the server at a different address, modify the properties of the TEMSProvider component. The Delphi supported platforms for this sample are: 32-bit, 64-bit Windows, and iOS Simulator. To run the sample on iOS Simulator, change the URLHost property of the TEMSProvider component to the IP address from the machine you are launching the sample and running the server.Note: The TEMSProvider component is placed in the NotesClientModule unit. The C++ Supported platforms for this sample are: 32-bit and 64-bit. On the Project Manager, right-click on ProjectGroup1. Click Add Existing Project…. Navigate to: Delphi: Start | Programs | Embarcadero RAD Studio Sydney | SamplesObject PascalDataBaseEMSNotesResourceNotesClientProject.dproj. C++: Start | Programs | Embarcadero RAD Studio Sydney | SamplesCPPDatabaseEMSNotesResourceNotesClientProjectCpp.cbproj. Press F9 or choose Run > Run. Insert a User name and Password and click Signup, or Login if you previously created an account. Click Add to add a new note. Write the note and click Save. Implementation EMS Package The Resource Module has code to register a REST OverView API resource. The resource is called “Notes”. The resource defines a Get, GetItem, Post, PutItem, and DeleteItem method. Once you run the package and have the EMS server running, as a test, you can invoke the GET method by using the browser http://localhost:8080/Notes.Note: An error message appears informing that you need to be logged in to access this information. The NotesStorageU file defines the path of the notes.ini file where the created notes are saved. Client Application The client application has a TEMSProvider component. This component identifies the address of the RAD Server Engine (EMS Server) (http://localhost:8080). The client application also has a TBackendEndPoint for each method. This component identifies the name of a resource (Notes), the method used, and the ResourceSuffix. The information is managed with TJSONObject and TJSONArray. You can find attached a link below with the original post: http://docwiki.embarcadero.com/CodeExamples/Sydney/en/EMS.NotesResource_Sample

Read More

Quickly And Easily Add MAPI Support Using Winsoft’s MAPI for Delphi on Windows

Embarcadero Tech Partner WINSOFT provides an easy to use MAPI suite for Delphi. What makes MAPI hard? MAPI is hard. There is lack of clear and consistent coding, different answers provide different solutions, the solution is not in Delphi, there has to be various work-arounds, or the code-snipplet was built for very old non-Unicode version of Delphi. You eventually tear your hair out or get exasperated with partial or non-working solutions. C#, VB.NET users are left out in the cold: if you look around, using MAPI in C# is out of the question as you’ll get all kind of errors as, Extended MAPI is not supported for use with .NET MAPI is supported in native-languages, such as C++ Builder and Delphi. MAPI is an interface for, nearly all email clients on the Windows platform. TheBat – an independent email client, ThunderBird – the FireFox competitor to Outlook, HCL Lotus Notes (formerly IBM, formerly Lotus Notes) and Outlook. MAPI works in both 32-bit and 64-bits, and is installed on Windows 10 as 64-bit MAPI, with 32-bit MAPI compatible DLL. Installation Installation takes less than 1 minute Steps: Go to https://www.winsoft.sk/smapi.htm for the download link Download the trial version Unzip smapi.zip Simple MAPI Demonstration I will send an email with attachment. The code-behind the form, is less than 10 lines: begin with SMapiSendMail do begin SendTo := EditTo.Text; Cc := EditCc.Text; Subject := EditSubject.Text; Body.Assign(MemoBody.Lines); Send; end; ShowMessage(‘Message was sent’); end; begin   with SMapiSendMail do   begin     SendTo := EditTo.Text;     Cc := EditCc.Text;     Subject := EditSubject.Text;     Body.Assign(MemoBody.Lines);     Send;   end;     ShowMessage(‘Message was sent’); end; And successfully sends an email via Outlook: Email Sent The code attaches an email to be sent, with attachment. Outlook Draft Email Make Winsoft’s Simple MAPI Component Suite part of your Delphi arsenal.

Read More

Explore User-Friendly uniGUI Web Framework With Ultra-Modern Components For Delphi/C++Builder

Looking for a Web framework for your Delphi/C++ Builder Applications? How about having a framework which supports both server side and client side with minimal effort to build beautiful web applications ? UniGUI is a Full Stack focused Web Framework which give web development experience to a new dimension for Delphi/C++ builder users. Features : It allows developers to focus on Application business logic rather than working on web application details such as working directly with HTML, CSS, JavaScript, XML Templates and other web Technologies. It offers a separate set of visual controls for Desktop and Mobile applications. Mobile application controls are available in uniGUI Complete Pro Edition. It is based on Sencha Ext JS, one of the industry’s most advanced JavaScript Libraries(uniGUI includes OEM License for Sencha Ext JS). Complete IDE support for creating projects, designing forms, frames , handling data modules. Advanced support for client side Javascript event handlers It offers a Unified GUI which provides a similar user experience over various Hardware and Software platforms. Support all major deployment options( Windows Service and ISAPI Module) How to Create a UniGui Web Application in RAD Studio. File->New->Other->UniGUI for Delphi-> Application Wizard -> Select Project type options to start Standalone/Windows Service/ISAPI. For Mobile Application, File->New->Other->UniGUI for Delphi-> Mobile Application Wizard. Main form : Include uniGui UI components such as UniPopupMenu, UniPanel, UniSplitter,UniStatusBar according to your need. MainModule : Include database connections related components. You can use FireDAC Manager component. ServerModule : TUniServerModule is single class which helps to customize the behavior of your server such as port configuration, SessionTimeout, SSl, AjaxTimeout etc. Event handling can done in both Server side and Client side( Ext Js events) as well. Use mobile visual components for Mobile Applications. To access we need to hit the URL as localhost:8077/m in the browser. Check out the full demonstration in this below Video For Future Roadmap, Latest versions and pricing details check here.

Read More

Build High-Speed Direct Access Apps In Delphi And C++Builder To Most Modern Databases Using FireDAC

FireDAC is a unique set of Universal Data Access Components for developing multi-device database applications for Delphi and C++Builder. With its powerful common architecture, FireDAC enables native high-speed direct access from Delphi to InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, IBM DB2, SQL Anywhere, Access, Firebird, Informix and more. Large collection of advanced capabilities. Key things to know about FireDAC listed in this post. Configuration Options: Highly configurable, using this you can fine tune your data access and it is important how your Software access with databases. FireDAC provides a wide range of options organized into a hierarchical options system. Most of the options may be left with their default values.The FireDAC options are organized into five groups: FetchOptions – Fetch options that control how the components and Phys layer commands fetch data from a DBMS. For example, it is possible to fetch all records at once or fetch records on demand. FormatOptions – Format options that control how the DBMS data types are mapped to the FireDAC data types and backward. For example, a programmer may set up a mapping for Oracle NUMBER (38) onto dtBCD or onto dtInt64. For more details, read Data Type Mapping. UpdateOptions – Update options that control how FireDAC posts updates to DBMS. For example, during an update, FireDAC can update all fields in a table or only the changed ones. ResourceOptions – Resource options that control how system resources are used, dataset persistence and other. For example, a FireDAC Phys layer command can be performed asynchronously or blocked. TxOptions – Transaction options that control how transactions are performed. For example, perform them in a ReadCommitted isolation mode. Note that TxOptions does not use option value inheritance. SQL Command Preprocessor: The SQL command preprocessor can alter your SQL before sending it to the server When ResourceOptions.EscapeExpand and ResourceOptions.MacroExpand are true. It supports macros substitution and escape sequences.FireDAC supports three types of macro instructions: Substitution variables. A substitution variable starts with the ‘!’ or ‘&’ symbol and is followed by the macro variable name.They allow placing substitution parameters in a command text in order to extend the use of parameters. For example, to parameterize a table name in the FROM clause or the column names in the SELECT clause, you can use substitution variables but not parameters. Escape sequences. They allow writing DBMS-independent SQL commands. Conditional substitutions. They allow expanding the SQL command conditionally, depending on application-defined attributes or on the currently attached DBMS. FireDAC has 4 types of escape sequences: It is enclosed in curly braces ({}). Allowing constant substitution: Allow writing constants in command text, independent of the DBMS syntax and regional settings. Allowing identifier substitution. Alows abstracting from DBMS-specific identifier quoting rules.  Conditional substitution: Allow to substitute text into command, depending on either a DBMS the application is connected to, or on a macro variable value. Beside different syntaxes, these constructions handle parameters and macros in different ways. Scalar functions.Allows abstracting from a DBMS-specific set of a built-in functions and their syntax.  For examples check here Array DML : The Array DML execution technique submits a single DBMS command with an array of parameters. Each command parameter has an array of values, and all parameters have arrays of the same length. Then FireDAC requests the DBMS to execute a command once for each row in arrays. This technique reduces the amount of communication between DBMS […]

Read More

Quick Way To Bind Your Database To UI Components With BindLinkVCL Delphi Sample App

The BindLinkVCL Sample demonstrates the use of a TBindLink. In general, it is used for linking operations, for example, linking dataset fields to various lists. 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 BindLinkVCL App: TBindingsList: Built on the TCustomBindingsList component and publishes additional properties that can be accessed from within the Object Inspector. Add a new binding and select TBindLink under Quick Bindings.  TBindLink : Built on the TCustomBindLink class and publishes a set of additional properties that can be accessed from within the Object Inspector. TBindingSourceDB:  Nonvisual component that provides a way to make data contained by the specified data source available to all components that want to access it, using LiveBindings. Along with these TDBNavigator, TDataSource,TClientDataset and other UI components such as TLabel, TEdit ,TImage were used. Implementation Details : Use the DBNavigator1 TDBNavigator to navigate through the dataset. TBindingsList is used to create managed binding among the different components. TBindLink is used to create bindings to the columns of the dataset. The ImageWithHander TImage displays the Graphic Field of the selected fish within the dataset. The EditWithHandler TEdit displays the Category Field of the selected fish within the dataset. The MaskEditWithHandler TMaskEdit displays the Category Field of the selected fish within the dataset. The ListBoxWithHandler TListBox displays the different Categories of the dataset. The MemoWithHandler TMemo displays the Notes Field of the selected fish. The LabelBind TLabel displays the Category, and Species Name of the selected fish. The LabelPosition TLabel displays the position of the selected fish within the dataset. The information these two TLabels display is defined in the Binding Expression Editor. The CheckBoxDatasetActive TCheckBox enables or disables the TDataSource.  Check out the full article in the DocWiki about the BindLinkVCL Sample. BindLinkVCL Sample App Check out the full source code for the BindLinkVCL projects for Delphi and C++Builder over on GitHub.

Read More

Quickly Build A Web Front End Using Delphi/C++ Builder With No Front End Web Technologies Knowledge

Surprised with the Title? Yes without knowledge of HTML, CSS, JavaScriptyou can build from Delphi/C++Builder your Web Front end using some of the Client/Server(FullStack) or Client-Focused third party web frameworks. Curious to know how these frameworks do this? This post will help you to understand. What does a web front end framework does exactly: Visual Layout Designed in IDE to render in the browser with HTML, JavaScript & CSS. Using Delphi or other visual designers to create a visual layout. No need to know HTML, CSS, or javascript, may allow customization through HTML, CSS, and JavaScript. No special client plugins required. Some create both server and client-side functionality. Some use pascal to Javascript Transpilers. Transpilers : Transcompiler(translating compiler) or source to source compiler Converts or Translates one programming language to another one. Usually, only a sunset or special dialect of the source language is supported. Platform-specific libraries not supported. Frequently used to convert high level, type-safe, languages into javascript. Examples: Typescript or CoffeeScript transpilers. Some of the Pascal to JavaScript Compilers listed Below : Commercial: OpenSource: C++ to Javascript ; Based on LLVM , Open Source, Compiles C++ to JavaScript. Visual Design Front End Frameworks : AtoZed Software’s IntraWeb: Runs into IDE creating both front end and backed end, Modeled on VCL, Visual Client Designer. The client built from the JS and HTML library. Delphi UI event handlers run on servers, extensible via typescript. Supported by Third Party like TMS Software. Thinfinity Virtual UI By CybeleSoft: Transforms you desktop application into a web application. Includes Javascript Remote Object (jsRO) framework. Full HTML 5 cross-browser client. Server redirects GDI/GDI+ calls to Javascript client. FMSoft UniGui: Installs into Delphi IDE, VCL like design and use. Provides data-aware controls, supports desktop and mobile. Allows optional javascript for client-side events and VCL like server event handlers. SMS (Emphasis on Node.js and cloud-based development) and Elevate Web Builder ( Emphasis on data-driven development) uses Delphi like IDE to design the UI and an Object Pascal to JavaScript transpiler to Create HTML, CSS, Javascript. Watch the video for Overview of web frameworks and some of the front end framework Demonstration. To know more about the list of available frameworks for Delphi have a look on this post.

Read More

High-Performance Remote Cloud Logger For Cross-Platform Delphi/C++Builder Application

Developing Cross-Platform Multi-device Application is made easy with Delphi/C++ Builder. It’s a challenging task to diagnose run-time issues with our application running on various platforms. That too to examine the run time state of our application running on iOS and Android devices are very difficult using the debugger or mobile platform-specific logging. Not to worry. GrijjyCloudLogger solves these challenges and provides remote logging features for Windows, iOS,macOS, Android. GrijjyCloudLogger – Allows you to send log messages over the Intranet or Internet from Windows, Linux, iOS, Android, and macOS devices to a viewer running on Windows. Provides a unified, run-time debug related capabilities like memory and object tracking from these respective platforms. Features: Custom live watches, remote live views of objects, tracking live memory usage, object allocations, growth leaks, and more. Built upon our ZeroMQ Majordomo implementation that allows you to create powerful, lightweight, distributed applications that can route messages over any network, including the Internet.It is extremely fast over the network and can handle numerous connected developers simultaneously. It also uses our Google Protocol Buffers implementation that allows us to encapsulate extensible and arbitrary data and transport the data using efficient payloads. How to use GrijjyCloudLogger : Go to Tools menu in Your IDE-> Getit Package Manager and Type Grijjy and install, it will install all Modules and samples. After installation, Two Icons in Desktop, GrijjyLogBroker, GrijjyLogViewer – includes examples for the console, fire monkey. GrijjyLogBroker: Routes log messages between senders and viewers. By default, the Broker is configured to listen on tcp://localhost:7337. When you use Grijjy.CloudLogging it in your project you need to call the GrijjyLog.Connect() method and provide the address of the Broker. GrijjyLogViewer: The GrijjyLogViewer displays messages that are sent from your app. The Service name in the Connection Settings of the GrijjyLogViewer should match the same Service name you provided to the Grijjy.CloudLogger when calling the Connect() method. Using this technique, all developers in your organization can share the same GrijjyLogBroker. 3. Navigate to the ExampleLogClient.FMX under GrijjyLogViewer samples folder and run the application. Mention the Broker URL and Service Name and send different data that can be viewed in your GrijjyLogViewer. Check the video for GrijjyCloudLogger demonstration here.

Read More