8                                                             ASPects                                              December 2008


made-for-hire,” actually mean, and, of        above. While it may seem advantageous         can save a huge amount of frustration,
course, abide by the agreement once it’s      as a developer to leave an agreement          wasted effort, and money in the long term
completed.                                    unsigned, because the default rule typi-      by ensuring that any agreement you sign
   Be aware of open source restrictions:      cally grants ownership to that developer,     reflects your understanding of the agree-
“Open-source” does not mean free for          remember that your work for a client and      ment you negotiated, and that both parties
everyone to use in any way they like.         their satisfaction is based on your perfor-   understand the terms that they have
Open source contracts are binding, and        mance against their expectations. If the      agreed to. The price of not having a prop-
will be enforced. If you write code on an     client expects sole ownership of a code       erly negotiated and signed agreement
open source platform, read the license        segment, and you have agreed to it, don’t     could mean losing all copyright rights
and abide by its terms. Make the client       use the signatory requirements of copy-       and control of the code.
aware of any restrictions in their use of     right law as leverage after the fact to       Chris Shiplett is an associate with Erik
your code that may flow from use of an        change the agreement.                         M. Pelton & Associates, PLLC, and spe-
open-source platform.                             When in doubt, consult a lawyer:          cializes in software development con-
   Write it all down and sign it: Each of     Lawyers in this situation act as insurance.   tracts, trademark and copyright, and
the key components of copyright law           Like buying insurance, hiring a lawyer to     domain name disputes. He can be
require a written agreement, signed by the    review your contract can seem like an         reached at chris.shiplett@
parties. Without a written agreement, and     unnecessary up-front expense. However,        tm4smallbiz.com. Copyright 2008 Erik M.
without the parties’ signature, copyright     the up-front cost of consulting with a        Pelton & Associates, PLLC.
law defaults to the basic rule described      lawyer before you negotiate an agreement



Delphi 2009 Review
by Terry Jepson                               C++ Builder 2009 product, you can             are Type safe. Developers can create a
Wisco Computing                               choose to install both languages, or just     generic TList, and declare what Type it
       elphi 2009 is available in three       the Delphi portion of the bundle. I de-       will contain (integer, string, arrays, re-

D       editions. The Professional edition
       is designed for building desktop
and workstation applications. The Enter-
                                              cided to install the Delphi portion of the
                                              bundled Delphi C++ Builder 2009.
                                                  I’ve been using Delphi since version
                                              1. I’ll provide an overview of the new
                                                                                            cords, objects, and interfaces). This is an
                                                                                            easy way to create and manipulate a TList
                                                                                            of any item type. Adding generics to
                                                                                            Delphi2009.Win32 maintains compatibil-
prise edition includes everything in the
Professional edition, and adds support for    Delphi 2009 features, and include my          ity with the Delphi.Net platform, first
building client/server and multi-tier data-   assessment of the latest version of Delphi.   introduced in Delphi2007.Net.
base and web applications. The Architect          Installation of Delphi 2009 is faster         Anonymous methods are procedures
edition includes everything in the Enter-     than previous Delphi versions. Two sur-       or functions that do not have declared
prise edition, plus logical and physical      prises I encountered during the installa-     names. These procedures and functions
database modeling and optimizations           tion were that a desktop icon was not         can be assigned as a variable or used as a
from the Embarcadero ER/Studio Devel-         created and the IDE help files were not       parameter to a method. Anonymous
oper Edition.                                 installed during the program installation.    methods can be used to extend the life-
    Delphi 2009 can be installed on Win-      Quick navigation with Windows Explorer        time of a value, even if the value goes out
dows Vista, XP, 2000, Server 2003, or         corrected these omissions.                    of scope. These methods capture the heap
Server 2008. The created applications can                                                   address of the value, not the actual value.
be deployed on any of these operating         Language Enhancements                         They are similar to ‘closures’ defined in
systems. Delphi 2009 creates pure native                                                    other languages.
Win32 applications. Applications created      The most requested enhancement Delphi             The explanations I found in the help
by Delphi 2009 do not require any .NET        developers requested is support for           file and on-line were not able to convince
runtime support. The Delphi IDE does          Unicode. The default string Type is now       me to start using anonymous methods.
require the Microsoft .NET 2.0 runtimes.      UnicodeString. All VCL components             Existing Delphi language statements can
    Applications developed with Delphi        have been Unicode-enabled. Unicode            be used to obtain the same results as
