Noutați

Introducing FNC Grid Excel Bridge components

In the last weeks, we’ve been working on a component to allow you to import and export FNC Grids to the xlsx file format. We’ve also used the opportunity to rename the existing “Grid Filters” and “FMX Grid Filters” to “VCL Grid Excel Bridge” and “FNC Grid Excel Bridge” because the word “Filter” has a different meaning in a grid. We hope the new “Bridge” naming proves less ambiguous. Same as the “Filters” before, the new Bridge components are free, but they require to have both TMS FNC UI Pack and TMS FlexCel licenses. You can get the components here: And the documentation is available here: So what is the state now if you want to export or import a grid to/from Excel?  We have the following choices: (VCL Only) You can use StringGrid.SaveToXLS and StringGrid.LoadFromXLS. Those methods will use OLE Automation under the hood, and so they require that Excel is installed in the machine. Because they need Excel, they can only work on Windows. You can use TAdvGridExcelIO (VCL), TTMSFMXGridExcelIO (FMX) and TTMSFNCGridExcelIO (FNC). Those components use an older trimmed-down FlexCel 3 to do their job. Because they use FlexCel 3, which predates the XLSX file format, they can only work with XLS files, not XLSX. You can use the “TMS Grid Excel Bridge” components. Those components use an existing  FlexCel 7 to do the work, and so they can export to xls and xlsx, but also HTML and PDF.  Because they require a FlexCel license, they can access the full FlexCel behind it, to do extra customization. Just as an an example: You could add conditional formats to the generated files, as shown in the example here: https://doc.tmssoftware.com/grid-excel-bridge/fnc/guides/user-guide.html#customizing-the-export. Note: FNCGrid already supports exporting to PDF and HTML natively, you don’t need the bridge components for that. But if you are customizing the xlsx output, you might want to have a PDF or HTML exported with those customizations, and that’s where the Bridge’s exporting to HTML and PDF can be useful. Up to now, the “Bridges” had support for VCL Grids and FMX Grids. With the release of FNC Bridge, we are extending the first-class Excel exporting and importing to FNC. Note that in FNC, we only support VCL and FMX at the moment (all platforms). We can’t support Lazarus or WebCore because FlexCel doesn’t support them yet. So to finish this small post, I’d like to show how it works. We’ll try adding export support for the FNC Grid in the “ClientDataset” demo. This is the grid: We dropped a TTMSFNCGridExcelExportComponent, and wrote the code: TMSFNCGridExcelExport1.Export(‘r:test.xlsx’); And we got this result: The checkboxes work in Excel, they are not images. But they will be exported as images to HTML and PDF. Next, we tried with HTML: TMSFNCGridExcelExport1.ExportHtml(‘r:test.html’, THtmlExportMode.SingleSheet); And we got: Finally we went for the PDF export. We could also have tried the one-liner, but in this case it would end up with 2 pages. The grid is too wide and the right part of it goes to the second page. But here is where the power of having full access to the FlexCel engine can help. We could export this file to xlsx, then set the print options in the xlsx file to fit to one page, and only then export to PDF: var xls := TXlsFile.Create(1, […]

Read More

New Delphi productivity developer tool from new TMS FNC partner

It is with great pleasure that we announce today there is not only a new partner in our TMS FNC Partner program but also a new innovative productivity developer tool for Delphi developers to manage better the workflow with testers & end-users for VCL and FMX applications. New TMS FNC Partner We are glad to welcome Neil Laskowski from SwiftExpat in the TMS FNC Partner program. The TMS FNC Partner program is all about supporting Delphi developers offering valuable tools built upon our FNC framework. If you also develop tools or components based on the FNC framework, have a look at the our FNC Partner program! New productivity developer tool Runtime Toolkit from SwiftExpat helps developers to gather information & feedback from testers and end-users in a structured way and get and apply this feedback to the applications. When running the application, the users can enable a runtime inspector and modify any components property on forms and immediately see the effect of the update visually on the form. At the same time, the details of the update are stored in a file together with a form screenshot before and after the update and this can be sent back to the developer(s). As such, this is an ideal tool to let users send back corrections for possible language related issues, UI colors and UI control layout issues. And this is for Delphi developers building VCL applications as well as FMX applications. A closer look at the capabilities of Runtime Toolkit This is a comprehensive overview of the features of Runtime Toolkit: Inspect Feature-rich components are hard to get right (have you ever missed a setting?) RunTime ToolKit gives you access to component properties to diagnose defects. Apply property changes and see the effect realtime to eliminate guesswork. Marshal will capture the changes in a session for you to review offline. Fine Tune RunTime ToolKit addresses the challenges faced with user interface elements such as fine tuning color schemes, ensuring translated fields are displayed properly, and resizing controls. Engage Clients expect to see changes quickly. Modifying at runtime can get you valuable feedback when engaging with a client. Implement Marshal was designed around ease of implementation. With the drag of a button you place the Marshal control in your application and instrument your existing code. Marshal creates its own form without cluttering your application form. Diagnose Inspecting components at runtime allows you to diagnose configuration or data driven behavior. Inspect the items collection to ensure the data was loaded and determine if the item is hidden. Record Capture the details and integrate the fixes into your source code immediately or at your own pace. Marshal records each change to component properties in a session which can be reviewed offline in Caddie. Compare Before and After Marshal automatically captures screen shots before and after property modifications. Visually compare the details of the form before and after a change. Target Deployment Deploy instrumented code during testing or to beta users. Marshal can be controlled using build configurations to target specific builds. Vendor Agnostic Designed to work with controls from any vendor, Marshal is fully functional in an application that uses no other FNC controls. Partnering with FNC leverages technologies to deliver better tools. Visit SwiftExpat and get started You can visit the Runtime Toolkit […]

