Sydney Meetings
May 2009
VCL for the Web in Delphi 2009 -
This presentation will cover the basic building blocks of VCL for the Web (formerly known as IntraWeb). We will look at Page Mode & Application Mode, see how state is managed in
a VCL for the Web application and also make use of data-aware controls. This is as close as you can get to normal Delphi development when it comes to web applications.
April 2009
The DBX Architecture in Delphi 2009 -
Let us watch Marco's DataRage presentation on the DBX architecture in Delphi 2009. The presentation provides an introduction to the Delphi 2009 renewed
DataSnap architecture that let's you create multi-tier applications in an easy, RAD way delivering power and flexibility for your remote,
zero-configuration, client applications.
March 2009
Delphi 2009 Debugger Tips & Tricks -
The new Delphi 2009 IDE has brought some substantial enhancements, one of which is the improved debugger features.
We will have a look at Delphi 2009 and how it compares to Delphi 7 & 2007 when it comes to debugging functionality.
February 2009
Secrets of the Delphi 2009 RTL - Marco Cantù
Let us watch Marco's CodeRage III presentation on the Secrets of the Delphi 2009 RTL
and discuss it afterwards. Marco is a well known book author in the Delphi community and has presented at many conferences in the past.
January 2009
ADUG - what I expect & what I can contribute - Delphi Community
In recent months it has been a struggle to find speakers for our meetings. We seriously need to consider what to do in order to keep our
meetings interesting to our membership. So please join us for a round table discussion on our future meeting structure/format. Subsequently
we will have a few drinks at the City Tattersalls Club.
December 2008
Advanced debugging with logging frameworks -
We'll look at how using a logging framework such as SmartInspect or CodeSite can be used both during development to speed up your debugging and after deployment to resolve problems reported by your end users.
Focusing primarily on database applications we'll use and extend these frameworks (mainly SmartInspect) to give us detailed insight into how our applications work and how they're being used by others. These techniques will work on any application that uses a TDataSet descendant class for it's data access.
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
November 2008
Delphi 2009 - How would your project benefit from it? -
We will have a look at the new features of Delphi 2009 and focus on your how your project could benefit from it.
So please bring your examples and let's have a look together what Delphi 2009 has to offer out of the box.
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
Octorber 2008
Basics of using audio in Delphi applications -
Discussion of how to utilise audio within Win32 Delphi applications from simple sound effects to handling and converting audio data streams.
The source code of Paul's presentation can be found here.
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
September 2008
Living like the Greek Gods? -
In recent times I have started to experiment with Linux Ubunutu & Wine
in order to run Delphi Win32 applications under Linux. We will have a quick look at Ubuntu, install Wine and run a simple
Delphi app built from scratch. Then we open the floor for discussions on what features you are using in your application and see if we can get them to run under Linux too.
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
August 2008
Software Archaeology -
(AKA I've just inherited a million lines of Delphi code and I don't know what to do with it)
Among the features added to Delphi in recent years, there are a few that seem to be regularly put into the "too hard" basket. UML is one, Audits and Metrics is another,
Design Pattern support, even Unit Testing in many cases.
An opinion often expressed is that unless you use these things from the start of your project, they are no value to you.
In this session, Malcolm will take us through a slightly different way of using these and other features, with a particular focus on the value they can give to someone who
needs to maintain and extend an existing, large codebase that was developed without the use of any of these features.
Delphi 2009 Preview -
The R&D efforts for the next version of Delphi - codenamed Tiburon - are well on its way. We have seen already a few blogs about the main features of the next version of Delphi.
Unicode seems to be one of them. This month we can enjoy even two presentations of Malcolm Groves, CodeGear's Asia Pacific Product Director, in our home town.
June 2008
What's new in Firebird 2.1 -
In April 2008 the open source Firebird community released version 2.1 of Firebird (see also here).
Let's have a look together what all these new features mean to our day-to-day work:
- Database Triggers
- Dynamic Recursive Queries
- Update or Insert Statement
- Treat Text Blobs Like VarChars
- Database Monitoring via SQL
- ... (and many others)
Whilst this presentation aims at explaining most of the new features we also want to discuss their relevance for your current projects.
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
May 2008
Embarca-who? E/R Studio? DB Artisan? Rapid SQL? -
I've never heard of them either but I'm curious as to what sort of products the new owners of CodeGear have to offer. Come along and I'll demonstrate
what I've learnt from playing around with the trial versions of the Embarcadero suite of database tools.
Are they useful and reasonably priced for small teams? Are they better than the competition? Do they give any hints as to where Delphi might head in the future?
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
April 2008
CodeRage or Code Crunch in Sydney - Delphi Community
Unfortuantely David I. can't make it to the meeting. This is why we have quickly decided to offer you a replay of any CodeRage session or
bring your notebook for a Code Crunch session. During Code Crunch we aim to solve a small problem all together.
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
March 2008
Phone System Integration using Delphi and Asterisk OpenSource PBX -
Asterisk is an open source VoIP Private Branch Exchange software system that
runs on Linux on a standard PC hardware platform. A demonstration of how to write a Delphi application to control user access to
retrieve information via a telephone based user interface will be presented.
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
February 2008
Webcam Fun with Delphi - Bob Swart
In this session, you'll see how to use Delphi and a webcam to build fun and useful applications.
This is a CodeRage 2 recorded presentation,
which we will replay and have a discussion about.
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
January 2008
Memory Leak Detection with FastMM -
Since Delphi 2006 FastMM has become the default memory manager for Delphi. The presentation will focus on the memory leak detection feature of FastMM and how to pin down even the line of code,
where the leak was introduced.
Not your father's Pascal -
There have been many extensions to the Delphi/Object Pascal language since Delphi 7. Are you making the most of these new language features?
Did you know that records can now have methods, properties for instance? Do you know what the difference between "private" and "strict private" is? What is a "sealed" class? What is a "class helper"? Have you ever used nested classes? What is a "for in" loop?
We'll look at these new language features and others and discuss how you can make use of them in your code.
This presentation can be downloaded as a video from Lachlan's FTP site. The FTP server and password can be found in the ADUG mail-list archive here.
December 2007
CodeRage II "in Sydney" - All the famous guys
From 26th to 30th November 2007 CodeGear held the second online conference called CodeRage II. The presentation times have been a bit tricky for us here in Australia
(12 AM to 9 AM). Now all the presentations are available for download from here. The complete schedule was published here. Please pick your preferred topic and we
will run the video and then have a short discussion on the presentation during the pizza break.
Future Speaker List - Delphi Community
The topics suggested at the last meeting are published here. Please let us know whom we could approach to present in one of the topics. If you wonna give it a go - even better! We are looking forward to your presentation.
A list of suggested topics has been posted to the ADUG mail-list here.
November 2007
An introduction to using Delphi inside Virtual Machines -
For the past 2 years I've used Delphi exclusively from inside VMware virtual machines, providing me with an inexpensive development and build
environment that is consistent, reliable and portable. This presentation will give my tips on how best to use Delphi and virtual machines together.
No prior knowledge of virtual machines is required.
The presentation can be downloaded as a video from here.
Your preferred topics for the future - Delphi Community
Please help the sub-committee in planning future meetings and come along with your suggestion for good topics in the future. You may even know a possible presenter.
A list of suggested topics has been posted to the ADUG mail-list here.
October 2007
CodeGear RAD Studio 2007 -
Delphi, Delphi for .NET, and C++Builder in one environment for rapidly developing Windows and .NET 2.0 applications on and for Windows 2000,
XP, and Vista. You get all the tools you need to create AJAX powered web pages using ASP.NET 2.0 and VCL for the Web and database
applications with local database connectivity. And deploy your applications, with no additional charges, on the Windows platform or
your choice.
Nick will talk about & present the new CodeGear RAD Studio 2007. He will also share with us the Delphi Roadmap (e.g. What’s coming up
in future versions of Delphi?) and be available for an open forum discussion.
September 2007
CSI Object-Oriented Application Framework for Win32 -
The CSI application framework has been developed over the last ten years to provide a simple and easy-to-use framework for application development
to handle some of the basic application "plumbing" common to most applications. The framework has also been extended to provide some general utility
routines, classes, and components, and offers generic inter-thread messaging, generic inter-process TCP communication, and abstracted database access.
We will have a presentation on this framework at our meeting as a leed up to the workshop on the 19th September 2007.
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
August 2007
Automated testing strategies, which tests to use when -
Automated testing to many of us means DUnit and possibly some kind of performance or GUI testing. But those are not the only tests that
can be automated. On the web load testing is often critical, and for regression testing a GUI test tool like TestComplete or WinRunner
can make all the difference. With more of us writing multithreaded code some kind of thread-intensive testing will find bugs that would
otherwise be hard to detect and can be impossible to reproduce any other way. I'll run through a few techniques and tools that I use,
and suggest ways to get started.
Chris' white paper on the topic can be downloaded from here.
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
Juli 2007
Integrating Object Pascal and PHP -
Prior to the release of CodeGear's Delphi for PHP there was another way for Delphi developers to
integrate PHP into their Delphi projects. The PHP4Delphi project is an open source framework for Delphi (v5 and later)
that lets you extend the functionality of the PHP language using Object Pascal. We'll go through examples that show how you
can call Object Pascal code from within PHP code and vice versa.
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
June 2007
Delphi and OpenGL -
Traditionally most Delphi programming has been about reading and writing files and databases - and no doubt this will continue to be bread and butter programming for many.
However, built into the plumbing of Windows is OpenGL. It's 3d subsystem of libraries that is becoming a more and more important. Many of the special effects in Vista are built using the OpenGL subsystem.
This talk covers two different styles of 3D programming, firstly, the low level method directly accessing the OpenGL libraries and then secondly, a much easier system : GLScene. This set of components provides a VCL drag and drop of 3D components that will be familiar to many Delphi programmers.
With GLScene, 3D objects can be added to Delphi forms and manipulated like any other VCL components. Thus bringing OpenGL programming within the reach of projects that many of us may currently be working on.
May 2007
Architecting an enterprise-wide system -
A discussion on a current real-world Delphi system, with a focus on n-tier considerations and inter-process communication.
I will be drawing on a novel approach that has been used in the development of an alarm monitoring system, which should hopefully
prompt further discussion on these and other related is.
Using Delphi to control external devices -
A discussion on using Delphi as a Central Controller and Graphical Interface in audio/visual installations.
April 2007
Easy GUI development with ActionBands -
ActionBands are an under-utilised suite of components in the Borland VCL which can give you a lot of
functionality quickly to desktop applications. Think of them as super-charged TActionLists. In this presentation, I will explain:
1. What are the ActionBand components;
2. Demonstrate usage and features;
3. high level design
4. Summarise the merits
5. Summarise the limitations and weaknesses;
6. Demonstrate my own Unicode version of Action bands.
You will find Sean's source code here
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
March 2007
Licencing shrinkwrap software & managing customers -
This presentation will show some interesting techniques to create licence files for your shrinkwrap
software. How to activate certain modules of your package and distinguish between stand-alone and network version of the same app.
The demo also delves into the technique of managing technical support renewals and efficient communication with the client including
automatic letters & e-mails as well as recording any actions taken against that particular licence.
François' slides code here
Question and Answer Session - Delphi Community
Bring your current development problem to our meeting and let us "crack the nut" together.
We spoke about Cary Jensen's CodeRage presentation on "Building Scalable Data Access Layers for ASP.NET Applications".
The source code for his presentation can be found here.
February 2007
Your Delphi apps under Windows Vista - Delphi Community
We will look at a set of articles
published on the internet and discuss necessary amendments in your Delphi source code
to make your apps first class "citizens" under Windows Vista.
Turbo Delphi at the universities - Delphi Community
With the start of the next term we will have the opportunity to distrubute our ADUG burned Turbo Delphi install
CDs to a bigger number of computer science students at UNSW. We want to look at basic training videos
taped by Nick Hodges and decide on a good mix of topics to speak about at the "Tech Friday" of the student guild at the School of Computer
Science and Engineering (CSE).
January 2007
Concurrency Handling in Win32 World -
We will look at concurrency handling in Delphi Win32. How to detect changes made by another user since you selected your resultset and how
to handle them efficiently. This solution is based on Firebird, IBX and "visual" inheritence on Datamodules. We will use a centralized OnPostError handler to deal with the conflict.
You will find Craig's source code here
Concurrency Handling in .NET/ECO World -
We will look at concurrency handling in Delphi .NET with ECO. The presentation will show how to make use of the ECO Timestamp, which
is really a version number on the record, how to detect changed object instances that could not be saved because of a direct conflict and how
to deal with that conflict on the client side (EcoSpace & WinForm).
You will find Mathias' source code here
December 2006
Case Study: Remote access via RemObjects' DataSnap integration pack -
This will look at how we fulfilled a requirement to allow existing applications to remotely access data using RemObjects and specifically
their DataSnap integration pack. It will also focus on ways forward by migrating to using RemObject's Data Abstract product.
Christmas Wish-List for Delphi Developers - Delphi Community
Please bring your preferred Christmas biscuits & cookies and let us discuss what you would like to see from CodeGear in the future.
What are the challenges in your current project and how could the next version of Delphi support you best?
November 2006
Long live Live Templates -
Did you realise that the Ctrl+J template system in the Delphi 2006 editor has had a massive facelift and is now actually quite useful?
Now known as Live Templates, the new system is somewhat comparable in functionality to the templates from the old CodeRush for Delphi 3-7.
We'll take a look at how to edit the existing templates, write a new template, and write a template that can call your Delphi code as it executes.
Hopefully by the end of the session we'll go part of the way to helping you with your CodeRush withdrawal symptoms.
You will find Lachlan's slides and source code here.
October 2006
Follow-up discussion on Threads - Delphi Community
After last month's round table discussion on threads, quite a few of our members expressed their interest in discussing the topic further.
This is why we thought we would do this rather sooner than later.
What I always wanted to present on, but never dared - Delphi Community
As you can see in the last few months we have had difficulties in finding enough speakers and topics. Thanks to this discussion, we hope
to identify topics of interest as well as possible speakers. For sure we also have time for a Q&A session.
September 2006
A Roundtable Discussion on Threads -
any of us have considered using threads, some of us have considerable experience with them. However, no matter how much we
know, there always seems to be more to learn. From the basics of when to use threads, through to the complexity of inter-thread
communication, I will introduce the issues and hopefully prompt others to share their knowledge and experiences.
You will find Misha's source code here
August 2006
Case Study: Happy CHAP thanks to ECOIII -
The Centre for Health Assets Australasia (CHAA) has been given the task
to organise a survey to capture & analyze financial spendings in the health building sector on behalf of the federal government
and the state governments of Australia & New Zealand. The project was called Capital Health Asset Project (CHAP) and
Maranatha Consulting was approached to provide IT consulting services
for the project. The case study will focus on the technical side of the project
and how Delphi 2006 & ECO helped to make it a much easier task for CHAA to analyse the data entered by the different jurisdictions.
July 2006
Get your applications into shape with FIT -
Based around HTML this open source testing framework allows you and your users to work together to build tests using familiar tools such as
Word or Excel. Especially well suited to Test Driven Development methodologies this framework also has the potential to change the way
you gather requirements from your users.
You will find Lachlan's source code here.
Make the most out of ClientDataSets -
See how ClientDataSets can provide an easy logging facility for updates to the database. Even with nested tables you
have full control over what you want to do with the Delta. If time permits after this short presentation, the group can
discuss experiences in the use of ClientDataSets or any other questions you might have, regardless of your expertise level.
You will find Craig's source code here.
June 2006
Round Table Discussion: The Future of Delphi & DevCo -
Malcolm Groves will give us an update on DevCo and the plans for Delphi (and the other Borland developer tools) - not to be
missed for any Borland development tool user. For all those ADUG members that couldn't make it to the symposium in either Melbourne
or Adelaide.
Build your own gant chart component -
This presentation will show a visually interesting commercial application, developed in Delphi 7 & firebird DBMS. The
application is a Gantt style calendar builder, similar functionality to that of the MS Project application we all know so well.
We will cover some of the custom component development used as well as inheritance, paint override and image drawing to show you
how an application of this type can be built.
April 2006
Developing a Google Desktop sidebar using Delphi -
Zijian has developed this without using the Google SDK. The talk will focus on the desktop, COM, and plug-in,
using Google Desktop as an example.
Product Review: FastMM -
Have you ever had the feeling that you were losing your memory? Come to this month's ADUG meeting to find out how to stop it. Anthony
will be demonstrating how to use FastMM to detect leaks and help plug
them. If time permits, he'll also demonstrate a technique to help you remember other stuff as well.
March 2006
Application and Event Logging Framework -
We've all done logging at some time, whether to record errors, check performance or log data changes. However, how do you log a communications error to the database if your network has gone
down? Misha's solution allows multiple client applications to centralise event logs on a server database in a reliable way.
ADUG Meeting Reminder with ECOIII -
This will be a short presentation on how ECOIII has helped me to build an even better meeting reminder mail-merge tool. We will look into building the model separately from the database &
UI. We will write NUnit test cases to proof the "business rules" are working properly. We will see an import app to import existing TClientDataSet XML files and finally the beginning of an ASP.Net
front-end for the model.
You can download the source code from our ADUG JediVCS version control server at jvcs.adug.org.au as user "Guest" with password "Guest".
February 2006
Jim2 Business Engine ERP package -
The development team from Happen Business will be presenting an overview of their Jim2 Business Engine ERP package.
Topics include…
- General architecture
- Coding methods and style
- Release cycle
- Support issues
- Documentation
- MS SQL tricks and hacks
- Various Windows related issues and workarounds
- Software startup issues
- How we have achieved success so quickly
- Some of the trickier coding issues we have had to tackle.
- 3rd party components we use and why
- D2006 migration issues
- User interface design
January 2006
What's new in ECOIII -
ECO III, released with Delphi 2006, introduces many new features to dramatically improve developer productivity. This
session covers the new features, such as State Machines, the ECO Action Language, multiple persistence mappers, as well as the many smaller but
much requested tweaks that have found their way into this release. We also cover some dramatic changes to how we deliver ECO to you. A must
see session for anyone using, looking at using, or wishing they could use ECO.
For more information on ECO have a look here.
December 2005
Programming in Virtual Machines -
Moz shows you the joy of programming inside virtual machines - why you'd want to, how to set them up and some tweaks to
make them moreuseful. He'll bring along a test rig for people to look at.
His talk can be found here.
November 2005
Round Table Discussion on Delphi 2006 -
During his tour throughout New Zealand & Australia to present on Delphi 2006 at the Borland Technology Days 2005,
John Kaster - Principal Engineer for Borland Software Corporation (USA) - will have time to meet with us at a regular ADUG meeting.
Tutorial on Stored Procedures in MS SQL Server -
Stuart will cover he basics of stored procedures in MS SQL Server and why you may wish to use them. He will then delve
into XML, marking duplicates and handling tree structures inside Transact-SQL.
October 2005
DeXter Sneak Preview -
Malcolm will be giving us an insight into the next version of Delphi codenamed DeXter. We will see ECO III, the next version of ECO.
He will explain some of the new features and then put ECO through its paces. This will be followed by a look at the Delphi Compact
Framework compiler and finally, if we have time, a quick look at C++ Builder - the latest language personality in Delphi.
Tutorial on Embedding Control Functions into Columns of a DataGrid -
During this discussion an Interface definition is defined (IHostControl) which supports the implementation of customized Controls that may be embedded within a DataGrid or directly placed on a Windows Form.
The original problem required standard or customized Controls to be made available for columns of a DataGrid or placed on a form. These Controls are to behave identically in both locations.
To reduce the development effort and complexity for each Control, the following strategy was implemented. A wrapper class per environment was implemented which controlled any customized/standard Control which supports the IHostControl interface. Any Control could implement this interface.
The tutorial shall discuss and demonstrate the implementation of the above.
September 2005
ADUG Membership System -
The team developing the new membership system wants to present its results so far. As we have moved to
ECO recently we will discuss the class diagram and how ECO should help us to be more productive. We are
looking forward to your comments and suggestions for improvement.
"The Team" are Craig Goodall, Dick Walker, Esther Hamburger, José García, Mathias Burbach and Phillip Allan.
A few more of my favourite tools -
I have been referred to as a tool junkie by one of my colleagues. But I prefer to think of it as spending
an inordinate amount of time finding tools which will save me time. Come along and find out my favourites -
like Autoruns and
Process Explorer - where the time has been wasted for you.
August 2005
Turning MDA into reality with ECO2 -
We will have a look at a commercial application
developed by Dick Walker using ECO2. We will look at how ECO and .NET
are used to create a real life business application. We will cover the
general concepts involved, discuss design decisions and take a
high-level view of some of the latest technologies can be used. Come
along, have a look and ask some questions.
Here are some helpful links:
Modal Frames -
Modal dialog boxes stop your application in its tracks:
the user is forced to deal with it before any other operation is
allowed. This might make sense in an SDI application, but very little
in a MDI application, where an error message on one form prevents you
from opening another. Why should this be so? Following a need to have
modal dialog boxes be modal only to the current form in a MDI
application, "Modal Frames" were born. We will cover the design and
implementation of what is yet another very useful feature of TFrame.
The source code of this presentation can be downloaded from here.
July 2005
Turning a program into a sustainable software business -
Has your mind every drifted and wondered "what could I code that would really make a difference to the world,
and be turned into a sustainable software business". This talk passes on lessons and ideas on what we did
at the architecture level, and in terms of processes, configuration management and documentation to achieve
this.
We followed a broad agile process of peer testing , daily builds and incremental development, but took a slightly
different approach in that we did build a layered platform up front....and stuck to it, with continuous cleanup
and periodic spring cleans.
The talk will cover some of the patterns used and the architectural framework, in particular the persistence layer.
We'll talk about the commercial need for a "build it and speed it up later" approach. A key to the product's success
is its amazing configurability and we'll discuss how that was achieved, and also the way we do configuration management
that allows 100's of customers to all request their own customisations while maintaining one version of the code.
Lastly documentation! Although hard to maintain, it is the level that is important to get right. eTrack uses a variation
of use cases to document fanatically the business requirements of every issue, enhancement and feature in a quick efficient
manner that works in a virtual environment and results in almost zero rework.
Questions & Answers Session - ADUG Membership
As requested by our members we re-activate an old tradition of having a Questions & Answers session from time to time.
Feel free to post your question(s) to our mail list server.
The posted questions can be found on our mail list archive under "Sydney Meeting: Questions + Answers" in July 2005.
June 2005
Practical interface usage -
This session will introduce Object Pascal interfaces (not user interfaces) and provide some practical examples
of where they can be used. Examples will include interface usage in the VCL, using interfaces to build an
application that be run either as a single exe or a distributed system, code that can be reused in both a web
and desktop application, and a technique useful for library type code that gives a class seperate private
and public interfaces.
If you're unfamiliar with interfaces or if you have trouble finding a role for them in your applications this
session will give you some tips.
ModelMaker 8 Product Review -
ModelMaker is a two-way class
tree oriented productivity, refactoring and UML-style CASE tool. It is specifically
designed for generating native Delphi code. It has won serveral Delphi Informant "Best Modelling/UML Tool" awards.
Since it was bundeled with Delphi 7 as ModelMaker 6.2 the company ModelMaker Tools has released version 7 & 8.
So its time to have a look at the new features of ModelMaker 8.0.6 and why and when to use it.
May 2005
What's new in InterBase 7.5 -
Are your customers struggling with 4 GB InterBase files, too? Do you want to monitor closer what's going on in your InterBase server?
Then the new version of InterBase might be of interest for you. Come along and see what improvements the Borland InterBase development
team recently introduced to InterBase 7.5.
You will find the InterBase PLANalyzer home page here.
You will find the InterBase Performance Monitor home page here.
You will find the BorCon 2004 InterBase proceedings here.
ADUG Sydney Activity Review -
Mid April the Sydney sub-committee approached all ADUG members in NSW to answer a few questions regarding the future direction of
ADUG in Sydney. Quite a few of you have replied. We would like to discuss their suggestions for improvements with you. Please come along
and help us to make this chapter even more interesting.
The result of the survey can be downloaded from here.
April 2005
ECO2: Enhanced capabilities for Model Driven Development -
For this presentation Damien will briefly outline what Borland offered in ECO1 and how this compares to the increased funcionality in ECO2.
He will then go through an example of these new capabilities in Delphi 2005. Some of the features that he will be discussing are:
- Synchronisation of multiple ECO Spaces
- Web development with ECO
- Transaction support with ECO
The source code of this presentation can be downloaded from here.
The Singleton Design Pattern -
The Singleton design pattern is defined as: "Ensure a class only has one instance, and provide a global point of access to it."
I will be discussing various Delphi implementations of the Singleton design pattern and the trade-offs associated with them.
So come along to find out everything you wanted to know about Singletons but were too afraid to ask.
The source code of this presentation can be downloaded from here.
March 2005
NexusDB V2 Memory Manager and RDBMS -
NexusDB is a high speed DBMS engine for Delphi, C Builder and .Net
applications. Version 1 has been a successful heir to the popular
FlashFiler engine from the now defunct TurboPower Software company. A
significant part of the success and speed of NexusDB can be attributed to
its well known memory manager. In this talk we explore both the Nexus
Memory Manager and Version 2 of NexusDB.
Aspects of the Memory Manager that make it the technical best of its kind
on the market are explained in this presentation. Examples showing its
speed and lean use of memory will be demonstrated highlighting just how
easy it is to use.
The talk will then lead on to an in-depth discussion of Version 2 of the
RDBMS, NexusDB. The various new features of NexusDB will be explained,
with examples, as well as a look into how to utilize it potential to the
fullest. Version 2 also represents a move by Nexus into the .NET world.
Future editions of NexusDB, namely the Enterprise Edition, will also be
showcased.
Automated Solution Generation Algorithms for Scheduling -
The generalized scheduling problem is a well known real-world work issue
which confronts all levels of industry and government on a day to day
basis. Specific examples of such problems include time tabling, rostering,
job-shop scheduling and the well known travelling salesman problem.
The provision of the automated generation of solutions to these problems
has interested business analysts and academics alike for many decades.
Research into this area has resulted in a huge number of publications
discussing proposed algorithms, implementations and systems.
In this talk is presented a summary of the more well-researched algorithms
and some recent research results. The results present allow a more deeper
understanding of the various techniques including insights into regions of
the solution phase space they are more better suited to.
An good introduction on Constraint Satisfaction Programming is available here.
February 2005
Creating and Using Web Services with Delphi 2005 -
In this presentation we will explore how easy it is to create and consume web services with Delphi 2005 thanks to the Microsoft .Net Framework SDK.
After buiding our own simple web service we will consume an existing web service to retrieve weather information around the globe and store those
requests in a database. Finally we will show how to present those weather requests in an ASP.Net page.
The source code of this presentation can be downloaded from here.
January 2005
Member Built App: A Business Process Management System -
During the last few years, Glenn has been designing & building a Business Process Management (BPM)
system in his spare time which consisted of nights, weekends etc. This BPM system was designed to
allow people to perform the most common operational tasks, such as moving domain specific data in
a natural way by integrating databases, workflow, middleware, enterprise systems etc, so that
managers and process change engineers can define automated processes as well as monitoring KPIs.
Glenn will demonstrate the techniques used to create a professional client/server application with high levels of usability, such as
the what GOF and POEAA patterns he used, how to setup a complex serialization model that supports
file persistance, the clipboard and databases and an overview on how he found developing his first
major .NET application.
A faster, stronger Delphi 2005 -
A look at the new Delphi 2005 IDE, going beyond the surface and exploring some
of the many different customisation options available, some documented and
others not. In particular a way to dramatically shorten the load times of Delphi
2005 (also Delphi 6-8 as well) will be shown as well as some fixes and tips to
keep the IDE running smoothly.
The Delphi Settings Manager is available for download from here.
You will find more information in Lachlan's blog entries under "A lean mean Delphi machine"
December 2004
Automated Code Generation using CodeSmith -
CodeSmith is a freeware code generator that can be
used to generate any sort of text file including Delphi source files. It can come in handy if you need to write several
classes or units that are almost but not quite identical to each other such as strongly typed lists or object wrappers
for database tables. Templates are used to generate the Delphi source code using a template syntax that is very similar
to ASP.NET.
Managing Security via User Roles in InterBase -
During this presentation we will look at one possible scenario to manage user security in InterBase. We will discover how
subjects can help to prevent users from using third-party tools to access the data. The techniques presented will demonstrate
how to use the features of the operating system to assure that the user logged into the database is also the user using the
application. The presentation will focus on the creation of a security admin tool to manage roles and user accounts. We will
also see an example of a client application, which demonstrates a generic way of applying your database access rights to the
user interface.
The slides and the source code of this presentation can be downloaded from here.
November 2004
DUnit on DataModules -
Sometimes it seems difficult to get Delphi's RAD approach and DUnit "under the same hat". This presentation will show
how you can get the most out of DUnit even if you use TDataModules and TDataSets. We will see how we can separate our
business logic from the user interface and how to apply unit testing on the business logic container called TDataModule.
The source code of this presentation can be downloaded from here.
Observer pattern with Delphi 7 -
ModelMaker provides some demo codes for the observer pattern.
The talk will enhance the demo patterns for production.
October 2004
ADO.NET & Borland Data Provider In-Depth -
The talk will cover the fundamentals of ADO.NET, like DataSet, DataTable, DataRow, DataColumn & DataAdapter. We will see how Borland's
components (e.g. BdpConnection, BdpTransaction, BdpCommand & BdpDataAdapter) will help you to build database applications under .NET for
a variety of SQL servers. We will learn about a very efficient mechanism to control concurrency situations and how to handle PK values
in a disconnected "DataSet-world".
The source code of this presentation can be downloaded from here.
September 2004
Object Oriented Design using Together Designer Community Edition and Colour -
Take a look at the recently released freeware version of Together Designer from Borland. Together Designer is a UML
diagramming tool with great flexibility and intelligence in it's behaviour. A technique for using colour with UML
diagrams will also be discussed, plus a short introduction to basic UML notation if required.
Utilising the WebBrowser within -
All Windows operating systems since Windows98 contain an embeddable version of IE. In this session we look at how
Internet Explorer can be embedded into your applications to provide a rich user interface, and still maintain operability
with your application.
The source code of this presentation is available for download from here.
August 2004
Web Services Trick and Tips with Delphi 8 - Glenn Stephens
The basics of ASP.NET web services are easy to grasp. In a nutshell to create a Web Service, you create a
class that inherits from System.Web.Services.WebService and apply the WebMethod attribute to the methods
you want to expose as part of your web service. But like programming on any other system, once you try to
perform more complex tasks, you will need to know some more complex ways of working with ASP.NET Web
Services using Delphi 8.
This session will take you through some of the advanced ASP.NET Web Services tasks that you are likely to
come across in a production environment such as multi-threading Web Services clients, using binary data
in your web service and allowing your Web Service to accept XML data without the need for defined parameters.
Version Control with FreeVCS - Mathias Burbach
We will look into the features of FreeVCS, an open source version control software.
This project has is been overtaken by the JEDI project.
July 2004
An XML Case Study - Misha Charret
In this short presentation I will illustrate how XML was used as the framework to implement a web sports statistical database.
The purpose of the application was to automatically download sporting results (cricket, tennis, etc) from internet web pages to
populate tables in a sports statistical database. Two of the hurdles to overcome were to effectively parse a variety of poorly
formatted web pages and to determine suitable database schemas to allow effective statistical queries. I will explain how the use
of XML schemas and documents were utilised to achieve these aims.
Software Localization with Multilizer - Bisser Tzanov
The software package Multilizer is well known for years as a good software globalization tool among the Delphi developers.
The latest version: Multilizer 6.0 makes the Software localization efforts even easier and more efficient. Find out why!
June 2004
Threads to your help - Part 2 - Malcolm Smith
This session will cover the basics of threading in Delphi.
In particular
- why/when to use threads
- basic thread details such as FreeOnTerminate, OnExecute, Synchronize
- methods of terminating threads
- notification of thread completion
- thread access to shared objects using different sync objects
- critical sections, mutex, semaphore, multi-read-exclusive-write
- TThreadList and custom thread safe lists
- and anything else I can think of....
Data Abstract Product Review - Mathias Burbach
Data Abstract is
an innovative data-access framework for Delphi. Used in combination with the
RemObjects SDK, it
allows you to create RemObjects services that access any database providing a clear separation between data-access and business-logic.
The Data Abstract Drivers layer will let you use the data access technologies that you prefer (i.e. IBObjects, SDAC, ODAC, DOA, ADOExpress, IBExpress, etc.),
switching from one to another by simply changing a connection string.
In this session we will have a look at this product and how it can help you create database applications for multiple database servers.
The source code of the presentation can be found here
May 2004
Controlling MSOffice applications using Delphi - Lachlan Gemmell
This session will explore the use of Automation (formerly known as OLE Automation) to control MSOffice applications such as MS Word, MS Excel and
MS Outlook using Delphi code at the desktop level. The trade-offs between the different methods will be discussed as well as some timesaving tips.
The pros and cons of creating MSOffice documents on the server side will also be discussed.
Threads to your help - Part 1 - Malcolm Smith
This session will cover the basics of threading in Delphi.
In particular
- why/when to use threads
- basic thread details such as FreeOnTerminate, OnExecute, Synchronize
- methods of terminating threads
- notification of thread completion
- thread access to shared objects using different sync objects
- critical sections, mutex, semaphore, multi-read-exclusive-write
- TThreadList and custom thread safe lists
- and anything else I can think of....
April 2004
Configuration Management with StarTeam - Damien Boostma
When people think of Configuration Management, the immediate thought is a source code repository to manage the versions of files within a
project.
While a source code repository is one important factor in Configuration Management there are other things to consider like Defect Management,
Task Management, Requirements and Communication Channels.
This is what Starteam is - a solution to configuration management. We will have a look at the key capabities of Starteam in conjunction
to the current integration with Delphi.
Develop plug-in programs with Jedi Plug-in Manager - Zjian Huang
While there are many ways of developing plug-in programs, Jedi Plug-in Manager provides a set of framework for developing plug-in programs
efficiently. This talk will illustrate the structures of the manager using the source codes and UML diagrams. Inspired by Jedi Plug-in Manger,
an easy approach of developing Office plug-in will also be discussed.
March 2004
Application in a Refactored Light - Derek Renouf
"Legacy application" is no longer a term strictly reserved for COBOL or
FORTRAN applications. It is a term that can now encompass application code
written in VB, C++ and even Delphi. This talk discusses some approaches to
refactoring applications from an older RAD all-business-logic-in-forms code
to more extensible and maintainable code. As part of this, business
processes, documenting architecture, web services and XML will be discussed.
It would be good if people want to bring along some of their code, or be in
a position to discuss things...
February 2004
Life after death - the story of TPS's FlashFiler transition to NexusDB - Dr Geoff Harris
Approximately 12 months ago TurboPower Software Company announced, totally
unexpectedly, their immediate withdrawal from the Delphi 3rd Party Component
business. As a company with significant history, acclaimed technical
acumen, and many high quality components in various stages of their life
cycle, serious concerns by their customers (both hobbyist and professional
Delphi Developers) for these components were raised.
Amongst their many libraries, TPS had a database engine, FlashFiler, which
was in a transitional state: version 3 had already been promised to be
delivered in 2003 and had significant improvements as well as fixes for a
number of serious bugs. This created a difficult situation for Developers
using FF2 : do they hope the Open Source version will eventually get fixed
or do they undertake the onerous task of replacing their backend with
another DBMS backend?
This talk presents an insider's view of how a team of FF2 experts got
together and created a totally new DBMS (quite literally from scratch) in
just 6 months. In particular, the old adage of "a project seeks to be on
time, within budget, and meets specs - choose 2 out of the 3" is
demonstrated to have been apparently broken by the team.
The talk concludes with a discussion of the NexusDB's future plans.
January 2004
Reducing Code Duplication Using OO Techniques - Dick Walker
Some examples of improving a RAD business application by introducing objects, inheritance, custom components and
datamodules to improve the code, remove duplication and allow reuse. Before and after examples.
.NET Remoting with Delphi 8 - Mathias Burbach
After Lino's .NET Workshop this session will give us a chance to explore .NET Remoting with Delphi 8. We will see
how to create a multi-threaded remote server, which talks to InterBase as the SQL server. We will see how easy it
is to implement database connection pooling on the server side. We also will use interfaces to restrict the deployment
of certain assemblies on the client side.
Material on this topic can be downloaded from here.
December 2003
New things in Delphi 8 for .NET - Glenn Stephens
For the first time in a few versions, the Delphi language has been updated. In this session you'll see the new features
included as part of the Delphi Language. You'll also see how we can port applications written in Delphi 1-7 to .NET
applications, and we'll also get a peek at some of the new features in Delphi 8 for .NET. Glenn's presentation provided
a good insight into Borland's Enterprise Core Objects (ECO).
Glenn has provided the following links relating to ECO:
Unleashing Enterprise Models with C# Builder
Anythony Richardson's Tutorials
A reference for Object Constraint Language (OCL)
November 2003
Introduction to FinalBuilder - Vincent Parrett
FinalBuilder is designed to automate tasks that you routinely do as part of your software development cycle. It allows you to
quickly define a repeatable list of actions that can be executed in the same manner time after time. FinalBuilder cuts down
build times by automating tasks that often take many laborious manual steps. Any manual process with more than one step
is prone to errors, humans are generally not very good at doing repetitive tasks, often doing steps out of order or missing
steps altogether. FinalBuilder can help you cut out those errors.
More information about FinalBuilder can be found here.
The Observer Pattern - Mathias Burbach
The session will explain the observer pattern and show an example of an implementation based on a ClientDataSet in order to
better support cloned cursors. We will have a little "side-trip" to component development.
Slides and source code for this talk can be downloaded from here.
October 2003
A few more of my favourite tools - Anthony Egerton
I have been referred to as a tool junkie by one of my colleagues. But I prefer to think of it as spending an inordinate
amount of time finding tools which will save me time. Come along and find out my favourites, where the time has
been wasted for you.
Anthony has provided the following links:
Free Experts
Castalia (Free or commercial Professional version)
Component Bar
Perforce IDE Plug-in
Unit Expert (near the bottom of the page)
OPXpert
GExperts
JCL Debug
JCL Open and Save IDE dialogs with favorite folders
JCL Project Analyzer
JCL Thread Name IDE
Commercial Experts
ModelMaker Code Explorer Expert
ModelMaker Expert (comes with ModelMaker)
Clipboard History Tool (Not an Expert!)
Clipmate
Getting your Oracle via Delphi - Mathias Burbach
We will explore some of the basic features of Oracle (e.g. Views, Stored Procedures, Packages, ...) and how to use them
from Delphi. The presentation will show different ways of talking to Oracle from Delphi and explain the advantages and
disadvantages of those connection options. Finally we want to get your feedback about what you have done with Oracle,
and why you chose Oracle versus MS SQL or InterBase.
September 2003
An introduction to CodeRush - Lachlan Gemmell
CodeRush is the ultimate productivity toolset that binds seamlessly into the Delphi IDE. It has been designed to fully enhance Delphi's built in editor and to provide the
features and capabilities necessary to program at the speed of thought. Though Delphi provides a fine basic editor (which most people use because it understands dpr, dfm and
pas file relationships), it does not provide the advanced features available with CodeRush or other third party editors.
Building applications with plugins - Chris Latta
Plugins allow you to build a modular extensible application framework which can be incrementally
enhanced. Using plugins, you can ship customized applications from the one code base. In this
presentation we look at when to use plugins, and what technologies can be used to build plugins
and their advantages and disadvantages. An simple plugin framework will be developed as an example.
August 2003
Why I'll never create a data-aware application again - An introduction to BOLD - Glenn Stephens
Bold is fast to develop with, easy to maintain, object orientated, and gives you support for things that we all end up coding for hours.
Remember Matthias' presentation on an object versioned database - that can be done in Bold within a matter of seconds.
Remember my session on Undo/Redo - Bold's got that built in. Want true database portability - you can change from Interbase to
Oracle to DBISAM without changing a line of code. And theres much more. Bold takes care of a whole bunch of major plumbing for you.
Debugging Hints and Tips - Anthony Egerton
90% of all developers say they have had bugs in code they have written. The other 10% are of course lying.
This tutorial will be to discuss techniques that are useful in tracking down these bugs. I will be demonstrating some techniques I have
found useful and I encourage people to come along and share their favourite debugging tips.
Some interesting tips and techniques were revealed by Anthony. He has provided the following links:
Remote Debugging (Included with Delphi. Install from Delphi CD)
Exception Stack Tracing
JCL (Jedi Code Library)
Exceptional Magic (Watch out for the popups)
Eureka Log
MadExcept
Logging Tools
OutputDebugString (Windows API call. Writes to the event log in Delphi)
GDebug (Included with GExperts)
CodeSite (Raize Components)
CodeSiteEx (Free extension for CodeSite)
IBSite (Free extension for CodeSite allows logging from Interbase SP's)
SQLSite (Free extension for CodeSite allows logging from SQL Server SP's)
The results of the ADUG Sydney Survey are available for download here.
July 2003
Creating an OLE DB driver for your Delphi data - Lachlan Gemmell
Using the Microsoft OLE DB Simple Provider Toolkit, a basic read-write OLE DB driver will be constructed allowing
read write access to Delphi data and structures from OLE DB compatible applications such as Visual Studio, MS Office, and
other reporting tools.
Handling Hierarchies with InterBase - Mathias Burbach
The session will cover design tips for storing hierarchies in InterBase and how to visualize them in you front-end.
We will create recursive stored procedures to travers the tree and propagate changes into higher levels of the tree up to the root.
We will look into the technique of pre-viewing those propagation in the front-end and how to resolve concurrency issues.
Finally we will demonstrate how Borland's TClientDataSet can help on the front-end side.
The slides and source code of this presentation can be downloaded from here.
June 2003
C#Builder - Damien Bootsma
Designed to accelerate the application development lifecycle, Borland® C#Builder™ for the Microsoft® .NET
Framework delivers a design-driven, pure C# development solution for .NET. Maintain design integrity throughout your
development lifecycle. C#Builder is designed to improve team collaboration and enable integration of the modeling,
development and runtime phases so you can deliver better software, faster. Offering technologies for flexible,
high performance support and integration with enterprise databases – as well as direct communication with
CORBA® and J2EE™ technologies from your .NET applications – C#Builder is optimized for enterprise development.
C#Builder helps boost the productivity of your development team, the quality of your .NET applications, and the return on
your technology investment.
Further information can be obtained from Damien. There are also discussion papers by Simon Thornhill on
Octane and Delphi Q&A and
An Open Letter to the Delphi Community.
An overview of ModelMaker - Chris Latta
ModelMaker is a CASE tool that has two-way code management with UML diagrams, design patterns, reverse engineering
and refactoring. With its tight integration to Delphi, ModelMaker provides an ideal way to model your system and speed your development.
In this presentation we take a look at:
- Importing existing code.
- Designing and restructuring classes with UML diagrams.
- Delphi Integration.
- Refactoring code.
- Applying design patterns.
- Commenting your code.
May 2003
Iterators: Inside and Out - Malcolm Smith
This presentation will review the concept of iterators and how they can be used to simplify the repetitive task of
traversing aggregates. We will look at creating very simple iterators up to polymorphic versions as well as
distinguishing the difference between an internal and an external iterator. Implementation issues will also be discussed.
Four demo applications will be presented during the discussion to reinforce the theory. I am also working on a small utility
application that uses just about everything being discussed.
This presentation is now available from Malcolm's web site.
It includes a PDF document covering all aspects of the discussion, a powerpoint file as well as the 4 demos shown.
Browse down to the bottom where the Delphi stuff has been added. I welcome all comments (since Delphi is
not my native development environment).
An Introduction to Delphi’s Open Tools API - Bill Friedrich
The Open Tools API allows developers to add functionality to Delphi’s IDE. Some examples of
additional functionality are:
- Adding new menu items.
- Adding wizards to the Object Repository.
- Adding new keystrokes to the IDE.
The documentation of the Open Tools API is notoriously terse, which makes the initial learning curve quite steep.
This presentation is designed to help developers avoid the pitfalls of using the Open Tools API for the first time.
Source code for all examples are available here.
April 2003
User Centered Design for Developers - Glenn Stephens
The usabilty of an application is often one of the most overlooked parts of an application. While it will
typically account for between three and six percent of a development project budgets, it is valued by
end users as accounting for 35% of what the product means to them. We could all do with better designed
applications. For end users perception is reality.
In this session, we will look at what makes an application usable. It isn't neccassarily about what components
to use, but instead looking at methods of achieving the best result for the end users. So we will look at
achieving their goals, a little look at cognative psychology to understand how to make applications
easier to use, guidelines, usability labs and other techniques.
Glenn's slides can be downloaded from
here.
The slides don't really represent what was fully discussed, but hopefully will help you remember the key points.
TClientDataSet Tutorial - Mathias Burbach
This tutorial will look into the way how the TClientDataSet is intended to be used. We will cover
topics like re-sorting on the fly, using the briefcase model, aggregating columns and working
with multiple cursors on the same resultset.
March 2003
Creating objects from template code - Malcolm Smith
The concept of creating classes from templates almost certainly seems unnatural to
Delphi programmers. Template based code is used to create a family of closely related
objects that can be useful in place of sub-classing when the following criteria presents itself:
- You have common code for each class
- You want to perform compile-time type checking
- You like the idea of reducing another level of indirection
- The idea of no type casting in the implemented objects sounds cool
The files, document and slideshow can all be downloaded from
here.
Inno Setup - Anthony Egerton
Inno Setup
is a free installer for Windows programs.
First introduced in 1997, Inno Setup today rivals and
even surpasses many commercial installers in feature
set and stability. I will be telling you about my
experiences with Inno Setup and the tools you can use with it.
February 2003
FogBUGZ - Victor Rodrigues
FogBUGZ 3.0
is a system for managing software projects designed by
software development guru Joel Spolsky. It works so well that your
projects will practically manage themselves.
At the heart of FogBUGZ is a database of cases. A case can be:
- a feature request,
- a traditional bug report,
- or an email from a customer.
At any given time, every case is assigned to one person who must resolve
it or forward it to someone else. Cases can be prioritized, documented,
sorted, discussed, edited, assigned, estimated, searched, and tracked.
Because FogBUGZ is web-based, everyone on the team always sees the whole
picture. Everything from customer feature requests to high level design
discussions to tiny bug fix details is instantly searchable and trackable.
Every detail of FogBUGZ was carefully crafted with one goal in mind:
helping teams create great software. Rather than giving you a big pile of
features, designer Joel Spolsky has created a system that works with real
people doing real software development. He even left out features that
seem cool but cause more problems than they solve.
The presentation will cover most aspects of FogBUGZ as well as
demonstrable integration with Perforce version control system.
January 2003
Multi-tier Applications with RemObjects - Chris Latta
RemObjects
is an extensible remoting framework that allows you to build
scalable (and high performance) multi-tier systems in the simplest and most
flexible way. In this presentation you will see:
- what RemObjects is
- what differentiates RemObjects from other solutions
- how to create a RemObjects server and client
- the advantage of doing remoting the Delphi way
- how RemObjects works with other components and frameworks
Delphi for .Net Preview Compiler VCL Update - Mathias Burbach
During this session we will look into new features of the Delphi for .Net Preview
compiler. Especially the ported VCL controls and how to use them in an application
for the Win32, Linux & .Net platforms.
December 2002
Delphi and ASP.NET - Glenn Stephens
This session covers the fundamentals of creating dynamic
web applications using ASP.NET and the Delphi.NET compiler.
By the end of the presentation you should understand.
- What is ASP.NET
- How is it better/worse/different to the other web frameworks
- Using Delphi as a language for ASP.NET pages
- A look at the ASP.NET controls
- Mixing ADO.NET and ASP.NET
- Web Services with ASP.NET
- ASP.NET tools and resources
Tutorial on "MDI applications design" - Lachlan Gemmell
This is more of an open discussion on how and when to design MDI applications.
We want to get your opinion and experience on the matter. Therefor the presentation
will be kept fairly short in favour off a hopefully vivacious discussion.
November 2002
Doc-o-matic - Anthony Egerton
Have you ever thought wouldn't it be great if I could create help files
for my source code just like the VCL in Delphi. Doc-o-matic is a tool
that will create help files automatically from your source code and
comments. Come and find out how.
Visual Design of Internet applications with Delphi & IntraWeb - Mathias Burbach
This is an introduction into the new feature of Delphi 7, which was available as a
third-party tool for quite a while by Atozed Software. We will discover how easy it is
to design web applications with Delphi visually.
October 2002
DIY Utility Classes - Misha Charrett
Virtually no Delphi project is completed without using one or more third
party libraries/components, often saving months of
development time. But there are still occasions where it is worth
your time to write your own utility classes. Maybe you cannot find
a component to match exactly what is required, or maybe the
classes are so fundamental to your application that you think you
can do a better job yourself.
In this presentation I will illustrate, through examples, how a bit
of effort invested in developing your own utility classes can save
significant development time and increase the quality of your
software. I will examine some utilities that I have found to be
extremely useful over time, such as a better "id=value"
class, a simple way to deal with text data files, and a
utility class to manage global variables and error handling. The
focus of this presentation will be to show how to develop class
libraries from the perspective of a library user, rather then a
library developer - there is a difference! Inspired by Paul Spain's
presentation at Melbourne ADUG.
Using Delphi IDE Macros - Anthony Egerton
This will be a practical introduction to this under-used Delphi
IDE facility. The keyboard macro facility is a simple and natural
extension to your editing skills, and can be a serious time-saver
like 'cut and paste' or 'find and replace'.
An overview of the TMS TDBPlanner component - Craig Goodall
The TDBPlanner
component is quoted as for use with planning and
scheduling applications. It can be summarised in one word ...
"BIG". It's a huge component with a vast set of properties
and functionality to provide an interface for the coupling of time
and resources. This overview will provide a brief introduction to a
component which members may find useful in their future
applications.
Book Review - John Mackerras
User Interface Design for Programmers by Joel Spolsky
144pp inc Index, Apress 2001, www.apress.com.
Just a few thoughts on the book written by a veteran programmer.
September 2002
WMI from Delphi - Malcolm Groves
Windows Management Instrumentation (WMI) lets your Delphi and C++Builder
applications manage basically all aspects of a Windows-based computer.
This means more than just enquiring about the current status of software
and hardware on your system (or any system on the network), but
subscribing to notifications, so that system events such as disk space
availability, memory, CPU or network utilization or events occuring in
applications can all be used to trigger your code to execute.
Book Reviews - Lachlan Gemmell
Lachlan will present a brief review of two very good books that every
serious Delphi programmer should have in their library. The first is
Code Complete by Steve McConnell, a very readable, well researched book
on techniques for improving your code. The second is Delphi in a
Nutshell by Ray Lischner, an excellent reference book for anyone wanting
to really understand the Object Pascal language and Delphi RTL.
Delphi .Net Preview - Mathias Burbach
Looking under the bonnet of DCCIL
This session will explain how to use the new Delphi for .Net Preview
command line compiler "DCCIL", which ships with Delphi 7, to become
familar with the .Net Framework. We will build simple command line
applications as well as Windows Forms and Active Server Pages for .Net
(ASP.Net). Less slides and more examples.
August 2002
Delphi Internet Technologies - Mathias Burbach
Part 1: Web Services
We will look into the basics of creating and consuming a web service. Then
we can look at implementing a multi-tier database application using a web
service. Finally in a short case study we want to show how web services can
help replicating data between different databases on possibly different
operating systems. We should also have a few minutes to look into the task
of making web services secure.
Third Party Components - Lachlan Gemmell
Lachlan takes us through issues related to third-party
components, predomanantly those around access to source-code, healthy
communities around third party components, etc.
July 2002: We had two presentations this month:
Glenn Stephens began with a presentation
on "Threading your Delphi Apps". Pat your head and rub your tummy at the
same time. Sure it takes a little longer, but you are doing more
than you would normally if you were doing one thing at a time,
even though it is a little more difficult.
Getting your
application to do several things at once can also be tricky, but
with some tried and true methods, you can implement by introducing
threads into your application. This presentation helped us understand what
threads are, how they work, the problems to look out for and how
to resolve locking and synchronization issues.
In addition, there were some interesting
demos showing how you can add Internet downloading in a separate
thread and downloading large database result sets so that users
of your apps can be productive while that huge database query is
running.
Mathias Burbach then gave a talk on generic database design
with InterBase. The session explained how to design generic database structures.
It covered topics like modelling changes over time into you r database
structure as well as coping with the demand for notes columns everywhere.
We looked into the ability to store real world objects into the
database with totally different properties. Finally , we discussed
a solution to keep information versioned, which means you can retrieve
a table's content as it was days, weeks or even months ago.
June 2002:
The first presentation
tonight by Victor Rodrigues from Cochlear explained the advantages
of Perforce, a fast software configuration management system. Perforce
is not only source code version control system but it helps you
managing your software development cycle by offering the branching,
merging branches and multiple releases. It has a small footprint
and can be used via the Internet, although a VPN might be preferable
for security reasons. And the best at the end: Perforce offers
a fully functional version of it's software for free, you
are only restricted to two users and two client workspaces. Additional
information is available here.
After the pizza break, courtesy of Borland, we looked into rule
based software development. Andrew Rutherford from Object Connections
showed us a product of his company named Common Knowledge.
He demonstrated the flexibility of this software development tool
by creating a set of rules for a insurance company from scratch.
Common Knowledge allows you to visually define your business rules
(Common Knowledge Studio) and keep them separate from your executable.
Thanks to a set of Delphi components you can access the rules engine
(Common Knowledge Rules Engine) easily and calculate whatever has
been defined in your rules set. More information is available here.
- June photo's available (Victor, Andrew)
May 2002: This month we had an evening packed with
interesting presentations. Rajiv & Phil from St. George Bank
kicked off with a case study about MIDAS within their bank. They
had used this Borland technology to build a work flow software for
their loan application processing. It turned out to be very reliable
and consumed only a small bandwidth. Their loan processing departments
is spread over the entire country and some of them only have 64KBit
connection. MIDAS solved their problems by buffering their changes
until they apply their updates. An added benefit of allowing the
use of an offline notebook and have the ability to use the briefcase
model.
Before the pizza break Anthony
showed us the usefulness of the Jedi JCL stack track. If you ever
had an application deployed, which raised an error with the meaningful
error message "list index out of bounds", you should look into these
add-on, to provide you with much better error locating facilities.
After the pizza break Glenn
presented quite a few possibilities to raise your productivity with
Delphi, by creating your own property editors, creating new objects
programmatically (e.g. singleton) and using the ToolsAPI of Delphi.
Have you ever considered loading an entire RTF document into a
TRichEdit component by right clicking on the component and specifying
a file location?
- JEDI Code Library available
here
- Gelnn's Toolsmithing examples
here
April 2002:
Our April meeting
took us into the world of remote software teams and how to co-ordinate
their development work. Damien Bootsma explained TeamsSource DSP
to us and showed how you can manage not only the source code of
your Delphi projects but also the collaboration of the team members.
Imagine a chat software that stores the dialogue persistent. Look
up what you said 2 months ago and know exactly why your remote
colleague introduced this feature to the unit you usually maintain.
During the second presentation Mathias Burbach showed us how easy
it is to create WAP applications with Delphi & WebBroker. We
came to grips with the structure of WML documents, where a desk
can hold multiple cards and how to organize your user interface
on such a tiny little display. Finally we saw how WML documents
can be stored in TPageProducer components and a simple way of replacing
their placeholder tags with content from an InterBase database.
- Damien's DSP presentation
here (and a photo here)
- Mathias Source, Database, slides, etc here
March 2002:
Malcolm showed us how to talk to Nokia mobile phones from Delphi,
raising the scary prospect of SMS-based spam. Also, more cool tools,
with Anthony threatening Malcolm with Legal Action over the name
of his session.
- Nokia SDK here (free registration
required. Look for the Nokia PC Connectivity SDK link on the right
hand side).
- Nokia SDK examples here
- Brian's CodeInsight Utility here.
- Find Unit\Use Unit Expert here.
- MaxSpace here
February 2002:
This month we had a really interesting meeting. Lot's of helpful
tips and tricks from Anthony and also a pretty simple approach
how to use DUnit Testing in ordinary Delphi apps.
- DUnit can be downloaded from http://dunit.sourceforge.net.
- Photos available here.
- DUnit Examples available here.
Links from Anthony's presentation:
- Beyond Compare - www.ScooterSoftware.com
- ModelMaker Code Explorer - www.ModelMakerTools.com
- WinKey - www.copernic.com/winkey/
January 2002:
Coming Soon
- Photos available here.
- Steve's presentation available here.
December 2001:
This month we looked into ActiveForms: the bugs, the downsides,
and the advantages to be gained when you can work around them.
In addition, we looked at communicating from your ActiveForm to
the Browser, from the Browser to the ActiveForm, between two ActiveForms,
and using ActiveForms in containers other than Browsers, such as
Outlook.
In addition, we held a discussion regarding
the future direction of ADUG Sydney. Lots of good ideas and suggestions
were put forward by the guys at the meeting. As always, Borland
were kind enough to keep us fed and happy.
November 2001:
Glenn Stephens introduced us to the Command Pattern. He showed
how to introduce a multi level undo function in your application.
The actions are all instances of particular command classes, which
know how to undo their action themselves. We even discussed an
enhancement to his class, which would cope with database changes.
If one would keep inverse DeltaDS in his class, he/she could apply
those changes and thereby undo the DB changes. Glenn's source code
is available here
.
Before the next talk we enjoyed courtesy Pizza from Borland again.
Thanks a lot!
During the second talk we had a look into dbExpress and its components
(like TSQLConnection, TSQLDataset, ...). We built a simple example
app with the employee DB from Borland. During this process we raised
the issue of concurrency handling and demonstrated the use of a
record version number incremented by a trigger. This makes it very
simple to identify if a selected record still exists in the same
way on the server side.
- Photos available here.
- Mathias' sourcecode here.
October 2001:
I was crook this month, so unfortunately I missed the presentations.
However, Mathias reports:
"we had quite an interesting ADUG meeting
yesterday. Pierre helped us come to grips with English Query and
Pivot Tables à la OLAP. The most interesting part for me
was that English Query and OLAP are supposed to work with any database
via an OLE DB Provider. So in theory you should be able to access
data stored in an Oracle or even in InterBase, provided you purchased
the OLE DB provider available for InterBase.
In the Q&A session people were very
shy. It took all motivation tricks of Pierre and me to get them
to ask questions. But finally we could at least solve two problems
raised by the attendees.
After pizza and garlic bread we delved
into the InterBase events and realized how helpful a subscriber
(TcdsSubscriber) on top of a subscriber (TIBEvents within
TcdsMaster) can be."
The sources for the IB Events presentation
are available here and the
slides here
Once again, thanks to Borland for keeping
us fed and off the streets (err, Pizza and Training Room).
September 2001:
We were very lucky to have Peter Hinrichsen up from Melbourne.
Peter took us through the evolution of a simple application,
from simple for loop based traversals, through
Iterators, method pointer-based Visitors, class-based Visitors,
then a Visitor Factory, all tied back to his Open Source OPF (Object
Persistence Framework). What was more is that all of this
code was written live, from scratch, and without a single code
template. Very impressive.
Next up was Julia Bischof from Rational.
Julia took us through a very educational overview of modelling
and the UML in particular, then showed off Rose's support for Delphi.
This was done firstly by explaining the details of Rose's Delphi-UML
mapping, then Reverse Engineering Peter's OPF code into Rose.
Borland again kept us fed and happy
with Pizza, Pepsi and such, and Vladimir Nelenson was the winner
of the Delphi Informant Collection CD door prize.
More info about Peter's presentation,
and his Open Source OPF is available here
August 2001:
Glenn Stephens introduced us all to the .Net Framework and what
opportunities we have for integration with Delphi 5. After a run
through things like Assemblies, IL and the CLR, he demonstrated
Delphi calling a C# object, VB.Net calling a Delphi COM object,
and discussed calling a Delphi DLL from .Net. He finished off with
a discussion about ADO.Net and ASP.Net, amongst other things.
Glenn also showed off some wizards he's
written for Delphi 5 to allow easy importing of .Net Assemblies
into Delphi, and exporting of Delphi COM objects to .Net Assemblies,
complete with obligatory About box with grinning photo of Glenn.
The wizards are available for download here
(if the thought of that About box hasn't put you off, that is).
Again, we had Pizza and Pepsi kindly
supplied by Borland, and Phil Stephens walked away with the door
prize (Delphi Component Design by Danny Thorpe).
July 2001:
This month, the first meeting of the Sydney Chapter, we were
in the hands of Mathias Burbach and Colin Johnson. Colin, from
Borland PSO, was first up showing off Delphi 6's support for Web
Services, prompting off an interesting discussion on the relative
maturity of this technology and it's readiness for production.
Regardless what you think of the technology, I think everybody
agreed that Delphi's support for it was first rate. Mathias then
gave us a very entertaining presentation on Generic Database Design,
and the web application he's developed using this technology. The
ability for an administrator to define completely new objects and
have them immediately searchable by the website was extremely impressive.
Thanks to both our presenters and to Borland for supplying Pizzas and drinks
- Photos available here.
- Mathias' slideshow here.
- Colin's slideshow and example here
|