Delphi 7 Release Notes ======================================================= This file contains important supplementary and late- breaking information that may not appear in the main product documentation. We recommend that you read this file in its entirety. For information on new features in this release, choose "What's New" in the online Help contents. ======================================================= CONTENTS * OTHER RELEASE NOTES INCLUDED WITH THIS PRODUCT * NOTES AND ISSUES: * ABOUT EDITING THE REGISTRY * PRODUCT INFORMATION ON THE WEB ======================================================= OTHER RELEASE NOTES INCLUDED WITH THIS PRODUCT * INSTALL contains system requirements and product installation information. * DEPLOY contains information about redistributing your applications. * LICENSE contains information on licensing allowances and limitations for this product and other Borland software that is bundled with it. The three files listed above, along with this file, are installed in your main product directory (default: C:\Program Files\Borland\Delphi7). ======================================================= NOTES AND ISSUES Deprecated Components Borland is deprecating the use of TSQLClientDataSet and TBDEClientDataSet. Borland recommends that you use TSimpleDataSet for simple, two-tier applications. TSQLClientDataSet and TBDEClientDataSet are no longer displayed on the Component palette. If you require backward compatibility, you can still access TSQLClientDataSet and TBDEClientDataSet in the Demos directory (by default, C:\Program Files\Borland\Delphi7\Demos). Borland is deprecating the use of the TServerSocket and TClientSocket from the unit ScktComp. It is recommended that you use the Indy components for socket operations. The TServerSocket and TClientSocket will no longer be installed on the component palette by default. If you require the use of these components then you can install the design time package named dclsockets70.bpl, found in your bin directory. For deployment with runtime packages, you will need to deploy rtl70.bpl and any other required packages. Changes in StrUtils ------------------- The StrUtils unit contains three sets of changes, all relating to multi-byte character set (MBCS) support. * Previously, LeftStr, RightStr, and MidStr each took and returned AnsiString values, and did not support MBCS strings. Each of these functions has been replaced by a pair of overloaded functions, one that takes and returns AnsiString, and one that takes and returns WideString. The new functions correctly handle MBCS strings. This change breaks code that uses these functions to store and retrieve byte values in AnsiStrings. Such code should use the new byte-level functions described below. * New functions LeftBStr, RightBStr, and MidBStr provide the byte-level manipulation previously provided by LeftStr, RightStr, and MidStr. * New functions AnsiLeftStr, AnsiRightStr, and AnsiMidStr are the same as the new AnsiStr LeftStr, RightStr, and MidStr functions, except that they are not overloaded with equivalent WideString functions. XP Themes --------- This build does not include a manifest for your projects. To tell your applications to use version 6.0 of comctl32.dll you need to create and edit the manifest yourself. There are two ways to do this: 1. With a stand-alone manifest file added to the same directory of the executable. 2. With a manifest included in the executable as a resource. For the stand-alone manifest follow these steps: I) Using Notepad create a file called "Project1.exe.manifest" and add the following lines: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity processorArchitecture="*" version="1.0.0.0" type="win32" name="Project1"/> <description>Project1 Description</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*" /> </dependentAssembly> </dependency> </assembly> II) Save the file and place it in the same directory as the application executable. If you don't like the idea of having the manifest as a separated file you can include it into your executable as a resource. I) Create a resource file (again using Notepad) containing the following line: 1 24 "Project1.exe.Manifest" II) Compile the resource file with brcc32.exe with the following command: C:\Project1> brcc32 WindowsXP.RC III) Now add the following line to your project's main form: {$R WindowsXP.RES} NOTE: To automatically configure XP Themes in your project you can use the XP Application Wizard demo. For more information see the readme file in Demos\ToolsAPI\XPAppWiz .NET compiler warnings ---------------------- The Delphi 7 dcc32 compiler now supports three additional compiler warnings: Unsafe_Type, Unsafe_Code, and Unsafe_Cast. These warnings are disabled by default, but can be enabled with source code compiler directives {$WARN UNSAFE_CODE ON}, compiler command line switches (dcc32 -W+UNSAFE_CODE), and in Project|Options. NOTE: There is no space before or after the "+" in the command line switch) "Unsafe" in all three messages refers to types or operations which static code analysis cannot prove to not overwrite memory. For example, data types that carry bounds information at runtime such as Delphi Strings or dynamic arrays can be bounds-checked at runtime, and tracked in static analysis, to ensure that memory accesses are within the limits of the allocated data. Data types that do not carry bounds information at compile time or runtime (such as PChar) cannot be proven safe. Unsafe doesn't necessarily mean the code is broken or flawed, it simply means that it uses programming techniques that cannot be verified as safe by static code analysis. In a secured execution environment such as .NET, such code is assumed to be unsafe and a potential security risk. Delphi 7 developers can use these new warnings to identify data types, code or programming techniques that may be difficult to port to a managed code environment such as .NET. These messages are not specific to the .NET platform. The warnings are conservative - some things we warn about in D7 we might actually be able to support in Delphi for .NET, but we're not sure yet. The warnings are not complete - there may be problematic types or code situations for which the Delphi 7 compiler does not issue an unsafe warning. Unsafe_Type: Types such as PChar, untyped pointer, untyped var and out parameters, file of <type>, 6 byte reals (Real48), variant records (records containing overlapping fields) and old-style objects ("TMyObject = object"). * "old" object type c = object i: Integer; procedure p; end; Unsafe_Code: absolute variables, Addr(), Ptr(), Hi(), Lo(), Swap() standard procedures, BlockRead and BlockWrite, the Fail() standard procedure, GetMem(), FreeMem(), and ReallocMem() * inline assembler blocks (asm end) * @ operator * modifying string index elements, e.g s := 'Hoho'; s[2] := 'a'; // <-- "Unsafe code 'String index to var param'" Unsafe_Cast: Casting an object instance to a type that is not an ancestor or descendent of the instance type, casting a record type to anything else Change to VCL SubComponents streaming ------------------------------------- In Delphi 7, we corrected a problem where the csLoading flag was never set for subcomponents, nor was the subcomponent's Loaded method called. When a component that has subcomponents is streamed, the subcomponents will have their csLoading flag set and their Loaded method called. This change creates a complication for any subcomponent properties that are writable. If you allow your subcomponent property to be assigned to an external component reference then you cannot free your subcomponent until it's owner's Loaded method is called otherwise the streaming system will attempt to call the subcomponent's Loaded method after the subcomponent has been freed. Apache ------ Support for Apache 2 is for the 2.0.39 version. It will work with later versions as long as they are binary compatible. NOTE: Due to a known bug with Apache 1.3.22, do not develop CGI programs or shared objects for this version. See http://bugs.apache.org/index.cgi/full/8538 UDDI Registry entries --------------------- Some UDDI Registry entries contain an Accesspoint URL with a bookmark tag at the end. When accessed these services often generate the error message 'Method not allowed (405)'. Workaround: Remove the tag from url in the global function that returns the Interface: const // defURL = 'http://someservice/somewhere#tag'; // is changed to defURL = 'http://someservice/somewhere'; Japanese Input system on Windows XP ----------------------------------- The MS IME2002 Japanese input system included with Windows XP can cause the Debugger in the IDE to stall. Workaround: Remove Microsoft IME Character Code Dictionary from your system dictionaries list. Simply un-checking this option from the dictionary list will not solve...
the_mariov