About Us
Mailing List
Reference Papers
Apply to Join
Delphi Jobs
Special Offers


Meetings: Next Meeting

Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec


Please note that some of the links in these meeting summaries may no longer be valid

Melbourne Meetings


July -

Software Internationalisation and Localisation - Greg Cromack (AWET)
Greg presented his experience with Internationalization (preparing software for international markets) and Localisation (the process of creating software for an international market considering cultural and language differences).

The basis of his presentation was his own experience in internationalising his software product for an international market. Company logos, terminology, fonts, database fields, databases and cloud services all needed to be considered to achieve his goal of producing a product ready for international markets.

Summary: Internationalisation and Localisation is so much more than Unicode support, resource strings and fonts. Reference Links Pdf (177kB).

Fiddler Web Debugger Tool - Roger Connell (Innova Solutions)
Fiddler has been mentioned on our list and at Melbourne meetings as an essential tool for developing web applications. Apart from its advanced ability to capture and display network traffic between Http Servers and any test computer it also is able to decrypt any Https traffic. Access to Presentation Materials

June -

More on Interfaces - John McDonald
John gave a presentation on using interfaces, including things to note where objects implements more than one interface. Source code Interface test (62kB).

Organising your source code - Roger Connell
Roger led an open discussion on ways of organising source code.

May -

Backend as a service (BaaS) - Damien Bootsma (Embarcadero)
One of the new features in XE6 is support for working with Backends as a Service (BaaS). Damien explained the role of BaaS and demonstrated a to-do list manager using Kinvey for user account maintenance and data storage. XE6 includes ready-to-use components for interacting with Kinvey and Parse.

April -

HTML5 as a Delphi UI - Andrew Pratt (Inspirasoft)
At the end of 2013 Inspirasoft decided to adopt HTML5 as the user interface of its major flagship product. Andrew discussed the choices they faced, the direction they choose and why, the journey, the successes and failures, demonstrated the results and discussed some lessons learnt porting Windows only code to cross platform code that will also run on Macs.

March -

Using the Delphi Spring Framework - Josh Weberruss
Josh has been using the Spring Framework extensively and talked about some of its container classes. The framework is open source and available from the Spring4D BitBucket page. Its use is also documented in Nick Hodges' new book Coding in Delphi

February -

Dependency Injection - John McDonald
John talked about Dependency Injection, a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them as required. This can be used to load plugins dynamically or to choose stubs or mock objects in test environments vs. real objects in production environments. Wikipedia article

January -

RTF from Scratch - Tony Bryer (Greentram Software)
Tony talked about RTF (rich text format), using Word to produce RTF templates with placeholders which could then be filled using a Delphi program and his own experience of producing RTF formatted output from within his programs. Edited version of Powerpoint presentation (515kB: links on last page)



Operator overloading - Robert Pallot (Frontier Software)
Operator Overloading was introduced in Delphi 7 for .Net. Delphi XE added methods and properties to records, allowing VCL programs to use operator overloading. Robert showed how this can make for readable code, using matrix operations as an example. Presentation and source code (318KB)

Polygon Clipping as applied to ECAD - Brian Watson (Desktop EDA)
Brian gave a presentation on the internals of his PADS ASCII Modeler program which turns PADS ASCII data into a 3D model of a printed circuit board. Product page

November -

A Delphi Web Application Framework - Roger Connell (Innova Solutions)
Roger talked about the Object Framework used to implement a WEB front end for ADUG member interactions on the ADUG web site. Presentation, source code and further documentation

October -

OAuth Protocol - Grahame Grieve (Health Intersections)
Grahame provided an overview of the OAuth Protocol, including a walk through of the steps to register a Dropbox API application. He then followed that up with a live Delphi demonstration, reading and writing data to a file located in a Dropbox directory.  Powerpoint presentation (2.4MB) and sample code (118KB)

September -

Lachlan Gemmell (ADUG President)
The first part of the meeting was taken up with the AGM at which new Rules were passed. Lachlan then gave a presentation on real world usage of Generics and Anonymous Methods. Check out Lachlan's TIndex site pages on Generics   Anonymous Methods

August -

Multi-platform development - Damien Bootsma (Embarcadero)
Damien showed a sports coaching program he had written using Delphi + FireMoney running on iOS, outlining some of the design decisions he had made, then showed the same code recompiled to run on an Android tablet.