Read More

High performance tree list in FMX

Intro The multi-device, true native app platform The FireMonkey® framework is the app development and runtime platform behind RAD Studio, Delphi and C++Builder. FireMonkey is designed for teams building multi-device, true native apps for Windows, OS X, Android and iOS, and getting them to app stores and enterprises fast. source: https://www.embarcadero.com/products/rad-studio/fm-application-platform FMX (FireMonkey) released in 2011 and shortly after we delivered a first set of components. Today, we want to show you the TTMSFNCTreeView component, a component with high performance virtual and collection-based modes able to deal with millions of nodes. Features Below is a list of the most important features the TTMSFNCTreeView has to offer. The features are not limited to this list, but this will give you a quick insight on what we offer to be able to create a hierarchical tree list in FireMonkey. Multi-line HTML formatted text Various built-in column editors Multi-column support Fixed and variable node height High performance virtual and collection-based modes Multiple events for custom drawing and customization of default drawing Multiple events for all kinds of interactions such as editing, expand / collapse and selection Auto-sizing and stretching of columns Mouse and keyboard interaction Nodes with checkbox, radiobutton, image, disabled nodes Nodes extending over multiple columns Sorting, Filtering Clipboard support Keyboard lookup Reordering Drag & Drop Learn More! Want to learn more about what the TTMSFNCTreeView can do? Here is a video that highlights some of the above features through a demo application. Download & Explore! The TTMSFNCTreeView component is part of the TMS FNC UI Pack, which, on top of FMX, also offers the ability to write your code once and target other frameworks (VCL, LCL and WEB). You can download a full featured trial version of the TMS FNC UI Pack and start exploring the capabilities of the TTMSFNCTreeView component. Coming up The TTMSFNCTreeView is the third of a series of components that is covered to empower your FMX (FireMonkey) developments. We started the series with a general overview of the most important components that we have to offer, followed by the TTMSFNCRichEditor and the TTMSFNCPlanner. Next up will be the TTMSFNCKanbanBoard component, a highly configurable workflow visualization component.

Read More

Compiling 1 million+ lines of code with Rad Studio 10.4.2

One of the things that intrigued me about the new Rad Studio 10.4.2 release was the improved compiler performance. Because Delphi is a fast compiler –we all know that– but hey, it can always be faster. And 10 seconds in every compile end up counting for a lot of time over the days. So I tried it compiling FlexCel and its test suite. Over a million lines of code, and actual code. This isn’t a synthetic benchmark with a single unit and a million lines of “WriteLn(‘Hello world’);”. We have lots of generics, a little more than 3000 units, multiple includes, cycles of units that use themselves recursively, and complex dependencies.  It turns out that spreadsheets require a lot of code. Below you can find a small video, with Rad Studio 10.4.2 on your left and 10.3 on your right. I normally wait a while before adopting a new Delphi version, but given all the time I spend compiling FlexCel, I migrated to 10.4.2 yesterday. This is the type of improvements I want from Embarcadero, and I hope they deliver more.

Read More

Real-world Delphi projects out of this world…

How much of our daily life here on planet Earth is impacted by running Delphi code is beyond imagination. Whether it is controlling trains on the French railway system, contact tracing in the COVID19 pandemic in Poland, salary calculation and reporting in Germany, tax invoice approvals in Brazil,… the list is endless. But Delphi’s impact already reached out beyond planet Earth with several projects of the NASA and this week we stumbled on the social media post from Dave Akerman mentioning it was Delphi based software where several TMS components were involved, that was used to produce the sophisticated coating for the Perseverance parachute that was instrumental in its highly critical but eventually successful and safe landing on Mars on Feb 18: As we chatted, I found out that David had a similar educational background as me in electronic engineering, also loves car racing, worked together with a very good friend of mine having a company Theys Industrial producing electronic PCB’s 2km away from here and I learned that the fabrics for the Perseverance parachute were produced by the company Picanol that is like 20km driving from where the TMS headquarters are. Talking about coincidences…Well, that was enough a reason to get in touch with David and have a chat about our passion we all share: software development with Delphi! Our colleague Holger Flick produced this video interview with David, where David tells exciting stories of how he got into software development, how he used Delphi for controlling machines precisely mixing chemicals, how he also uses Delphi for his hobby of tracking weather measurement balloons (where TMS WEB Core plays a role in), how he uses the FireMonkey framework for writing software for a Sony watch and so much more… I’m sure you will enjoy this video interview between two passionate Delphi software developers and be inspired to also do cool things with Delphi!

