Noutați

How To Get More Results Out Of The Best JavaScript Libraries

Suppose you are into web development and looking for an easy-to-use, efficient and complete Javascript framework. If that is the case, Ext JS is the perfect solution for you. Whether you are a novice developer or an experienced programmer, Ext JS offers the most comprehensive suite of the best JavaScript libraries. It also provides numerous tools to accelerate product development. You can quickly and easily build high-performance apps with cross-platform compatibility that run on all modern devices. This JavaScript framework includes 140+ components that you can use to build stunning and awesome apps. They will take your user experience to a whole new level. The framework lets you focus on your logic and backend and spend less time manually coding user interfaces. We have compiled a complete guide to help you get started and get more results from the best JavaScript libraries. This blog will convince you why it’s time to switch to Ext JS if you have not already done so. How Do I Accelerate HTML5 Development? Sencha Ext JS offers a complete solution for HTML5 app development with Sencha Architect, a visual app builder for HTML5 applications. You can run these apps on all platforms on desktop and mobile devices. Sencha Architect also has a WYSIWYG window that supports the drag and drop of UI components. In addition to that, it gives you options to configure these components according to your app’s requirements. Imagine the time you can save by visually designing your app instead of manually coding it while avoiding coding mistakes. Sencha Architect is included in Sencha Ext JS and truly accelerates HTML5 app development. Do the Best JavaScript Libraries Include Lifecycle Management Tools? Indeed Ext JS, one of the best JavaScript libraries, includes a lifecycle management tool called Sencha Cmd. It assists you during all the phases of your product development and application deployment lifecycle. It includes features like code minification, scaffolding for database code generation, and generating a production build. Depending on client requirements, you can also develop both an Ext JS and Sencha Touch app. How Do I Build Beautiful User Interfaces? uniGUI Sencha theme for Ext JS 6.x Designing and building stunning and beautiful user interfaces is an important part of product development. Sencha Themer allows you to style all your Ext JS, ExtAngular, and ExtReact apps to accelerate the development process. In addition, Sencha Themer comes with a graphical interface that allows you to create customized themes. It also includes a smart palette you can use to apply different color combinations to different component states. You can do all this without writing any code. This is because Themer generates the code for styles and themes automatically. How Can I Do Fast Data Processing Using the Best JavaScript Libraries? Ext JS grid libraries are your best option if you want fast and efficient data processing. These libraries can process large volumes of data within milliseconds. You can apply operations such as sorting, filtering, scrolling, grouping, and more to your data records and get the results in the blink of an eye. Ext JS also has features like pagination, widget integration into the grid, importing and exporting records, pivoting, and more. Which Debugging and Troubleshooting Tools Should I Use? Sencha Inspector is another part of the Ext JS framework. It helps you with debugging and troubleshooting. […]

Read More

How To Use The DeepAI Service In Your Cross Platform Apps

Today AI technologies boast high popularity and demand in many spheres of our life. For example, AI is used for face identification on smartphones. On social networks, we have the possibility to add different effects on photos (AR, collages, etc.). AI tools allow users to identify different objects. They are used in video surveillance systems for identifying cars, people, animals, and all sorts of other useful capabilities. In this article, we will analyze a popular multifunctional AI service, DeepAI, and show you how easy it is to use it in your cross platform apps. With the DeepAI service, users can enjoy all the capabilities and benefits of AI via a simple and straight-forward API. One DeepAI feature allows colorizing your old black-and-white photos. It can also identify some undesirable items in the photo (like weapons, etc) and provides many other possibilities. We will show how you can easily use the DeepAI service in your Delphi FMX cross platform apps. To work with images, we suggest using the Image Colorization API. What does the DeepAI Image Colorization API do? This service for colorizing black-and-white photos is ensured by the API for work with images. For working via the API, it is necessary to send a POST request to the DeepAI server and to provide the path to the file of a black-and-white image and an API key. It is also required to use a link for connecting to the DeepAI Image Colorization API service. How do I get a DeepAI API key? For getting an API key, you have to sign up. This process is rather simple. It is necessary to click SIGNUP. Then you have to enter the user name, email, and password. After that, you will receive a link for account verification on your email. You will just have to follow the link. You need to copy the received API key and save it for further use in the FMX Delphi app. You will also have to add bank card details (card number, the date of expiration, CVV) for correct interaction with the service (the tab Billing). DeepAI offers a free trial limit of 5 dollars. How to use DeepAI in a Delphi FMX cross platform App As an example, we will send a black-and-white photo from our Delphi FMX app with the use of the POST request to the server and will get a response in the JSON format that keeps the URL link leading to the processed colorful image. In Delphi, for working with the DeepAI server, we can use some standard components TNetHttpRequest and TNetHttpClient. We have to assign the value of the current TNetHttpClient component (NetHttpClient1) to the Client field in the TNetHttpRequest component. We also need to assign the value “POST” to the MethodString field. How do I display the DeepAI image colorization results in a Delphi cross platform app? We will use the standard component TImage for showing the original black-and-white image in the FMX app. For showing the processed colorful image to a user with the help of the REST of the DeepAI service, we also have to use the standard component TImage. For showing the JSON reply from the server in the Delphi FMX app, we will use the standard component TMemo (the tab Standard). For sending the parameters via the […]