SQLite - Lance Collins
Lance has used Delphi since Delphi 2 to maintain and analyse share market data. He's moved from storing data in typed and INI files to using a database. His decision to use SQLite - open source, thus free - was not the result of a study of all available options but it's working out OK. Outline of talk (11kB) Source code (16kB)

A different clock - Robert Pallot
Robert showed off what can be done with FireMonkey by demoing his clock - five intermeshed gears rotate, three showing the hours, minutes and seconds. The gear shapes were created using Inkscape, an open-source vector graphics editor. Inkscape's output is then pasted into a FireMoney TPath component's Data property, generating the shape. To make the clock function all that's required is to change each gear's rotation angle by the appropriate amount on each timer tick. Source code and compiled exe (2.4MB)


LMD Tools - Andrea Coffey (Miss Programs)
Andrea chose the LMD Tools 2013 component suite as a symposium prize this year and shared her experience of this product. As it includes 480 components Andrea focused on the TLMDGrid.

ADUG Web Statistics - Roger Connell
Roger shared some of the ADUG web log analysis statistics with us, in particular which pages draw the most hits and where visitors come from. Check these out Overview of site All URLs Year To Date


Barcodes, Photo Manipulation via Delphi - Geoff Smith (Tyson Technology)
Geoff talked about using barcode recognition and face detection to manage the many images generated by school photographers. Useful resources: Generating barcodes: TZintBarcode; reading barcodes and QRCodes: ClearImage Barcode SDK (free); face identification: Windows Live Photo Gallery API


Delphi and .NET - Adam Johnston (Novuslogic)
Adam talked about accessing the .NET framework from Delphi using the open source JVCL library. For a summary of Adam's presentation with some examples see this blog post. The examples can be downloaded from GitHub.


Anonymous Methods - John McDonald
John gave a presentation on anonymous methods, first introduced with Delphi 2009, also mentioning generics and RTTI and how they can be used with anonymous methods. The talk was illustrated with a series of examples (download 99KB). John also drew attention to the system.generics.defaults unit included with Delphi which contains many useful type definitions.

Further to John's talk, during his symposium presentation Malcolm Groves showed how anonymous methods could be used to produce better code with a class accepting one method in production code, and another from a unit test harness.


HexEdit and HexEdit Pro - John McDonald: John gave a short presentation of HexEdit (free) and HexEdit Pro (US$50). Both do far more than the names suggest. Among the features demonstrated were the colour coding of file contents depending on byte values, making it easy to pick out text within a binary file, and the template option used to unpick file contents.

Constant Builder - Jason Tolley - ROK Technology P/L: Jason has developed his own utility called 'Constant Builder', a tool that aids in the creation of records of constants and arrays of records of constants. These values have become more and more complex and he uses dynamic arrays of record constants and sometimes dynamic arrays of dynamic arrays of record constants. The task to create and manage these can be tedious. Hence 'Constant Builder'. The resulting constant declarations can then be compiled into the application instead of using additional data files for configurations, resulting in a single EXE in many instances.

Delphi Remote Debugging - Richard King: Richard demonstrated debugging a 64-bit application running on a 64-bit computer from a 32-bit computer. To do this you need PAServer running on the remote machine and need to set up a remote profile.


Containers and Collections - Roger Connell and Richard King

Roger spoke about container classes, focussing on TStringLists, linked lists and the library he had built to support dynamic arrays. One useful idea was to build a helper application to generate large amounts of random data rather than using real data and running the risk of compromising confidentiality. PowerPoint presentation here, code here (zip)

Richard focussed on the TDictionary class which first appeared in Delphi 2009 and its use in combination with CSV files. page on using TDictionary



Mobile Studio - Damien Bootsma (Embarcadero)

Damien gave a demonstration of building an application using the current beta version of Mobile Studio

November -

Web GL Game Development - Josh Weberruss + colleague

Josh and TJ demonstrated building a multi user browser based game using technologies such as Javascript and WebGL interacting with NodeJS on the server.

Delphi Containers - Richard King

Richard gave an overview of on the various types of containers including arrays and lists as a precursor to a full session on containers in January.

October -

How to make Data Entry Operators happy! - Noel Lodge

It seems Noel has always looked for ways to use automation to improve life. Noting that data entry can be pretty boring and quite repetitive he talks about simple ways applications can help improve things and in the process increase productivity.

