ADUG
Home
About Us
Services
Meetings
Fees
Mailing List
Rules
Reference Papers
Downloads
Apply to Join
Links
Delphi Jobs
Special Offers

 

Meetings: Next Meeting
Overview
Symposia
2008
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec
2007
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec
2006
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec
2005
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec
2004
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec
2003
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec
2002
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec
2001
Jan Feb Mar Apr
May June Jul Aug
Sep Oct Nov Dec
2000
Jan Feb Mar Apr
May June Jul Aug
Sep Oct Nov Dec
1999
Jan Feb Mar Apr
May June Jul Aug
Sep Oct Nov Dec
1998
Jan Feb Mar Apr
May June Jul Aug
Sep Oct Nov Dec
1997
Jan Feb Mar Apr
May June Jul Aug
Sep Oct Nov Dec
1996
Jul Aug
Sep Oct Nov Dec

Melbourne Meetings

2008

June -

Dev Express Grids- Phil Shepard

Phil reviewed Dev Express grids from a .Net and Visual Studio perspective demonstrating the capabilies of the component and how he manages the large number of properties it has.

SQL Generation Using Method Chaining- Richard King

Richard demonstrated generating SQL in an application offering many user selectable queries and optional conditions which can be applied to the selected queries. A technique known as "method chaining" was used to write the code which is very readable (even if it is not Queen's English), is easy to write, extend and maintain.

Richards Presenetation:: Notes of the presentation as RTF

May-

A Deployment Case Study- Don Macrae and Richard King

An application with a user base of some thousands, the appearance of different versions, and a requirement for silent compulsory updating. Recently the updating was modified so that the users did not need to be have administrator privileges. The techniques considered were (1) Windows Installer technology, and (2) the use of a previously installed service.

This presentation outlined the investigation and the solution, and also covered other deployment aspects.

Tools used or explored: Installaware, Installshield, WIX, Orca, InnoSetup, FinalBuilder.

April

C# Presentation- John McDonald

John gave an overview of some of the interesting features of C#, and how it compares with Delphi. Points discussed:

  • static classes, sets, enums (very briefly)
  • generic classes and methods
  • enumerators and iterators
  • anonymous methods and closures.

Even those who do not plan to write in C# found the presentation interesting because a lot of these features will be introduced to Delphi. John's code samples can be downloaded at AdugCSharpDemo.zip

March

Networking Question and Answer- Roger Connell

A General open forum discussing Network questions

February

Blackfish SQL- Tim Jarvis

Tim has provided a number of ADUG presentations and again offered an interesting technical and insider insight into CodeGear in general and the Blackfish SQL offering in particular. As usual the presentation included worked examples on how to best use Blackfish SQL.

Tim actually left CodeGear early in February to become the Software Architect at Quest Software. This was his last CodeGear interaction with Melbourne ADUG and we wish him luck in his new role. We hope to still hear from Tim because Delphi development has a has significant part at Quest.

January - .

Networking 101 Part Two - Roger Connell - Innova Solutions

The presentation was an attempt to give a very quick overview of the key aspects involved in setting up and managing a small business network using Windows computers. Roger provides PowerPoint notes which hopefully record the key information required. Items discussed are

  • TCP/IP
  • Private Address Space
  • Small Office Network
  • TCP/IP Tools
  • Symbolic Name Translation
  • Windows Resource Sharing
  • Router/Firewall Settings
  • Network Analysers

Time ran out in December so the second half of the discussion continued in January

Powerpoint Notes:: Notes as Powerpoint Presentation

2007

December

Networking 101 Part One - Roger Connell - Innova Solutions

The presentation was an attempt to give a very quick overview of the key aspects involved in setting up and managing a small business network using Windows computers. Roger provides PowerPoint notes which hopefully record the key information required.

Time ran out in December so the second half of the discussion continued in January

Powerpoint Notes:: Notes as Powerpoint Presentation

November

A TProcessObject Takes OO to a New Level - Bryan Dayton

For some time Bryan has been on a personal crusade to discover how to write pure OO applications - this is complete applications based exclusively on objects (using classes such TCustomer, TProduct, TInvoice, etc).

Persistence framework went a long way towards this goal, but still left gaps.

Bryan proposed using TProcessObject which ensure every aspect of the application program is based on classes with properties and methods. There are no globally visible processes outside the OO hierarchy - in other words no Utils units.

An Introduction to Networking - Roger Connell - Innova Solutions

Roger took a few minutes to try and scope out a proposed discussion on Networking for December when we will be sharing our group knowledge on this very broad but essential topic.

October .

An Insight into Delphi at Code Gear- Nick Hodges - Code Gear

The Code Gear Delphi Product Manager Nick Hodges dropped into our Melbourne meeting. It gave everyone the opportunity to hear all about Code Gear's plans for Delphi and to provide some direct feedback on any concerns or issues.

September Annual General Meeting

Creating a Delphi Plug-in Framework- Tim Jarvis - Code Gear

Tim discussed ways of creating a plug-in framework in Delphi.Win32 and Delphi.NET, highlighting differences and similarities. A common need in modern applications is to be able to add functionality without re-deploying the entire application, in other words plugging in new functionality. Delphi itself allows developers to “plug-in” to the IDE. In this session we explored a commonly used pattern to achieve this aim using Delphi.Win32. We also looked at the slightly different mechanism for doing the same thing in Delphi.NET, the non-deterministic nature of the .Net framework means that we need to use a “pull” mechanism rather than a “push” one. Tim touched on topics such as Factory Patterns, Interfaces, Class Methods, Attributes and Reflection.

August -

The New Firebird Versions - Richard King

Richard had been trialing Firebird 2.0 and 2.1 beta . He told us what was new and what worked.

Data Scrubbing - Roger Connell

Most of the data that needs to be loaded into a new database often already exists but is contained in ad hoc spreadsheets and often in less than ideal formats. Roger demonstrated and explained his current approach to this problem and looked at some of the formats encountered.

July -

PHP and "Delphi for PHP"- Alex Moss

Alex skimed over CodeGear's introduction to "Delphi for PHP" slides from that presentation and then told us what he has discovered about Delphi for PHP behind the scenes. Tim Jarvis from CodeGear also came along and was able to provide some insight into the development of this product.

June -

Code Generation- John McDonald

Why write code if you can get your computer to do it for you?

John gave us a look at a Delphi program that can generate source code for DUnit tests and discussed advantages and disadvantages of this technique. We also looked at a couple of tools that can be used for code generation and discuss other areas where code generation might be useful.

Code Generation won't write all of your programs, but it can help write some bits of repetitive code and it can do it more consistently and reliably than coding by hand.

May-

Here is the Problem. Lets look for a solution- Jim Eadie

Jim had some involvement in an old pardox application developed for Windows 3.1. The time has finally come to look at bringing it up to date. Jim has provided the original specification here. Jim demonstated the application to the meetiing and discussed how it worked. Jim had already come to the conclusion that new database searche functionality made such complex mechanisms redundant and he will use a standard database in the new application. It was still interesting to be reminded of the hoops we used to have to jump though.

April

BDS 2006 Pros and Cons-Richard King, Roger Connell and others

Many of our members have bought BDS 2006 but are still using Delphi 7 for their main line development. There is a definite learning curve to BDS from Delphi 7 and the question is do the benefits justify the pain. Richard and Roger had started to do some level of development in BDS and shared their experience. Following the Delphi 2007 roll out seems to have encouraged interest in the new format and much experience was shared. Every one seemed to have a useful tip. More tips available at http://dn.codegear.com/article/33805

March

A Beginner's Look at VMWare Workstation-Jim Duff

An industry pundit recently declared virtualisation to be the big thing this decade.

Many Delphi developers use VMWare from VMWare Inc for a variety of reasons, and many have heard of it from List Postings or had occasional peeks during previous ADUG meeting presentations.

Jim will gave a demonstration of a Virtual Machine, plus cloning and using multiple Virtual Machines and elicited additional information from the other members in an informal discussion. The formal part of Jim's presentation can be obtained here

Keeping Your Application Current-Don Macrae

Don conducted a "peer review" of the code used to update his application with the latest data and executables from an Internet Webservice. Don explained how his code improved the user experience by doing some download functions while the user is busy with other things.

The Webservice component was generated from the target site's Web Service Definition Language using Delphi's WSDL Import Wizard. If an update of the actual running executable was required, the Webservice would be used to obtain a new install file. The application then launches the install file and closes. The Inno Setup install file does a blind install before re-launching the original application with its new executable.

We're thinking of making the '20 Minute Code Review' a regular or perhaps occasional feature of Melbourne meetings - so bear that in mind.

February

Using C#, ASP.NET 2.0 and MySQL to create a data-driven website-Steve Forbes

ASP.NET 2.0 provides a rich environment for creating web-based applications that Delphi developers will readily relate to. Steve provided a step by step tutorial for creating a simple web-site, including how to use business objects to separate business logic from the presentation layer, and discussed some of the techniques and pitfalls newby ASP.NET developers need to be aware of.

Steve has provided the documentation and tutorial code at http://www.ozmosys.net.au/download/adug/adug_aspdotnet.zip

January

More on PDF -Jim Eadie

Jim started with PDF very early on when tools were limited but he persevered and using WPPDF provided a series of wrappers to achieve his reports. WPPDF comes as a DLL and provides the developer with a TCanvas object which is the PDF page.

AJAX -Alex Moss

We'd all heard of Ajax on the Web but what is it and how does it work? Alex researched it and explained that it is the use of the HTTP Request Object now provided with browsers to enable Java Script code functions to communicate with the server and transfer data. This means that you no longer need to download a whole new page to update your pages with live data.

Click here to get the presentation or get the full demo code here

2006

December

FogBugz -Don Macrae

FogBugz is a bug report management tool from Joel Spolsky. Don has been using it and gave us a rundown on bug reporting, explaining how FogBugz meets his requirements.

Solving a Problem -

The group looked at the predefined problem and those who had attempted the problem explained their approach. The outstanding solution came from John McDonald, our resident mathematician who likes to get his head around these things. The problem and John's approach can be viewed at http://www.adug.org.au/meetings/melb/FixtureProblem.htm

November

Third Party Grid Components - Phil Sheppard, Jim Duff, Jim Eadie, Roger Connell

Four members shared their knowledge on some of the third party grid components available for developers using Delphi. The products reviewed were DevExpress Grid - (http://www.devexpress.com/), SMDBGrid - (http://www.scalabium.com/smdbgrid.htm), Woll2Woll Grid - (http://www.woll2woll.com/) and TMS's Advanced String Grid - (http://www.tmssoftware.com/).

October .

Creating PDFs - Graham Pitson and Richard King

Richard and Graham both output their Delphi reports in PDF. They gave us some hints and told us the relative merits of the tools they use. Graham started on PDFs first using "PDF Tool Kit" from http://www.ActivePDF.com while Richard started later and uses "Quick PDF". Graham was aware of the merits of both products but persisted with the earlier "Active PDF" product as it supports serialization.

With Quick PDF it seems the supplier only collects the money and you need to rely on the very active Fan Club at http://www.QuickPdf.org for support.

The meeting then degenerated in to an interesting discussion on PDF features and Don's FogBugz presentation was deferred to a later date.

September -

Annual General Meeting

The new office bearers are:- President - Glenn Crouch; Vice President - Graham Pitson; Treasurer - Mathias Burbach; Secretary - Andrea Coffey.

Turbo is Back- Glenn Crouch

Turbo Delphi was just released in September but Glenn had had it for a while and gave us some insights into the Turbo Suite.

August -

The New Ribbon Menu- Phil Sheppard, Richard King and Jim Duff

Phil, Richard and Jim have been individually examining the new “Ribbon Menu” which we will be exposed to with the next release of Office. Using the TMS components they have all progressed to the point where they were able to show us their efforts. The consensus seems to be that Ribbon Menus will require much more thought in the planning stage. Richard has provided the sample ribbon application at www.vikingcomputers.com.au/ribbon.htm

Navigating the Harbour- Colin Kemp, Kemputer

Some time ago Colin posted to our list questions about tracking boats traveling around Sydney. The list did not provide the solution but did help in finding it. Colin explained the method he used, discussed some of the issues and showed a demonstration of the solution.

The actual project deals with 209 distinct locations around Sydney Harbour and every location needs a path to every other location (outward and return). The final application can retrieve and draw any path in under one second on a 2GHz PC. For the demonstration we were traveling around the New Hebrides . The zip file containing the slides and Delphi demo code is available at www.adug.org.au/meetings/melb/downloads/BoathPath.zip

July -

Secure Remote Support- Jim Duff and Roger Connell

Have you ever had to travel 30 minutes to find that all you needed to do was change a minor setting. Jim and Roger make use of two “freeware”packages to interact with their Customer's business application over the Internet from a remote location.

Jim discussed his experience in deploying and using the packages and demonstrated the use of the solution. Jim's notes are available at http://www.ucars.com.au/delphi

Roger looked at some of the issues in establishing and securing the communication channel.

  • IP Addressing
  • Firewall Settings
  • Secure Tunnel Configuration
  • Databases with Secure Tunnels
  • Process Control
  • Roger's notes are available at http://www.innovasolutions.com.au/delphistuf/ADUGJuly2006.htm

    June -

    Timers-Alex Moss

    A tutorial on the types and use of timers in Delphi. The zip file containing the slides and Delphi demo code is available at www.adug.org.au/meetings/melb/downloads/June2006AlexTimers.zip

    Remote Debug-Paul Klink - Paritech

    Paul is one of the few who have used the remote debugging functionality available in Delphi. He told us what it is, how to do it and why we might need to do it.

    May

    Copernic -Paul Spain

    A tutorial on Copernic desktop search engine (Grep on steroids).

    How to Deal with Date Time - Don Macrae and Richard King

    Richard wrote a date entry component and Don improved on it. After Don and Richard explained the aims and issues the group all joined the debate.

    March - April

    Introduction to open source components for Delphi - Richard King

    Richard King continued his discussion on third party components by looking at Instant Objects and introduced our Wiki on Components as suggested at the previous meeting.

    Advanced Break Points in the Delphi IDE - Roger Connell

    Roger recently discovered advanced break points in the Delphi IDE. Many others seemed to have also missed them so we did a quick overview.

    February

    Introduction to open source components for Delphi - Richard King

    Richard explained that he has been reviewing open source components available for Delphi. He presented some of his findings then discushion centered on how to best harness the collective knowledge of ADUG members. Other sessions will offer you the opportunity to talk about your favorite open source component.

    Evolving Delphi Applications - Tony Rietwyk

    Years ago Tony wrote a Delphi 2 application which displays Midi music files. To become more familiar in designing with interfaces, Tony:

  • Rewrote as D7 objects using inheritance
  • Rewrote as D7 using interfaces
  • Brought it to D2006 Win32
  • Changed to D2006 .Net
  • Tony discussed:

  • The different mind-set required for modeling based on inheritance compared with interfaces.
  • The ease of bringing code up to the different versions.
  • The zip file containing the viewer exe and delphi units is available at "www.adug.org.au/meetings/melb/downloads/Feb20060220.zip'

    January

    Detecting Memory Leaks via DUnit Extensions - Peter McNab

    Peter demonstrated proposed changes to DUnit which automatically and swiftly identifies unit tests which leak memory or fail to call Checkxxx(). In the past leak testing was a very manual process involving running Memproof or Codewatch type tools. Occasional application leak testing may never encounter the conditions which give rise to troublesome leaks in deployed code. Tests that don't call check give a false sense of security, particularly ones where the call(s) to Checkxxx() are controlled by if statements that fail to fire.

    The DUnit modification code is available via http://members.optusnet.com.au/mcnabp


    Multithreadding Delphi Applications -Roger Connell - INNOVA Solutions

    Delphi makes multi threaded applications relatively easy. Roger discussed when you should consider adding multithreading to your application and went through some simple thread models. Powerpionts and code samples are available at http://www.innovasolutions.com.au/delphistuf/ADUGJanuary2006.htm

    2005

    December What is Useability - Steve Roberts, NAB.

    Steve Roberts manages the Usability Lab at the National Australia Bank. He talked about some of the issues he has observed in the 20+ years of studying users and demonstrated the assistive technologies of JAWS and MAGic

    November Taming The Beast - Refactoring RAD Code - Paul Spain.

    Rapid development is usually at the expense of design, and many RAD projects have difficulty moving to version 2.0 or incorporating new requirements or features - an example of design debt.

    October Code Name Dexter - Tim Jarvis.

    Delphi 2006, ECO III, Delphi Compact Framework compiler and other cool features...

    September Annual General Meeting followed by DUnit on DataModules - Mathias Burbach

    We saw how we can separate our business logic from the user interface and how to apply unit testing on the business logic contained in TDataModule.

    August Subversion - one of many Version Control System - Peter McNab

    Subversion in depth followed by short comparisons of Perforce (Richard King); Team Coherence (Graham Pitson); CVS (Don Macrae) and Star Team (?).

    July Working with Excel from Delphi - John McDonald.

    John covered the basics of connecting to Excel using the ExcelApplication component, writing data to a spreadsheet, and formatting the spreadsheet. Speeding up the data transfer was then discussed. These techniques can be extrapolated to other interactions with Excel.

    June Compiler Writing for Dummies - Darren Snodgrass

    This presentation provided an introduction to the steps involved with writing a simple Pascal compiler and interpreter, including language definition, parsing, syntactic analysis, semantic analysis, error recovery, assembly and the operation of a stack based machine.

    May A Sample Code Review - Tim Jarvis

    Tim walked through a unit of code kindly provided by Don Macrae or was it more the case of Tim kindly walked through a unit of code provided by Don Macrae? Tim's emphasis was on checking conformance to a coding standard.

    April

    Recursion and Linked Lists - Roger Connell.

    Early Pascal texts dealt extensively with managing dynamically allocated data via linked lists and with recursion in procedures. With Delphi the dynamic data tends to be allocated as objects and these objects are typically managed in containers such as TObjectList. In this presentation Roger looked at what can happen if you manage these objects as a linked list and how recursion can really make it rock. Slides and code here

    Organizing Program Constant Data - Don Macrae

    You can set it in components at design time, which results in a game of hunt the thimble if you need to change it, or you can embed it in your code, with similar effect. Most programs embody constant values, and where it resides makes a difference to maintainability and readability. Record consts are the answer. Don shared several examples, and invited judgements.

    Full Text Searching from within your Delphi Application - Graham Pitson

    Lots of applications have free text data stored in files or databases. Internet search engines are pretty good at helping us find information on the web. But how can we do that in our own application and what sort of data can we find?

    Graham looked at some of the more common options available, how they work and how you might make use of them in your own applications.

    March Optimizing your code: Paul Spain. Paul presented an overview of the issues and then went through a thought provoking list of coding tips and techniques to improve efficiency

    Windows scaling: Jarrod Hollingworth's tute attacked the issue of controlling how windows presents our forms when the screen resolution is different from the design resolution. Jarrod's presentation is here.

    February Graham Grieve: Grahame presented his replacement for the VCL's Printers.pas, with structural improvements and more of the WinAPI features exposed. Grahame's actual production source code and demo project is here.

    Phil Sheppard: : Phil recently employed Joel Spolsky's guerilla guide to interviewing in selecting a new employee. .

    January Phil Sheppard: Phil. has redeveloped 3 Delphi apps in C#. He presented an overview of his C# app, architecture and code. Slides here.
    Class Factories:
    Don Macrae's tute talked about class references and demonstrated a basic factory. Demo here.

    2004

    December Technology Considerations for better Web Sites from Glenn Lawerence.

    November Something Different. Inspired by Joel's 'Guerilla Guide to Interviewing', the meeting split into groups and attacked some bite sized problems. Problems, pics and solutions here.

    OctoberGenerating Objects from Existing Databases - Bryan Dayton

    Bryan has approached the persistance layer fron a different angle. His work involves existing databases and the challange was to use OO techniques within this existing data structure.

    Use of extensions to Inno Setup - Paul Spain Inno Setup is the installer of choice of many of our members. Paul looked at some of the more complex capabilities of the product and shared his knowledge

    SeptemberRoll your own Persistence Layer III - Roger Connell

    Delphi as a product provides easy integration with various relational databases for storing your data but there are other alternatives.

    In the early years when the now infamous BDE had to be distribute with all such database applications Roger chose not to use a standard database for one application which required a simple installation. Instead the application database was persisted as objects in a single file. This led to development of an "Object" database implementation.

    Roger presented a case study of how the availability of such software assisted in the development of another OO project which required persistence. Code and Database DCUs here.

    August: Roll your own persistence layer. Don Macrae and Natalie Vincent each reported on their implementations of a persistence layer

    July Richard King: Does XML replace CSV?
    Geoff Harris: An inside look at the Nexus database (ex FlashFiler)

    June Steve Moller: an overview of PasDoc's capabilities and his experience using this on a large project for the CSIRO.
    Nadia Natoka: a very entertaining presentation on her experience in providing and improving user help

    May Phil Sheppard and others: Another look at GUI design

    April Jim Duff: A quick introduction to Rave
    Natalie Vincent and Jim Duff: database application
    architectures

    March Melbourne committee: Melbourne GUI fest - 6 short presentations on various aspects of GUI design and implementation

    Feb Jim Duff: The VE part of RAVE Jim will go into more depth at a future meeting.
    Peter Gummer:
    C#: It looks like Java, but feels like Delphi. Peter's notes are here.

    Jan Richard King: A quick look at rich text using TRichView
    Natalie Vincent:
    Environment Changes migrating from Win 98 -> NT/2000 -> XP.

    2003

    December Graeme Grieve: Porting Indy to .NET.

    November Bryan Dayton: Tricks With TEdit
    Commitee members: Programming competition results followed by general discussion

    October Don MacRae: A presentation on one way to do Properties dialogs followed by discussion and synthesis of all points of view

    September Annual AGM followed by Peter Hinrichsen and Ian Krigsman: TechInsite Object Persistence Framework. Get more information and download the framework from the tiOPF site.

    August Paul Spain: Lockbox
    Phil Sheppard: TChart

    July Don Macrae: One approach to Maintenance Dialogs. Food for thought and a future discussion.
    Jarrod Hollingsworth C# Builder
    . Jarrod did an excellent walk through of the new Borland C# product covering topics from the new IDE (which we expect to see in Delphi 8) to aspects of the language itself. Jarrod explained what parts of the IDE were generic (ie Microsoft's) and what parts were Borland's.

    June Roger Connell: Kernel, User and Elapsed times under NT/XP. This is leading to a new ADUG programming competition. Watch this space...
    Richard King: Genetic Programming, a generation beyond Genetic Algorithms. This presentation briefly introduced GA and then moved on to Genetic Programming (GP). Richard demoed some home grown Delphi code that uses GP to find mathematical functions given a number of data points.

    May Vince Parrett: The Guts on FinalBuilder. Well known guru and Canberra ADUG member Vince Parrett gave an impressive demo of his very capable Final Builder product. 
    Paul Spain: An overview of the TurboPower tools. Paul gave a brief run down of the 16 products (one with only 13 components and another with over 120 components, right Don?) that have recently been open sourced on SourceForge.

    April Mark Brooks: JavaScript, the Language. Mark described the JavaScript language focussing on how to implement inheritance.
    Natalie Vincent: Messaging in Delphi. Natalie gave a talk on the Windows message loop. This was a follow up to an earlier talk on the way Delphi handles windows messages.

    March Richard King: Action Manager in Action! Richard gave a talk on the D6/7 Action Manager components, how they extend Action Lists (introduced in D5), and how they can make building menu bars and toolbars easier, if you avoid the buggy bits.
    George Tasker: Exceptions in Threads. George described what happens when an exception is raised in a thread. Download George's code.

    FebruaryPaul Spain: Transactioned Ini Files. Paul explored a lightweight mechanism for persisting data that supports transactions.
    Glenn Lawrence: Back to basics - Components and Controls. Glenn represented his Delphi Magazine article on the basics of components and VCL controls.

    JanuaryAndy Bulka: OOP Principles. Andy led a discussion on OO programming principles.
    Natalie Vincent: A Message in Bottle? Natalie discussed the basics of windows messages, including how to dispatch a message to a window, message loops and window procedures - and how Delphi hides this complexity from us.

    2002

    December  Grahame Grieve: Faxing with ASyncPro. Grahame shared the fruits of his labours in getting the fax component of this useful package from TurboPower working.
    Paul Spain: A DUnit Expert. Paul presented an OpenTools API plug-in for Delphi 5-7 to assist with DUnit testing.

    November Roger Connell: How does IP work with Delphi? Roger explained IP packets and Port 80, and how they interface with Delphi and also described issues with Blocking and Non Blocking Ports.
    Mathias Burbach: How does Interbase rate as a SQL Server? Mathias compared the features of Interbase such as views, stored procedures, triggers, security etc, with alternatives such as Oracle.

    October Phil Sheppard: Implementing Linear Programming. Phil's tutorial provided an introduction to linear programming, a simple example using a third party API and a demonstration of a recent application.
    Steve Hayes: Canoo WebTest. Steve gave a simple demonstration of how to use Canoo to test a web application. Canoo provides an XML-based wrapper for HttpUnit that lets programmers use the power of HttpUnit without requiring Java expertise.

    September Annual General Meeting followed by
    Paul Spain: Using Delphi IDE Macros. Paul provided a practical introduction to the under-used Delphi IDE keyboard macro facility.
    Graham Pitson: The ADUG Events System. Graham described how he successfully implemented the Delphi/Kylix system used with good effect for the Autumn Symposium and the Agile methods workshop.

    August Robert Williams: Active Modelling: from Mess to Success. Robert, from Almond Computing in the UK, told us about a simple technique for defining requirements.
    Andrea Coffey: A few programming tips and tricks. That says it all.

    July Don Macrae: Printing routine documents to the canvas.
    Jim Duff: Product of the month: Help & Manual
    Natalie Vincent: I The NonModal Modal Dialog!
    Natalie Vincent: II File Lock Regions: Overlooked no longer

    June Glenn Stephens: Beyond Events: Using The Command Pattern with Delphi. Glenn described how to implement multiple level undo in applications with particular reference to the Command Design Pattern.

    May Roger Connell: The Pros and Cons of Object Databases. Roger discussed why he chose not to use a relational database for an application and how this has led to an "Object" database implementation.

    April Graeme Chandler: A Backroom View of Ectoset.
    Natalie Vincent: A Glimpse of RTTI

    March Jim Duff: A User's View of Inno Setup
    Natalie Vincent: Named Pipes

    FebruaryIan Krigsman: Coding at the Speed of Thought!
    Paul Fraser: Developing Web Apps in Delphi with IntraWeb

    JanuaryPaul Spain: Yet another Singleton?
    Natalie Vincent: Tray Icons simply
    Robbert Weigmink: Intro to UML, Conclusion.

    2001

    DecemberMeet Andrew Munro. Andrew (the new head of Borland Australia), gave us an update on Borland Oz.
    Automated Unit Testing. Peter Hinrichsen gave  a brief introductory presentation on the value of DUnit. Tim Knipe gave a rundown on his use of DUnit and other tools and techniques to test his Shell Control Pack version 2. DUnit is open source. It is downloadable from SourceForge.net.

    NovemberSteve Hayes: Extreme Programming Explained. Steve described "Extreme Programming", "Programming in Pairs" and explained Kent Beck's book.
    Robbert Wiegmink: Encountering UML. Robbert continued his UML series.

    OctoberPeter Hinrichsen: How a Visitor Changed my Life. Peter led us through another GOF pattern. Click here for Peter's doco.
    Robbert Wiegmink: Encountering Use Cases. Robbert described another aspect of UML - Use Cases. These are especially useful if you are describing the external/requirements aspects of a system. 

    September: The Annual General Meeting was followed by
    Paul Klink: Techniques for managing software complexity
    Paul described some techniques for managing complexity based on those found in  Engineering Real Time Systems by Rolv Braek and Oystein Haugen.
    Robbert Wiegmink: Encountering UML.
    Robbert continued his UML series.

    AugustAndy Bulka: Python and Delphi. Continued from last month.
    Grahame Grieve: How to get the most out of Exceptions. Continued from last month.
    Robbert Wiegmink: The Class Diagram

    JulyAndy Bulka: Python and Delphi. Andy described the Python language and how it can be embedded in Delphi applications using the Python for Delphi components.
    Grahame Grieve and Matt Vincent: How Exceptions Work. Matt described the working of exceptions at a code and CPU level.
    Grahame illustrated how to get the most out of them by example.

    June: Peter Hinrichsen: How the Adaptor Pattern Changed My Life.
    Peter continued where he left off from last month.
    Don Macrae: How the Iterator Pattern Changed My Life. And possibly the Template pattern was also discussed.

    May: Peter Hinrichsen: How the Adaptor Pattern Changed My Life. Adaptor is a GOF pattern. GOF as in Gang of Four, meaning 'Design Patterns: Elements of ReUsable Object Oriented Software' by Gamma, Helm, Johnson and Vlissides ( the GOF ). 
    Tony Rietwyk: Developing a Programming Style. Tony presented some ideas based on his experience with various languages, including Delphi of course. Issues included module and subroutine size, variable naming and ( gasp ) code layout.

    April: This month we were given a thought provoking look at C++ Builder by ADUG member Jarrod Hollingworth - editor of the recent published "C++ Builder 5 Developers Guide". The latter part of the evening was a well thought out expose from Paul Spain of a generic technique to multicast component events, such that several event handlers can be associated with a given event.
    - Jarrod's PPT slides and notes are here.
    - Paul's PPT slides and source code are here.

    March: This month we were treated to a very stimulating expose of TField by Graham Pitson, followed by the dramatic conclusion to Mark Brooks' "Introduction to Threads" presentation.
    - Mark's sample source code can be found here.
    - Watch this space for further info on Graham's talk.

    February: Following the success of last month's "mini symposium" format we applied the same formula again this month with the following first class presentations: 
    - "Frames" by Don Macrae
    - "DHTML Exposed" by Sarah Maguire
    - "Introduction to Threads" by Mark Brooks

    January: This meeting was a mini symposium featuring excellent presentations by various ADUG members:
    - "Understanding HTTP" by Matthew Vincent
    - "PChars and Pascal strings" by Paul Spain
    - "Decorator Pattern - how not to use" by Graham Grieve

    2000

    December: In the 10 minute tute Andy Bulka demonstrated the "Data Diagram View" in the Delphi 5 IDE and suggested alternative uses. The main presentation was by Peter Hinrichsen of Techinsite who gave us the low down on his open source object oriented persistence mechanism. Thanks guys.

    November: This meeting started with a sneak preview of new features in Kylix and Delphi 6 by Borland's John Kaster. Well, alright it was a video of John from the recent BorCon Asia Pacific conference.

    Following John we had well known and much loved ADUG member Glenn Crouch of ESB Consultancy who gave a very informative and well received presentation entitled "Automating the Installation of Design Time Packages". Glenn has been working on this process to automate the installation of his own ESBPCS component suite. The information was of interest even for those who don't plan to publish their components as the techniques presented could also be used to automate the building of applications.

    Glenn's Powerpoint presentation can be downloaded from here, and Glenn has promised to make the relevant sections of source code available here soon. Many thanks Glenn.

    Glenn came all the way from Kalgoorlie WA to make this presentation. Well alright, he was on his way back from BorCon anyway.

    October: ADUG president Glenn Lawrence gave a test run of his upcoming Borcon 2000 presentation "Dead Easy Web Development with CGI Expert". Glenn is the founder of AIMTec, a local company who among other things offers Delphi-aware Web hosting solutions.

    September: Pierre Semaan of PEG Technologies came down from Sydney to give us a valuable sneak preview of his Borcon 2000 presentation on SOAP and XML. Thanks Pierre.

    August Com Automation Clients with Delphi 5:
    Presentation from Brian Watson of Desktop EDA. The presentation was announced on this site as follows:
    Desktop EDA has had a product in the field for a year which was an OLE Client developed using the
    OLE Automation tools in Delphi 3. A 2000 version of the server application rendered the Desktop EDA application unreliable due to not well understood demand on resources. Rewriting the application using the Delphi 5 COM features has resulted in a usable product with more features, faster execution and better control.

    Brian is an ADUG member, and this was his first use of COM. This means the material will be accessible to any of us who are new or relative beginners with COM. Plus of course experienced COM users should come to contribute to the discussion.

    The presentation was followed by a useful discussion on COM issues, from basic to more advanced.

    July: Client DataSet Support using Microsoft Remote Data Service (RDS). This was the title of the presentation by Mark Weston, member and Principal of Real Solutions. Follow this link to the PowerPoint presentation. Ten minute tute was from Bryan Dayton on Console Applications.

    June: How long is a piece of string. This was the title of Michael Stringer's presentation on Project Metrics. Based upon significant personal experience of delivering software projects on time and on budget for commercial clients, Michael presented the evidence and the principles to follow. The essential principle is that you must maintain your project metrics, meaning some measure of your productivity. This means having a basis for measuring output, whether it be use cases, function points, forms or lines of code, and then making sure that all projects are measured in terms of the output unit and resources consumed, so that they can deliver updates to the productivity index. Of course, an estimate cannot be given until you have an estimate of the size of the task in terms of a relevant unit, eg use cases.

    The ten minute tute was delivered by Grahame Grieve, on the subject of herding cats, sorry, make that managing programmers. This was based upon a book "Managing Technical People" by Watts S. Humphrey, the originator of PSP, the Personal Software Process. This book was an eye opener for Grahame, and Grahame's thoughts on the subject were well received.

    May: The main presentation was from Glenn Stephens, fresh from presenting at the Autumn Symposium the previous Friday. His subject: "State and its Natural Enemy: HTTP". You ring for a taxi to take you to the airport. You leave it at the airport and hop on your commuter plane. Upon your return, there the taxi is, where you left it. No? This story was actually from Malcolm Groves, but it got a mention in Glenn's presentation. Ten minute tute was replaced by a sort, performed on the assembled company by Peter Hinrichsen, with the aid of a rubber ball.

    April: The main item this month was a talk by Darius Zakrzewski entitled "The Pattern Movement: A New Culture". Darius is the founder of the Melbourne Patterns Group and Conference Chair for the first Australian Patterns conference. He is also the  lead of the architectural board responsible for setting and overseeing software directions at Cybergraphic Systems, a Melbourne company with some 140 in-house developers. Darius's talk was something of a commercial for the patterns approach, suggesting that patterns were a way to transform software development such that mature, sophisticated and proven techniques for solving design problems became communicable and learnable, to coin a word. The talk was well received, and subsequent discussion revealed that it was a useful contribution to many. At present we do not have a copy of Darius's paper, but we will post it when we do.

    Instead of a ten minute tute the main item was preceded by a reading of a dramatization of the Visitor pattern. Follow this link to read the script.

    March: The topic this month was Delphi's 'Open Tools API'. Part I was a comprehensive introductory coverage by Paul Spain, which included a refresher on interfaces, a feature of the Open Tools API since D4, and ended with a demonstration 'Hello World' expert. Part II was delivered by Paul Gilbert, and consisted of a demonstration and explanation of two experts. Altogether the two Pauls were effective in giving us access to the insides of the IDE we work in every day. Follow this link for presentation material and this link for the demos.

    February: This month we were treated to an excellent "Ten Minute Tute" on "Object tracking" by ADUG member Ian Krigsman, followed by an enthusically received key note presentation by Graham Grieve of Kestral Computing on the subject of Web Development - benefits and pitfalls. Many thanks guys.

    January: The theme of our first meeting for the new year was "Version Control". Grahame Grieve from Kestral Computing presented an enlightening talk on version control practices used at Kestral and demonstrated a custom made version control system that they use. Paul Spain then presented a first class demo of the open-source version control system CVS. Follow this link for Paul's presentation.

    1999

     

    December: This our last meeting before Y2k began with a first class 10 minute tutorial on UML by ADUG member and La Trobe University associate lecturer Arniban Bhattacharya. Arnie did a great job of introducing a complex topic in a very short time - thanks Arnie. Our keynote presenter was ADUG member Andy Bulka who gave a very well prepared and well received demonstration of the Delphi OO design tool ModelMaker - thanks Andy. At the end of the meeting we held a draw for the door prizes. Winners were: Peter Evans - ModelMaker generously donated by the author; Fred Orford - Simply Objects for Delphi generously donated by Adaptive Arts; Paul Klink - $20 book voucher generously donated by Dymocks Greensborough. After the meeting about 20 people stayed back for a very convivial session of curries and drinks organised by Don Macrae and Peter Hinrichsen, thanks guys.

    November: This meeting began with a 10 minute tutorial on "Using IInterface" by Don Macrae. Thanks Don. Our keynote presenter was Tony Alan of Fulcrum Consulting who gave an excellent presentation on XML. His very informative powerpoint slides han be found here. Many thanks Tony. After the meeting some people stayed back to see Glenn's video of this year's Borland Conference that happened the week before.

    October: This meeting began with a 10 minute tutorial on Dynamic Arrays by Don Macrae. Thanks Don. Our keynote presenter was ADUG committee member and international author Peter Hinrichsen who gave a well received presentation based on his latest article for the Delphi Magazine. The topic was on "Using the Observer Design Pattern in Delphi" and generated much interest and discussion. Peter has promised to publish his slides here. Watch this space. Many thanks Peter.

    September: This meeting began a 10 minute tutorial on Binary Search techniques by Paul Spain. Thanks Paul. Our keynote presenter was ADUG member Graeme Chandler who spoke on the topic of the Win32 API. Thanks Graeme A copy of his presentation can be found at his web site here. The GST was a hot topic in the Q&A session so I have compiled some relevant links here.

    August: This meeting incorporated the ADUG AGM official minutes of which will be available from the ADUG Secretary. The following members of the D5 beta test team received a special thank you and were presented with T-shirts: Paul Gilbert, Jason King, Glenn Crouch, Peter Evans, Robert Zolkos, Roger Connell, Laurie Shipp, Henry Yong, Andrea Coffey. Borland generously donated some "door" prizes. Winners were: $2000 training voucher - Tony Rietwyk; D5 Pro - Colin Kemp; Team Source for D5 - Stewart Dobrzynski, BorCon tutorials - Peter Hinrichsen, Paul Klink, Paul Gilbert. After the break we were then treated to a first class presentation entitled "Client Server - Counting the Cost" by ADUG member and Inprise consultant Mark Richards in which Mark treated us to the benefit of his experience in moving from a desktop database environment to full-on client-server.

    July: Timed to coincide with the world-wide announcement of Delphi 5 at the Borland Conference in Philadelphia, ADUG member and D5 beta tester Paul Gilbert presented a candid, thorough and very well received demonstration of Delphi 5. We were also treated to a very professional presentation on the Personal Software Process method by ADUG member Nick Argall.

    June: Instead of a 10 minute tutorial and a main presentation, ADUG members were treated to two generous presentations by ADUG members Paul Spain and Tony Reitwyk. Paul spoke on the subject of Class References in Delphi, and Tony presented an example of using Class References to implement the Factory Method design pattern.

    May: Our first meeting at our new home at the venerable Royal Society's Hall in Melbourne. This month's 10 Minute tutorial was by Ms Cher Page, who spoke on the subject of Exception Handling. The main presentation was by ADUG member Iris Radalescu. Iris presented a well received paper written by Peter Szymiczek and himself in the subject of BDE Networking.

    April: This month's main meeting began with a Special General Meeting at which proposals to re form the ADUG as an incorporated body were all unanimously carried. This was followed by announcements and our usual Q&A session. Andrea was unable to give the planned 10 minute tutorial on her bar code component but has promised material to be posted on the web, so watch this space. Steven Healey, member of the UK-BUG, who was currently visiting Melbourne, told us about his very successful Delphi Prefix Registry and his ComDesk product. The main speaker of the evening was ADUG member Andy Bulka who gave a well received presentation on using Delphi's component-based streaming mechanisms, and in particular using the TreeView components as the basis for a hierarchical object persistent storage mechanism. Here are Andy's excellent presentation notes as well as a demo project.

    March: "10 Minute Tutorial" this month was by ADUG member Peter McNab of Aviation Data Systems on the topic of "Rebooting NT from within your application". A "10 minute demo" of an RPN calculator application was given by ADUG member Jason King of AdvaTel. The main presentation was then given by ADUG president Glenn Lawrence and covered issues relating to date-time conversion and Y2k compliance. Notes, source code and other material is being prepared. Watch this space, or tune into the mailing list.

    February: Back in RMIT (although now on level 17) we were treated to a "10 Minute Tutorial" on writing OLE Automation Clients by ADUG member Brian Watson of Desktop EDA. Follow this link for his powerpoint slides. The main presentation was then given by ADUG member Graham Pitson on the topic of creating your own TDataset derivatives. Follow this link for notes and source code.

    January: This month the meeting venue was temporarily moved to salubrious surroundings of the R&D Technology Park at La Trobe University. Following the tradition of past year's it was a relaxed meeting focussing on round-table discussion. There were short presentations by Mark Brooks and Don Macrae, with pizzas and beer afterwards. Mark gave a very informative "10 minute tutorial" on the subject of Object Pascal Variants. Don presented a nifty report writing unit/component that he is working on.

    1998

    December: ADUG member John McDonald gave a "10 minute tutorial" on "When to create your own components". This was followed with a presentation by Graham Grieve on the topic "Trials and tribulations of C/S development: Server programs in Delphi". For pictures and more information please follow this link.

    November: ADUG member Don Macrae gave a "10 minute tutorial" on records and memory allocation. This had the desired effect of sparking an interesting discussion on the "evils" of pointers. This was followed with a presentation by Peter Collas of Collas Consulting on the topic of Form Inheritance. Peter has promised some material for us to post here, but in the meantime you read the informative introduction to his talk.

    October: ADUG president Glenn Lawrence and ADUG member Peter Hinrichsen gave a report on the recent ICON '98 Inprise Asia-Pacific conference that they recently attended. This was followed with a presentation by ADUG member Peter Evans of CocolSoft who demonstrated his new Cogencee parsing engine for Delphi.

    September: Presentation: Matthew Boyce and Adam Satori of Soft Gen, distributors of Interbase, generously gave their time to demonstrate the latest version of Interbase and a number of third part support products.

    August: Presentation: Glenn Stephens of Code Rage came down from Sydney to present DBOvernet, a simple third party Midas replacement for connecting a remote client to a server-based database over the net. Glenn generously presented a copy of DBOvernet which was won by Richard Czerwonka in WA. This month was also the ADUG AGM, minutes of which are available from the secretary. Inprise generously donated some "door" prizes which went to ADUG members as follows: Jason King (Vic) T-shirt, Glenn Crouch (WA) T-Shirt, Wally Ripper (Vic) J-Builder Pro.

    July: Presentation: Andrew Rutherford and David Gorton principals of Classworks Australia came down from Newcastle to present a "technical preview" of their DCOM Development Infrastructure and Knowledge Manager products. Once again, two great Aussie products that deserve to succeed. Andrew has kindly placed a copy of their powerpoint slides on their web-site that can be reached through this link and the handout (in RTF format) can be accessed via this link.

    June: Presentation: Derek Renouf, lead developer of Adaptive Arts came down from Sydney to present the Australian modelling and design tool Simply Objects. This looks like a great Aussie product for object modelling and reverse engineering. He also gave away a couple of free copies - thanks Derek!

    May: Presentation: "Comparison of Intrabuilder and CGI-Expert" by Wally Ripper see Wally's speaker notes.

    April: Presentation: "Windows 95 Registry with Delphi" by Mark Brooks of AIMTec download Mark's paper.

    March: Presentation: "Controls Demystified" by Glenn Lawrence see Glenn's paper.

    February: Presentation: "Writing Server-side Web Applications in Delphi with CGI Expert" by Glenn Lawrence see Glenn's paper.

    January: Round table discussion on various subjects raised by the group.

    1997

    December: Presentation on "Mapping OO models onto Relational Databases" by James Thorpe of CSAA.

    November: Discussion forum on software design issues hosted by Don Macrae. See Glenn's notes on this meeting.

    October: Presentation "Software Configuration Management" by Steve Forbes. See Steve's handout material and Glenn's notes on this meeting.

    September: Special meeting open to the general public at the Hotel Sofitel, featuring Graham Porter and Randall Sell of Borland Australia demonstrating Delphi 3, Intrabuilder and JBuilder. See Don's notes on this meeting. See also Leon's pictures.

    August: ADUG AGM and presentation on "Drag and Drop in Delphi" by Paul Spain. See Paul's presentation and Glenn's notes on this meeting.

    July: Presentation: "COM in Delphi" by Mark Weston. See Mark's presentation and Glenn's notes on this meeting.

    June: "The view from the top" from Ray Bradbery - CEO Borland Australia. See Glenn's notes on this meeting.

    May: Presentations on "Team development support tools" by Steve Forbes and "The object browser (and other things)" by Davyd Norris. See Steve's paper and Glenn's notes on this meeting.

    April: Demos of Borland C++ Builder and Delphi 3 by Randall Sell of Borland Australia. See Glenn's notes on this meeting.

    March: Summary of Microsoft Developers Conference by Peter Szymiczek and a case-study moderated by Don Macrae. See Glenn's notes on this meeting. See also Leon's pictures.

    February: Presentation on TeeChart, IncCombo and Apollo by Grant Dunoon. See Glenn's notes on this meeting.

    January: Round table discussion. See Glenn's notes on this meeting.

     

    1996

    December: Presentation on "A Visual Component Builder" by Steve Moller. See Steve's preview summary and presentation for more information. Glenn Lawrence also presented his new "scaler panel" component and explained how it worked.

    November: Demo of IntraBuilder by Randall Sell of Borland Australia. See Glenn's notes on this meeting.

    October: Presentation on drawing to the TPrinter canvas by Don Macrae. See Don's paper on this topic. Glenn Lawrence also presented a short demo of Michael Kochiashvili's TRunLabel component.

    September: Presentation of Per Larsen's MemMonD and Memory Sleuth by Mark Weston of Real Solutions.

    August: Demo by David Szkylnik of Jan Strube's DBScroll component.

    July: Presentation on "Using text files with Delphi" by Glenn Lawrence see Glenn's paper on this topic.

    Prehistory: ADUG has been meeting regularly since 1994, but notes of early meetings are no longer available.