Read More

A Beginner’s Guide to Python Development Tools

Welcome to an exciting journey of becoming a great Python developer. Python is such a compelling language to learn and master these days. It is an already prevalent tool for data science and machine learning, and current stats show it is going in the right direction. Every good developer needs good tools to perform well. Likewise, Python developers need great Python development tools to be ahead of the competition and be at the edge of creativity. Having great tools and the right mindset will save you time and effort.  Why can Python alone not be your ticket to success? First and foremost, we should acknowledge that no single language is helpful in all software problems. For example, in almost all code libraries, some code is written in assembly language to give it exceptional speed. Similarly, many python libraries are already in C, which means that we already use many languages in our code base. We have to add more languages to our portfolio to be proficient in development. Embarcadero’s Delphi can be a natural choice for all python developers. It is straightforward, easy, compliments, and adds power to your skills. What additional Python development tools can you use? If every Python developer has the same Python codebase you have, then what is your edge? To be ahead of the competition, you should provide more value to your users. To add more coding power to your Python development, you need some excellent Python complements that can quickly enhance your reach, productivity, and performance without a steep learning curve or moving to a different language altogether. Fortunately, now we have many great Python complements available. So let us examine the best of the best tools available. 1. What is Python4Delphi? Python for Delphi (P4D) is a free component suite to bridge Python and Delphi. It allows you to execute Python code in Delphi and enable Python to use Delphi code and objects. It also makes it trivial to use Python as a scripting language in Delphi. It has a plethora of demos and tutorials to get you going. Visit Embarcadero’s Python4Delphi page for more information.  2. What is Delphi4Python? Delphi for Python (D4P) is a set of free Python modules to bring Delphi’s award-winning VCL and Firemonkey(FMX) GUI building libraries to Python developers. With this tool, you have all the Delphi code available for your Python development, and you can use Delphi’s Fast and Rich GUI tools right inside Python. Read Jim McKeeth’s introductory article about Delphi4Python for more information.  How many Python development tools are available? A plethora of Python development tools is available in the market. Unfortunately, this overwhelming choice confuses new developers. Therefore, we have analyzed all available alternatives and compiled the results into 5+1 cohesive and logical categories, so you can quickly choose the best python development tool according to your needs. 1. Python’s Default IDE IDLE (Integrated Development and Learning Environment) is the default editor installed with Python. It is handy for the occasional editing of minimal scripts but lacks the professional features of a full-blown IDE. Also, sticking with it will not provide us with any edge, so we must find a better alternative.  2. IDEs for Python Learning Interactive IDEs like Jupyter Notebook and many other REPLs (Read Evaluate Print Loop) are suitable for quick […]

Read More

TMS WEB Core for Visual Studio Code 1.9.8 available now!

