warning: Creating default object from empty value in /home/concepts/public_html/odug.org/modules/taxonomy/taxonomy.pages.inc on line 33.

Home Automation with FireMonkey

11/10/2015 6:00 pm


One of our members has been diving into the FireMonkey framework and has written his first Android app. This is not a formal presentation--he will simply share some of the journey he undertook as he used FireMonkey and REST services in both a Windows and an Android app to control home automation devices with Delphi XE7.


Mike Shkolnik is a Project Manager in the Portland area and while he's been "using Delphi since it was Turbo Pascal on a CP/M card in an Apple II," he is completely self-taught and does not consider himself an expert. (In other words, he's like many of us!)

Five Years of Updates

09/08/2015 6:00 pm


Many Delphi developers have not upgraded in quite some time. Some say Delphi 7 was the last great IDE, others got up to Delphi 2007 but never jumped into Unicode. There were some great language enhancements in Delphi 2010, but then the XE line started and the update rate increased dramatically adding 64-bit, FireMonkey, FireDAC, add-on tools, cross-platform capabilities, REST and JSON support, and many other things.

For some, the updates were considered little more than paid bug fixes. For others, the updates piled up on the virtual shelf with little time to figure out new features before the next version was out. But many of you just closed your wallet and stayed with what you had, comfortable in a fairly stable environment and getting third-party components to add support that only appeared in much newer versions of Delphi.

With Delphi 10 Seattle just released, this might be a good time to look back at the whole XE line of upgrades and review the changes that have taken place. There have been NINE versions of Delphi in the last five years, which is a nightmare if you're a component developer and a challenge to keep on top of if you're busy running a business. For developers that do upgrade, I suspect they either skip several versions at a time or just stick with one that is fairly stable for what they need to do and let the others pile up.

Tonight, we'll look through the following lists of "What's New" and pull up the IDEs to take a look at the highlights of the new and enhanced features you may have missed. This will be an open discussion as it's unlikely any one person could be familiar with every single new feature! (Case in point: The speaker has had very little time with FireMonkey and has no experience with FireDAC, so any attendees with knowledge in these areas are welcome to share their experience with the group.)

Developer Tools

07/14/2015 6:00 pm


Recently, the OCCA's monthly meeting was on My Favorite App. It was a roaring success and sounded like a good idea for this group. So this month, our topic will be on a similar vein, but with a focus on developer tools. This will be an open forum led by David Cornelius but with the hope that each attendee will have something to share.

Shared Projects in Oxygene - Part 2

05/12/2015 6:00 pm


In March, we introduced the concept of Shared Projects using Oxygene, a Pascal compiler that works inside Visual Studio and generates applications for all the major platforms--including Windows Phone.

This month, we'll continue that exploration by branching away from the Windows desktop and take a look at how the same shared classes we used previously can also help us build ASP.NET web sites and Android apps.


The code for everything demonstrated during both parts of this presentation is on GitHub. Feel free to download make suggestions or improvements.

Tech Talk

04/07/2015 6:00 pm


There is no formal presentation for this meeting. We will meet as friends in the programming industry and talk about whatever geeks will tend to discuss when they get together!

Shared Projects in Oxygene - Part 1

03/10/2015 6:00 pm


A little over a year ago, we discussed one application in several different languages covering Delphi, C#, Oxygene and even JavaScript. It's very unusual that a company would want to do this in real life given they'd have to support several different languages, but it made for some interesting discussions and comparisons. Usually, a company attempts to minimize the number of supported environments to prevent fractured development teams and keep support costs down. Many software tools over the years have promised write-once/build-or-run-anywhere solutions. That's the promise of Delphi but it doesn't support all platforms and not everyone is satisfied with how Android and iOS are supported.

Tonight, we'll look at an advanced language that really does build applications for every major platform today: Oxygene.

Oxygene is an Object Pascal-based language from RemObjects Software that works inside Visual Studio to build a wide variety of types of applications. From console-based utilities to .NET Windows Forms applications to ASP.NET web sites to mobile apps on Windows, iOS, and Android, you can use one IDE and one modern programming language to support them all! (And if you don't like Pascal, they also offer C# and Swift compilers!)

This will be part one of a two-part session and may extend into a third if there is enough interest for some of the advanced concepts. We'll start with the idea of a Shared Project in Oxygene and show how your platform-agnostic classes can be shared among all your projects without creating DLLs or copying your code.

Then we'll show the built-in support for unit testing and move quickly into a simple console application. Next, we'll build a familiar .NET Windows application using WPF. If there's time, we'll show the Windows Phone app as well which has many similarities to the WPF application since they both use XAML.

Our next session will cover ASP.NET and Android and possibly iOS (depending on the resources available--a Mac is required for building an iOS app).

Tech Talk

01/13/2015 6:00 pm


There is no formal presentation for this meeting. We will meet as friends in the programming industry and talk about whatever geeks will tend to discuss when they get together!