Skip to main content
Thoughts from David Cornelius

Category

Adding theme support to your application can give your program a whole new look (if you use standard Windows controls) without changing anything else. This works because the controls will actually use a different set of DLLs behind the scene. In Delphi 2007, this is accomplished with a simple checkbox in the project options. (Visit the Delphi Wikia page and search for "Adding Theme Support" for more information.) The DateTimePicker is one of these and I just discovered its new capabilities when themed on Vista or Windows 7.

Without theme support, the old style of the DateTimePicker looks like the image here. Clicking on the month drops down a list of months. Clicking on the year, shows a very tiny up/down arrow box that allows you to change the year:

old DateTimePicker

But if you add theme support to your application and run it on Vista or Windows 7, suddenly the DateTimePicker has a much better month/year selection capability. The overall control looks a little nicer, as the image here shows, but not a whole lot different yet:

DateTimePicker themed - Day

However, when you click anywhere on the title (showing the month and year), the magic starts! The grid of month dates fades and zooms down to a point and a grid of months zooms down to replace it, with the current month highlighted. The animated zoom part (not shown here) is the coolest feature:

DateTimePicker themed - Month

Click the title again (which is now just the year) and it zooms out to the current decade. Again (the title is now showing the years of the current decade), and the you get a list of decades for the current century!

DateTimePicker themed - Year

Of course, when you start selecting years, months, and then the actual date, the control zoom reverses and the grid comes out at you to give the sense of drilling down to more detail.

The animation is very smooth and very intuitive. I was so surprised, I had to show everyone else in the office. They were equally impressed.

The standard DateTimePicker has been a disliked control for a long time. In fact, it is one of the reasons developers look at third-party component makers. Choosing a date with the old style is cumbersome and ugly. But the new Vista themed DateTimePicker with animated zooming is one of the coolest user-interface improvements I've seen!