2009 will not run on Windows 98, 95,          support has been added throughout the         anonymous methods. At this time I be-
and ME, as these operating systems do         IDE. Since there is no compiler switch        lieve anonymous methods will make
not support Unicode. Microsoft has previ-     for Unicode or non-Unicode, the devel-        Delphi code harder to follow, and I can’t
ously dropped support for these operating     oper can not use the same source code         think of any situation where I would need
systems. Delphi 2009 can coexist on the       files to create two different compiled        to use them in my current projects.
same computer with earlier versions of        versions. Integrated translation tools have
Delphi.                                       been added to help the developer extract      Class Explorer
    Delphi 2009 can be purchased as a         resources and translate their applications
stand-alone product or bundled with           into other languages.                         The Class Explorer (browser) allows the
C++Builder. With the bundled Delphi               Generics are lists (collections) which    programmer to browse, navigate, and
December 2008                                                   ASPects                                                                 9


inspect the structure of their code. Classes   changed.                                        New Components
(inheritance) and members (fields, meth-
ods, and properties) are viewed in a hier-     Build Configuration Management                  The Microsoft Office 2007 style ribbon
archical tree of objects. The Class Ex-                                                        controls include the ribbon interfaces,
plorer can also be used to add fields,         A new base (parent) configuration has           including ribbon, ribbon application,
classes, methods, and procedures to an         been implemented. The base configura-           menu bar, combobox, toolbar and tips.
existing class library.                        tion includes all common project settings       You may not distribute applications using
                                               for a project or project group. Common          the Delphi ribbon controls without ob-
Resource Manager                               project settings typically include source       taining a license from Microsoft. A li-
                                               code locations, search paths, etc.              cense can be requested from Microsoft at
Resource files are used to insert resource         Common project settings are inherited       http://msdn.microsoft.com/officeui.
types (fonts, text, graphics, cursors, etc.)   from parent configurations, and can be              The TCategoryPanelGroup contains a
inside an executable file. This process        revised as needed for debug, release, and       collection of collapsible panels, similar to
protects the resources and reduces the         additional developer-created configura-         the ‘outlook bar’ control in Microsoft
total number of files to be distributed        tions. Subsets of project options, called       Outlook. Each collapsible panel can
with an application.                           option sets, can be quickly copied to new       contain other VCL controls.
    Prior to Delphi 2009, developers           projects and project groups.                        The TButtonEdit component can
created resource files independently of                                                        include glyphs on the left and right side.
their projects. Developers created their rc    VCL Enhancements                                When the image is clicked, the attached
text files, compiled each rc file to create                                                    code will be executed.
the resource file, and added the resource      All VCL components have been                        TLinkLabel is a label that enables
filenames to their unit code files. If any     Unicode-enabled. Many components                links with embedded HTML tags. The
file included in the original rc file was      have been enhanced to allow developers          OnClickLink event can be used to open a
changed, the developer needed to recreate      to take advantage of the new Vista fea-         web page in a browser.
the corresponding resource file.               tures, like the Aero ‘glass frame’ prop-
    The Delphi 2009 IDE includes a new         erty. Custom hinting has been added to          Existing Component Enhancements
resource manager to add and update the         all TControls. Hints can now include a
resources inserted into Windows applica-       title and image. Hints can be designed to       Images can be placed anywhere on the
tions without creating separate rc files. A    have a more modern look instead of being        TButton through alignment and padding
new common resource file can now be            restricted to the familiar yellow box.          properties. Vista ‘Style’ support has been
added to the main project file. This           IntelliMouse scrolling support has also         added to TButton. This allows TButton to
avoids resource duplication in form files      been added. TImage now supports PNG,            support the command link and split but-
and reduces the size of the executable.        BMP, JPG and GIF formats. This allows           ton features of Vista.
Common and form resource files are             greater flexibility for user interfaces. Four      A text tip, for example ‘Enter pass-
automatically updated during compilation       new components have been added.                 word here’, can be displayed in a TEdit
if any of the included resources were                                                          when it does not have focus. When the
10                                                             ASPects                                                December 2008


