There is so much to tell about TMS WEB Core, so we kindly invite you to visit our landing page: http://web.tmssoftware.com where more information is provided, including online demos, video tutorials and more.
We're sure you'll be excited to get started exploring these new features. Our team has been long & hard at work on this. Explore TMS WEB Core v1.3 Ferrara and share your experiences and your comments with us.
There is a lot to discover in TMS WEB Core v1.3 Ferrara. Our colleague Holger Flick made it is easy & fast for you to discover what is new with a video covering the details. In about 10 minutes, you will know all about the new release. Holger made the video in English as well as German language.
This is the English video:
This is the German video:
Get started:
The new v1.3 Ferrara version is available now for TMS ALL-ACCESS users, TMS WEB Core registered users and TMS WEB Core trial users!
For TMS ALL-ACCESS users, simply use the TMS Subscription Manager and from there, you can download and install TMS WEB Core v1.3 Ferrara.
The v1.3 full version for registered users, can be download after login on our website under "Account / My Products / TMS WEB Core".
Note: first perform an uninstall of the previous version!
More information:
There is so much more to tell about TMS WEB Core, so we kindly invite you to visit our landing page: http://web.tmssoftware.com where more information is provided, including online demos, video tutorials and more.
We're sure you'll be excited to get started exploring these new features. Our team has been long & hard at work on this. Discover TMS WEB Core v1.3 Ferrara and share your experiences and your comments with us.
A while back, we brought FNC to the WEB, except TMS FNC Blox was missing due to some deep technical limitations. We can now proudly announce that TMS FNC Blox supports TMS WEB Core!
Features
Below is a list of features that are supported in TMS FNC Blox.
High-quality (anti-aliasing) drawing of blocks and lines
Open architecture for building custom blocks and lines inherited from base classes
Ready-to-use flowchart, arrow and electric blocks
Linking system allow customizable link points and information retrieval of connected blocks
Block gradient, shadow and bitmap
Full block customization: pen, brush, color, selection color, minimum width and height
Block text customization: horizontal and vertical alignment, font, word wrap, clipping
Customizable link points in blocks
Full line (link) customization: pen, source arrow shape, target arrow shape
Arc & bezier lines, polygon objects
Block rotation supported (including text, bitmap and gradient)
Separate TTMSFNCBloxToolBar component for easy diagram editing with no line of code (needs TMS FNC UI Pack)
Diagram snap grid
Diagram rulers
Saving/Loading diagram to/from file and stream
Diagram zoom in/out
Panning
Helper classes TTMSFNCBloxBlockDrawer for easy custom drawing on custom blocks
Object deletion and inserting, zooming, and more.
Compatibility
With FNC we aim for reusable code and when bringing TMS FNC Blox to the WEB we wanted to maintain compatibility with FMX, LCL and VCL as much as possible. By rewriting the persistence part of TMS FNC Blox and integrating it into TMS FNC Core it is possible to load blox files that have been saved in a VCL, LCL or FMX application into a TMS WEB Core client application. The code for creating and registering custom blocks in VCL, LCL or FMX is also compatible with TMS WEB Core.
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 2018, 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.
Expertise:
VCL UI Pack
Business Suite Products (XData, Remote DB, Sparkle)
Web Core
FNC Framework solutions
On-Site Training
Primary involvement in TMS products:
Trainings
Recording tutorial videos
Speaking at conferences (in-person or virtual)
What's next?
Currently, Dr. Holger Flick is hard at work to self-publish a book for TMS Web Core in German language.
TMS Partnership:
Even though FlixEngineering has just been founded in 2019, the relationship and cooperation with TMS Software and its owner, Bruno Fierens, has existed
since the early 2000s. Holger Flick, owner of FlixEngineering, met Bruno Fierens in person at a developer event in the Netherlands in 2004, and ever since Holger has been a fan and supporter of TMS components.
Back in the day, Holger was still a college student, but his focus was already on posting on the web about interesting Delphi component sets and practices. Holger was one of the first Delphi Bloggers, his blog was called "Holger's Thoughts on Delphi". Borland (remember, this was a long time ago.) recognized that he had a talent to find bugs in software rather sooner than
later, which led to Holger becoming part of the Delphi QA team.
Image may be NSFW. Clik here to view.Image may be NSFW. Clik here to view.
The involvement with TMS only grew stronger through the years as TMS was a close partner of Borland, and Holger also started testing component sets for TMS Software. Further, he had the guts to make suggestions how to extend and improve certain components. After finishing his studies and deciding that he loved teaching people about Delphi and associated technologies, Holger became part of the TMS Team in 2017. In 2018, he moved to the United States of America, founded FlixEngineering, and promotes TMS products on that continent in person and world-wide online.
Thus, FlixEngineering is your partner for trainings and software development.
Finally:
Working with us means counting on decades of experience in Delphi and
facilitate the power of the TMS Consulting Partner Network.
TMS Logging is a compact cross-platform logging framework offering informative log output to a flexible number of targets with a minimum amount of code. EurekaLog is a first-class exception logging tool for Delphi. We have recently joined forces and worked together to allow you to integrate both in an easy way.
So, if you are using TMS Logging in your application - it may be useful to get TMS Logging output as part of your EurekaLog's crash reports, so you will get a better understanding of execution flow of your application before crash.
TMS Logging supports custom output handlers, so you may simply redirect all logging from TMS Logging to EurekaLog by:
uses
TMSLoggingEurekaLogOutputHandler;
TMSLoggingEurekaLogOutputHandler unit can be found in SourceExtras folder of your EurekaLog installation. You can activate this output handler by using the usual construct:
This will create EurekaLog log file according to default rules. If you wish to specify file name or location - use ELogOpen function to open log file before registering output handler. In any case - EurekaLog log file will be automatically appended to crash report:
>
Image may be NSFW. Clik here to view.
Additionally, you may make a local copy (e.g. copy file to project) of TMSLoggingEurekaLogOutputHandler unit if you want to make modifications.
This approach is recommended over the alternative (see below), because it sends log in a formalized format, allowing for client-side manipulations in viewer tool.
TMS Logging to EurekaLog (alternative)
You may attach TMS Logging output as file directly (without converting to EurekaLog's logging).
Note: TMS Logging only provide saving to text formats (text, HTML, CSV). That is why we recommend to use above mentioned method instead (when possible).
You can attach the log file from TMS Logging with the following code example:
Important Note: example below will add a new file with log output from TMS Logging. The new file will be added inside EurekaLog's bug report that is being send to developers. E.g. you have to set up sending to receive this file. The local EurekaLog's report do not store any additional files. If you wish to capture .elp file locally for testing purposes - see this example.
uses
VCL.TMSLogging, // for TMS Logging routines
// You can also use TMSLoggingHTMLOutputHandler
// Please, refer to TMS Logging documentation
TMSLoggingTextOutputHandler,
EException, // for TEurekaExceptionInfo
ESysInfo, // for GetFolderTemp
EEvents; // for RegisterEventZippedFilesRequest
var
// File name for TMS log file
GTMSLogFileName: String;
// Initialize TMS Logging to save log to text file
// This is just an example
// You may replace/customize it
// Please, refer to TMS Logging documentation
procedure InitTMSLogging;
begin
GTMSLogFileName := GetFolderTemp +
ChangeFileExt(ExtractFileName(ParamStr(0)), '.txt');
TMSLogger.RegisterOutputHandlerClass(TTMSLoggerTextOutputHandler, [GTMSLogFileName]);
end;
// Will be called when EurekaLog wants to
// add additional files to packed bug report file (.elp)
procedure PackLogFile(const ACustom: Pointer;
AExceptionInfo: TEurekaExceptionInfo;
const ATempFolder: String;
AAttachedFiles: TStrings;
var ACallNextHandler: Boolean);
var
LFileName: String;
begin
// Get a temporary filename
LFileName := ATempFolder + ExtractFileName(GTMSLogFileName);
// Copy the log file
CopyFile(PChar(GTMSLogFileName), PChar(LFileName), False);
// Pack the file to EurekaLog's crash report
AAttachedFiles.Add(LFileName);
end;
initialization
// Initialize TMS Logging to save log to text file
InitTMSLogging;
// Ask EurekaLog to add more files to .elp reports
RegisterEventZippedFilesRequest(nil, PackLogFile);
end.
When you receive crash report from EurekaLog - the TMS Logging log will be shown as file attach:
Image may be NSFW. Clik here to view.
EurekaLog to TMS Logging
Alternatively, you may want to set up a reverse integration. E.g. you may want to have EurekaLog's crash information inside your TMS Logging log files. Use example below:
uses
VCL.TMSLogging, // for TMS Logging routines
EException, // for TEurekaExceptionInfo
EEvents; // for RegisterEventExceptionNotify
// Tell EurekaLog to log crash info with TMS Logging
procedure LogExceptionToTMS(const ACustom: Pointer;
AExceptionInfo: TEurekaExceptionInfo;
var AHandle: Boolean;
var ACallNextHandler: Boolean);
begin
// Log exception
TMSLogger.Error(Format('[%s] %s',
[AExceptionInfo.ExceptionClass,
AExceptionInfo.ExceptionMessage]));
// Log exception's call stack
TMSLogger.Info(AExceptionInfo.CallStack.ToString);
// You may also log other properties of AExceptionInfo
// Or you can use routines from ESysInfo to log process and environment info
// Of you can use BuildBugReport function to compose bug report text
end;
initialization
// Tell EurekaLog to log crash info with TMS Logging
RegisterEventExceptionNotify(nil, LogExceptionToTMS);
end.
It's fascinating how everything evolves so incredibly fast in the software world!
So our team is also trying really hard to keep up with the latest developments.
And to give our customers access to all our latest developments we have created our no-nonsense subscription TMS ALL-ACCESS!
Because we want our customers to be able to use all our products with no restrictions or limitations.
And when we say ALL we really mean ALL our products we offer now and also all new products we'll release in the year of the subscription. Moreover, our all-access users are the first to receive the previews and betas of our non-released products!
Here is a small overview of the new products we added in 2019:
April 2019: TMS FNC Cloud Pack: Seamless access to cloud services from Windows, cross-platform and the web. Included in the TMS FNC Cloud Pack is the ability to create/implement your own REST service client(s).
June 2019: TMS WEB Core Padua: New additions on many levels:
Object Pascal to JavaScript compiler improvements, new web frameworks & controls support, new UI components, improved IDE integration.
July 2019: TMS VCL UI PACK: TMS Component Pack became TMS VCL UI Pack!
All components were revised for high DPI & VCL Styles support and internally the TMS Component Pack completely moved to a new build platform that was already in use for our cross-platform FMX & FNC products.
November 2019:
Introduction of a new groundbreaking product: "TMS WEB Core for Visual Studio Code"
At the TMS Training Days in Düsseldorf, Germany as well as at the Be-Delphi conference in Belgium, José León Serna (creator of Delphi for PHP & former Embarcadero IDE lead architect) presentated the preview of TMS WEB Core for Visual Studio Code. After more than a year of hard work & intensive collaboration with the TMS team, this technology preview, with an almost complete feature set for the first release, was presented to the audiences.
December 2019: TMS WEB Core Ferrara:
20 new features were added to TMS WEB Core v1.3.
December 2019: TMS FNC Blox:
With FNC we aim for reusable code and when bringing TMS FNC Blox to the WEB we wanted to maintain compatibility with FMX, LCL and VCL as much as possible. By rewriting the persistence part of TMS FNC Blox and integrating it into TMS FNC Core it is possible to load blox files that have been saved in a VCL, LCL or FMX application into a TMS WEB Core client application. The code for creating and registering custom blocks in VCL, LCL or FMX is also compatible with TMS WEB Core.
January 2020:
Coming up in January 2020: TMS WEB Core for Visual Studio Code BETA will be available for TMS ALL-ACCESS users!
And we have a long list of new component and new product ideas for 2020!
One of our many commitments for 2020: make user experience more pleasant!
Use the TMS Subscription Manager with a single login to get instant access to all products in your TMS ALL-ACCESS subscription.
TMS Subscription Manager categorizes the products per technology : VCL, WEB, FMX, BIZ, FNC, DEV, .NET, IntraWeb and LCL.
Per product, you get a description, link to the product webpage, info on latest available version and release date, info on your last download version and download date and info on your last product install version and date.
You can mark specific TMS products as your favourite products.
It allows you to start multiple downloads.
Behind the scenes, TMS Subscription Manager keeps a backup of any product versions you have downloaded. Right-click on the downloaded version number cell per product and from the context menu you can see all available versions (if there are any) and activate another version for install.
The TMS Subscription Manager keeps you always informed about the validity of your subscription and will guide you to the renewal order upon expiry.
From the TMS Subscription Manager there is a comprehensive list of links to interact with us, via email, social media, forums, RSS, Youtube videos ...
So cover 2020 now with your TMS ALL-ACCESS license and you don't have to do anything else for the rest of the year!
BTW did you know that the renewal price after 1 year is just 495 EUR ?!
Find out more about our products included in TMS ALL-ACCESS.
With great pleasure we announce another great collaboration with Wagner Landgraf, architect TMS Business tools. Wagner Landgraf is now organizing online training courses for TMS WEB Core! If you work with Delphi and haven't lived in a cave in the last two years, you certainly know what we are talking about!
TMS Web Core revolutionized web development with Delphi. It is the first Delphi framework to be able to produce a truly 100% WEB HTML/JS application, without the need for binaries, executables, where you can deploy the application to any hosting server.
This new paradigm introduces a number of new concepts for the traditional Delphi programmer. This course covers all of these concepts from both general web applications and TMS Web Core specifics.
You will learn concepts from the beginning: what is a web application, how does it work, what are single page application (SPA) and multiple page application (MPA), what is HTML, JavaScript, CSS, Bootstrap, AJAX.
From this foundation, you will learn how to develop Web applications with Delphi and TMS Web Core, learn about the structure of the Web Core application, language aspects, integration with JavaScript, how to use the visual framework, up to using backend databases, whether using TMS XData or other server framework of your choice, creating screens for CRUD functions.
The course has a conceptual introduction, but from there it becomes extremely practical, hands-on, with virtually every source-code lesson available for you to execute, modify, debug, and learn!
Developers looking to build WEB applications using Delphi, following modern Single-Page-Application architecture.
What will you learn?
Web Application Concepts: HTML, JavaScript, CSS, AJAX, Bootstrap.
Web Application Architecture: History, MPA, SPA.
Create a default directory structure and use Build Configuration TMS Web Core: Project installation, configuration, and structure.
Pascal / JavaScript Compiler: Language integration with JS, RTL, basic types, closures, asm, RTTI, etc.
TMS Web Core Visual Component Library - Creating the UI.
Working with data via backend: AJAX, ClientDataset, XData.
Prerequisites
Know the Delphi language
Knowing how to use Delphi / RAD Studio IDE
Delphi XE7 or later installed
TMS WEB Core (free trial or registered version) if you want to run the examples
Do you find it difficult to understand spoken English?
No problem, in all videos of this training course you have the options to turn on subtitles, and they were not auto-translated. All subtitles were written manually to make sense and with technical terms spelled correctly.
Full source code for examples
Each lecture of this course that uses a sample project has an associated downloadable file which includes the full source code of the example.
Special offer for YOU!
If all this made sense to you, then I have excellent news for you.
You can now take advantage of this online training course at reduced price!
Register today and use the following coupon code WEBCOREPROMO60 to get 60 USD (around 30%) discount for the Introduction to TMS Web Core training course.
So don't waste your time and be one of the first to secure your place in the TMS WEB Core online course with Wagner Landgraf.
To our own surprise, over the last years, we have written almost 450 blog articles. That is an amazing amount and most of these blog articles contain valuable technical information and tips about our products.
At the same time, we noticed that older blog articles were rarely read and we found ourselves time and time again pointing to older blog articles when giving our users guidelines in response to support communication.
In a nutshell, a reorganization of how our blog articles can be viewed and more importantly how to navigate in these blog articles was overdue.
So we decided to revamp our blog page to make it easier to recover older blog posts for everyone.
The following new options are available now:
Featured post: An important post can remain on top of the page to make it stand out
A text search on keywords
Voting on blog posts to indicate what is relevant and liked by you
Filter posts by technical (framework) category
Filter posts by product name
Filter posts by author
Sort posts by popularity based on the number of votes
Sort posts on the number of pageviews
With all these new options, anyone should be able now to find interesting blog posts much faster and easier.
Fast discoverability of relevant information for you is crucial and we are convinced this is another big step towards achieving that goal. This big step forward is by no means a final step. Further fine-tuning to maximize your user-experience is on our agenda. We therefore also count on your feedback and inputs to help steering these efforts! The blog comments section is an ideal place to start this interaction.
Our team is very hard at work to continue to extend and improve our products, extend the documentation and make new demos.
We do this on a daily basis to make sure we offer you the best solution for your projects!
In 2019 we focused primarily on our FNC framework. Not only improving our existing components, but also adding new products, such as the TMS FNC Cloud Pack, TMS FNC Dashboard Pack, ...
And that because we truly believe that FNC is the next generation cross-platform framework!
Our FNC development originated from our vast experience and deep technical expertise developing FMX components since it first appeared in Delphi in 2011 and as it became available in TMS FMX UI Pack, TMS FMX Chart and TMS FMX Cloud Pack.
We developed it because with our experience, we thought there was a better way to create cross-platform UI controls.
The most important differences between FMX and FNC are:
Image may be NSFW. Clik here to view.
Image may be NSFW. Clik here to view.
Architecture based on orginal FireMonkey classes
Not easy to extend/customize
Performance is hard to achieve when complex UI controls involve many objects
Basic design-time integration
Supports the FMX framework only
New independent architecture built-up from scratch
Easily extendible with many customization options/events
Faster performance, high quality graphics
Enhanced design-time integration
Supports multiple frameworks (FMX, VCL, LCL and WEB)
High level of compatibility with older FMX code
TMS FNC components can be simultaneously used on these 4 frameworks: Image may be NSFW. Clik here to view.
TMS FNC components can be simultaneously used on different operating systems and browsers: Image may be NSFW. Clik here to view.
Unique advantages of FNC
an easy maintainable single-source cross-framework/cross-platform code base
seamless integration in new and existing applications, can be mixed with other regular FMX or VCL controls
high performance and high quality graphics
intuitive & consistent property layout to smoothen the learning curve
only 1 license & only 1 learning curve to create applications for VCL, FMX, LCL and WEB
Large range of FNC controls available
TMS FNC Blox: Add diagram and flowchart capabilities to your application.
TMS FNC Chart: Fully cross-platform chart for business, statistical, financial & scientific data
TMS FNC UI Pack: Powerful, feature-rich UI controls for 4 frameworks and 5+ operating systems
TMS FNC Dashboard Pack: Create dashboard applications for Windows, cross-platform and the web
TMS FNC Cloud Pack: Seamless access to cloud services from Windows, cross-platform and the web
Looking for components to enhance your cross-platform project? We invite you to visit the TMS FNC landing page where more information is provided, including key features, demos and more...
Upgrade your license to TMS FNC components and take advantage of the different possibilities to develop extraordinary projects.
Eager to try out our FNC components?
Contact sales@tmssoftware.com for the best discount upgrade offer depending on your currently purchased products.
At the end of 2019 we made a big announcement about at TMS WEB Core for Visual Studio Code.
In collaboration with José León Serna (creator of Delphi for PHP & former Embarcadero IDE lead architect) and the TMS team, we presented a preview with an almost complete feature set for the first release.
Visual Studio Code
Image may be NSFW. Clik here to view.
Visual Studio Code is a free, open-source, extensible and cross-platform IDE. This means that the Visual Studio Code IDE works exactly the same on Windows, macOS and Linux and this also with full high-DPI support. Visual Studio Code is an initiative from Microsoft and focuses on being open & extensible.
José León Serna has created many useful videos about Visual Studio Code. The videos are available on our social media.
Below is a list of the existing videos and many more will follow!
Our TMS ALL-ACCESS users will be the first to receive a beta for this product. We will send out notifications when this is ready.
Our team already has ideas for further developments in several directions. But we would also love to hear from you what extra features, future directions you would like to see for this project.
Leave a comment below!
2020 is a very exciting year for all Delphi lovers! Delphi 1.0 was released 25 years ago and celebrates its 25th birthday this year.
In 1995 we were totally excited writing our first VCL UI control for a 16bit Windows 95 application in Delphi 1. 25 years later Delphi is the powerhouse that permits building native VCL Win 64 per monitor high-DPI enabled Windows applications, cross-platform FMX apps running on Windows, macOS, iOS, Android, Linux using a TMS Aurelius ORM and/or a TMS XData REST backend to abstract database access. A world of difference between 1995 and 2020 but still using a highly backwards compatible and familiar RAD component based development approach.
Celebrate 25 years Delphi with us and win prizes!
To share the passion and celebrate, in February we have a special Valentine challenge for you.
Take a screenshot of your coolest project you created with Delphi using TMS components.
Share this screenshot with a comment what TMS components are involved on social media.
Prizes!
You are in control who wins. Simple! We count the number of likes + shares + comments. The top 3 participants with the highest count win one of these awesome prizes:
Image may be NSFW. Clik here to view.
Are you one of our winners and you already have this license? Then you will receive a FREE LICENSE RENEWAL.
That is not all! Our top 3 winners will also receive this limited edition TMS mug, we give away the very last 3 pieces of this limited series we created:
TMS WEB Core
TMS WEB Core enables to build modern web client applications following the single-page architecture that also other modern frameworks like Angular, vue.js, React employ.. TMS WEB Core is offered at 395 EUR. But this month, when you participate in the challenge, you get 20% extra discount, so for 316 EUR only.
TMS FNC Component Studio
With this bundle you have the freedom to create powerful apps of your choice. Separate purchase of the products will cost you 460 EUR. This bundle is offered at 295 EUR, but this month, participants can get this for discount price 236 EUR.
TMS VCL UI Pack
Create modern-looking & feature-rich Windows applications faster with over 600 components in one money and time saving bundle for Delphi & C++Builder. Regular bundle price is 295 EUR, but only this month, when you participate in the challenge, you get an extra 20% discount on this bundle, so this is 236 EUR only!
TMS Business Subscription
TMS Business Subscription is our bundle framework that includes: TMS Aurelius, TMS XData, TMS Scripter, TMS Data Modeler, TMS RemoteDB, TMS Echo, TMS Diagram Studio and TMS Workflow Studio. You can purchase your license for regular price 395 EUR. But when you participate in the challenge, this month you can get your license for 316 EUR only!
TMS ALL-ACCESS
TMS ALL-ACCESS is our no-nonsense bundle, where you get all our components for just 1695 EUR, instead of 5870 EUR. And yes, when you participate in the challenge, on top of that you get 20% extra discount this month! So you can get all our components for 1356 EUR.
Note: This discount offer is valid until February 29, 2020.
Ready, set, go...
The registrations are open from February 1 until February 13. The winners will be announced on February 14 on our social media and blog page!
Unless you have been living under a rock, you will know that Microsoft has been busy transforming their Edge browser to be based on Google Chromium. This means Edge ditches the EdgeHTML rendering engine as well as its JavaScript engine ChakraCore. Now Edge will use the Blink rendering engine and the V8 JavaScript engine.
Some consider this excellent news, especially for browser compatibility for your websites (one less rendering engine to check against), others are sceptical that this reduces competition in the browser world. As always, it is hard to please everyone. Image may be NSFW. Clik here to view.
Now, for Delphi developers this is fantastic news! With adopting Chromium, Microsoft also did the necessary effort to provide the ability to host the browser in your native Win32 or Win64 applications! And yes, I hear your relief. Finally, after all those years, developers can finally get rid of the dependency on the Internet Explorer activeX with all its rendering and security issues and less and less website compatibility every day. As Microsoft will roll-out Edge Chromium to Windows 10 machines (their only actively supported Windows operating system these days). This means that the solution eventually will require no extra deployments with your Delphi executables (as opposed to using the standalone CEF4 Chromium engine that requires a myriad of DLLs and other files to deploy).
Being very excited about this, we decided to already prepare for this and develop a browser component for Delphi (and in the process also for Lazarus) that is based on the new Microsoft Edge Chromium. While working on this, we thought we could as well create it for VCL Delphi applications as for FMX (FireMonkey) Windows applications (and LCL Lazarus applications).
Oh wait, I said one component that can be used in 3 different frameworks? Yes, for 4 years already we have our FNC technology (Framework Neutral Components) that allows us to do this.
So, in a nutshell, in an upcoming TMS FNC Core update, expect the new web browser to be included that uses Edge Chromium out of the box. As an extra cherry on the cake, this browser will offer live preview of pages at design-time.
Here is Lazarus 2.0.6 showing an LCL application with a live Edge Chromium based browser component: Image may be NSFW. Clik here to view.
Microsoft is doing a staged rollout of their new Edge Chromium since Jan 15, 2020, but if your Windows 10 was not yet updated with it, you can download it here.
Get started with our FNC components for VCL applications, FMX applications, LCL applications and TMS WEB Core clients today. Shortly, we will release the TMS FNC Core update with the new Edge Chromium support. Stay tuned also for more extremely exciting new developments brewing in our labs and coming to FNC soon!
Our Delphi static code analysis tool just got updated. TMS FixInsight is your indispensable tool to enhance your Delphi code quality and make it less prone to errors than your Delphi compiler warns for.
TMS FixInsight catches numerous classic patterns of mistakes in code and with the new version v2020.2, three new rules have been added:
C11 Exception class name should start with 'E'
This is an obvious rule. TMS FixInsight will now just produce a hint that exception class name should start with E so your code remains as consistent as possible.
W535 Enumerated constant(s) missing in case statement
In the code below, etThree is missing from the case structure and will trigger a warning.
Example:
type
TEnumType = (etOne, etTwo, etThree);
var
EnumType: TEnumType;
begin
case EnumType of // <= W535
etOne: ;
etTwo: ;
end;
end;
It's not always an error, but worth taking a look. Maybe add else statement.
type
ISomeInterface = interface
['{AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA}']
end;
TSomeClass = class(TInterfacedObject, ISomeInterface)
end;
procedure DoSomethingWithSomeInterface(const SomeInterface: ISomeInterface); begin
// ...
end;
procedure DoSomethingWithSomeClass;
begin
// ...
// After this call TSomeClass instance will not be released.
// There is a potential memory leak.
DoSomethingWithSomeInterface(TSomeClass.Create); // <= W536
// ...
end;
The update v2020.2 of TMS FixInsight is available now. All active registered users can get this update after login on our website.
Reflecting back on the past 25 years, it was nothing short but an exciting Fantastic Voyage. Without Delphi, my life would have been radically different and TMS software would not be what it is today. Here is a short timeline of what were milestones for us in these 25 years:
1995: Delphi 1 release. I literally couldn't wait till the Delphi 1 box landed in the software store in Belgium. I drove about 100km to the distribution center to pick up my Delphi 1 box the day the shipment of boxes arrived from the airplane in the depot. Being a self-employed software consultant, I instantly switched my development projects from Turbo Pascal for Windows to Delphi
1996: Delphi 2 release. The move from 16bit to 32bit Delphi applications instantly gave our programs a huge headroom and increased stability.
1998: TMS software is recognized as Borland Technology Partner. I was especially proud to become part of the Borland inner circle of partners and being involved in product betas and travel numerous times to Scotts Valley to learn about new developments.
1998: I started a collaboration with Wagner Landgraf. Wagner is living & working in Brazil and also doing Delphi component development. Now, 22 years later, there is not only a strong collaboration but also a strong friendship and Wagner Landgraf is instrumental in key TMS products and helps steering the direction of the company.
1999: Borland launched Kylix. "Living la vida Linux" was the tagline of Delphi developers these days. Although it was a bumpy road, we also offered CLX components that could be used to create native Linux applications from Kylix, the Linux cousin of Delphi.
2000: The company tmssoftware.com bvba was officially established. I made the move from registered single & self employed software consultant doing mainly component development to work as owner of the established company tmssoftware.com bvba. Yes, in October this year we have 20 years of the official company establishment to celebrate!
Image may be NSFW. Clik here to view.
2000: I started a collaboration with Adrian Gallero. Adrian is working out of Uruguay on the Flexcel Delphi product. This year we have 20 years of collaboration and friendship to celebrate! Together with Wagner Landgraf, we still regularly brainstorm on every new step the company makes.
2001: TMS launches IntraWeb components. Atozed created a game-changer with IntraWeb, enabling RAD component based web development from our beloved Delphi IDE. Delphi developers were no longer confined to developing Windows applications but could embrace the web from now on.
2003: In the Belgian office our first colleague Bart Holvoet joins the TMS family. Bart is initially dedicated to IntraWeb development. Up till today, Bart is still working at TMS as expert mainly in Delphi and web development.
2004: Borland brings Delphi 8 for .NET. Since Microsoft introduced the .NET framework, it has taken the development world by a storm and Borland judged it couldn't stay behind and introduced a compiler to generate .NET code from Delphi. This was based on the VCL.NET framework, a variant of the Win32 VCL framework. As customers expected and demanded to move their applications to .NET, we did all the hard work to make our VCL components VCL.NET compatible.
2007: The Belgian team grows with Pieter Scheldeman joining. After so many years, Pieter oversees all cross-platform and especially the FNC framework among many other things.
2009: Codegear brings Unicode to Delphi. Having been stuck in the ANSI zone for so long, an equally liberating move was the introduction of Unicode out of the box as default string type.
2011: Delphi XE2 brings Win64bit development to Delphi developers. The 32bit compiler that served from 1996 till today got a big brother DCC64 to brings our Delphi applications to the 64bit memory space.
2011: Delphi XE2 kicks-off the cross-platform era. Delphi XE2 is the landmark of a major new direction Delphi is taking with bringing cross platform development, initially for iOS for Apple's new iPhone. The FireMonkey framework (FMX) is the cross-platform counterpart of what VCL is for Windows specific development. Excited with this new world opening for Delphi developers, we get started developing FMX components right-away.
2012: Delphi XE3 brings the Delphi compiler to iOS and OS-X. As in Delphi XE2 it was still using the FPC compiler to compile applications to iOS, now Embarcadero offers its own compilers for iOS and OS-X
2013: Delphi XE5 brings Android support to Delphi. The cross-platform family extends and now spans Win32,Win64,iOS,macOS and Android. TMS ensures our family of FMX components are compatible for all these platforms
2017: Delphi 10.2 Tokyo adds Linux support. Delphi extends the range of supported platforms once again with support to build Linux applications. After the first feet in the Linux territory with Kylix in 1999, Delphi is back generating Linux applications but this time from a Windows IDE.
2018: TMS Launches TMS WEB Core. Based on Pascal to JavaScript compiler, TMS WEB Core empowers Delphi developers to develop rich web client applications in RAD component based way just like Delphi 1 introduced with the VCL and based on the Object Pascal language.
Image may be NSFW. Clik here to view.
2020: TMS Launches its Academic License program. Realizing how important it is to nurture the next generation of enthusiast and passionate Delphi developers, we want to contribute in our way to empower young aspiring developers to discover the power of Delphi. Read more about the TMS Academic Program here.
Image may be NSFW. Clik here to view.
It is now Feb 14, 2020. 25 years after the Delphi 1 in 1995 and I am extremely thankful for being blessed with living my passion for all these years. I am very happy, honored and respectful to be part now of TMS family of 17 bright, intelligent, passionate and creative Delphi developers. I am proud and humble at the same time for the trust of so many customers world-wide creating great Delphi applications with our components. I am filled with gratitude for the many friends I learned to know all around the world sharing the passion of software development and Delphi. I am ready for the next 25 years of passion and adventure. Are you?
Image may be NSFW. Clik here to view. February 14th is a very special date!
Everyone celebrates Valentines Day.
Delphi developers celebrate Delphis birthday.
And today TMS sets another milestone with the launch of the TMS Academic Program!
2020 is a very exciting year for all Delphi lovers! Delphi 1.0 was released 25 years ago and celebrates its 25th birthday this year.
This is definitely not only a milestone but marks also the time for getting a new generation up to speed. Many friends Delphi developers I learned to know in these 25 years have meanwhile kids that grew to young adults and many of them also have a passion for IT. Embarcadero did a fantastic move introducing the Delphi Community Edition for students a couple of years ago. We decided to make our contribution as well for students aspiring to become equally passionate Delphi developers as we are. With the Delphi Community Edition students already have an extremely powerful tool in their hands and we want to enrich this with offering our most popular products also free to students with the TMS Academic Program.
From today, we can proudly announce that our TMS VCL UI Pack is the first product in the TMS Academic Program. Our TMS VCL UI Pack is not only one of our most popular products, it is also the product with the longest history and accompanied Delphi since Delphi 1. With TMS VCL UI Pack, students can extend their software development toolbox with a huge range of UI controls to create feature-rich and modern looking user interfaces.
Begin this month we announced a special Valentine challenge to all Delphi users.
Everyone could simple share a screenshot of their project, created with Delphi using TMS components and win free licenses.
We counted the number of likes, shares and comments on Facebook and Twitter. And our top 3 with the highest counts are:
1. Anderson Da Campo
Image may be NSFW. Clik here to view.
2. Yashar Nahar
Image may be NSFW. Clik here to view.
3. Alex Schmitt
Image may be NSFW. Clik here to view.
the winners can contact our team to receive their free license.
All other participants will receive 20% discount on a TMS license of their choice. They can contact our team at info@tmssoftware.com with a reference to their post.
Roman Kassebaum started to work with Delphi in 1996 after he graduated with a Master degree from the University of Paderborn. Since 2001 he is working as a freelancer. He is a Delphi MVP and an Embarcadero Technology Partner. During the last years he became a member of the great TMS team and is also a certified TMS Consulting Partner. He is a specialist in all kinds of Delphi projects including TMS Business components TMS Web Core library for which he created the Delphi IDE integration.
Company history
Started in 1996 with Delphi and in 2001 as a freelancer.
Kassebaum is a family business: Roman is supported by his wife and sons. The older one already studies Maths and Information Technology. The younger one currently builds web sites.
Image may be NSFW. Clik here to view.
Rapid-fire with Roman...
Your main work?
I'm converting components from older Delphi versions to the recent ones. People know me for the Turbo Pack components.
An example of your work?
An example of my work is the IDE integration of TMS Web Core.
Which TMS components do you mainly use?
I'm using TMS BIZ (XData, Sparkle, Aurelius and BCL), TMS Web Core, TMS IntraWeb and TMS PassKit.
Which operating systems do you use?
I'm using the platforms Windows, macOS, Linux, iOS and Android.
TMS Partnership:
Image may be NSFW. Clik here to view.
Roman started with 1 small project in collaboration with Wagner Landgraf. Seeing his great work and enthusiasm he was later involved in the TMS PassKit project.
And before he knew, he was a valuable part of TMS team and the IDE integration for TMS WEB Core was trusted to him!
Roman is not only a certified TMS Consulting Partner, but also a regular speaker at the TMS training Days.
Join our network
In May 2019, we've started our network of TMS certified consulting partners to make development easier for you. These are partner companies we know, have a long term relationship with and that we know have deep and expert level knowledge in Delphi and our TMS software component products.
We plan for extending our network of consulting partners in the coming months and years. If your organisation is interested in becoming such partner, feel free to reach out & discuss.
Visit the partners landing page for more information and details!
On November 14th, 2019, in Düsseldorf, Germany, another day of TMS Training Days 2019 took place - the biggest TMS Software event so far. During the TMS Training Days, TMS team members from nine different countries have spoken about Delphi development, TMS libraries and components, in sessions that targeted from the beginner developer to the advance one.
Image may be NSFW. Clik here to view.
Specifically on November 14th, TMS Business Masterclass took place. Attendants got in-depth training day on TMS Business tools, with Wagner Landgraf, architect of TMS Business Tools.
This training course is the replay of the full TMS Business Masterclass day. If you missed the event for any reason, here is now the opportunity to watch it!
You will feel like attending the event: the content includes the replay of the slides and as well the video recording of the instructor. Interaction with the audience is also included: content also includes questions from attendants and most of the discussion and debates that happened in the event, including subtitles for parts of the audio that cannot be cleared heard.
Delphi developers looking to learn more about ORM, REST/JSON development, multi-tier applications and also some background about TMS Business tools, with code examples.
What are the sessions content?
Session 1: The TMS Business World
A journey into the world of TMS Business bundle. We will learn about the solutions provided by TMS Business: the components included, the libraries, the use cases, all in the historical context and the motivations behind it.
Products covered: TMS Scripter, TMS Diagram Studio, TMS Workflow Studio, TMS Data Modeler, TMS Aurelius, TMS Sparkle, TMS RemoteDB, TMS XData, TMS Echo, TMS Logging.
*BIZ level: Beginner
Session 2: The Joy of Databases
A talk about new ways to deal with databases. What is an ORM (Object-Relational Mapping) framework, and are the most recent news and features about it. What you can use to help you out in modeling your databases, easily use existing databases with the new paradigm, and advanced techniques on ORM and database modeling.
Products covered: TMS Aurelius, TMS Data Modeler
*BIZ level: Intermediate
Session 3: Your App Everywhere: REST API
Multitier, cloud, REST, HTTP, SSL: What, Why, When, and mainly, How? Learn what a REST API server means, why you will benefit from moving your app to the cloud, and learn how to do it in a very RAD way. The latest features will be covered, even for the experienced users.
Products covered: TMS XData, TMS Sparkle
*BIZ level: Intermediate
Session 4: The Unsung Heroes
A deeper look into three awesome TMS Business libraries that bring you solutions for problems you never thought you had. User-customized application, modifying business rules at runtime, offline data synchronization, and moving your app to the cloud in a couple of days.
Products covered: TMS Scripter, TMS Echo, TMS RemoteDB
*BIZ level: Beginner
Session 5: Getting serious in the Cloud
Advanced techniques and concepts when building REST API servers: Security, background processing and deep analysis of real-world source code.
Products covered: TMS XData, TMS Sparkle
*BIZ level: Advanced
Session 6: All Together Now
A very interactive session where all the current ideas from the TMS team for the future of TMS Business will be presented. We will discuss the existing roadmap, brainstorming about all the possibilities, have all questions answered and summarize the whole day.
A Q&A session where all the current ideas from the TMS team for the future of TMS Business will be presented. Discussion about existing roadmap and brainstorming about all the future possibilities.
What is the language spoken in the course?
Everything is spoken in English, even though the instructor is a native Portuguese speaker. Questions from the audience are mostly subtitled in English.
Full source code for examples
Each lecture of this course that uses a sample project has an associated downloadable file which includes the full source code of the example.
Your Instructor
Image may be NSFW. Clik here to view.
Wagner Landgraf
Wagner is founder of landgraf.dev, a place for Delphi developers to find information and courses about Delphi. Even though being a Master of Science in Engineering, he's a developer at heart.
Having worked with Delphi since its very first version in 1995, and being partner of TMS Software (a renowned company that provides solutions for Delphi), Wagner is the main developer behind popular Delphi frameworks like TMS Aurelius, TMS XData and TMS Scripter, among others.
We are working hard on getting TMS FNC Core ready for the next update. It will include the TTMSFNCWebBrowser component that will support the latest browser technologies on various platforms. Microsoft replacing Internet Explorer/Edge with Edge Chromium (https://www.theverge.com/2018/12/4/18125238/microsoft-chrome-browser-windows-10-edge-chromium). Apple is forcing applications to switch to WKWebView for both macOS and iOS from April 2020 (https://developer.apple.com/news/?id=12232019b). For us, this was a signal to quickly start implementing these browser changes and make sure we offer the latest technologies Microsoft and Apple are pushing out. Choosing the TTMSFNCWebBrowser instead of the default TWebBrowser will offer you the best experience and worry-free applications for the future.
All of the above operating systems are supported through various frameworks: FMX, LCL, VCL and WEB
On the WEB it acts as a DIV which can load and handle HTML, execute JavaScript and many more.
That's not all!
Which each update of TMS FNC Core or other FNC products, we tend to add little gems hidden inside. The most important units that bundle all these little gems are *TMSFNCUtils.pas and *TMSFNCTypes.pas (* = FMX., VCL., WEBLib., LCL). For this blog, I wanted to point out a very nice class helper that allows you to generate JSON from an object, store/restore it, save it to a file or stream and even log it inside the debug console.
var
t: TTestClass;
begin
t := TTestClass.Create;
t.FA := True;
t.FB := 'Hello World!';
t.FC := 123.456;
t.JSON.Log;
end;
Debug Output: {"$type":"TTestClass","A":true,"B":"Hello World!","C":123.456} Process Project1.exe (6968)
A little more patience
As already mentioned we are working hard on the update. There are a few things that need some more testing but as soon as that's ready the update will be released. We are eager to find out which components, libraries & little gems you are using inside your application, so you can always showcase that through email support.
Microsoft and Apple recently announced big changes regarding their browsers and more importantly on the embedded browser components that are currently available in Windows, iOS and macOS. Microsoft announced it will start rolling out replacements for Internet Explorer and the legacy version of Edge with Edge Chromium in January (https://support.microsoft.com/en-au/help/4501095/download-the-new-microsoft-edge-based-on-chromium). Starting from April this year, Apple is blocking applications that still use UIWebView (iOS) and WebView (macOS), which already have been deprecated for a while now. (https://developer.apple.com/news/?id=12232019b).
What does it mean for my application?
It means that applications that use TWebBrowser or any other webbrowser component that uses Internet Explorer, UIWebView or WKWebView, will eventually stop working, potentially throw JavaScript errors, will not be accepted to the App Store, ... . It also means that your application is less secure as security updates will no longer be applied. Sit tight!, we have a solution for that!.
Taking a headstart!
Yesterday we released the TAdvWebBrowser, available in v10.2 of TMS VCL UI Pack. Today we released TTMSFNCWebBrowser available in v2.1 of TMS FNC Core. Instructions on how to get up and running with the browser under Windows can be found here. For macOS and iOS the WebKit framework needs to be added (instructions on how to add frameworks can be found here). Our main focus is to support the latest browser changes through these 2 components. Note that FNC is supporting FMX, VCL, LCL and WEB (here the TTMSFNCWebBrowser is not a real browser but actually a DIV that can add HTML), and can easily be combined with default components under all these frameworks. So get up and running with the new and improved browser under VCL and FNC, take a head start and please provide feedback on which functionality you want in the next updates.