Never get lost again with TMS FNC Maps!

Intro

After all our experience with TMS FMX/VCL WebGMaps & WebOSMaps, and the latest and greatest technologies we’ve been working on in FNC & WEB, we thought by ourselves what would be the next logical step? We wanted to feel the power of dynamically switching between various mapping services on mobile. We wanted to have access to step-by-step directions in a browser. We wanted to have an out of the box, worry free experience to provide mapping, directions and geocoding in one big library/component set that works on 4 frameworks and a lot more operating systems.

We wanted to create a component where you are not tied to a fixed mapping service provider but make it as easy as changing a property to switch to another provider. When a provider raises prices, reduces functionality or when another provider starts providing better routing, change one property setting in your application and you are up & running with another mapping service provider.

Cross-framework, cross-platform, cross-service

Introducing for the first time ever: TMS FNC Maps! You all know how the saying goes:

“A picture says more than a thousand words”




And as a cherry on the cake, we’ve created a video that shows a quick overview of what TMS FNC Maps has to offer and which features are supported.

Supported services & features

Below is a list of features and services that TMS FNC Maps supports. As said in the video, with these features we aim for 1.0, but 1.0 is just the beginning, and many more features and map services will be added in the future. Please let us know if you have a service or feature of a specific service that you want to see available in TMS FNC Maps.

List of services for mapping, directions and geocoding

  • Google
  • Here
  • Microsoft Azure
  • Microsoft Bing
  • TomTom
  • MapBox
  • OpenLayers

List of features

  • Directions/Routing (TTMSFNCDirections)
  • Options for configuring alternative routes, step by step directions, …
  • Geocoding (normal, reverse) (TTMSFNCGeocoding)
  • Getting current location (TTMSFNCLocation)
  • Maps (TTMSFNCMaps)
    • Polylines
    • Polygons
    • Markers
    • Circles
    • Rectangles
    • Zooming, centering
    • Loading GPX, GeoJSON
    • Various Events
  • Google Maps (TTMSFNCGoogleMaps)
    • Inherits from TTMSFNCMaps
    • Load KML
    • Editing of polylines, polygons, circles and rectangles
    • Dragging of markers
    • Traffic
    • Themes (Night, …)

FNC

Please remember, TMS FNC Maps will be part of the FNC family and FNC is a cross-platform / cross-framework component library. Write your code once and target multiple operating systems!

Breaking changes!

To get the best out of TMS FNC Maps and make all of this work together we’ve introduced breaking changes and moved the TMSFNCCloudBase unit from TMS FNC Cloud Pack to TMS FNC Core. This means that each FNC product will have access to this unit and this allows you to consume your own REST service, download/upload files without the need for TMS FNC Cloud Pack.

Stay tuned!

More is coming in the next days, weeks and we are currently hard at work to make a 1.0 available as a BETA to all TMS ALL-ACCESS users, so stay tuned!, and again, feedback is highly appreciated so don’t hold back!

Read More

Read More

Mariscos – クールアプリセレクション

今日のクールアプリセレクションは、Daniel Rodríguez Hernández氏のMariscosです。Mariscosは、レストラン向け管理ツールで、スタッフとマネージャの双方が、注文、支払い、レシートの管理とトラッキングをサポートします。Delphiによって構築されており、Androidデバイスで利用できます。(read more)
Read More

Work@Home with Slack in the latest TMS FNC Cloud Pack update!

Stay Safe!

First of all, the TMS team wishes you a good health during these difficult times. Not only privately but also for the business you are running / working for. We at TMS are currently working from home and are doing our best to provide you with the highest care at software level and support that we can provide in the current circumstances. Even working at home doesn’t stop us from releasing new and exciting stuff!

Work @Home

With the latest release (v1.2.0.0) of the TMS FNC Cloud Pack we are introducing Slack. One of the most productive collaboration service out there and we have created a component for you that allows you to connect, share, update, upload and download content on the various channels under your work project. Below is a list of features the TTMSFNCCloudSlack component is supporting.

  • Retrieve all the users in your Slack team
  • Retrieve the information and profile for a specific Slack user
  • Download the profile picture of a user
  • Retrieve all conversations in your Slack team or get a specific type as public channels, direct messages, …
  • You can also get all the conversations that a specific user has access to

  • Retrieve the posted messages from a specific conversation
  • Retrieve the replies to a message.
  • Download the files that were posted in a message
  • Post your message in a conversation or a reply to a specific message
  • Upload a file to a specific conversation