control receives the focus, the text tip      our online documentation. This first             installation. I consider help files to be an
disappears. A new NumbersOnly prop-           revision may be ugly’ The poor documen-         integral part of any program for all users.
erty has been added to limit keyboard         tation in the Delphi help file and the          And considering I was offered the option
input to number associated characters. A      Atozed web site is not helpful to someone       to install Rave Reports and Interbase
user-defined password character property      who wants to learn VCL for the Web.             2009, it would make sense to me to at
has also been added.                                                                          least provide the option to install the IDE
    Marquee scrolling has been added to       DataSnap                                        help files with the installation of the main
TProgressBar. Different Vista styles                                                          product.
(Normal, Paused, and Error) are also          DataSnap is a complete set of tools for               The help file information for both
supported. TListView now supports             building scalable, multi-tier applications.     Delphi and C++ Builder are merged
placing items in groups. An image can         DataSnap is only available with the             together. Since I installed the Delphi
also be displayed with the group heading.     Delphi Architect and Enterprise editions.       portion of the Delphi C++ Builder 2009
Different glyphs for nodes (depending if      This COM-free solution enables the              bundle, I did not expect to find C++
they are expanded or collapsed) are sup-      Delphi developer to write Server Methods        information mixed with Delphi informa-
ported by TTreeView.                          (i.e. Stored Procedures on the middle-tier      tion. The additional non-relevant infor-
                                              server). Middle-tier application servers        mation causes confusion similar to the
VCL for the Web                               can be created and connected with thin          mixture of Delphi and Kylix help in
                                              clients.                                        previous Delphi versions.
Developers can use a large collection of                                                            Poor documentation of COM,
over 70 components to build full-featured     Summary Suggestions                             ActiveX, VCL for the Web, and
AJAX-enabled web applications. VCL                                                            DataSnap will prevent developers from
for the Web is the fully-integrated           Codegear has done a great job changing          using the full potential of Delphi 2009. If
I n t r a We b v e r s i o n 1 0 f r o m      Delphi to support Unicode. The transla-         developers can not understand new and
www.atozed.com. Web applications              tion tools will be appreciated by develop-      advanced features, they will not be using
developed with the Professional edition       ers wanting to expand their software to         the development platform, and not up-
have a limit of 5 connections. There is no    global markets.                                 grading to newer versions.
connection limit for applications devel-          I believe a number of ‘features’                  A lot of my Delphi knowledge has
oped with the Enterprise and Architect        (Generics, Anonymous Methods,                   come from reading supporting third-party
editions.                                     TStringBuilder) were added to Delphi            Delphi books. Since that market has
    VCL for the Web documentation             2009 for .Net compatibility. These are          virtually dried up, Codegear needs to take
consists of a five-page tutorial to create    positive features for the developer trying      the lead and document their development
the typical ‘Hello World’ web application     to have a single source for Delphi Win32        software. CodeGear needs to put a lot
as a proof of concept. At that point, I’m     and Net projects. Popular string manipu-        more resources into fixing the help sys-
puzzled as to what to next. Delphi help       lation libraries (HyperString and               tem, which has been a continuous com-
indicates www.atozed.com/intraweb/            FastStrings) are no longer being updated        plaint since Delphi 7.
docs/ has more documentation. Their web       by their developers. Converting these           Terry Jepson is the author of WISCO
documentation duplicates the tutorial, and    applications to the new Unicode base will       Survey, Gradebook Power, Crossword
most of the other pages haven’t been          require extra effort.                           Power, and more educational software
updated since 2005. Their web site states         I felt it was odd that the IDE help files   t i t l e s . H e ’ s o n l i n e a t w w w.
‘We are currently working on improving        were not installed during the program           wiscocomputing.com.



                                             Supporting Members
 Ishai Shotten                               AC&G Software Ltd                                               www.beejack.com
 Marcel Feenstra                             AfterImage                                                      www.afterimage.nl
 Marc Reidy                                  Anywhere Together Software                              www.anywheretogether.com
 Ive Van Riet                                asknet AG                                                        www.asknet.com
 Adriana Iordan                              Avangate B.V.                                                  www.avangate.com
 Daniel Burge                                Burada Inc                                                    www.buradainc.com
 Jay Palmer                                  Cardiff Consultants Limited                                   www.cardiffsoft.com
 Yu Tao                                      CHENGDU YIWO Tech Development Co Ltd                             www.easeus.com
 Christian Robert Ofori-Boateng              ChristianSteven Software Ltd                              www.christiansteven.com
 Tarun Tyagi                                 Data Recovery Software                                     www.prodatadoctor.com
 David V Thede                               dtSearch Corp
 Alexander Halser                            EC Software                                                    www.ec-software.com
 Carlo Lupo                                  Freeware-Archiv.de                                            www.freeware-archiv.de