We’re pleased to inform that TMS WEB Core for Visual Studio Code 1.9.8 is available. With TMS WEB Core for Visual Studio Code, you can develop web client applications with Object Pascal and using a RAD component based approach. In the last year, we worked very hard to not only fine-tune TMS WEB Core project compatibility between Delphi and Visual Studio Code but also to ensure the features and framework are in sync. Last week we released TMS WEB Core for Delphi and all improvements this latest release brought are today available in TMS WEB Core for Visual Studio Code. This ensures that you or the colleagues in your team have the freedom of choice to develop web client applications from the Delphi IDE on Windows or from the Visual Studio Code IDE directly on Windows, macOS or a Linux desktop machine. Among the many framework improvements, we want to highlight in this blog two new core features. Direct forms support The “Direct form” type, is a form that isn’t using its own unique HTML template file but lives in the application main HTML file. This facilitates that such web client application can be started directly from the file system (no HTTP(s) server needed) and also that it loads faster. You can still bind WEB Core controls to HTML elements but here, the HTML elements will need to be added to the main application HTML file. Note that in a TMS WEB Core web client application, you can mix direct forms with regular forms using a HTML template. To add a direct form to your TMS WEB Core web client application in Visual Studio Code, use this new repository item: To understand better what direct forms can mean for you, check out this video too where it is demonstrated when used from the Delphi IDE. JavaScript Libraries Manager When developing web client applications, it’s a kind of no-brainer to take advantage of existing JavaScript and CSS libraries. Things that come to mind are the Bootstrap, jQuery, Google Material icons, Fontawesome libraries and many more. Most likely, you have your own favorite JavaScript libraries you want to use together with TMS WEB Core web client apps. The JavaScript Libraries Manager allows you to directly pick your preferred library from a list and the IDE will add the proper reference to the project HTML file. At the same time, you can add your own preferred libraries for later convenient reuse. Get started! If you are a TMS ALL-ACCESS user, you automatically have access to the full & latest version of TMS WEB Core for Visual Studio Code.  Get in touch with our team or check out our support center for technical assistance or for sharing your ideas & thoughts to steer further development.

Read More

Detect if a point is in a coordinate based polygon in Delphi

In this blog post, we explained how to measure the area of a polygon defined by coordinates. TMS FNC Maps v3.0.3.0 adds a way to detect a point (coordinate) inside a polygon. In this short blog post, we want to show you how to work with this new functionality. Load GeoJSON First of all, we are going to load our GeoJSON file with coordinates that define the surface area of Germany. TMSFNCMaps1.BeginUpdate; TMSFNCMaps1.LoadGeoJSONFromFile(‘germany.geojson’); TMSFNCMaps1.EndUpdate; Then, we style the polygons loaded by the LoadGeoJSONFromFile method. The complete code to load and style polygons is demonstrated below. procedure LoadGeoJSON; var p: TTMSFNCMapsPolygon; I: Integer; begin TMSFNCMaps1.BeginUpdate; TMSFNCMaps1.LoadGeoJSONFromFile(‘germany.geojson’); for I := 0 to TMSFNCMaps1.Polygons.Count – 1 do begin p := TMSFNCMaps1.Polygons[I]; p.FillOpacity := 0.4; p.FillColor := gcGreenyellow; p.StrokeOpacity := 0.4; p.StrokeColor := gcGreen; end; TMSFNCMaps1.EndUpdate; end; Detecting a coordinate inside a polygon To detect whether or not a coordinate lies inside a polygon, the polygon collection item class exposes a ContainsPoint function. For the purpose of this sample, we used the non visual TTMSFNCGeocoding component and retrieved the coordinates for cities that lie inside and outside of Germany. procedure DetectPoints; var c1, c2, c3, c4: TTMSFNCMapsCoordinateRec; const v = ‘Coordinate inside polygon’; n = ‘Coordinate outside polygon’; begin c1 := TMSFNCGeocoding1.GetGeocodingSync(‘Groningen’); c2 := TMSFNCGeocoding1.GetGeocodingSync(‘Dresden’); c3 := TMSFNCGeocoding1.GetGeocodingSync(‘Munich’); c4 := TMSFNCGeocoding1.GetGeocodingSync(‘Augustenborg’); if TMSFNCMaps1.Polygons[0].ContainsPoint(c1) then TMSFNCMaps1.ShowPopup(c1, v) else TMSFNCMaps1.ShowPopup(c1, n); if TMSFNCMaps1.Polygons[0].ContainsPoint(c2) then TMSFNCMaps1.ShowPopup(c2, v) else TMSFNCMaps1.ShowPopup(c2, n); if TMSFNCMaps1.Polygons[0].ContainsPoint(c3) then TMSFNCMaps1.ShowPopup(c3, v) else TMSFNCMaps1.ShowPopup(c3, n); if TMSFNCMaps1.Polygons[0].ContainsPoint(c4) then TMSFNCMaps1.ShowPopup(c4, v) else TMSFNCMaps1.ShowPopup(c4, n); end; The result output is shown below. Alternative detection The ContainsPoint function at polygon collection item level internally calls the IsPointInArea, which is defined in the *.TMSFNCMapsCommonTypes.pas unit. To use this function, you need to define an array of coordinates. This function can be used without the need to define a polygon inside the Polygons collection.  function IsPointInArea(ALatitude: Double; ALongitude: Double; ACoordinatesArray: TTMSFNCMapsCoordinateRecArray): Boolean; Explore! Go ahead and download TMS FNC Maps. Explore the features and demos and feel free to leave a comment on this blog.