Noel demonstrated a number of the techniques he uses in his Open Office based application, some of which are quite basic and others more complex. All of them have the effect of making the operator happier and more productive and are directly applicable to data entry applications developed in Delphi.

The demonstration of the techniques in the application provided a better insight but the slides Noel used give many hints so they are published here

Remote Debugger - Richard King, Andrea Coffey

We had planned for Brian Watson to give a demonstration of debugging a 64 bit application from a 32 bit VM on the same machine followed by a physical machine to machine demo.

Brian had an unfortunate altercation with a Stanley knife and so we tried for a demo from a PC to Andrea's Apple. While logistics defeated this attempt it did demonstrate some of the issues likely to be encountered when setting up remote debugging between physical machines especially when one is a MAC.

We will program this topic again early in 2013


AGM + Mercurial version control - Lachlan Gemmell

After the AGM Lachlan introduced us to Mercurial , a free distributed (i.e. no server required) version control system. Mercurial itself is a command line application but TortoiseHg, a shell extension, provides a user-friendly interface. If you want to use a server, BitBucket offers this and is free for up to five users


TMS Scripter Studio Pro - Tony Bryer (Greentram Software)

Tony outlined how he used TMS Scripter Studio Pro to add scripting options to his EuroBeam program.


Interesting components and other things

Roger Connell introduced Addict Spell spell checking from Addictive Software. Jim Duff talked about MarshallSoft Computing's FCE4D - FTP Client Engine for Delphi, using it to make connections to a web page, and send up selected files to it. Brian Watson gave an overview of Delphi scripting in the Altium product. Roger Connell talked about how delving into XE2 3D component design has resulted in a component '3D Pipe' which is interesting but is not currently useful.


64-bit Applications - Richard King (Creative Analytics)

Richard gave an account of his first attempt at moving a 32-bit application to 64-bit, looking at how the compiled code differs and how the 64 bit debugger works from the 32 bit IDE.

Object Pascal - Andrea Coffey (Miss Programs)

Andrea demonstrated an Object Pascal to Javascript compiler.


Registration Free Activation of COM Servers - Brian Watson (Desktop EDA)

Registration-free COM is a platform feature of great interest to enterprises with locked-down servers and applications isolated on shared infrastructures. It allows you to install a COM server without writing to the registry.

Open Office - Noel Lodge

Noel demonstrated the capabilities of the Open Office Database (Base)


Delphi and the iPhone- Damien Bootsma (Embarcadero)

Damien gave an excellent hands on introduction to the use of XE2 to generate iOS applications. His power point presentation is here.


Programming Challenge - Richard King

The challenge was to write a generalized program which would read a 5000 line csv file and enable the user to query the data. The example file provided by Richard is here. Half a dozen of us rose to the challenge, which required homework! An interesting exercise which revealed a range of approaches, from Noel Lodges use of Open Office - required no work! to Roger's object database (of course!).


Chinese Characters and Delphi- Alan Tan

Alan Tan is one of those who was hanging out for the introduction of Unicode into Delphi. His software makes use of Chinese Characters and he agreed to give us an insight into his world. He covered:

  1. Introduction to Chinese Characters
  2. Introduction to Unicode
  3. Chinese Characters in Unicode
  4. Unicode in Delphi
  5. The User Interface for Chinese Characters
  6. How to Sort Chinese Characters
  7. What is Pinyin?
  8. What is stroke count?
  9. Software requirements to make use of the Chinese Characters in latest Unicode ver 6.00
  10. Chinese Characters and Delphi
  11. Demonstration of Chinese Character in a Delphi Program
  12. A look at the source of the demonstration program.

Alan provided many useful references on the subject. Alan's presentation in full.


Coding a Simple Utility Function- Don Macrae

function IntToWords(const Value: Cardinal): string;
//IntToWords( 123456 )
//'one hundred and twenty three thousand four hundred and fifty six'

Either beforehand or on laptops at the meeting the above function was worked on, and then each was looked at in turn. Three of them are here for you to peruse, any others I receive will be added.



Refactoring - John McDonald

John demonstrated the use of the refactoring support facilities in Delphi, particularly rename and extract method, and compared them with similar support offered by third party tools ModelMaker, Code Explorer and Castalia.


