Run your Delphi VCL Applications through a Browser!


This month we will show how, by adding a simple library to your old Delphi code, your Windows VCL application can run through a web browser on any device that supports HTML5. No need to use WebBroker or convert it to IntraWeb or Firemonkey, just simply open up your project, add a unit, recompile, and it now is able to paint on an HTML5 Canvas--provided the Thinfinity VirtualUI server is running.

Additionally, there are hooks to enable your application to interact with the web browser to which it is painting and enhance the user experience in expected "web" ways.

Come tonight and see how easy it is to take your application to the web!


David Cornelius is a software developer building applications for almost any platform, creating e-commerce integrations for Retail Pro, and enabling Windows applications to run in the cloud from any HTML5-enabled browser. He writes in Delphi, Free Pascal, and C# and uses several web technologies. You can read more about him at Cornelius Concepts, LLC.

Chocolatey for Delphi


If you've ever used Linux, you may be familiar with software package managers such as RPM or APT to easily install and update software along with their dependencies. A few years ago, someone decided that Windows should be able to enjoy this same ease of maintaining software packages and started Chocolatey, a package manager for Windows using PowerShell scripts and the NuGet infrastructure.

Typically, when installing software, you need to look for them on the web, select a mirror to download from, go to your downloads folder, launch the installer, acknowledge licenses, then repeating for each program. Once you get setup to run Chocolatey scripts, you can run simple commands to automate this. For example, to install Chrome and Firefox browsers and the AdBlockPlus extension on each, simply run these four PowerShell commands:

choco install googlechrome
choco install firefox
choco install adblockpluschrome
choco install adblockplus-firefox

and in a few moments, your two favorite browsers will be ready to use. Of course, you could put these commands along with several others into a script, save it to USB drive or online storage, and re-run it any time you're setting up a new environment.

How much time could you save next time you need to setup a new development machine if you could install all your favorite tools by running a script? Or what if you could run an update script once a week that would check for updates to all your software and update them for you?

THAT is the whole goal of Chocolatey--saving time. Lots of time!

Many of the packages in the Chocolatey public repository are open source, others require a license after installing such as Visual Studio Professional. Unfortunately, (at the time of this writing) there are no packages to install Delphi. However, there is a way to create your own Chocolatey packages to install your own licensed and locally stored software, automatically put in license keys, and automate the process.

That's what we'll see tonight--how to get your own licensed copy of Delphi ready for quick installs. Come tonight and watch a new virtual machine get setup, ready with browsers, tools, databases, and of course, Delphi, in ONE hour!


David Cornelius is a contract software developer building applications for almost any platform, creating ecommerce integrations for Retail Pro, and enabling Windows applications to run in the cloud from any HTML5-enabled browser. He writes in Delphi, Free Pascal, C#, PowerShell, and uses several web technologies. You can read more about him at Cornelius Concepts.



We've talked a lot about the SOLID principles of software development over the last couple of months. The last letter, D, stands for Dependency Inversion. We'll discuss this with examples and talk about the Spring library and how its Dependency Injection plays into this--if you do it right!


Ron Grove will again lead the discussion, based in large part on his deep knowledge of the subject having read the book the SOLID principles were based on before the acronym was coined.

Be a SOLID Programmer


This is a continuation of the discussion on SOLID programming principles we started last month. We'll finish up our coverage of Single Responsibility and Open/Closed principles, then continue on with aspects of the other three:

  • Liskov Substitution - objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program,
  • Interface Segregation - many client-specific interfaces are better than one general-purpose interface, and
  • Dependency Inversion - one should depend upon abstractions, not concretions.


This will be a group discussion led by Ron Grove.

S is for SOLID


It's time to get into some coding practices. This is the first in a series exploring the SOLID principles of software development. This month, we'll concentrate on the Single Responsibility Principle. As time allows we'll start looking at the "O" which stands for the Open/Closed principle. Many of us have probably used these principles even though we may not have had fancy terms like this in mind at the time. Hopefully we can help one another think about how we can make use of common sense principles like these in our own work.

Tech Talk


Due to the weather, we'll postpone the start of our SOLID discussion until March. For those who would like to join tonight anyway, we'll have a small gathering at the usual space and time and let the conversation lead us where it may!

Delphi 10.2.2 and Group Planning


For the discussion tonight, we'll briefly touch on the latest update to Delphi which was 10.2.2.

Since it's the first meeting of 2018 we will also focus on what we're all doing with Delphi (if anything) and what kinds of discussions would be best to focus on this year. I don't want to spend too much time talking about features that are hardly even marginally useful to any of us and focus on what is useful.