Read More

10 Tips About An Ext JS Tutorial For Beginners

  Sencha’s ExtJS is a robust JavaScript framework for developing mobile and web applications. Thus, are you interested in using ExtJS to make amazing web and mobile user interfaces? Here are some helpful hints on Extjs tutorial for beginners that will help you to get started using Ext JS and use it to web development: What can I do to accelerate the development speed? Consider using Sencha Architect to construct UIs using drag-and-drop functionalities so you can focus minimum time on manual coding and speed up your development. The code generated automatically is designed for maximum performance; you may also prevent errors that occur when coding manually. Is it a good idea to set up routing in the start itself? You’ll need to implement routing in your app if the website uses forward and back buttons for navigation. Routing can be used to keep track of the current state of your app; however, it cannot be used to store data. Direct links can also be used to reach a particular component or page of the application. It’ll be more difficult to modify your code to enable routing later if you’re not using routing at the start. As a result, from the beginning of your project, take time to understand how routing principles function and decide, select and implement your routes. Why is Sencha Cmd important? Sencha Cmd is the starting point for creating Sencha applications. It’s a tool that automates the creation of Sencha Ext JS apps, from the initial design structure to the generation of deployable applications. As a result, understanding Sencha Cmd, what it does, and how to use it is critical. Before initiating development, read over the Sencha Cmd Documentation to familiarize yourself with it. Is it possible to debug sencha apps directly? Sencha Inspector is a debug tool for apps created utilizing Sencha frameworks. It gives you easy accessibility to classes, components, and objects. Going further, this Sencha application debugger provides application analytics and sophisticated debugging features. It also allows you to examine your app code for vulnerabilities such as component and function over nesting and the frequency of layout runs and help you enhance your application’s performance. How can the MVC design pattern be used? Ext JS follows the Model View Controller (MVC) architectural pattern to create the structure for the project. Even though it is not required, I propose that you organize the project’s structure better. To engage with MVC, you must understand where to put your code for your application’s user interface, login controller, and data. To construct a functional web application in Ext JS, it’s important to understand how MVC works together as well. Where should the MVVM design pattern be used? MVVM stands for Model–View–ViewModel, yet another design pattern to be conscious of. Despite MVC, MVVC has a view as its execution point of entry. It isolates interface development by using a markup language. The ViewModel uses the data binding mechanism to synchronize changes in-between the data model and view. Therefore, know when to utilize MVC and MVVM depending on what you’re doing. What can be done using Schema Themer? You may use Sencha Ext JS default themes to start designing your applications right away. You may also create custom themes to give your app the feel and look you desire. Sencha Themer, on the other hand, […]

Read More

Q1 2022 : 3 months – 3 milestones – 3 new products in TMS ALL-ACCESS

