Release Notes for Delphi 2009 and C++Builder 2009

By: Dee Elling

Abstract: Important supplementary information that might not appear in the main product documentation

    Release Notes for CodeGear Delphi and C++Builder 2009

This file contains important supplementary information that might not appear in the main product documentation. We recommend that you read this file in its entirety. For an updated version of these Release Notes, see the CodeGear Developer Network article (http://dn.codegear.com/article/38475).

This document refers to "the product" when the information applies to Delphi 2009 and/or C++Builder 2009.

For information about installation, deployment, and licensing issues, see the Install, Deploy, and License files located, by default, at C:\Program Files\CodeGear\RAD Studio\6.0.

    Contents

    Installing, Uninstalling, and Upgrading Your Product

  • Before installing, uninstalling, or upgrading the product, see the Install and License files for detailed information about installation and licensing issues. Also see the RAD Studio Installation FAQ, located at: http://dn.codegear.com/article/36523. The Install.htm file gives the system and free space requirements for installing Delphi and C++Builder 2009, as well as installation and upgrade procedures.

    Where to find the INSTALL.htm file:

    After installation, the Install.htm and License.rtf files are located by default at C:\Program Files\CodeGear\RAD Studio\6.0\.

  • When installing Delphi 2009 on a system with an earlier version of Delphi that includes Blackfish SQL, it is recommended that you first stop the Blackfish SQL service before beginning the installation process. To stop the Blackfish SQL service:

    1. Press "Windows Key"+R.
    2. Type "services.msc" and press Enter.
    3. Find the Blackfish SQL service and stop it.

    After stopping the Blackfish SQL service, wait until the BSQLServer.exe process terminates before beginning the installation. You can verify that the BSQLServer.exe process has terminated by launching the windows task manager by pressing Ctrl+Shift+Esc and checking that the "Processes" tab does not have an entry for BSQLServer.exe.

  • After reinstalling Delphi and C++Builder 2009 on a Vista 64 machine, there is one ADO entry in two separate machine.config files, and the one connection defined in Data Explorer is duplicated. Data Explorer works normally with this duplicate.

  • Installing Delphi 2007 or C++Builder 2007 on a system with Delphi 2009 or C++Builder 2009 installed will break Data Explorer functionality in both IDEs. To prevent this, save your dbxdrivers.ini before the install and return it there afterwards. If the file was not saved prior the install, references in that file to assemblies with 11.0.5000.0 version should be manually changed to 12.0.0.0.

  • Installing Delphi 2007 or C++Builder 2007, then Delphi 2009 or C++Builder 2009 and then uninstalling Delphi 2007 or C++Builder 2007 will result in ADODBX info being removed from machine.config. You can manually add the following back to machine.config to enable this again in Delphi or C++Builder 2009.

    You can add this to the system.data tag as in the following:

    <system.data>
    <DbProviderFactories>

<add name="AdoDbx Data Provider" invariant="Borland.Data.AdoDbxClient" description=".Net Framework Data Provider for dbExpress Drivers" type="Borland.Data.TAdoDbxProviderFactory, Borland.Data.AdoDbxClient, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b" />

</DbProviderFactories>
</system.data>

Top

    General Notes

Code Examples:  Over 300 code example snippets (for both Delphi and C++Builder) have been retested and restored to the online help reference pages. Note that the comments in the code snippets are in English only. The code snippets are planned to be available on the CDN CodeCentral website.

Demos:  The demos for the product are installed in directories according to the way you install the product and whether you are using Windows Vista:

  • If you choose All Users during installation, the demos are installed in C:\Documents and Settings\All Users\Shared Documents\RAD Studio\6.0\Demos.
  • If you choose Just Me during installation, the demos are installed in C:\Documents and Settings\username\My Documents\RAD Studio\6.0\Demos.
  • On Windows Vista, if you choose All Users during installation, the demos are installed in C:\Users\Public\Documents\RAD Studio\6.0\Demos.
  • On Windows Vista, if you choose Just Me during installation, the demos are installed in C:Users\username\Documents\RAD Studio\6.0\Demos.
  • The Trigger demos will compile using the product, but clicking the Create Triggers button generates a debugger exception, "Server uses unsupported streaming protocol." Suggested workaround is to reboot so that environment variables are properly loaded.

Indy Versions:  Indy10 is integrated with the product. However, you can install the earlier version, Indy9, from C:\Program Files\CodeGear\RAD Studio\6.0\source\Indy\Indy9.

Debug with WebAppDebugger:  To debug WebSnap and WebBroker applications using the WebAppDebugger, you should start by running serverinfo.exe, which silently registers itself. This step is required to use the Web Application Debugger (WebAppDbg.exe, located in the \bin folder of your installation directory). 

Register a COM Server:  To register a COM server, you need to run (the first time only) with /regserver as a run parameter. Follow the steps outlined here:  

  1. Create a project.
  2. Save the project.
  3. Set Run | Parameters to /regserver.
  4. Run your project. The application registers and then closes.
  5. Clear the /regserver setting on the Run | Parameters page.

Registry Keys:  If you are a VCL Component Vendor and your component installer updates paths in the registry to include paths to your components, there is one additional registry key your installer should update in:
HKEY_LOCAL_MACHINE\Software\CodeGear\BDS\6.0\Globals

Add (or update if it already exists) a string value called ForceEnvOptionsUpdate. Assign it a string value of "1." When this registry key has a value of "1," the next time the IDE runs, it updates the EnvOptions.proj file on disk to include the path(s) that your installer added. The EnvOptions.proj file is the mechanism by which the new MSBuild build engine in the IDE is able to include paths that are listed on the Library - Win32 page in the IDE's Tools>Options dialog.

If your installer updates any of the following registry keys, it should also add or update the Globals\ForceEnvOptionsUpdate key:

  • Software\CodeGear\BDS\6.0\Library\Browsing Path
  • Software\CodeGear\BDS\6.0\Library\Debug DCU Path
  • Software\CodeGear\BDS\6.0\Library\Namespace Search Path
  • Software\CodeGear\BDS\6.0\Library\Package DCP Output
  • Software\CodeGear\BDS\6.0\Library\Package DPL Output
  • Software\CodeGear\BDS\6.0\Library\Search Path

Resource Compiler Choices:  You now have two choices in a resource compiler. To select a resource compiler, go to Project>Options>Resource Compiler and select either RC or BRCC32.  When you choose to use RC, the resource compiler that is used has the file name CGRC.exe, but the help gives the erroneous name ERC.exe. 

Resource Compiler Path Change:  If you have imported a project from C++Builder 2006 or earlier, paths for the resource compiler (BRCC32.exe) containing macros that expand to paths with spaces might cause a compile error in BRCC32, such as:

To fix the problem, remove the paths from Project > Options > Resource Compiler > Additional Options and add them to Project > Options > Resource Compiler > Include Path if necessary.

WinHelp:  The legacy WinHelp viewer (WinHelp.exe) is not implicitly registered by RAD Studio. If you want to use .HLP files from an application, you need to add the WinHelp viewer to the uses list of any unit included in the application.

To download the WinHelp viewer, visit the Microsoft website:
http://www.microsoft.com/downloads/details.aspx?familyid=6ebcfad9-d3f5-4365-8070-334cd175d4bb.

IntraWeb Documentation:  For information about IntraWeb, including help for the VCL for the Web components, see http://www.atozed.com/intraweb/docs/.

Top

    Windows VistaTM Notes

Install With Admin Privileges:  In Windows Vista, you must run the installer while logged on as a user with administrative privileges, because changes to the Program Files directory require elevated security.

Restart the Registration Client:  The registration client occasionally fails on Windows Vista. To work around this problem, select Allow this program when the Windows Live OneCare Firewall appears, then exit and restart registration. Do not select Block this program, because doing so prevents you from registering afterward.

WinHelp:  Windows Vista does not support the legacy WinHelp help viewer (WinHelp.exe). If you want to use .HLP files, you need to add the WinHelp viewer to the uses list of any unit included in the application. To download the WinHelp viewer, visit the Microsoft website http://www.microsoft.com/downloads/details.aspx?familyid=6ebcfad9-d3f5-4365-8070-334cd175d4bb. See the related item under General Notes.If possible you should migrate your help system to HtmlHelp.

TAnimation and TShellResource:  If you use the TAnimation component in Vista, you must also add the component TShellResource under the Win32 tab to your project. Adding TShellResource adds these resources:

  • FindFolder.res
  • FindFile.res
  • FindComputer.res
  • CopyFiles.res
  • CopyFile.res
  • RecycleFile.res
  • EmptyRecycle.res
  • DeleteFile.res

Reconfigure BDE:  If you are using BDE on Windows Vista, you need to reconfigure BDE so that it does not attempt to write files to the C:\<root> directory. To do this, log on as an administrator and run BDEAdmin.exe, located at Program Files\Common Files\Borland Shared\BDE. Under Native, click PARADOX, and change NET DIR to point to a location other than the root directory. A suggested target is C:\Users\Public\Documents\RAD STUDIO.

Manifest Problem:  The computer might restart when you add a manifest that has the Windows Vista extension to an .exe file or to a .dll file in Windows XP Service Pack 2 (SP2). For more information on this problem and the hotfix, see http://support.microsoft.com/kb/921337.

Selecting Pre-Vista Dialogs:  If you rebuild an existing VCL application that includes common dialog components and run it on a Vista system, it uses Vista file and task dialogs rather than traditional open, save, and message dialogs. If this is not desired, set the global variable UseLatestCommonDialogs false at the beginning of a program to force the original behavior.

IntraWeb on Vista:  To run and debug VCL for the Web (IntraWeb) applications, you should use Windows 2003 or Windows XP. If you are using Windows Vista, you must turn off User Access Control (UAC) when debugging VCL for the Web applications. For more information about IntraWeb, including help for VCL for the Web components, see http://www.atozed.com/intraweb/docs/.

Debug Requires Admin:  On Vista with UAC enabled, if an executable's file name includes "setup", "update", or "install", you cannot debug the program unless the IDE is started under the System Administrator account. Trying to run executable files that include these strings outside of the IDE triggers a "User Account Control" dialog requesting the password for the System Administrator account. Running within the IDE without debugging raises an error indicating the program requires privilege elevation. Running within the IDE with debugging raises a process creation error. For more information, see http://blogs.msdn.com/uac/archive/2006/01/13/512776.aspx.

Fix Menu Painting:  On Vista systems, you might experience Menu repainting problems. You can fix this by changing your Windows font DPI settings to a different value, then back to the original value, using this procedure:

  1. Right-click the Desktop.
  2. Select Personalize.
  3. Select Adjust Font Size.
  4. Change option from 96 DPI to 120 DPI, or from 120 DPI to 96 DPI.
  5. Reboot your system.
  6. Start the IDE and verify that the menu paints correctly.
  7. Then do the same procedure again, but revert to the original DPI setting.

Top

    C++Builder Notes

    Possible Binary Incompatibility with Previous Version of C++ Compiler

The C++ runtime libraries have been enhanced and altered to be more current, and the standard C++ libraries from Dinkumware have been updated to version 5.01. Because of these changes, the binary objects generated by the compiler in C++Builder 2009 might differ in some cases from previously compiled versions. The incompatibilities are mainly restricted to the C++ standard libraries. You should rebuild your pre-existing C++ projects when you migrate to C++Builder 2009.

    Delphi Interface Parameter with Default Value of nil Handled Differently
Assigning the Type void * to Delphi Interface Now Fails to Compile

The Delphi compiler (DCC32) previously generated the following code in the .hpp file when an interface parameter had the default value of nil:

   void methodName(_di_IIntf param = (void *)(0x0));

Previously the C++ compiler incorrectly accepted this syntax.

In this release, both the Delphi compiler and the C++ compiler handle this case differently.

The Delphi compiler now emits code like this in the .hpp file for an interface parameter with a nil default value:

   void methodName(_di_IIntf param = _di_IIntf());

The C++ compiler now gives an error for code that assigns the type "void *" to a Delphi interface. For instance, the line

   void methodName(_di_IIntf param = (void *)(0x0));

now fails to compile, emitting the error:

   Cannot convert 'void *' to '_di_IIntf'

If you have Delphi code containing an interface parameter with a nil default value, recompile it with DCC32. If you do not have the source, edit the .hpp file and modify all occurrences like this:

   void methodName(_di_IIntf param = (void *)(0x0));

to this:

   void methodName(_di_IIntf param = _di_IIntf());

    Selecting Both of the Symbol Reference Info Options for Delphi Code

If you are compiling Delphi code inside your C++Builder project, you currently can select only one of the Symbol Reference Info options (either Definitions or Reference Info) on the Project>Options>Delphi Compiler>Compiling dialog box. However, you can select both of these options if you use source-level directives ($xx) as follows:

  • Definition Info ($YD) option: the Delphi compiler records information about where each identifier is defined. For most identifiers--variables, constants, classes, and so forth--the compiler records the location of the declaration. For procedures, functions, and methods, the compiler records the location of the implementation. This enables Code editor browsing.
  • Reference Info ($Y+) option: the Delphi compiler records information about where every identifier is used as well as where it is defined. This enables the References page of the Project Browser.

These compiler options are only available when both the Debugging Information ($D) and the Local debug symbols ($L) options are ON.

    Specifying WebSnap Directories

If you are using C++Builder with WebSnap, ensure that the executables are written to the same directory as the HTML files. On Project>Options>Paths and Defines>Final Output, enter a dot (".") so that the executable is written to the project directory.

    Location Change for Precompiled Headers

C++ precompiled header files (PCH) are placed in a different file location than BDS2006. If you import a project from BDS2006, it does not import the project's PCH file location. You can set the PCH file in Project>Options>Precompiled headers>PCH filename.

    Resolving Code Completion Problems

Infrequently, C++ code insight might fail or provide incomplete results when a project's precompiled header is regenerated. If this situation is encountered, one of the following will fix the problem:

  • Re-Make the project
  • Delete the precompiled header
  • Clean and Make the project

    UnicodeString::t_str() Narrows Wide Data

The default VCL string type is now UnicodeString instead of AnsiString.  However, for backward compatibility the method UnicedeString::t_str() returns 'const char*' instead of 'const wchar_t*', by narrowing the wide data of the UnicodeString instance. This can result in unexpected behavior, as code might not expect a call to t_str() to corrupt the underlying data. This behavior is visible in code that displays the underlying data in the UI, such as a TListItem.

For example, in the following case, the data displays by the ListView are corrupted after the call to t_str() on the last line of the method:

    Generating C++ Files from the Delphi Compiler

If you want to generate .hpp files (and the corresponding .obj) from a .pas file, you should use dcc32.exe with the -JPHNE switch. Or use -JL on the .dpk file containing the .pas file.

    Using the Delphi DesignIntf and DesignEditors Tools

If you are creating a C++ package that contains a Delphi unit that uses the DesignIntf and DesignEditors tools, you must choose Project > Options > Delphi Compiler > Other Options. In Use these packages when compiling, add DesignIDE in the combo box.

    Known Problems about #define NO_STRICT

Two instances in which you should turn off the NO_STRICT #define are described in Known Problems.

    Ribbon Controls Demo Located on the Product DVD

The C++ demo using Ribbon Controls is located in the Extras folder on the DVD.

    Using WinHelp in C++ Applications

To use WinHelp in a C++ application:

  1. Add: #include <WinHelpViewer.hpp>.
  2. Refer to an object declared in the WinHelpViewer header file.

    void LinkWinHelp()
    {
      # pragma startup LinkWinHelp 66
      if (WinHelpTester != NULL)
          WinHelpTester->GetHelpPath();
    }

To download the WinHelp viewer, visit the Microsoft website:

http://www.microsoft.com/downloads/details.aspx?familyid=6ebcfad9-d3f5-4365-8070-334cd175d4bb.

    Command Line Notes

You can now build projects from the command line using the MSBuild executable. Select Start Programs>CodeGear RAD Studio>RAD Studio Command Prompt to automatically set both the path to the MSBuild executable and the environment variable for the product.

These are the environment variables set by the RAD Studio Command Prompt for using the CodeGear RAD Studio tools, especially MSBuild:

   BDS=c:\program files\CodeGear\RAD Studio\6.0
   FrameworkDir=c:\Windows\Microsoft.NET\Framework
   FrameworkVersion=v2.0.50727

If you want to use MSBuild on the command line but are not using the RAD Studio Command Prompt, you should set these environment variables yourself.

For more information about using MSBuild, look up MSBuild in the Index or Contents of the online help.

Top

    Database Notes

    Known Issues

  • For greater consistency, the new TDBXAppServerConnection component was renamed TDSProviderConnection, and the package it resides in has also been changed to DSProviderClient120.bpl. All documentation for this class refers to TDBXAppServerConnection.

  • The DataSnap server might freeze if the client disconnects before the server disconnects. To work around this problem, shut down the server before finalization sections are executed.  For example, you might create a TDMServerContainer.Shutdown method:

procedure TDMServerContainer.Shutdown;
begin
  MyDSServer.Stop;
end;

Then call the shutdown method in your DataSnap server after the return from Application.Run, as follows:

  Application.Run;
  TDMServerContainer.Shutdown;
end.

  • The following drivers are not Unicode-enabled:
    • DB2
    • Sybase ASA
    • Sybase ASE
    • Informix
  • If you are upgrading a database application from Delphi 2007 to Delphi 2009, the connection might fail.  The workaround is to add DBX<database_name> to your uses clause.  For example, if you are using a TSQLConnection and connecting to an Oracle database, you need to add DBXOracle to your uses clause.

  • The following combinations have been tested:

    LibMySQL.dll (4.0.XX) DBXMys.dll MySQL 4.0.XX Server
    LibMySQL.dll (5.0.XX) DBXMys.dll MySQL 4.0.XX Server
    LibMySQL.dll (5.0.XX) DBXMys.dll MySQL 4.1.XX Server
    LibMySQL.dll (5.0.XX) DBXMys.dll MySQL 5.0.XX Server

    New features

DataSnap

DataSnap is a multi-tier architecture for database applications. DataSnap provides a middle-tier application server that contains and manages remote data modules. DataSnap has been enhanced to provide a very general connection mechanism between components in different tiers.

The new class TDSServer manages the creation and lifetime of transports and server method classes. You can use TDSServer to create your own middle tier server. The new component TDSServerClass can be used to specify an application server-side class with published methods that can be called from a remote client using dynamic method invocation. Methods in this class can be called from remote clients, such as the DBX Client Provider or the ADO.NET provider.

Once you have connected to a DataSnap server, you can call methods in an application server similarly to stored procedures. For instance, you can use the new class TSqlServerMethod to call server methods by specifying a text class and method name for command text and parameters for the method. Server methods can use a TDBXReader to receive and return datasets to and from the client.

The new smart tables are an abstraction of the different datasets Datasnap supports, so they can be passed transparently between client and server.

You can still write application server side classes that extend TRemoteDataModule, so that the providers they contain can be accessed by the new client-side TDBXAppServerConnection client component. TDBXAppServerConnection provides connectivity to a DataSnap server using dbExpress and is provided to keep existing applications compatible and take advantage of new DataSnap features. New applications do not need to use TRemoteDataModule or TDBXAppServerConnection with DataSnap.

Application servers need not be connected to databases at all. A server methods class has only two requirements:

  • The class must be a descendant of TPersistent.
  • The MethodInfo directive must be enabled.

For more information about DataSnap, see articles on the CodeGear Developer Network at: http://dn.codegear.com/delphi/distcomp/datasnap and http://dn.codegear.com/cpp/distcomp/datasnap.

Also see http://blogs.codegear.com/steveshaughnessy/2008/07/20/38912.

    Unicode

Unicode support has been added to the Oracle, Interbase, and MySQL dbExpress drivers.

    Database Change Notes

dbExpress 

The dbExpress driver framework has these changes:

  • The extension classes added by the previous version of the product have been removed and their contents moved to the base class. For instance, the TDBXConnectionEx class was removed and its methods and properties were moved to the TDBXConnection class.
  • Many methods' parameter types changed from WideString to the new type UnicodeString.
  • TDBXValue and TDBXWritableValue now have GetAs... and SetAs... methods added to coerce the data type, such as GetAsDateTime, which can be used by classes inheriting from them. TDBXValue and TDBXWritableValue also have new As... properties for type coercion, such as AsBcd.
  • If parameter metadata is supported in a database, executing the TDBXCommand.Prepare method causes the TDBXCommand parameter list to be automatically populated with parameters for the command.

    Getting Blackfish SQL Licenses

The way you get deployment licenses for Blackfish SQL has changed. You no longer use the .slip file that was previously included with the product. Now you can generate a deployment license file online at http://reg.codegear.com. For more information about installation, deployment, and licensing, see the Install, Deploy, and License files located, by default, at C:\Program Files\CodeGear\RAD Studio\6.0.

    Supported Servers

dbExpress

  • Blackfish SQL Server 8.0
  • InterBase 2009, 2007, 7.5.1, 7.1*, 7.0*, 6.5* (All) (Driver dbxINT.dll, Client GDS32.DLL)
  • Adaptive Sybase Anywhere 9, 8* (Ent) (Driver dbxASA.dll, Client dbodbc9.dll)
  • DB2 UDB 8.x, 7.x* (Ent) (Driver dbxDB2.dll, Client db2cli.dll)
  • Informix 9.x (Ent) (Driver dbxINF.dll, Client isqlb09a.dll)
  • MSSQL 2005, 2000 (Ent) (Driver dbxMSS.dll, Client oledb.dll)
  • MySQL 4.0.24 (All) (Driver dbxMYSA.dll, Client libmysql.dll)
    Note: No change from dbxMYS.dll of Delphi 2007. It is renamed.
  • MySQL 5.0.27, 4.1* (All) (Driver dbxMYS.dll, Client libmysql.dll)
  • Oracle 10g, 9.2.0*, 9.1.0* (Ent) (Driver dbxora.dll, Client OCI.DLL)
  • Sybase 12.5 (Ent) (Driver dbxASE.dll, Client libct.dll & libcs.dll)

* Driver not fully certified with this version of the database.

Top

    Debugger Notes

  • Attempting to place a data breakpoint in code might result in program corruption. For example, placing a data breakpoint on a VMT slot might result in the program jumping to an incorrect location (the "last" byte of the address is overwritten with 0xcc).

  • Installation of System Mechanic 7 Pro disables the functionality of the integrated debugger. The observed behavior is immediate termination of the process and a diagnostic message in the Event Log View. If the product is installed, debugging functionality can be restored by disabling execution of the "iolo DMV Service" via the Services manager.

Top

    Documentation Notes

  • You can choose specific help volumes (such as MSDN Online) to be used in search and index functions. For example, you can limit your searches to include only the local help provided by RAD Studio, and you can specify that the help viewer will display local help first or help from online providers first.

    To specify the help source for the help viewer, select Tools > Options > Help > Online.

    Select the option "Try local first, then online" to enable the browser to find the proper CodeGear Help files and to display search results from the local help first, followed by results from online providers.

For more information about using the help viewer to your advantage, see the full CDN article, "Getting the Best Results with RAD Studio Online Help" at http://dn.codegear.com/article/37562.

  • Microsoft Document Explorer 2008 (dexplore.exe) is required to view Delphi and C++Builder 2009 online documentation.  If you do not have Microsoft Document Explorer 2008 installed, it will be installed as part of the Help System Install.  There is a known issue that a pre-release version of the license for Microsoft Document Explorer 2008 is displayed.

  • You can obtain updates of the help system by using the same process you use to obtain product updates. Select Start | Programs | CodeGear RAd Studio | Check for Updates.

Top

    International Notes

If you are using IME (input method editor) on XP SP2, a sporadic error caused by a .NET Framework bug might result in a long delay (approximately 5 minutes) followed by an error message. After two or three times, this error appears to stop occurring. All language windows are potentially affected.  To avoid this error, You should apply XP SP3. Or see http://support.microsoft.com/kb/906678/en-us for more information. 

Help for the External Translation Manager:  When you launch ETM.exe from the "bin" directory and click on "Help | Contents" you get "Unable to find a Table of Contents" error message, and nothing is displayed.  You can find help topics about the external translation manager ("Setting Up the Exernal Translation Manager" and "Using the External Translation Manager") in the RAD Studio 2009 online help.  Enter the topic title in the help Index, or locate the Localization Procedures under Common | Procedures.
 

Top

    VCL/RTL Notes

VCLJPG to VCLIMG: The vcljpg package was removed and its contents are now in vclimg. Update projects using vcljpg to use the vclimg package instead.

Known Issue: The System.SetCodePage function's first parameter is of type RawByteString instead of AnsiString.

New VCL/RTL Features: See Nick Hodges' CDN article about new RTL features and classes to support Unicode: http://dn.codegear.com/article/38498.

DB.TDataSet has some significant changes in its Bookmark features:

  • The TBookmarkStr type is being deprecated.

  • The TBookmark type definition has changed from Pointer to TBytes, which means that it is now reference-counted and lifetime-managed.

  • TDataSet.Bookmark property now returns a TBookmark instead of a TBookmarkStr.

  • Any use of either TBookmarkStr or Pointer in user code should change to TBookmark.

  • The following code results in invalid access to freed memory on the GotoBookmark line, since no valid TBookmark reference is made:

Documentation: The new namespace AnsiStrings and the new classes TPopupActionBar and TTextProperties have no documentation yet. All other new namespaces and classes are documented except for a few members. Some previously existing classes have new members that are not yet described.

Top

    SOAP Server Notes

The Win32/native SOAP server is currently on the Deprecated list and is classified as "Other Consideration: Need alternative." If you want a document/literal server, you should build your SOAP server using Delphi for .NET (RAD Studio), which supports the SOAP specifications that are supported by the .NET framework.

Top

    Known Problems

     ActiveX

The Register and Unregister menu items are not enabled if you open and run an ActiveX library project in C++ Builder 2009 that was created with C++ Builder 6. The work around is to go to Run>Parameters and set Host application to "C:\windows\system32\regsvr32.exe" and the Parameters to <ProjectName>.

    Support in IDE of Unicode Characters Outside the Basic Multilingual Plane

On XP and previous operating systems, the font that the IDE uses (Tahoma) that ships with English versions of the operating system does not support the display of characters outside the basic multilingual plane. Characters that use surrogate pairs will not display correctly in some parts of the IDE including the Object Inspector. To enable correct display, it is necessary to install suplemental language support into Windows. This is done through the Regional and Languages Options item in the Windows control panel. For additional details, refer to http://blogs.codegear.com/nickhodges/2008/07/17/39073

    Cannot Use Dynamic Link RTL if Dynamically Load DLL

If you dynamically load a DLL, you can't link dynamically with the runtime library. Otherwise, an Access Violation occurs when the program terminates. The workaround is to not check Dynamic RTL in the Linking section in Project Options on the Linker\Linking page.

    Must Turn off NO_STRICT #define with GdiPlus library

The C++ library GdiPlus cannot be used in non STRICT mode, since it requires that Graphics::Graphics(HDC) be distinguishable from Graphics::Graphics(HWND). In non STRICT mode, both HWND and HDC are "void*". Otherwise, you get the error:
[C++ Error] GdiplusGraphics.h(37): E2015 Ambiguity between 'Gdiplus::Graphics::Graphics(void *)' and 'Gdiplus::Graphics::Graphics(void *,int)'

    Should Turn Off NO_STRICT #define with VCL

VCL now mangles Windows handle parameters to match the C++ STRICT mangling scheme.VCL still provides entry-points for old applications that define NO_STRICT.It is recommended, however, that you upgrade applications that define NO_STRICT to STRICT mode (by removing the NO_STRICT macro), as this provides enhanced type-safety and matches the native mangling of the VCL.

    Runtime Themes and TImageList.ColorDepth

If you set the TImageList ColorDepth property to cd32Bit and the ImageList contains transparent images, you must enable Runtime Themes so that the images will blend properly when drawn on controls.

    Migrating ITE/ETM Projects from Delphi 7 

To upgrade an ITE/ETM project from Delphi 7, your dfms need to be in text format. To perform this conversion, use convert.exe (installed by default to C:\Program Files\CodeGear\RAD Studio\6.0\bin).

After the project is imported and you have updated your resource dll with the Resource DLL Wizard, you might experience an issue where the resource dll does not seem to be updated.  In this case, simply performing the update one more time in the wizard resolves the problem.

    Unicode Problem in ClientDataSet.SaveToFile

If international characters are used in the String/Memo fields, TCustomClientDataSet.SaveToFile might generate incorrect data.  For example, spaces might appear in place of accented characters.

Top

Copyright 2008 Embarcadero Technologies. All rights reserved.

var

 Bookmark: Pointer;

begin

 Bookmark := MyDataSet.GetBookmark;

 ...
 MyDataSet.GotoBookmark(Bookmark);
 

   void ProcessSelectedItem(const char* item);

   void __fastcall TForm6::ListView1DblClick(TObject *Sender)
  
{
     
int index = ListView1->Selected->Index;
     
TListItem *ClassItem = ListView1->Items->Item[index];
     
ProcessSelectedItem(ClassItem->Caption.t_str());
   }

You should not use UnicodeString::t_str() on fields/properties that do not expect their underlying data to be narrowed. Instead, either set the TCHAR_mapping option to wchar_t or define the USTRING_AS_WCHART macro. Either of these will ensure that t_str() returns the UnicodeString's wide data without modifying it.

[BRCC32 Error] bkstring.rc(1): Error Could not open input file C:files\codegear\rad.RC





Server Response from: ETNASC04