Application Development | Delphi Review 2009

  • 1.
    8 ASPects December 2008 made-for-hire,” actually mean, and, of above. While it may seem advantageous can save a huge amount of frustration, course, abide by the agreement once it’s as a developer to leave an agreement wasted effort, and money in the long term completed. unsigned, because the default rule typi- by ensuring that any agreement you sign Be aware of open source restrictions: cally grants ownership to that developer, reflects your understanding of the agree- “Open-source” does not mean free for remember that your work for a client and ment you negotiated, and that both parties everyone to use in any way they like. their satisfaction is based on your perfor- understand the terms that they have Open source contracts are binding, and mance against their expectations. If the agreed to. The price of not having a prop- will be enforced. If you write code on an client expects sole ownership of a code erly negotiated and signed agreement open source platform, read the license segment, and you have agreed to it, don’t could mean losing all copyright rights and abide by its terms. Make the client use the signatory requirements of copy- and control of the code. aware of any restrictions in their use of right law as leverage after the fact to Chris Shiplett is an associate with Erik your code that may flow from use of an change the agreement. M. Pelton & Associates, PLLC, and spe- open-source platform. When in doubt, consult a lawyer: cializes in software development con- Write it all down and sign it: Each of Lawyers in this situation act as insurance. tracts, trademark and copyright, and the key components of copyright law Like buying insurance, hiring a lawyer to domain name disputes. He can be require a written agreement, signed by the review your contract can seem like an reached at chris.shiplett@ parties. Without a written agreement, and unnecessary up-front expense. However, tm4smallbiz.com. Copyright 2008 Erik M. without the parties’ signature, copyright the up-front cost of consulting with a Pelton & Associates, PLLC. law defaults to the basic rule described lawyer before you negotiate an agreement Delphi 2009 Review by Terry Jepson C++ Builder 2009 product, you can are Type safe. Developers can create a Wisco Computing choose to install both languages, or just generic TList, and declare what Type it elphi 2009 is available in three the Delphi portion of the bundle. I de- will contain (integer, string, arrays, re- D editions. The Professional edition is designed for building desktop and workstation applications. The Enter- cided to install the Delphi portion of the bundled Delphi C++ Builder 2009. I’ve been using Delphi since version 1. I’ll provide an overview of the new cords, objects, and interfaces). This is an easy way to create and manipulate a TList of any item type. Adding generics to Delphi2009.Win32 maintains compatibil- prise edition includes everything in the Professional edition, and adds support for Delphi 2009 features, and include my ity with the Delphi.Net platform, first building client/server and multi-tier data- assessment of the latest version of Delphi. introduced in Delphi2007.Net. base and web applications. The Architect Installation of Delphi 2009 is faster Anonymous methods are procedures edition includes everything in the Enter- than previous Delphi versions. Two sur- or functions that do not have declared prise edition, plus logical and physical prises I encountered during the installa- names. These procedures and functions database modeling and optimizations tion were that a desktop icon was not can be assigned as a variable or used as a from the Embarcadero ER/Studio Devel- created and the IDE help files were not parameter to a method. Anonymous oper Edition. installed during the program installation. methods can be used to extend the life- Delphi 2009 can be installed on Win- Quick navigation with Windows Explorer time of a value, even if the value goes out dows Vista, XP, 2000, Server 2003, or corrected these omissions. of scope. These methods capture the heap Server 2008. The created applications can address of the value, not the actual value. be deployed on any of these operating Language Enhancements They are similar to ‘closures’ defined in systems. Delphi 2009 creates pure native other languages. Win32 applications. Applications created The most requested enhancement Delphi The explanations I found in the help by Delphi 2009 do not require any .NET developers requested is support for file and on-line were not able to convince runtime support. The Delphi IDE does Unicode. The default string Type is now me to start using anonymous methods. require the Microsoft .NET 2.0 runtimes. UnicodeString. All VCL components Existing Delphi language statements can Applications developed with Delphi have been Unicode-enabled. Unicode be used to obtain the same results as 2009 will not run on Windows 98, 95, support has been added throughout the anonymous methods. At this time I be- and ME, as these operating systems do IDE. Since there is no compiler switch lieve anonymous methods will make not support Unicode. Microsoft has previ- for Unicode or non-Unicode, the devel- Delphi code harder to follow, and I can’t ously dropped support for these operating oper can not use the same source code think of any situation where I would need systems. Delphi 2009 can coexist on the files to create two different compiled to use them in my current projects. same computer with earlier versions of versions. Integrated translation tools have Delphi. been added to help the developer extract Class Explorer Delphi 2009 can be purchased as a resources and translate their applications stand-alone product or bundled with into other languages. The Class Explorer (browser) allows the C++Builder. With the bundled Delphi Generics are lists (collections) which programmer to browse, navigate, and
  • 2.
    December 2008 ASPects 9 inspect the structure of their code. Classes changed. New Components (inheritance) and members (fields, meth- ods, and properties) are viewed in a hier- Build Configuration Management The Microsoft Office 2007 style ribbon archical tree of objects. The Class Ex- controls include the ribbon interfaces, plorer can also be used to add fields, A new base (parent) configuration has including ribbon, ribbon application, classes, methods, and procedures to an been implemented. The base configura- menu bar, combobox, toolbar and tips. existing class library. tion includes all common project settings You may not distribute applications using for a project or project group. Common the Delphi ribbon controls without ob- Resource Manager project settings typically include source taining a license from Microsoft. A li- code locations, search paths, etc. cense can be requested from Microsoft at Resource files are used to insert resource Common project settings are inherited http://msdn.microsoft.com/officeui. types (fonts, text, graphics, cursors, etc.) from parent configurations, and can be The TCategoryPanelGroup contains a inside an executable file. This process revised as needed for debug, release, and collection of collapsible panels, similar to protects the resources and reduces the additional developer-created configura- the ‘outlook bar’ control in Microsoft total number of files to be distributed tions. Subsets of project options, called Outlook. Each collapsible panel can with an application. option sets, can be quickly copied to new contain other VCL controls. Prior to Delphi 2009, developers projects and project groups. The TButtonEdit component can created resource files independently of include glyphs on the left and right side. their projects. Developers created their rc VCL Enhancements When the image is clicked, the attached text files, compiled each rc file to create code will be executed. the resource file, and added the resource All VCL components have been TLinkLabel is a label that enables filenames to their unit code files. If any Unicode-enabled. Many components links with embedded HTML tags. The file included in the original rc file was have been enhanced to allow developers OnClickLink event can be used to open a changed, the developer needed to recreate to take advantage of the new Vista fea- web page in a browser. the corresponding resource file. tures, like the Aero ‘glass frame’ prop- The Delphi 2009 IDE includes a new erty. Custom hinting has been added to Existing Component Enhancements resource manager to add and update the all TControls. Hints can now include a resources inserted into Windows applica- title and image. Hints can be designed to Images can be placed anywhere on the tions without creating separate rc files. A have a more modern look instead of being TButton through alignment and padding new common resource file can now be restricted to the familiar yellow box. properties. Vista ‘Style’ support has been added to the main project file. This IntelliMouse scrolling support has also added to TButton. This allows TButton to avoids resource duplication in form files been added. TImage now supports PNG, support the command link and split but- and reduces the size of the executable. BMP, JPG and GIF formats. This allows ton features of Vista. Common and form resource files are greater flexibility for user interfaces. Four A text tip, for example ‘Enter pass- automatically updated during compilation new components have been added. word here’, can be displayed in a TEdit if any of the included resources were when it does not have focus. When the
  • 3.
    10 ASPects December 2008 control receives the focus, the text tip our online documentation. This first installation. I consider help files to be an disappears. A new NumbersOnly prop- revision may be ugly’ The poor documen- integral part of any program for all users. erty has been added to limit keyboard tation in the Delphi help file and the And considering I was offered the option input to number associated characters. A Atozed web site is not helpful to someone to install Rave Reports and Interbase user-defined password character property who wants to learn VCL for the Web. 2009, it would make sense to me to at has also been added. least provide the option to install the IDE Marquee scrolling has been added to DataSnap help files with the installation of the main TProgressBar. Different Vista styles product. (Normal, Paused, and Error) are also DataSnap is a complete set of tools for The help file information for both supported. TListView now supports building scalable, multi-tier applications. Delphi and C++ Builder are merged placing items in groups. An image can DataSnap is only available with the together. Since I installed the Delphi also be displayed with the group heading. Delphi Architect and Enterprise editions. portion of the Delphi C++ Builder 2009 Different glyphs for nodes (depending if This COM-free solution enables the bundle, I did not expect to find C++ they are expanded or collapsed) are sup- Delphi developer to write Server Methods information mixed with Delphi informa- ported by TTreeView. (i.e. Stored Procedures on the middle-tier tion. The additional non-relevant infor- server). Middle-tier application servers mation causes confusion similar to the VCL for the Web can be created and connected with thin mixture of Delphi and Kylix help in clients. previous Delphi versions. Developers can use a large collection of Poor documentation of COM, over 70 components to build full-featured Summary Suggestions ActiveX, VCL for the Web, and AJAX-enabled web applications. VCL DataSnap will prevent developers from for the Web is the fully-integrated Codegear has done a great job changing using the full potential of Delphi 2009. If I n t r a We b v e r s i o n 1 0 f r o m Delphi to support Unicode. The transla- developers can not understand new and www.atozed.com. Web applications tion tools will be appreciated by develop- advanced features, they will not be using developed with the Professional edition ers wanting to expand their software to the development platform, and not up- have a limit of 5 connections. There is no global markets. grading to newer versions. connection limit for applications devel- I believe a number of ‘features’ A lot of my Delphi knowledge has oped with the Enterprise and Architect (Generics, Anonymous Methods, come from reading supporting third-party editions. TStringBuilder) were added to Delphi Delphi books. Since that market has VCL for the Web documentation 2009 for .Net compatibility. These are virtually dried up, Codegear needs to take consists of a five-page tutorial to create positive features for the developer trying the lead and document their development the typical ‘Hello World’ web application to have a single source for Delphi Win32 software. CodeGear needs to put a lot as a proof of concept. At that point, I’m and Net projects. Popular string manipu- more resources into fixing the help sys- puzzled as to what to next. Delphi help lation libraries (HyperString and tem, which has been a continuous com- indicates www.atozed.com/intraweb/ FastStrings) are no longer being updated plaint since Delphi 7. docs/ has more documentation. Their web by their developers. Converting these Terry Jepson is the author of WISCO documentation duplicates the tutorial, and applications to the new Unicode base will Survey, Gradebook Power, Crossword most of the other pages haven’t been require extra effort. Power, and more educational software updated since 2005. Their web site states I felt it was odd that the IDE help files t i t l e s . H e ’ s o n l i n e a t w w w. ‘We are currently working on improving were not installed during the program wiscocomputing.com. Supporting Members Ishai Shotten AC&G Software Ltd www.beejack.com Marcel Feenstra AfterImage www.afterimage.nl Marc Reidy Anywhere Together Software www.anywheretogether.com Ive Van Riet asknet AG www.asknet.com Adriana Iordan Avangate B.V. www.avangate.com Daniel Burge Burada Inc www.buradainc.com Jay Palmer Cardiff Consultants Limited www.cardiffsoft.com Yu Tao CHENGDU YIWO Tech Development Co Ltd www.easeus.com Christian Robert Ofori-Boateng ChristianSteven Software Ltd www.christiansteven.com Tarun Tyagi Data Recovery Software www.prodatadoctor.com David V Thede dtSearch Corp Alexander Halser EC Software www.ec-software.com Carlo Lupo Freeware-Archiv.de www.freeware-archiv.de