Here, spring starts today March 21 and soon we are already closing the first quarter of 2022. So with the year well underway, it is time for a short look back at what the year brought so far for Delphi developers using TMS products.  While there has already been the usual flow of product update releases with new features & improvements, so far we also released 3 new products in 2022: TMS MemInsight This brings run-time memory allocation inspection, exception call stack logging, thread inspection and more. The unique angle of TMS MemInsight is that it gives you a run-time view on what is happening in your application as opposed to tools that only provide the information when the application closes, or worse, crashes. This gives the Delphi developer a powerful tool in the hands to inspect, analyze and improve where possible the memory allocation in applications.   GraphQL for Delphi When your applications work with GraphQL, whether it is at the client side or at the server side, our full GraphQL spec-compliant library for Delphi, empowers you to build applications that take advantage of GraphQL. GraphQL is rapidly getting traction as alternative or something to add in addition to classic REST API endpoints for data access. It empowers the client application to control the data communication. With GraphQL for Delphi, you can use the library for creating servers that respond correct to GraphQL requests. Watch the introduction webinar again here. GraphQL for Delphi is available stand-alone or as part of TMS ALL-ACCESS TMS FNC AppTools This is the latest addition to the FNC family of universal components. Universal components can be used in Delphi & C++Builder VCL, FireMonkey apps, Delphi TMS WEB Core apps and LCL Lazarus applications. TMS FNC AppTools focuses on typical desktop application use-cases. So far, it has a non-visual component for persisting the state of forms at the time the user quits the application to bring it back in exactly the same state when the user restarts. It has a component to temporarily password-lock an application to prevent non-authorized people to see sensitive data for example. And it has an automatic application updater component. With this component, it is possible to automatically update a Windows, macOS or Linux desktop application from updated files available on a HTTP(s) server. The component takes care of update version detection, update download and automatic replacement of existing files with updated files and restarting the new version of the application. Users already having our VIP ticket called TMS ALL-ACCESS received these 3 new products this quarter in addition to numerous product updates so far. This includes updates to TMS VCL UI Pack, TMS FNC Maps, TMS Business Subscription, TMS WEB Core and many more… In short, we deliver with TMS ALL-ACCESS literally what the name stands for: access to all our products, all our services, all our technical support and all our new upcoming new products or product update releases. If you did not yet obtain your TMS ALL-ACCESS VIP ticket or your overlooked to renew your TMS ALL-ACCES subscription for this year, contact our sales team to get the best possible deal to (re)enter the TMS ALL-ACCESS VIP area. Our sales team will offer you the best possible upgrade deal based on the existing products you might already have purchased in the past!

Read More

TMS WEB Core v1.9.8.0 Sentina for Delphi is here

We are pleased to announce the availability of TMS WEB Core v1.9.8.0 Sentina. The new release is a further step in making Object Pascal RAD component based web client application development from the Delphi IDE as productive and seamless as possible.  Among the new features are: New : TApplication.CreateFormDirect() method added + IDE integration for direct formsAllows to open forms not having a HTML template but use the project HTML template instead New : TWebListBox.ElementItemClassName property addedAllows to specify a CSS class for items in the TWebListBox New : Bootstrap hints for Bootstrap forms support addedWhen Form.CSSLibrary is set to cssBootstrap, controls will use Bootstrap hints Among the improvements are: Improved : Popup dialog close button positionThe dialog caption and the dialog close button in particular now look better Improved : Actualized materials icons design-time listThe design-time selectable material icons list is significantly extended Improved : High DPI support for design-time editors in Delphi 11 / 11.1When designing forms in Delphi 11 with high DPI form designer, control positioning is improved in resulting web app Other fixes & improvements Direct forms See for yourself what we mean with the new direct forms support in this new release. We created this video especially for you to show the difference between default forms that have a unique HTML template file per forms and direct forms that do not have a HTML template file and therefore are displayed within the context of the project HTML file. Get started Discover how you can create web client applications with zero deployment requirements and that work from a single application code-base on any machine or device that has a browser. Download the fully functional and not time-limited TMS WEB Core trial version to explore at your own pace how you can benefit from it!  For all users with an active TMS WEB Core license, TMS WEB Core v1.9.8.0 Sentina is a free update. If you have an expired license, login on our website to find the best upgrade option or contact our sales by email. 

Read More

Introducing TMS FNC AppTools

