TMS Web auf der Deutschen CodeRage 2018

Nächste Woche Dienstag, am 26.06., findet die nächste deutsche CodeRage zu Delphi und C++ statt.

Neben Olaf Monien, Volker Hillmann, Bernd Ua, Uwe Raabe, Frank Lauter, Joachim Dürr werde auch ich einen Vortrag halten.

Als Thema habe ich einen grundlegenden Vortrag zu TMS Web gewählt. Bei TMS Web handelt es sich um ein neues, innovatives Framework zu Erstellung von Web Anwendungen mit Delphi. 

Matthias Eißing von Embarcadero Deutschland wird die Leitung der Konferenz übernehmen.

Wir freuen uns auf eure Teilnahme! Anmelden kann man sich hier:

Mehr zu TMS Web hier:

TMS Web kennenlernen! TMS RADical Web Day in Deutschland am 24.05.2018 (de)

Jeder Delphi Entwickler wird es mittlerweile mitbekommen haben, dass es ein neues und innovatives Framework zur Entwicklung von Web Anwendungen in Delphi gibt! Falls nicht, informieren Sie sich hier:

Grund dieses Postings ist aber vielmehr, dass Sie im Mai die Möglichkeit haben, das TMS Web Team persönlich kennenzulernen! Das Team wird Ihnen dann die Grundlagen zur erfolgreichen Entwicklung von Web Anwendungen mit TMS Web vermitteln! 

Die meisten Vorträge werden in deutscher Sprache gehalten.

Als besonderen Gast freut sich TMS Software über Matthias Eissing von Embarcadero Deutschland! Er wird die Anbindung des Embarcadero RAD Servers an TMS Web vorstellen und für alle Fragen rund im Delphi zur Verfügung stehen.

Kern des Tages wird es sowieso sein, die Chance zu nutzen, Fragen zu stellen und andere Softwareentwickler kennenzulernen. Alle weiteren Informationen anbei als Video. Als Text mit Möglichkeit zur Anmeldung hier:

Tagged with: ,

5-Minute-Snack: Understanding TWebRequest’s ContentFields and QueryFields with regard to MethodType

It seems rather obvious, but somehow the two are always being mixed up.

Thus, this will be 5 minutes well spent if you ever will implement a REST Web Service using TWebRequest .

Considering the documentation QueryFields  refer to parameters in the URL and ContentFields  refers to the content of a POST request message. Of course, both GET and POST requests can have QueryFields . However, GET requests do not have ContentFields . Both parameters are mapped to TStringList in Delphi. Multiple values can be separated with an ampersand ( & ).

This seems all to be pretty straight forward. Let’s see how it works in reality.

I wrote an example POST request that has the following implementation:

As expected when sending the following POST request to the URL

with the content

set up in the Fiddler composer…

…yields the following result:

Delphi gives us very easy access to parameters in URLs and the content of a POST request this way. The TWebRequest  class also makes it possible to determine the method type of the request easily using TWebRequest.MethodType .

One might ask why that is necessary to check inside the method as the TWebActionItem also has a MethodType and thus the event is only called for one method type.  Well, there is a special method type.

The type is defined as follows:

You might implement one action event handler for all the different method types in Delphi and use mtAny. Inside the event handler you will then determine the method type using the MethodType  property of the request.

One thing is very important to note: Accessing  ContentFields  will not throw an exception or the property will not be nil  either;  instead the list will simply not contain any elements. 

Tagged with: , , , , , , ,

5-Minute-Snack: Alternative Welcome Page for Delphi

A “Welcome Page” is rather common in modern IDEs so that developers can access projects that they use on a regular basis quickly. Furthermore, a lot of IDEs show dates for important events, news feeds or even video feeds.

I am very old fashioned when it comes to Delphi and want to focus on programming when using Delphi and do not want to be distracted by blog posts, video feeds or feeds of any kind. Especially, when the load process of the page delays my work. 

In its latest incarnation, the Delphi Welcome Page even has the “wonderful” habit of opening a new tab inside of the editor called “Documentation”. This tab is utterly useless for a long-time Delphi developer and has absolutely no benefit whatsoever. To make things worse, there is no switch to get rid of it.

Thus, I was looking for alternatives, which meant I had to disable the default welcome page and replace it with something that exactly does what I need.

Thankfully, one of my MVP colleagues, Daniel Wolf, held a session in 2015 how to build an alternative Delphi Welcome Page with OTAPI programming means. He created a different Welcome Page called “wuppdiWP” that does offer exactly what I need. 

  1. It has a button to create new projects.
  2. It has a button to open existing projects.
  3. It lists all recent files and projects.
  4. It offers the ability to organize favorite projects in a tree structure.
  5. It is fully configurable using Tools / Options.

All in all a great improvement over the default Welcome Page if  you do not care about RSS feeds.

Getting rid of the default Welcome Page

We have two ways of doing this:

  • Launch Delphi with the command-line parameter “np”
  • Rename “ startpageide250.bpl ” to “ __startpageide250.bpl “. You will find this file in your RAD Studio bin -directory

Installing the alternative Welcome Page

As Daniel Wolf has the explanations in German, let me get you started in case you speak English:

  • Go here. There you will find a zip file with the bpl  file for the new Welcome Page from Daniel Wolf.
  • Extract the file to your bin directory and add it to Delphi using Component / Install Packages…
  • Configure it using the Tools / Options … / Third Party / wuppdi Welcome Page dialog. 

The Welcome Page lists all your recent projects and files automatically. You can organize your favorites by creating categories and sub-categories. Via drag and drop you add projects and files to these categories. I use it to organize all the packages to compile the source code of TMS Web and the demos from the Spring Framework:


Tagged with: , , , ,