Athena

What's New in Delphi 5

This was a Runtime Technology seminar held on 28th September, 1999 at the British Library in London, England and on 1st October, 1999 in Rotherham, England.

Click here for the files that accompany this seminar.


IDE

Object Inspector

Int64 property support
Sub-property access in 1 click
Better selection persistence
Graphical property value feedback (also for component developers)
Color
Cursor
ImageIndex
Font category (optional "enhancement")
Property categories
View with or without categories
Category hiding

Forms

DFMs as text by default
Auto-created forms can be disabled

Miscellaneous

Directory browse dialogs
Global desktops (.DST files)
Debugging desktop

Data Module Designer

Drawn relationships stored in .DTI files
Can set up a few properties

Project Browser

New editor options dialog

Visual Studio mapping
Custom mappings (Ctrl+B)

To Do Lists (.TODO files)

Project or unit based
Exporting as text or customisable HTML

Command-line switches

/HM, /HV, /NS, /NP
/B, /M for automated builds & makes
OpenGL Star Wars Easter Egg

RTL/VCL

System unit, multi-threaded string support

TApplicationEvents component

Minimising main form bug fix

Control Panel applets (wizard in File | New… dialog)

Extra standard actions

TToolBar custom drawing

THeaderControl header reordering

TListView images for sub-items, InfoTip, work areas, customisable hover time

Contnrs unit

FreeAndNil

Menus

AutoHotkeys, RethinkHotKeys
AutoLineReduction, RethinkLines
MenuAnimation

Frames

Can be added to palette with right-click
Component editors must not add children in inlined frame, using TComponentEditor.IsInInlined

RTTI

New routines like GetEnumProp
No more PPropInfo records required
IsPublishedProp
Property values returned as Variant with Get/SetPropValue

Dialogs unit

ForceCurrentDirectory for Windows 98/2000

Debugging

FPU window, MMX information

Drag from editor

To watch window
To inspector
To CPU window's stack or dump pane

Run menu

Run Until Return (Shift+F8)
Attach To Process...

Evaluate/Modify dialog can make watch, or load inspector

Watch list can launch inspectors on watch expression

Module list, entry points can be sorted by name or address

Breakpoint properties

Not break
Evaluate expression
Add log entry
Enable a breakpoint group
Editor tooltip on breakpoint gutter mark
Right-click on gutter mark to access properties

Debugger options dialog

Debug launched applications
Allow watch expression evaluation side effects

Thread window

Right-click on a thread and change debugging options for that process

COM/ActiveX

Active Server object

COM object wizard defaults to a type library with Automation marshaling

Type library update dialog

Type library importing

Component wrappers
Servers page of component palette
Overloading of methods with default parameters

Sparse vtable support for VB ActiveX controls

Proper free threading factory support

HResult redefined

CORBA

VisiBroker 3.2 replaced with 3.32

No IDL2Delphi in the box, but should be available for download

Client does less pings to server

Internet

FastNet components relegated to their own page

THTML goes in favour of TWebBrowser IE Automation object

InternetExpress technology for distributed apps on the Web (see later)

Database

TDatabase can execute queries with Execute method

Optional parameters allow SQL parameters, obtaining cursor handle, etc.

ADO native components wrapping up ADO interfaces

MDAC 2.1 installation on CD
Lacking in design-time support
Not an exact replica of BDE hierarchy, e.g. Requery instead of Close/Open
New field types: wide string, GUID, Variant, interface, IDispatch

InterBase Express (IBX)

MIDAS 3

TWebConnection

HTTP connection, in addition to COM, DCOM, OLEnterprise, CORBA, sockets Can use SSL to deal with firewalls HTTPSRVR.DLL translates between MIDAS and HTTP and must be in an executable directory on the Web server (e.g. IIS or PWS)

Stateless remote data modules

RDM pooling. RDMs can be shared (e.g. in MTS)

Architecture changes

IProvider -> IAppServer No requirement for STDVCLxx.DLL IDataSetProvider is interface implemented by TDataSet descendants No more TClientDataSet.Provider property More BeforeXXX and AfterXXX events DBCLIENT.DLL -> MIDAS.DLL

Miscellaneous

Easy to send custom SQL to server with TClientDataSet.CommandText (and TDataSetProvider.Options.poAllowCommandText)

InternetExpress and XML

Delphi Web applications that can optionally act as MIDAS clients
On the Web Server app (the multi-tier client), use a DCOM connection, or whatever is appropriate
TXMLBroker
TMIDASPageProducer
MIDAS app sends packets as XML instead of Variant byte arrays
JavaScript files

Team Development

TeamSource

Uses a VCS for string/retrieving files
Instead of serial control model, uses parallel control model
Copies files for local work, then requires reconciliation
Branches not supported in V1.0, but planned for future
Drop bookmarks
Compare versions
Will email when change made

International Applications

DecisionCube source

Resource DLL Wizard enhanced
Translation Manager
Translation Repository

Miscellaneous

DecisionCube source

Resource Workshop

Help for virtual key codes

Function category help