We are proud to announce a new member of the TMS FNC family: TMS FNC AppTools!  What is TMS FNC AppTools? Compared to the rest of the FNC family (that is the family of our universal components), TMS FNC AppTools is a little bit different. It revolves exclusively around desktop application development! The reason for this is simple: desktop and mobile applications are unalike and some functionalities/features make no sense or restricted in mobile environments. This way we can fully focus on desktop specific needs. What is included? Let’s take a look at what is included in this first release! TTMSFNCAppUpdate Manage automatic internet based application updates. You can use HTTPS based locations for secure downloads. Username and password protected downloads are also supported! The entry point to the automatic update is an .INF control file. By calling TTMSFNCAppUpdate.NewVersionAvailable the component will download and look at the contents of the control file. A single control file can be used to handle the updates for 3 supported platforms at the same time. This is achieved by a platform suffix (= win, macos or linux): [update_platform] keywords [files_platform] count=N [file1_platform] keywords … [fileN_platform] keywords The TTMSFNCAppUpdate component will automatically scan the control file for the platform it is running on, which means the platform specific suffix is always needed. TTMSFNCAppUpdate gives huge flexibility after the control file has been read. When NewVersionAvailable is called, the FileList collection property will be filled with the contents of the control file. This allows you to freely remove or modify the file descriptors before continuing with the update. procedure TForm1.Button1Click(Sender: TObject); begin   if TMSFNCAppUpdate1.NewVersionAvailable then   begin     if TMSFNCAppUpdate1.FileList.Count > 0 then       TMSFNCAppUpdate1.FileList[0].URL := ‘newdownloadurl’;     TMSFNCAppUpdate1.StartUpdate;   end; end; This becomes a lot simpler if you don’t need to change the file descriptors afterwards. Just call DoUpdate which will internally use NewVersionAvailable and StartUpdate and run the whole process at once. TTMSFNCAppUpdate also supports predefined and custom prefixes that will be replaced in the path related keywords. For example: {APP} stands for the application folder. For custom prefixes you can implement the OnCustomPrefix event! Curious to see it in action? Check our first video we prepared: TTMSFNCAppFormPersist With this component you can automatically persist and restore your application windows’ position, this way the application will open all its windows where you left them. It’s also possible to save and load the position programmatically: procedure TForm1.restoreBtnClick(Sender: TObject); var   afp: TTMSFNCAppFormPersist; begin   afp := TTMSFNCAppFormPersist.Create(Self);   afp.FileName := ‘./temp_settings.ini’;   afp.LoadFormSettings;   afp.Free; end; procedure TForm1.saveBtnClick(Sender: TObject); var   afp: TTMSFNCAppFormPersist; begin   afp := TTMSFNCAppFormPersist.Create(Self);   afp.FileName := ‘./temp_settings.ini’;   afp.SaveFormSettings;   afp.Free; end; TTMSFNCAppLock Keep your current workflow and sensitive data hidden by password locking your running application when needed or if it has been idling for a while. After locking all application windows become minimized and hidden. To unlock, click the minimized application icon and use the default unlock dialog. Alternatively a custom unlocking mechanism can be used by implementing the OnQueryUnlock event. It’s also possible to unlock the application automatically by calling the Unlock method.  procedure TForm1.Button1Click(Sender: TObject); begin   //Unlock automatically after 30 seconds   Timer1.Interval := 30000;   Timer1.Enabled := True;   TMSFNCAppLock1.Lock; end; procedure TForm1.Timer1Timer(Sender: TObject); begin   Timer1.Enabled := False; […]

Read More

Laser Focus on Eyecare – How Delphi And InterBase Help Protect Your Vision (Case Study)

Patients rely on doctors to save their eyesight. Doctors rely on Delphi and InterBase® to show them how. The compelling Laser Focus on Eyecare Case Study illustrates how Delphi and InterBase® work together to create an electronic health record (EHR) and practice management software solution for US-based eyecare software leader ManagementPlus (now part of EyeCareLeaders).             InterBase® is designed for precisely the use cases – data gathering embedded into advanced technology across your business, super-high reliability in situations that have zero tolerance for error, and require zero-admin, independent operation more or less forever. Explore the Case Study

Read More