VCL

TMS FNC Planner Editing

Intro Since the first release, TMS FNC UI Pack has been constantly evolving. Version 3.2 added a lot of great new functionality and new components (https://tmssoftware.com/site/blog.asp?post=695). Today, we wanted to focus on a component that has been there since v1.0: TTMSFNCPlanner. The TTMSFNCPlanner is a scheduling component with various built-in time-axis options, i.e. a day, week, month, period, half-day period, timeline as well as custom time-axis mode where you can fully control the duration of each timeslot. The TTMSFNCPlanner supports single and multi resource views and can have the time-axis in horizontal or vertical orientation. Even when targeting mobile devices, the TTMSFNCPlanner will automatically use a touch-friendly approach. Today’s blog post focuses on a feature that is essential for an application that uses the maximum potential TTMSFNCPlanner has to offer: editing. Editing Editing is divided into 3 parts: Inplace editing Dialog editing Custom editing Inplace editing Inplace editing is enabled by default. Clicking in the planner item notes area will start the inplace editor. The default inplace editor is a TMemo, but can be configured to whatever inplace editor you want to use, with the OnGetInplaceEditor event. See the topic “Custom editing” below for an example. After the editor is started, text can be entered, and committed via the F2 key, or by clicking on another part of the planner. Cancelling is done via the Escape key. Changing the behavior of inplace editing can be done via one of the various properties under Interaction. Dialog editing Dialog editing can be enabled by changing the property Interaction.UpdateMode to pumDialog. When doing the same kind of interaction (selecting the item, clicking on the notes area), the dialog will be shown which can fully edit the item. Whereas inplace editing can only edit the notes, the dialog can edit title, notes, start & end time of the item. There is also support for a built-in recurrency editor dialog, which offers the same basic features as the default dialog, and extends this with recurrency options. This is typically used in combination with a dataset (see planner database demo included in the distribution). To use this dialog editor, you can drop an instance of TTMSFNCPlannerItemEditorRecurrency on the form, assign it to the ItemEditor property and click on the item to show the editor, as you would normally do after setting Interaction.UpdateMode to pumDialog. Custom editing For both of the above editing types, customization is possible. Let’s start with inplace editing. We want to create a custom editor that uses a TTMSFNCRichEditor and a TTMSFNCRichEditorFormatToolBar. We start by implementing a custom class wrapper that creates and holds a reference to a set of richeditor related classes for importing and exporting HTML as well as a toolbar and the richeditor itself. The planner item supports HTML and we need a way to convert the HTML coming from the item to the rich editor and vice versa. type TCustomInplaceEditor = class(TTMSFNCCustomControl) private FHTMLImport: TTMSFNCRichEditorHTMLIO; FRichEditor: TTMSFNCRichEditor; FRichEditorToolBar: TTMSFNCRichEditorFormatToolBar; FScrollBox: TScrollBox; public constructor Create(AOwner: TComponent); override; end; implementation { TCustomInplaceEditor } constructor TCustomInplaceEditor.Create(AOwner: TComponent); begin inherited; FScrollBox := TScrollBox.Create(Self); FScrollBox.Parent := Self; FScrollBox.Align := TAlignLayout.Client; FRichEditor := TTMSFNCRichEditor.Create(FScrollbox); FRichEditor.Parent := FScrollbox; FRichEditorToolBar := TTMSFNCRichEditorFormatToolBar.Create(FScrollbox); FRichEditorToolBar.RichEditor := FRichEditor; FRichEditorToolBar.Parent := FScrollbox; FRichEditor.Position.Y := FRichEditorToolBar.Height; FRichEditor.Width := FRichEditorToolBar.Width; FHTMLImport := TTMSFNCRichEditorHTMLIO.Create(Self); FHTMLImport.RichEditor := FRichEditor; end; To show the new inplace editor, […]

Read More

Use 100% of TAdvWebBrowser

TAdvWebBrowser/TTMSFNCWebBrowser TAdvWebBrowser or TTMSFNCWebBrowser are both the same components. The first one is a component that is available in TMS VCL UI Pack and the TTMSFNCWebBrowser is included in TMS FNC Core. This component can display web pages, HTML and load files such as PDF files. Both browsers also allow executing scripts and catch the result in a callback. Get started You will need to take some additional steps to get started with the TAdvWebBrowser. The component is based on the Microsoft Edge Chromium web browser, so first of all this should be installed. Luckily Edge Chromium is now the default browser that Windows is distributing with the Windows 10 updates. Another important remark is that you can use the normal version of Microsoft Edge and you don’t need to intall one of their specific channels. Another thing that you will need is the WebView2Loader DLL file. There is a 32-bit and 64-bit DLL, the use of one of these depends on the version of the application that you want to build. You can find these files in the ‘Edge Support’ folder which comes with the installation package. These need to be placed in the systems folder of your system. In case you are working on a 32-bit system, you will need to put the file in the System32 folder. If you are working on a 64-bit system the file needs to be in the SysWOW64 folder as Delphi is a 32-bit program. More information on the setup can be found here. Now you are ready to start working with the TAdvWebBrowser. TAdvWebBrowser built-in features To start with the TAdvWebBrowser it can be as easy as placing the component on the form and setting the URL property to the link that you want. If you want to give the user some more control, we’ve created a demo application, in which you can navigate via a TEdit and have buttons to go forward and backward. This is easily done with the following code: AdvWebBrowser.Navigate(AURL); AdvWebBrowser.goBack; AdvWebBrowser.goForward; With the OnNavigationComplete event you can check if the webbrowser changed to the desired page. In this code sample we will add the URL to a listbox and check if we can go back or forward between the web pages. procedure TForm.AdvWebBrowserNavigateComplete(Sender: TObject; var Params: TAdvCustomWebBrowserNavigateCompleteParams); begin ListBox1.Items.Add(Params.URL); Back.Enabled := AdvWebBrowser1.CanGoBack; Forward.Enabled := AdvWebBrowser1.CanGoForward; end; Some other things that you can do is set your own HTML code. AdvWebBrowser1.LoadHTML(MyHTML); Go to the next level You can get much more out of your TAdvWebBrowser with the use of some simple methods. With the ExecuteJavascript method, you can run the JavaScript code that you want in your browser. For example you can set the inner HTML of an object, in this case a paragraph. AdvWebBrowser.ExecuteJavascript(‘document.getElementById(“myParagraph”).innerHTML = “‘ + s + ‘”;’); DOM access is currently not possible in the TAdvWebBrowser itself, but you can retrieve the HTML text of your page via this function as well. And you can make it readable by parsing the retrieved text to JSON. In this case it is done in an anonymous callback method. AdvWebBrowser.ExecuteJavascript(‘function GetHTML(){return document.documentElement.innerHTML;} GetHTML();’, procedure(const AValue: string) begin memo.Lines.Text:= TJSONObject.ParseJSONValue(AValue).Value;; end ); With the use of this JavaScript method, you can get almost everything out of this control. TAdvWebBrowser also supports bridging between the client and the […]

Read More

TMS WEB Core for VSC 1.1 beta

We are getting closer to the next milestone of our TMS WEB Core for Visual Studio Code project. So, this is an ideal moment for letting TMS ALL-ACCESS users have access to the TMS WEB Core for Visual Studio Code v1.1 beta that we released today. New features v1.1 beta Support for creating PWA’s (Progressive Web Applications, i.e. installable and offline usable apps for iOS and Android mobile devices). Support for Electron cross platform desktop apps (Windows, macOS, Linux) In sync with the TMS WEB Core framework latest release v1.5.5.2 Lots of further polishing on IDE integration in Visual Studio Code. Roadmap Q4 2020/Q1 2021 The next big milestone after the v1.1 release will be v1.2 where the highlight will be installable extra components. At this moment, components not installed in the IDE can be used at runtime of course, but the focus of v1.2 will be to offer the capability to install the components on the tool palette and make the components usable on the form designer in the IDE. This huge work is already well underway. The entire TMS FNC components portfolio (TMS FNC UI Pack, TMS FNC Maps, TMS FNC Dashboard, TMS FNC Cloud, TMS FNC Blox) is in on development versions in our R&D team already working from the Visual Studio Code IDE as well. After the IDE infrastructure in the IDE is finished & polished, this will be the v1.2 release. Also for v1.2 we have project templates coming. Summary Now is the time to discover what TMS WEB Core for Visual Studio Code can do for you, Object Pascal and RAD component based software developer reaching out to create rich web client applications or create applications with a modern front-end based on web technology. Large number of included visual and non-visual components: With these components, a RAD approach allows you to build solutions fast. Visual data-binding: A data-binding mechanism similar to Delphi VCL data-binding enables to hook-up your client application via client datasets to data sent from a REST API based backend quickly. Use existing or custom HTML web templates: The Visual Studio Code IDE has built-in strong support for editing HTML/CSS and a vast array of extensions. This adds even more power to it. The visual designer shows the pages ”as is” using the templates. Integrate any existing JavaScript library: The underlying pas2js compiler for transpiling Object Pascal code to JavaScript code running in the browser facilitates programmatic access to any existing JavaScript library. This opens up the huge availability of all kinds of easily available web functionality to integrate. Debug using Object Pascal code: All modern debugging capabilities like breakpoints, watches, stepping in code, … can be done in the Object Pascal code base from the Visual Studio Code IDE. Project compatibility with Delphi. Create projects in Delphi and open & work further on these in Visual Studio Code and vice versa. Get in the front seat today This new beta is available for registered TMS ALL-ACCESS users. So our VIP users can already test the new features! Take a head start now and get TMS WEB Core for Visual Studio Code at our launch price starting from 295EUR for a single developer license or download and explore this new ground-breaking product using the trial version!

Read More

Only few days left…

And the last week of this promotion starts today… Get extra time of free updates and/or win a limited edition book! 20% longer updates and support Purchase your license before October 28th and receive 20% EXTRA time of free updates and free support! So, products that come with free 1 year of updates and support, you now receive 20% more, or 438 days instead of 365 days (1 year). It is offered to anyone, also loyal existing customers can purchase a renewal and will get an extra 20% renewal time. WIN a limited edition “Delphi Hands-on with TMS FNC Maps” For our 20th anniversary we are producing a hyper limited run of 20 pieces only of a full color version of the “Delphi Hands-on with TMS FNC Maps” book. This book will have a special preface with a retrospective of the company written by Bruno Fierens and will be hand signed by the Belgian team. To get a chance to win one of these limited edition books, share an anecdote about the TMS team, the TMS products, TMS events or share a screenshot of your product, your favorite blog article… in the comments section under this blog or on our social media and win the brand new and limited edition TMS FNC Maps hands-on book in color! Twitter: Tag @TMSsoftwareNews & use following hashtags: #tmssoftware , #delphi and #embarcadero Facebook: Tag @tmssoftware & use following hashtags: #tmssoftware , #delphi and #embarcadero YouTube: Tag @tmssoftwareTV & use following hashtags: #tmssoftware , #delphi and #embarcadero Our team will choose from the most extraordinary or special anecdotes/comments found on this blog comment section or on our social media channels and give send the limited edition of the book to your home. There are only a few days left, take advantage of it now!

Read More

Embarcadero Conference Brazil 2020

O maior evento Delphi do mundo irá acontecer novamente este ano. Mesmo com toda a situação da pandemia do COVID-19, a Embarcadero Conference 2020 irá se realizar no dia 20 de Outubro, em um novo formato, 100% online. Apesar dos participantes perderem algumas coisas que só acontecem em eventos presenciais, com conversas valiosas e trocas de experiências com outros participantes nos intervalos das sessões, haverá benefícios interessantes nesse novo formato: Taxa de inscrição mais acessível; Você pode participar de onde estiver – sem precisar pegar um avião e reservar um hotel; As palestras serão gravadas, assim os participantes não perderão nenhuma delas! Note que todas as palestras devem ser ao vivo. Assim, mesmo que elas sejam gravadas para serem vistas depois, escolhendo a palestra a participar trará os benefícios de poder interagir com o palestrante, fazer perguntas, conversar com os outros participantes, e assim por diante. Assim, aqui estão nossas sugestões para as palestras pra você participar: 9 am – SERVIÇOS NA NUVEM: NÃO COMETA ESTES ERROS! (Wagner Landgraf) Após anos lidando com desenvolvimento de serviços na nuvem, seja criando aplicações ou frameworks dedicados nessa área, o palestrante mostrará os principais conceitos, segredos, dicas e experiências para a construção de serviços na nuvem em Delphi. É um compartilhamento das experiências reais, problemas reais e sucessos reais, focando nas armadilhas e problemas que podem ocorrer ao longo do desenvolvimento e mostrando as soluções e prevenções para tais. 1 pm – SEU PRIMEIRO CRUD COM TMS WEB CORE (Marcos Moreira) Será mostrado como configurar o ambiente, criar sua primeira aplicação, e os aspectos para sua distribuição. 3:40 pm – TMS ACADEMIC – THE TMS SOFTWARE ACADEMIC PROGRAM (Wagner Landgraf) O programa TMS Academic será apresentado – suas motivações, seu futuro e como embarcar neste programa para obter licenças 100% gratuitas e funcionais dos produtos TMS se você for um aluno ou professor! Visite a página oficial da Embarcadero Conference 2020, registre-se e participe! — The biggest Delphi event in the world is coming again this year. Even with all the COVID-19 pandemic situation, Embarcadero Conference 2020 in Brazil will happen on October, 20th, in a new format, 100% online. Even though attendants will lose some things, like the great and valuable in-person conversations, there will be some great benefits with this format: More affordable fee; You can participate from where you are – no need to take a plane and book a hotel; Sessions will be recorded so attendants won’t miss any of them! Note that all sessions are supposed to be live. So even though they will be record, choosing a session to attend will bring you the benefit of interacting live with the speaker, asking questions, chatting with other attendants, and so on. Thus, here is our suggestions for sessions you could attend: 9 am – CLOUD SERVICES: DON’T MAKE THESE MISTAKES! (Wagner Landgraf) After years of dealing with cloud service development, whether creating applications or dedicated frameworks in this area, the speaker will show the main concepts, secrets, tips and experiences for building cloud services with Delphi. He will share real experiences, real problems and real successes, focusing on the pitfalls and problems that can occur throughout development and showing the solutions and preventions for them. 1 pm – YOUR FIRST CRUD WITH TMS WEBCORE (Marcos Moreira) You will […]

Read More

TMS WEB Core tips & tricks : Small sample with lots to learn about its versatility

In this article, we start from a TWebResponsiveGrid and use it to demonstrate various tricks that apply throughout the TMS WEB Core framework but are here in combination with the TWebResponsiveGrid perfect to show. The purpose of the article is to show how well the web HTML/CSS world blends with the Delphi developers components world and this in different & flexible ways. We will show you a couple of techniques to customize TWebResponsiveGrid items and make these interactive. TWebResponsiveGrid intro TWebResponsiveGrid is a responsive grid control. This means that it contains a number of items displayed in a 2D grid layout and this layout, i.e. number of columns will be controlled by the device screen size. This number of columns is determined by the setting TWebResponsiveGrid.Options.ItemMinWidth. This sets the minimum width of items in pixels. So, the grid will automatically show as much columns as allowed to still have this minimum width of items respected. And this also takes the TWebResponsiveGrid.Options.ItemGap in account that specifies the gap between items also in number of pixels. Other than this, there is not much to do. When the TWebResponsiveGrid is resized or displayed on a big or small screen, it will use these settings to automatically render the right number of columns for items. To see this directly live, you can also visit this online demo An item can be displayed in normal state, hover state and selected state. Therefore TWebResponsiveGrid.Options has settings for normal state, selected state and hover state colors. In addition or as alternative to setting colors (and other settings) for items, CSS can be used. TWebResponsiveGrid.Options.ItemClassName is the name of the CSS class that can be assigned to the item (outer HTML element of the item is a DIV). Beyond simple HTML in items The items one can add in a TWebResponsiveGrid are of the type TWebResponsiveGridItem and have a property HTML: string to set the HTML the item should contain and the generic Tag property. When the TWebResponsiveGrid.Options.ItemTemplate is set, this is preset for the item HTML when a new item is added. Note that when loading data from JSON or a dataset, the template can hold specifiers (%SPECIFIER%) and this is merged at runtime with hthe JSON attribute or dataset record field. The purpose of this article though is on programmatically filling the items collection. The initial code to fill the TWebResponsiveGrid as such is: for i := 0 to 20 do begin WebResponsiveGrid1.Items.Add.HTML := ‘Grid item ‘+i.ToString+’OK>/button>’; end; This shows how we have added some text and a button to a responsive grid item. The result is very simple. It does not look nice but the responsive behavior is there. The TWebResponsiveGrid is set to top aligned and when resizing the browser, the items automatically flow in the container. Before diving into making the HTML button react, let’s visually enhance the responsive grid items. We do this with some CSS for the TWebResponsiveGrid as well as the TWebResponsiveGridItem. While we could add the CSS style in the HTML file associated with the form or application (which is probably the best place), we wanted to take the opportunity here to introduce the TWebForm.AddCSS() method that allows to dynamically insert CSS at runtime (or remove it later and replace it). Doing so is simple as demonstrated with this […]

Read More

TMS FNC Maps updates!

Intro In April, we released the first version of TMS FNC Maps. Now 4.5 months later we have released v1.1 with exciting new features and improvements. TTMSFNCDirections: TravelMode tmPublicTransport, tmTruck added (for supported services) TTMSFNCDirections: GetDirections result Status and ErrorMessage added LoadGPXFromFile/LoadGPXFromStream/LoadGPXFromText now also supports elevation and timestamp data Events OnCreateGPXTrack, OnCreateGPXSegment for creating your own data structure when parsing GPX files TTMSFNCGoogleMaps: Clusters.Text property TTMSFNCGeoCoding: Get(Reverse)Geocoding result Status and ErrorMessage added Internally, a lot of smaller improvements have been made in combination with the existing supported services, TMS FNC Core and TTMSFNCWebBrowser. Edge Chromium Last week we also announced Edge Chromium Stable support for TAdvWebBrowser. We can now also announce that the TTMSFNCWebBrowser has been synchronized and offers Edge Chromium stable support. More details on how to install Edge Chromium can be found here. TMS FNC Maps Book TMS FNC Maps offers a demo and documentation to get you started, but if you really want to energize your developments the TMS FNC Maps Book is a must have! Stay tuned for more! TMS FNC Maps 1.2 is already around the corner with more exciting new features, so stay tuned and keep an eye on this blog .

Read More

Online event: The Theory and Practice of Amazing Desktop Application UI & UX

We look forward to connect with you at the upcoming conference! TMS evangelist Holger Flick and many other experts will share their knowledge with the audience! Take your Desktop UI/UX to new levels as you learn from industry leaders alongside over 1000 developers like you! The Theory and Practice of Amazing Desktop Application UI & UX Is a FREE online event, organized by Embarcadero technologies, on Sept 16th & 17th, 2020. The full schedule can be found on the following page https://summit.desktopfirst.com/schedule/ Speakers https://summit.desktopfirst.com/speakers/ The speakers will be sharing their experiences, strategies, and knowledge. You can choose between multiple speakers and categories. TMS evangelist Holger Flick “Building consistent UI suitable for high DPI with vector images and styles” Since 1996, Dr. Holger Flick has been using Delphi as his primary development platform and has been an active member of the community. He studied computer science at Dortmund University and later wrote his dissertation at the Ruhr University in Bochum in the field of telemedicine. For his passion for and knowledge of Delphi he was awarded the “Delphi MVP” moniker in 2016. In 2019, Holger moved to the United States of America (USA) and established his new company FlixEngineering LLC. The company focuses on consulting, training and software development using object-oriented programming languages like Delphi, C#, Swift, and Objective-C. Holger is part of the TMS Software family providing his expertise as Evangelist and QA Engineer. Holger Flick has written multiple book on TMS software: Participants can choose from multiple categories depending on their interest: https://summit.desktopfirst.com/topics/ Book your tickets today and reserve your seat: book now

Read More

Get started with TMS WEB Core for Visual Studio Code

The first version of TMS WEB Core for Visual Studio Code v1.0 has been released! Visual Studio Code is the 3rd IDE that can host the TMS WEB Core framework for web client application development after the earlier released versions for Delphi and Lazarus. TMS WEB Core offers Object Pascal software developers visual RAD component-based web client development with the strongly typed and object-oriented Pascal language. For developers who are not yet used to Visual Studio Code, this is a completely new world. That’s why here is a starting guide, with all the information you need to get started! Get started with TMS WEB Core for Visual Studio Code TMS videos Videos: José Leon Serna (chief architect) YouTube channel Blog articles Books Online courses With version 1.0 the first step has been taken and further developments are being made to expand this into a very productive and rich platform. TMS WEB Core for Visual Studio Code is now available at our special launch price starting from 295EUR for a single developer license! And you can also download and explore this new ground-breaking product using the trial version! Follow us on social media and don’t miss our blogs!

Read More

TMS WEB Core Academic is here for Delphi developers!

This year in February, we launched TMS VCL UI Pack Academic. In April, we launched TMS FNC UI Pack Academic. And now in September, we launch TMS WEB Core Academic! TMS Academic program With TMS VCL UI Pack Academic, we want to inspire and motivate students and teachers to learn about the power of the Delphi VCL framework and help users to build even more powerful, visually pleasing, and feature rich Windows desktop applications. With TMS FNC UI Pack Academic, we want to do the same for FMX cross platform applications. Empower students and teachers to discover the fascinating world of cross platform development with Delphi and the FireMonkey framework. TMS FNC UI Pack delivers over 70 extra sophisticated cross platform/cross framework visual controls to enrich native applications created with Delphi for Windows, iOS, macOS and Android. And now, with the third step, we want to motivate students and teachers to discover that Delphi can also be an extremely productive tool for web client application development. TMS WEB Core Academic TMS WEB Core , offers RAD component based visual development of web applications driven by the strongly typed and object-oriented Object Pascal language from the familiar and beloved Delphi IDE. It is clear that with the first three academic editions of our popular products, we hope students will enjoy picking up Delphi and experience how powerful it is and how it makes software development fun at the same time. With that, we want to offer our contribution to nurture the next generation of enthusiast and passionate Delphi developers. As all our other academic releases, it is designed for use with the latest and greatest Delphi version, now v10.4.x Sydney. In order to obtain the academic licensed version of TMS WEB Core, students and teachers need to provide an academic email address and their school or university information. In addition to the fully functional academic version of TMS WEB Core, there is plenty of information to learn about TMS WEB Core and to get started. Getting started Manual: TMS WEB Core Developers Guide Demos: TMS WEB Core demos Videos: TMS WEB Core videos Books: TMS WEB Core: Web Application Development with Delphi Training class: courses.landgraf.dev Next level: And for those students who want to rise to the next level, there is the TMS WEB Core partner program! Develop your own components or Object Pascal interfaces to existing JavaScript libraries and publish these via the TMS WEB Core partner program. Contributing partners will get the regular TMS WEB Core version with a license that permits to use it with Delphi IDEs XE7 to 10.4 including Lazarus on Windows, macOS, and Linux but also with our brand new TMS WEB Core for Visual Studio Code that can be used also from all three major desktop operating systems. It speaks for itself that we are enthusiastic to see students and teachers “go web” and we are more than curious to see what exciting, new, and innovative solutions will surface. With all that, you will move your career forward, move Delphi forward, and move TMS WEB Core forward! Request the academic license now! Don’t wait for the perfect moment. Take the moment and make it perfect. Request your academic license here: https://www.tmssoftware.com/academic

Read More