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: https://tmssoftware.com/site/tmswebcoreintro.asp
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: https://www.tmssoftware.com/site/tms-training-day-20180524.asp?ln=DE
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
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
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.
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.
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.
It has a button to create new projects.
It has a button to open existing projects.
It lists all recent files and projects.
It offers the ability to organize favorite projects in a tree structure.
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”
startpageide250.bpl ” to “
__startpageide250.bpl “. You will find this file in your RAD Studio
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:
You might have noticed that I have gotten rather quiet these last few months and there are two major reasons for that:
At the beginning of September of 2017 I was on vacation in Florida and as you surely remember, the state was hit by Hurricane Irma. The backlash was unimaginable for a resident of Germany. It was quite a lot to deal with mentally and physically. My flights were canceled and traveling back to Germany was delayed.
Thus, it just so happened that somebody ran a red light and hit the car I was a passenger in with about 55 mph. We were hardly moving as we were taking a left turn. For legal reasons, I will not post any images of the car wreck.
To this day first responders, police, doctors and friends call it a miracle that we survived the impact.
The front of the car was completely “gone” , but for some reason the driver and passenger metal cage prevailed and sustained the impact. The airbags also deployed, we were wearing our safety belts and were able to escape from the burning vehicle in time.
For me, the injuries were mainly mental, the driver was hit more severe and is still coping with the injuries to this very day.
That means in the last months, I needed to put things into perspective and spent a lot of time working on things without any public involvement.
One of these things has already become public knowledge: TMS Web. A wonderful, new, modern Web Framework for Delphi! I have been busy producing video and textual content and served as a tester and consultant for that project.
Today, I finally had an idea for another 5 Minute Snack that I will publish shortly.