TMS FNC Cloud Pack

The TMS FNC Cloud Pack was released in April, 2019 (https://tmssoftware.com/site/blog.asp?post=538), and has gotten a lot of improvements on the existing services. We have now added a new service (TTMSFNCCloudSlack) and are continuing our search for more services. If you have an idea for new services, suggestion for enhancing existing services or missing a service that is not yet implemented, please do not hesitate to ask us.

Please remember, TMS FNC Cloud Pack is part of the FNC family and FNC is a cross-platform / cross-framework component library. Write your code once and target multiple operating systems!

Read More

Read More

Delphi – SQLite Sample Projects

I've been exploring SQLite within Delphi. There are several sample SQLite applications that come with Delphi if you selected to install the samples during setup. I've put together the list of SQLite samples that are available.The common samples file path is located here:..\Studio\20.0\Samples\Object Pascal\Database\FireDAC\Samples\FireDAC.SQLiteIniFile Demo Sample This sample uses FireDAC to connect to an SQLite database that emulates the structure and the operations of an INI File.AddOn\SQLiteIniFile\Demo\SQLiteIniDemo.dprojFireDAC.TFDLocalSQL MegaFMX Sample The sample shows different TFDLocalSQL applications.Comp Layer\TFDLocalSQL\MegaFMX\LSQLMega.dprojFireDAC.SQLite Encryption Sample This sample demonstrates how to encrypt/decrypt an SQLite database.DBMS Specific\SQLite\Encryption\SQLite_Encrypt.dprojControlling Database Access Rights The SQLite is an embedded DBMS. This implies that it is a single user DBMS and does not need such concepts as a user, access rights, and so on. Still, some application can benefit from an access right control, for example: An application can restrict rights depending on an end-user license. A demo license means less possibilities, a full license provides all possibilities. Multi-tier data access frameworks can use their own user concept and control data access rights using some generic approach.  Again, SQLite provides a unique feature allowing you to authorize or not SQL commands. To work with this API, a Delphi application should set the OnAutorize event handler of the TSQLiteDatabase object, which is a database connection wrapping object. Hook this event after a database connection is opened.DBMS Specific\SQLite\OnAuthorize\SQLite_OnAuthorize.dprojHooking Database Updates SQLite provides an unique API allowing you to monitor all updates to a database. This feature can be used, for example, to log all updates to a DB. To work with this API, a Delphi application should set the OnUpdate event handler of the TSQLiteDatabase object, which is a database connection wrapping object. Hook this event after a database connection is opened.DBMS Specific\SQLite\OnUpdate\SQLite_OnUpdate.dprojCustom Collations SQLite stores and handles all character data either in UTF8 or UTF16, depending on the OpenMode connection parameter. When SQLite needs to compare or sort a character data, it has to know what rules to use for this. The rules are known as a collation.DBMS Specific\SQLite\UserCollation\SQLite_UserColl.dprojCustom Functions SQLite does not support the stored procedure or function concept, as it allows you to use the host language environment to extend the engine functionality. SQLite allows you to register host language functions in the SQLite engine and use them in the SQL commands. FireDAC simplifies this by introducing the TFDSQLiteFunction component.DBMS Specific\SQLite\UserFunc\SQLite_UserFunc.dprojThe SQLite R*Tree Module An R-Tree is a special index that is designed for doing range queries. R-Trees are most commonly used in geospatial systems where each entry is a rectangle with minimum and maximum X and Y coordinates. Given a query rectangle, an R-Tree is able to quickly find all entries that are contained within the query rectangle or which overlap the query rectangle.This idea is easily extended to three dimensions for use in CAD systems. R-Trees also find use in time-domain range look-ups. For example, suppose a database records the starting and ending times for a large number of events. A R-Tree is able to quickly find all events that were active at any time during a given time interval, or all events that started during a particular time interval, or all events that both started and ended within a given time interval. And so forth.  DBMS Specific\SQLite\UserRTree\SQLite_UserRTree.dprojTitle: SQLite Brief Description: This snippet shows you how to populate a listbox from a SQLite database using FireDAC and LiveBindings. See the section called "Accessing a Database" in the Mobile Tuturials topic in the documentation for more information and licensing requirements.Platforms supported: iOS, Android..\Mobile Snippets\FireDACSQLite\FireDAC_SQLite.dprojEnjoySemper Fi,Gunny Mike
Read More

Get Ready for 10.4 Beta

In a blog post by Sarina DuPont, Embarcadero has announced the plans for 10.4: https://community.idera.com/developer-tools/b/blog/posts/get-ready-for-the-10-4-beta-with-update-subscription The article includes the plans for the beta, which will be made available to all active Update Subscription customers of Delphi. RAD Studio, and C++Builder. It also highlights the key features we are expecting (no promise, of course) to deliver. Specific to Delphi are: - Language Server Protocol for Delphi - Language Enhancements: Managed Records  - Unified memory management across all platforms  - VCL High DPI Styles Support  - VCL Per Control Styling - New VCL Components - GetIt Package Manager Enhancements   - Unified Installer for Online & Offline installations - Metal 2 GPU driver support (macOS/iOS) - Apple API Updates - Windows API Updates  - LiveBindings Performance Enhancements There will also be a large number of bugs and issues addressed, along with many smaller by relevant features. The Update Subscription customers beta hasn't started yet, but remember that it will be available only if your update subscription is active.
Read More

C++Builderで視覚的、かつ魅力的に強力なアプリケーションを迅速に構築しましょう!

EmbarcaderoのC++Builderは、強力なテクノロジーを活用でき、C++の機能を利用して美しいデスクトップやモバイルアプリを迅速に構築することが可能な非常に汎用性の高いアプリケーション開発ツールです。 C++Builderは、WindowsやiOSなどのプラットフォーム、JSON/BSON、Bluetooth、REST、Unicode、DirectX12などのテクノロジー、そしてSQL Server、MySQL、SQLiteのようなデータベースのサポートが組み込まれています。C++Builder IDEでは、強力なビジュアルデザインツールを使用してフル機能のC++アプリケーションを簡単に構築でき、LiveBindingなどのテクノロジーを使用してデータにすばやく統合できます。(read more)
Read More

Eating our own TMS WEB Core food

While we have used TMS WEB Core already for several internal projects, earlier this year we decided to embark on a first public TMS WEB Core project.
“Eating our own dog food” was one of the main objectives but an even more important reason was bringing the concept of our TMS Subscription Manager to the computing universe.

That is, TMS Subscription Manager is a strict Windows only desktop application while the TMS WEB Core based variant can be used from Windows, macOS, Linux, iOS, Android, in fact any computing device that has a HTML5 enabled browser, so also your SmartTV or Tesla car.

Purpose of our first public TMS WEB Core application

The new application is called TMS Subscription Dashboard. It is not a 100% replacement for TMS Subscription Manager as it can of course not launch Windows based executable installers automatically (talking about a huge security breach that would be) on every platform. But TMS Subscription Dashboard offers our customers having purchased a subscription to any of our subscription bundles information about the latest releases, the latest features, improvements & fixes added. It shows of course the status of the subscription, shows when it expires and offers a possibility to renew an expired subscription. Finally, it offers access to product manuals, product forums for support and a direct path to our social media channels.

Let’s get technical

Being software developers, I’m sure you will be interested about a number of technical tidbits about the new TMS Subscription Dashboard. To begin with, TMS Subscription Dashboard is a progressive web application.

PWA

A “progressive web application” (PWA) is a term coined for web applications that respect a number of requirements:

  • They are responsive: i.e. these web applications adapt the rendering to work optimally on a wide range of screen form factors
  • They can start offline: i.e. also with no internet connection available, the application can at least start
  • They are safe: the web application is hosted on a HTTPS enabled server and only routed from HTTPS
  • They can be installed on a desktop / home screen: the application offers a title, icon, description and can be added on a desktop or home screen for future launching without needing a browser
  • They are app-like: When launched directly, the user cannot visually see it concerns a web application, it looks & behaves as a native application

TMS WEB Core offers the creation of a progressive web application out of the box. It is an application type. When you select to create a new “TMS WEB Core PWA”, a new project template is created that satisfies all technical requirements to be a progressive web application. For the TMS Subscription Dashboard, this means we didn’t have to do any specific effort in this area except specifying an application icon, title and description.

Login

Another very nice freebie we get being a PWA is that the browser / operating system can (optionally) take care of the credentials management. Of course, the TMS Subscription Manager requires you to login to get access to the information concerning your subscription. Login is performed through your registration email and your registration code. As under the hood this concerns a web application, the browser will offer to persist the credentials entered and offer to automatically complete these for future login. It gets especially nice on a smartphone device for example, where the browser stored credentials are coupled to your biometric data. Use your touch ID (finger scan) or face ID and your previously entered credentials will be used to login. No need to remember your login information anymore. To get this functionality from a TMS WEB Core web application, all we need to do is put a TWebEdit control for username & for password in a TWebHTMLForm. The TWebHTMLForm signals the browser it concerns login information. No extra code is needed here. It takes literally not much more than putting the right controls together. Yes, RAD in its purest form as we have always loved from Delphi.

Scrolling list

Displaying the products in a subscription bundle is done via a new control: TWebContinuousScroll. This control offers a list of items that can optionally load dynamically as the user scrolls. Think about wading through your endless feeds from Twitter, Facebook, Instagram, … where new feed entries are loaded as one scrolls down. The same with TWebContinuousScroll. It can fetch information during scroll and it offers full customization (via a HTML template) of the information displayed in items. Here it is used to show per product a description, version number, release date, link to manual + tips & faq + download. Of course, TWebContinuousScroll is also mobile friendly, meaning that it offers smooth touch based scroll. If you are curious about this new control coming to TMS WEB Core v1.4, you can explore an infinite list here. Don’t forgot to try it also from a smartphone and its touch scroll.

Responsive

It is a requirement that the web application is responsive for being recognized as a progressive web application. The core responsive behavior for TMS Subscription Dashboard is achieved by 2 controls: TWebMainMenu and TWebResponsiveGridPanel. For TWebMainMenu, via which the various parts of the application are opened, there is as a developer actually nothing in particular to do. It is as RAD as it can be. Drop a TWebMainMenu on the form and add your menu items and in a desktop browser, it looks & behaves as a Windows menu. When used on mobile device, it automatically converts into a hamburger menu. Then the TWebResponsiveGridPanel is used to make the application convert from a 2 column layout on desktop to a single column layout on smartphones. On desktop browsers, there is a left column that has the main menu items and a client aligned pane in the right column that displays the information. On a smartphone, the TWebResponsiveGridPanel transforms this into a single column layout with the hamburger menu on top to select the view in the single column layout. While the responsive behavior of the TWebResponsiveGridPanel is fully configurable, it already has standard settings to differentiate between smartphone, table and desktop browsers. Also here, maximum RAD.

Get started

When you purchased any of the following subscription bundles:

you can use your credentials and login.

To let even more customers explore the results of the capabilities of TMS WEB Core, we have also opened this for customers having purchased TMS VCL UI Pack or TMS WEB Core!

What’s next?

We have a lot of exciting ideas for future version of TMS Subscription Dashboard. This could include the integration of the push notifications that are supported by TMS WEB Core. Another idea is to host the TMS Subscription Dashboard in a native application with our new Edge Chromium based browser and add the necessary bridging to give it access to registry and local files for the version management of download products and launching install & uninstall. On a whole other level there is the idea to open-source and fully document the architecture and code of this application so you can learn about every little detail and apply what you learned for your applications. But what is actually most exciting is to hear about YOUR ideas, wishes, desires. We look forward to interesting discussions!

Oh and by the way …

While we created the whole TMS Subscription Dashboard in our beloved Delphi 10.3 Rio IDE with TMS WEB Core, we also have our ongoing development to bring TMS WEB Core for Visual Studio Code. So, we were interested to see if we would be able to open this project in Visual Studio Code with an internal TMS WEB Core version and work on the project from there. As you can see, it can open & succesfully compile the project. A huge difference in the Visual Studio Code environment is that the form designer is based on a real webbrowser view, so the form designer still has some glitches that need to be worked on to make the form designing a smooth experience. So, also here, eating our own TMS WEB Core food will be an interesting experience.

Read More

Read More

TMS WEB Core: Webanwendungen mit Delphi entwickeln

Lernen Sie in diesem 350-seitigen Buch die zahlreichen Möglichkeiten der
Softwareentwicklung mit TMS WEB Core kennen.

Seit mehr als zwei Jahrzehnten ist Delphi bekannt für die schnelle Programmierung von Windows-Anwendungen. Insbesondere die einfache Erstellung von Desktop-Datenbankanwendungen und die unkomplizierte Bereitstellung der Anwendungen auf Kundensystemen machten Delphi gegenüber anderen Programmiersprachen populär. Seit einigen Jahren kann Software für die Zielplattformen Linux, MacOS sowie die mobilen Betriebssysteme iOS und Android erstellt werden.
Mit TMS WEB Core können seit Anfang 2018 moderne Webanwendungen mit Delphi programmiert werden, die vollständig im Webbrowser ausgeführt werden, da die programmierten Anwendungen in JavaScript übersetzt werden.

  • Ausführliche Beschreibung der Grundlagen, der Funktionsweise und des Transpilers (basierend auf pas2js)
  • Schrittweise Erstellung der ersten Webanwendung
  • Progressive Web Applications (PWA) zur Offline-Nutzung
  • Electron Anwendungen: Plattformübergreifende Desktopanwendungen basierend auf Webanwendungen
  • Einbinden von JavaScript und JavaScript-Komponenten
  • Erstellen von Webservices für Datenbanken mit TMS XData
  • Einbinden von Datenbanken mit TDataset-Komponenten
  • XData-spezifische Funktionalität bei der Nutzung in Webanwendungen
  • Responsives Webdesign (Formulardesigner, HTML, CSS, Bootstrap)
  • Abschließendes Kapitel mit umfassendem und praxisnahem Beispiel mit
    Server- und Webanwendung mit Google Maps und Google Charts

Die Inhalte sind sowohl für Einsteiger als auch für fortgeschrittene Entwickler geeignet, die sich für die Erstellung von Webanwendungen mit TMS WEB Core interessieren.

Vorausgesetzt werden Kenntnisse in Delphi (Object Pascal) und der Visuellen Komponenten Bibliothek (VCL). Zum Reproduzieren der zahlreichen Beispiele benötigen Sie eine aktuelle Version von Delphi und TMS WEB Core. Die kostenfreie Delphi Community-Edition ist ausreichend sowie die Testversion von TMS WEB Core.

Eine englischsprachige Version ist in Arbeit und wird in den nächsten Wochen erscheinen. Die deutsche Sprachfassung ist weltweit auf allen Amazon-Shops verfügbar.

USA: https://www.amazon.com/dp/1090700822/

DE: https://www.amazon.de/dp/1090700822/

Holger Flick

Dr. Holger Flick studierte Informatik an der Universität Dortmund und promovierte an der Fakultät Maschinenbau der Ruhr-Universität Bochum.

Bereits seit 1996 programmiert er mit Delphi und war immerzu in der Community aktiv. Während und nach dem Studium arbeitete er als Freiberufler an zahlreichen Projekten für Borland und konnte sich so mit vielen Delphi Experten aus dem Scotts Valley in Kalifornien direkt austauschen. Hauptsächlich testete er Delphi für die QA Abteilung, programmierte aber auch Datenbankanwendungen und Webanwendungen für das Borland Developer Network. Auch auf Konferenzen und Seminaren hat Holger zu den verschiedensten Delphi Themen vorgetragen. Sein Engagement und seine umfassenden Kenntnisse im Bereich der Delphi Programmierung, erlangt durch seine jahrelange theoretische und praktische Arbeit im Themenbereich der objektorientierten Programmierung mit Delphi und anderen Programmiersprachen (z.B. C#, Objective-C), führte zu seiner Ernennung zum Embarcadero Delphi MVP im Jahr 2016. Von 2013 bis 2018 war Dr. Holger Flick bei der Korfmann Lufttechnik GmbH in Witten für die gesamte Software- und Hardwarearchitektur der Firma verantwortlich und entwickelte unter anderem unternehmensspezifische Softwarelösungen mit Delphi. Seit 2017 präsentiert er Produkte und Lösungen von TMS Software als Chief Evangelist in Form von zahlreichen technischen Artikeln, zweisprachigen Video Tutorials und führt durch Seminare.

Im Jahr 2019 gründete er FlixEngineering LLC und machte die Vereinigten Staaten von Amerika zu seinem neuen zu Hause.

Read More

Read More