Read More

Release Announcement: GXT 4.1 is here!

February 23, 2021 | Kirti Joshi The Sencha team would like to announce the general availability of version 4.1 of GXT, Sencha’s comprehensive Java framework for building web apps using the GWT (formerly Google Web Toolkit) compiler. With GXT, developers can write apps in Java & compile their code into highly optimized cross-platform HTML5 code. The GXT 4.1 release addresses the top customer requested features including Support for Java 11 and Google Web Toolkit (GWT) version 2.9.0. More about the New Features Support for Java 11 & GWT 2.9 Google Web Toolkit (GWT) is an open source set of tools that allows front end developers to create browser-based JavaScript applications using Java APIs and widgets.  With GXT 4.1, users can take advantage of writing frontend and backend code using Java 11 and GWT 2.9. GWT 2.9 offers many improvements for both Java emulation and runtime fixes, and provides additional benefits in emulating Java. Writing code with Java 11 is easier. Devs can expand to the latest syntax while taking advantage of the Java SDK and streamlining their code builds.   GWT 2.9.0 was released in May 2020. Check out more details in the GWT Project Release Notes. How do I access GXT 4.1? Current customers can download GXT 4.1 using the following two options: Get access to the zip version through the Sencha support portal Download the new version through the Maven repository now hosted on MyGet. Customers can request MyGet access by submitting a ticket on the Sencha support portal and our support team will promptly guide you through this quick process. Not a GXT customer?  The fully featured GXT is available to try for free. New users can try GXT 4.1 with a free 30-day trial. Check out how the complete library of 140+ UI components can speed up your development cycles! Download GXT 30-day free trial

Read More

Cybersecurity Trends in Fintech

Published February 17, 2021 WRITTEN BY MICHAEL SOLOMON Michael G. Solomon, PhD, CISSP, PMP, CISM, PenTest+, is a security, privacy, blockchain, and data science author, consultant, educator and speaker who specializes in leading organizations toward achieving and maintaining compliant and secure IT environments. The year 2020 will go down in history as being a year of uncomfortable changes. Just about everyone was forced to approach aspects of personal and professional life differently, from buying groceries to conducting business to maintaining safe interactions with others.  Fortunately, existing technology and service offerings allowed us to make adjustments and work through the changes. Zoom went from being a useful way of meeting virtually to a staple of business, education and social interactions. Likewise, the financial technology industry, often called fintech, expanded products and services to make contactless financial exchanges safer and more accessible. But as Fintech’s popularity grew in 2020, so did its attack surface. Fintech is the industry that provides individuals and businesses with the technology to carry out financial transactions. If you’ve ever sent someone a payment using Venmo, accepted a payment card using your smartphone, or applied for a loan online, you’ve consumed fintech services. In short, fintech’s goal is to leverage technology to compete with, or even replace, traditional financial services by making them cheaper, easier and more accessible. Smart devices and nearly universal internet access make the process of carrying out financial transactions in a socially distanced environment easy. But to keep fintech’s growth on track, cybersecurity has to stay ahead of the attackers. Fintech companies can’t afford to lose their customers’ trust. Let’s look at the most important cybersecurity trends in fintech that are needed to keep that trust. Technology reliance creates risk Any transition to a greater reliance on technology introduces risk. Additional devices and software can provide opportunities for attackers to find and leverage weaknesses. The COVID-19 pandemic punctuated the importance of touchless and socially distanced interactions. One of the most common pre-COVID-19 close-proximity interactions was paying for products and services. Although touchless and remote payment options were available prior to 2020, the pandemic made touchless payments a welcome feature. The number of suppliers and consumers who used touchless payments for the first time skyrocketed in 2020. Any industry-wide growth naturally attracts cybercriminals to prey on a new group of potential victims. According to a recent Fintech News article, attacks are up across the industry and included a 600% increase in phishing attempts and a 630% increase in cloud-based attacks. One reason for such large jumps is the increased use of personal devices to engage in financial transactions. Personal devices often aren’t managed to be as secure as many legacy devices owned by service providers. In addition to facing increased attack frequencies and veracity, many fintech companies are still in the process of digital transformation. While startups may begin their commercial lives with new infrastructure and software, most fintech companies still rely on some legacy devices and software. Each type, or layer, of software, devices and infrastructure means the potential for security vulnerabilities to exist. While it is possible to upgrade hardware devices with the latest models, software poses a bigger challenge. Even startups go through a software development process that results in code written using outdated standards or best practices. It isn’t possible to write […]

