Please note that some of the links
in these meeting summaries may no longer be
valid
Melbourne Meetings
May-
Barcodes,
Photo Manipulation via Delphi - Geoff Smith (Tyson
Technology)
Geoff talked about using barcodes 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
April-
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.
March-
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.
February-
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.
January-
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.
Delphi.about.com page on using TDictionary
December-
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
September-
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
August-
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.
July-
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.
June-
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.
May-
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)
April-
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.
March-
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!).
February-
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:
- Introduction to Chinese Characters
- Introduction to Unicode
- Chinese Characters in Unicode
- Unicode in Delphi
- The User Interface for Chinese Characters
- How to Sort Chinese Characters
- What is Pinyin?
- What is stroke count?
- Software requirements to make use of the
Chinese Characters in latest Unicode ver 6.00
- Chinese Characters and Delphi
- Demonstration of Chinese Character in a Delphi
Program
- A look at the source of the demonstration
program.
Alan provided many useful references on the
subject.
Alan's presentation in full.
January-
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.
December-
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.
November-
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.
October-
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.
September-
AGM
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.
August-
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.
July-
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

.
June-
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.
May-
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!
April-
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
March-
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.
February-
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.
January-
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.


|