Playtime with Firemonkey - Roger Connell and Richard King

This meeting was billed as an opportunity to "allow anyone who has done anything with Firemonkey to share their experience..".In the event it was a two part presentation by Roger and Richard respectively. Roger focussed on the issue of converting vcl forms to Firemonkey, while Richard gave a fascinating rundown on his exploration of 3D, which culminated in a windfarm with turning blades. You can read more about this in Richard's blog post on the ADUG blog site here.


Coding Challenge

We were inspired by an event organized by the Python User Group called 'Code Wars'. The idea was to have the meeting break up into small teams, in most cases two, each with a lap top, and for all teams to tackle a sequence of basic problems. On majority completion, compare results, discuss, and move on to the next problem. Problems were kindly generated by Glenn Crouch, and presented for the first time at the meeting. Interesting and fun.



Reports were received, a rule change in recognition of the demise of cheques and the rise of electronic banking was passed, and a new committee was approved (Since the number of nominations for committee and ordinary committee member positions equalled the number of positions, all were 'elected''. For details see the minutes, wherever they might be.

Cycling Metrics Software - Phil Sheppard

In addition to being the MD of Creative Analytices Phil is a cycling enthusiast, read amateur racer, and he takes a scientific approach to monitoring and managing his training. This involves a power meter, various sensors and a computer on his bike, and uploading from the bike computer to his desktop for analysis. Phil demonstrated software he's created to help him with the task of recording and assessing progress and performance.


Building Design Software- Mike Connell, Pryda

Pryda manufactures timber trusses and the various components thereof.. Mike demonstrated the software they give away to their clients. This was the most impressive software demonstration I've ever seen. It designs the roof and floor trusses for multi floor buildings, showing a complete 3D view and everything down from there, including hardware requirements and material cutting requirements. It was fast, elegant, robust and apparently complete. Mike is an engineer who has presided over the evolution of this software over 30 years, starting with some basic calculations. Much of the work is still done by Fortran routines, with current GUI requirements done using Visual Studio. Database is Access, with Firebird due to replace it.


Under the hood, Part 2 - Tony Bryer

Tony added to his January presentation with more detail on his newest application, EuroBeam, discussing some of the third party tools and components used, including TMS , eDoc PDF generation eDoc PDF generation and MadExcept exception reporting .

Pascal Analyser: Tony demonstrated the use of this tool from Peganza




RTTI Past and Present - Lachlan Gemmell

Lachlan gave a clear and methodical presentation of RTTI, comparing the syntactically obtuse older version with the new and improved model introduced with D2010.


Smart Comboboxes etc- Don Macrae, Roger Connell

Don demonstrated and code reviewed a module which took a dataset with names as an argument and used a listbox and an edit on a frame to allow selection by typing (auto completion) or clicking.

Roger's code was more involved but the details escape me. I must talk to him about that. Watch this space!


Reading data from Delphi code using C# - Brian Watson

Brian took us through the process of implementing a Collection in a COM server. This allows us to expose the data contained in something such as an object list to the outside world. He then demonstrated how to access the this data from C#, and touched on the contortions involved in implementing an event in a Delphi COM server


Delphi Demos - JSON Viewer - Peter Postmus

Peter gave us a very clear description of JSON - 'the fat-free alternative to XML', and to the way it is supported in Delphi, since D2010 and XE, and demonstrated the JSON viewer, included in the Codegear demos folder in the DataSnap directory. Peter's presentation may be downloaded

from here.


Delphi Demos: Inter Process Communication - Don Macrae

Don's previous presentation on this topic, in November, reviewed the demo 'IPCDemo', as distributed by Borland. IPCDemo implemented an approach they called 'shared memory', based on Windows File Mapping objects. This time, Don demonstrated how the same demo could be implemented using what he suggests is the more straightforward approach, using Windows Pipes. Demo project page is here.

Using the Google Translate API from Delphi - Richard King

Richard demonstrated the use of this API from Delphi, making JSON requests and processing responses.


Under the Hood- Tony Bryer

Greentram Software, Tony's business, derives its revenue from an application which allows engineers to establish the correct size of steel beam for a span and load. Tony told us the story of this business, from 1979 when, as a London Council building inspector, he took out a loan to buy a Commodore PET, through to today, based in Melbourne, with the program running on Delphi XE and still selling.