Read More

How to use GraphQL with Ext JS—A Tutorial

TL;DR GraphQL schema and ExtJS data model work together very well. Apollo Client provides a core library that can be included in ExtJS projects to easily manage GraphQL requests, adding powerful features such as in-memory caching. Here I explain a proxy implementation that fully wraps the GraphQL integration, generating requests from ExtJS models (with associations) and their values. The proxy, together with a working example, can be found here. What is GraphQL? GraphQL is a great tool for developers to control the data they need from an API: by introducing schemas, it provides a standard structure for your APIs. It requests you to define object types and fields, unlike the REST APIs that are based on a style convention. The GraphQL structured approach in remote communication allows you to use a lot of productivity tools both in server-side runtime and front-end applications. These include testing, auto-generated documentation, editing and multi-language SDKs. From the client side, the main difference with REST is the ability to send queries to the server, specifying exactly what you need rather than relying on an “unpredictable” route implementation. More about Ext JS ExtJS is a framework for Web and mobile Single Page Applications and it is quite popular for development of reach-data interfaces. It is also a first-class citizen in the front-end technologies in terms of “productivity” and ” schema” and this is the reason why GraphQL is a promising tool for ExtJS data management. At the time of writing, there is no built-in integration for GraphQL queries in the framework, but in this article we’ll  see how to integrate GraphQL in an ExtJS application in order to enable remote communication with a GraphQL back-end and benefit from of all the GraphQL features. Note: an alternative approach can be found using ExtReact taking advantage of Apollo for React integration. Here is the tech talk repo. GraphQL client library When I first introducedGraphQL, I said that one of the advantages are the productivity tools. A production-ready JS library has to be there, and the solutions out there are certainly more than a client SDK. The two options are: I chose Apollo Client because it provides a core library that is framework agnostic rather than Relay which is focused on React use-case. In addition, Apollo is a very popular platform for development of both GraphQL clients and server APIs. GraphQL server Since the implementation of GraphQL server is not in the scope of this how-to article, I  assume you have a working back-end, or you can start a new Apollo Server project from the official tutorial. This is the example schema used for this article. type Query { getUsers( limit: Int offset: Int orderBy: String filter: String ): Users user(id: Int!): User } type Mutation { createUser(createUserInput: CreateUserInput!): Int updateUser( id: Int! updateUserInput: UpdateUserInput! ): Int deleteUser(id: Int!): Int } type User { id: Int! username: String! firstName: String lastName: String role: String! email: String! areas: [Area!] } type Area { id: Int! name: String! } type Users { count: Int! users: [User!]! } input CreateUserInput { username: String! firstName: String! lastName: String! role: String! email: String! areas: [Int!]! } input UpdateUserInput { username: String firstName: String lastName: String role: String email: String areas: [Int!] password: String } ExtJS application setup The test case analysed here is based […]

Read More

Powered By Delphi: A Dynamic Desktop Search Engine Office Document Finder

Office Document Finder is a desktop search engine intended for quick searching and viewing PDF, Word, Excel and PowerPoint documents from application, browser or mobile and it is developed in Delphi. Built using HTML Component Library and HTML Office Library. There are screenshots here from Windows, macOS, and Linux. Great example of a cross-platform Delphi app! Features All formats – Support for all Word (.doc, .docx, .rtf), Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx), Adobe PDF, HTML and EPUB formats Advanced viewer – View documens in its original layout with all pictures and text decoration No dependencies – MS Office and other applications are not required CJK languages – Indexing and searching for documents in Chinese, Japan and Korean languages OCR – Optical text recognition in scanned documents Cloud access – Access your documents from any PC or mobile PDF export – Download PDF file from browser viewer or application Localization – Web and application interface translation to Deutch, French, Russian and Spanish Suggestions – Autocomplete list for every word with number of documents containing this word Themes – Light and dark themes Duplicates – Detection of duplicated documents (displayed as red number) Query language – Support for “starting with”, “exclude word” and “exact words” Screenshot Gallery    

Read More

Welcome: A Spectacular Mobile App For Travelers Made In Delphi

Welcome – Audio walks with a local is a travel application built in Delphi. According to the developer, “Thousands of multi languages audio walks and museum tours in hundreds of cities and museums around the World.” This is an interesting app because it allows you to do some virtual traveling. It supports a number of different languages and the interface looks pretty good. It has mapping, audio, some rich media, and it’s built-in Delphi! Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.Design. Code. Compile. Deploy.Start Free TrialUpgrade Today

Read More