From: <na...@us...> - 2009-07-07 11:00:05
|
Revision: 802 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=802&view=rev Author: nandod Date: 2009-07-07 10:59:47 +0000 (Tue, 07 Jul 2009) Log Message: ----------- * A first set of changes for D2009 compatibility: Core, Design, BDE, XML. Still WIP. Modified Paths: -------------- trunk/Source/Core/InstantBrokers.pas trunk/Source/Core/InstantClasses.pas trunk/Source/Core/InstantCode.pas trunk/Source/Core/InstantCommand.pas trunk/Source/Core/InstantExplorer.pas trunk/Source/Core/InstantMetadata.pas trunk/Source/Core/InstantPersistence.pas trunk/Source/Core/InstantPresentation.pas trunk/Source/Core/InstantRtti.pas trunk/Source/Core/InstantTextFiler.pas trunk/Source/Core/InstantUtils.pas trunk/Source/Design/InstantAttributeEditor.dfm trunk/Source/Design/InstantAttributeEditor.pas trunk/Source/Design/InstantModelExpert.pas trunk/Source/Design/InstantOTA.pas trunk/Source/InstantDefines.inc trunk/Tests/InstantMock.pas trunk/Tests/TestIO.dpr trunk/Tests/TestIO.mdr trunk/Tests/TestIO.mdrt trunk/Tests/TestIO.mdx trunk/Tests/TestIO.mdxt trunk/Tests/TestInstantClasses.pas trunk/Tests/TestInstantRtti.pas trunk/Tests/TestModel.pas trunk/Tests/ubmock/src/testutils.pas Added Paths: ----------- trunk/Demos/Intro/Intro_D2007.dproj trunk/Demos/Intro/Intro_D2007.mdr trunk/Demos/Intro/Intro_D2009.dproj trunk/Source/Brokers/XML/D2009/ trunk/Source/Brokers/XML/D2009/DclIOXML.dpk trunk/Source/Brokers/XML/D2009/DclIOXML.dproj trunk/Source/Brokers/XML/D2009/DclIOXML.res trunk/Source/Brokers/XML/D2009/IOXML.dpk trunk/Source/Brokers/XML/D2009/IOXML.dproj trunk/Source/Brokers/XML/D2009/IOXML.res trunk/Source/PackageGroups/D2009/ trunk/Source/PackageGroups/D2009/CorePackages.groupproj trunk/Tests/DUnit/ trunk/Tests/DUnit/src/ trunk/Tests/DUnit/src/TestFramework.pas trunk/Tests/TestIO_D2007.dproj trunk/Tests/TestIO_D2007.mdr trunk/Tests/TestIO_D2009.dproj trunk/Tests/TestIO_D2009.mdr Added: trunk/Demos/Intro/Intro_D2007.dproj =================================================================== --- trunk/Demos/Intro/Intro_D2007.dproj (rev 0) +++ trunk/Demos/Intro/Intro_D2007.dproj 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,103 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{5e7fed32-48a7-4d66-a1ed-fbf2fb9c43c1}</ProjectGuid> + <MainSource>Intro.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>Intro.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <Version>7.0</Version> + <DCC_WriteableConstants>True</DCC_WriteableConstants> + <DCC_Optimize>False</DCC_Optimize> + <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> + <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_IncludePath> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <Version>7.0</Version> + <DCC_WriteableConstants>True</DCC_WriteableConstants> + <DCC_Optimize>False</DCC_Optimize> + <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> + <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_IncludePath> + <DCC_Define>DEBUG</DCC_Define> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> +<BorlandProject xmlns=""> <Delphi.Personality> <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <Language> + <Language Name="ProjectLang">$00000406</Language> + </Language> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">False</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">1</VersionInfo> + <VersionInfo Name="MinorVer">0</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1030</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"></VersionInfoKeys> + <VersionInfoKeys Name="FileDescription"></VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"></VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> + <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> + <VersionInfoKeys Name="ProductName"></VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"></VersionInfoKeys> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">Intro.dpr</Source> + </Source> + </Delphi.Personality> </BorlandProject></BorlandProject> + </ProjectExtensions> + <ItemGroup /> + <ItemGroup> + <DelphiCompile Include="Intro.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="CompanyEdit.pas"> + <Form>CompanyEditForm</Form> + </DCCReference> + <DCCReference Include="ContactEdit.pas"> + <Form>ContactEditForm</Form> + </DCCReference> + <DCCReference Include="Main.pas"> + <Form>MainForm</Form> + </DCCReference> + <DCCReference Include="Model.pas" /> + <DCCReference Include="PersonEdit.pas"> + <Form>PersonEditForm</Form> + </DCCReference> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> +</Project> \ No newline at end of file Property changes on: trunk/Demos/Intro/Intro_D2007.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/Intro/Intro_D2007.mdr =================================================================== (Binary files differ) Property changes on: trunk/Demos/Intro/Intro_D2007.mdr ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/Intro/Intro_D2009.dproj =================================================================== --- trunk/Demos/Intro/Intro_D2009.dproj (rev 0) +++ trunk/Demos/Intro/Intro_D2009.dproj 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,141 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{5e7fed32-48a7-4d66-a1ed-fbf2fb9c43c1}</ProjectGuid> + <MainSource>Intro.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>Intro.exe</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Release</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_UsePackage>vclx;vcl;dbrtl;Rave76VCL;bdertl;rtl;vclactnband;vcldb;vcldbx;dsnap;dsnapcon;TeeUI;TeeDB;Tee;adortl;vclib;ibxpress;IndyCore;IndySystem;IndyProtocols;xmlrtl;inet;intrawebdb_100_120;Intraweb_100_120;VclSmp;vclie;websnap;webdsnap;inetdbbde;inetdbxpress;soaprtl;vclribbon;dbexpress;DbxCommonDriver;DataSnapIndy10ServerTransport;DataSnapProviderClient;DataSnapServer;DbxClientDriver;DBXInterBaseDriver;DBXMySQLDriver;dbxcds;DBXSybaseASEDriver;DBXSybaseASADriver;DBXOracleDriver;DBXMSSQLDriver;DBXInformixDriver;DBXDb2Driver;IWEliteSuite_100_Delphi2009;InstantBDExpress;IOCore;IOBDE</DCC_UsePackage> + <DCC_DependencyCheckOutputName>Intro.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_WriteableConstants>True</DCC_WriteableConstants> + <DCC_Optimize>False</DCC_Optimize> + <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> + <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_IncludePath)</DCC_IncludePath> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_DebugDCUs>true</DCC_DebugDCUs> + <Version>7.0</Version> + <DCC_WriteableConstants>True</DCC_WriteableConstants> + <DCC_Optimize>False</DCC_Optimize> + <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> + <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_IncludePath)</DCC_IncludePath> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <Language> + <Language Name="ProjectLang">$00000406</Language> + </Language> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">False</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">1</VersionInfo> + <VersionInfo Name="MinorVer">0</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1030</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">Intro.dpr</Source> + </Source> + <Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dcloffice2k120.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dclofficexp120.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="Intro.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="Model.pas"/> + <DCCReference Include="Main.pas"> + <Form>MainForm</Form> + </DCCReference> + <DCCReference Include="ContactEdit.pas"> + <Form>ContactEditForm</Form> + </DCCReference> + <DCCReference Include="PersonEdit.pas"> + <Form>PersonEditForm</Form> + </DCCReference> + <DCCReference Include="CompanyEdit.pas"> + <Form>CompanyEditForm</Form> + </DCCReference> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <ItemGroup/> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Demos/Intro/Intro_D2009.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Property changes on: trunk/Source/Brokers/XML/D2009 ___________________________________________________________________ Added: svn:ignore + *.dcu __history *.local Added: trunk/Source/Brokers/XML/D2009/DclIOXML.dpk =================================================================== --- trunk/Source/Brokers/XML/D2009/DclIOXML.dpk (rev 0) +++ trunk/Source/Brokers/XML/D2009/DclIOXML.dpk 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,40 @@ +package DclIOXML; + +{$R *.res} +{$R '..\InstantXML.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects XML Design-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + vclx, + IOXML; + +contains + InstantXMLReg in '..\InstantXMLReg.pas'; + +end. Property changes on: trunk/Source/Brokers/XML/D2009/DclIOXML.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/XML/D2009/DclIOXML.dproj =================================================================== --- trunk/Source/Brokers/XML/D2009/DclIOXML.dproj (rev 0) +++ trunk/Source/Brokers/XML/D2009/DclIOXML.dproj 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,121 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{82c41017-7d52-4f3f-92f1-c69cd9f9b523}</ProjectGuid> + <MainSource>DclIOXML.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Users\nandod\Documents\RAD Studio\5.0\Bpl\DclIOXML_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\DclIOXML_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_Description>InstantObjects XML Design-Time Support (Delphi 2009)</DCC_Description> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">DclIOXML.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="DclIOXML.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantXML.dcr"/> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="vclx.dcp"/> + <DCCReference Include="IOXML.dcp"/> + <DCCReference Include="..\InstantXMLReg.pas"/> + <DCCReference Include="..\InstantXML.dcr"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Source/Brokers/XML/D2009/DclIOXML.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/XML/D2009/DclIOXML.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/XML/D2009/DclIOXML.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/XML/D2009/IOXML.dpk =================================================================== --- trunk/Source/Brokers/XML/D2009/IOXML.dpk (rev 0) +++ trunk/Source/Brokers/XML/D2009/IOXML.dpk 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,41 @@ +package IOXML; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects XML Run-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + vclx, + IOCore; + +contains + InstantXMLCatalog in '..\InstantXMLCatalog.pas', + InstantXMLConnectionDefEdit in '..\InstantXMLConnectionDefEdit.pas' {InstantXMLConnectionDefEditForm}, + InstantXML in '..\InstantXML.pas'; + +end. Property changes on: trunk/Source/Brokers/XML/D2009/IOXML.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/XML/D2009/IOXML.dproj =================================================================== --- trunk/Source/Brokers/XML/D2009/IOXML.dproj (rev 0) +++ trunk/Source/Brokers/XML/D2009/IOXML.dproj 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,125 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{d2f12d26-2127-4834-8d0e-e4c9bfabb985}</ProjectGuid> + <MainSource>IOXML.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\nandod\Documenti\RAD Studio\Projects\Bpl\IOXML_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\IOXML_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_ImageBase>00400000</DCC_ImageBase> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_Description>InstantObjects XML Run-Time Support (Delphi 2009)</DCC_Description> + <DesignOnlyPackage>false</DesignOnlyPackage> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + <Version>7.0</Version> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="IOXML.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="vclx.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="..\InstantXMLCatalog.pas"/> + <DCCReference Include="..\InstantXMLConnectionDefEdit.pas"> + <Form>InstantXMLConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="..\InstantXML.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">IOXML.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/XML/D2009/IOXML.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/XML/D2009/IOXML.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/XML/D2009/IOXML.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantBrokers.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -2329,7 +2329,7 @@ procedure TInstantNavigationalResolver.ReadPart(Attribute: TInstantPart); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; PartClassName: string; ObjID: string; begin @@ -2356,7 +2356,7 @@ Field := FieldByName(Metadata.FieldName); if not FieldHasObjects(Field) then Exit; - Stream := TInstantStringStream.Create(Field.AsString); + Stream := TStringStream.Create(Field.AsString); try LoadObjectFromStream(Stream); finally @@ -2369,7 +2369,7 @@ procedure TInstantNavigationalResolver.ReadParts(Attribute: TInstantParts); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; LinkDatasetResolver: TInstantNavigationalLinkResolver; begin with Attribute do @@ -2386,7 +2386,7 @@ Field := FieldByName(Metadata.FieldName); if not FieldHasObjects(Field) then Exit; - Stream := TInstantStringStream.Create(Field.AsString); + Stream := TStringStream.Create(Field.AsString); try LoadObjectsFromStream(Stream); finally @@ -2413,7 +2413,7 @@ Attribute: TInstantReferences); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; LinkDatasetResolver: TInstantNavigationalLinkResolver; begin with Attribute do @@ -2430,7 +2430,7 @@ Field := FieldByName(Metadata.FieldName); if not FieldHasObjects(Field) then Exit; - Stream := TInstantStringStream.Create(Field.AsString); + Stream := TStringStream.Create(Field.AsString); try LoadReferencesFromStream(Stream); finally @@ -2611,7 +2611,7 @@ procedure TInstantNavigationalResolver.WritePart(Attribute: TInstantPart); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; begin with Attribute do begin @@ -2628,7 +2628,7 @@ else begin Field := FieldByName(Metadata.FieldName); - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try SaveObjectToStream(Stream); Field.AsString := Stream.DataString; @@ -2642,7 +2642,7 @@ procedure TInstantNavigationalResolver.WriteParts(Attribute: TInstantParts); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; LinkDatasetResolver: TInstantNavigationalLinkResolver; begin with Attribute do @@ -2663,7 +2663,7 @@ else begin Field := FieldByName(Metadata.FieldName); - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try SaveObjectsToStream(Stream); Field.AsString := Stream.DataString; @@ -2689,7 +2689,7 @@ Attribute: TInstantReferences); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; LinkDatasetResolver: TInstantNavigationalLinkResolver; begin with Attribute do @@ -2709,7 +2709,7 @@ else begin Field := FieldByName(Metadata.FieldName); - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try SaveReferencesToStream(Stream); Field.AsString := Stream.DataString; @@ -2751,7 +2751,7 @@ begin Param := AddParam(Params, AFieldName, ftBlob); if Value <> '' then - Param.AsBlob := Value + Param.AsMemo := Value end; procedure AddMemoParam(const AFieldName, Value: string); @@ -2771,7 +2771,7 @@ if Attribute.IsNull then LParam.Clear else - LParam.AsBlob := (Attribute as TInstantBlob).Value; + LParam.AsMemo := (Attribute as TInstantBlob).Value; end; procedure AddBooleanAttributeParam; @@ -2864,7 +2864,7 @@ procedure AddPartAttributeParam; var - Stream: TInstantStringStream; + Stream: TStringStream; Part: TInstantPart; begin if Attribute.Metadata.StorageKind = skExternal then @@ -2876,7 +2876,7 @@ end else begin - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try (Attribute as TInstantPart).SaveObjectToStream(Stream); if Broker.Connector.BlobStreamFormat = sfBinary then @@ -2891,9 +2891,9 @@ procedure AddPartsAttributeParam; var - Stream: TInstantStringStream; + Stream: TStringStream; begin - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try (Attribute as TInstantParts).SaveObjectsToStream(Stream); if Broker.Connector.BlobStreamFormat = sfBinary then @@ -2917,9 +2917,9 @@ procedure AddReferencesAttributeParam; var - Stream: TInstantStringStream; + Stream: TStringStream; begin - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try (Attribute as TInstantReferences).SaveReferencesToStream(Stream); if Broker.Connector.BlobStreamFormat = sfBinary then @@ -3557,7 +3557,7 @@ procedure ReadPartAttribute; var - Stream: TInstantStringStream; + Stream: TStringStream; LPartClassName: string; LPartId: string; begin @@ -3583,7 +3583,7 @@ end else begin - Stream := TInstantStringStream.Create(ReadBlobField(DataSet, + Stream := TStringStream.Create(ReadBlobField(DataSet, AFieldName)); try if Stream.Size = 0 then @@ -3598,7 +3598,7 @@ procedure ReadPartsAttribute; var - Stream: TInstantStringStream; + Stream: TStringStream; LinkResolver: TInstantSQLLinkResolver; begin if AttributeMetadata.StorageKind = skExternal then @@ -3618,7 +3618,7 @@ end else begin - Stream := TInstantStringStream.Create(ReadBlobField(DataSet, AFieldName)); + Stream := TStringStream.Create(ReadBlobField(DataSet, AFieldName)); try if Stream.Size = 0 then (Attribute as TInstantParts).Reset @@ -3639,7 +3639,7 @@ procedure ReadReferencesAttribute; var - Stream: TInstantStringStream; + Stream: TStringStream; LinkResolver: TInstantSQLLinkResolver; begin if AttributeMetadata.StorageKind = skExternal then @@ -3659,7 +3659,7 @@ end else begin - Stream := TInstantStringStream.Create(ReadBlobField(DataSet, AFieldName)); + Stream := TStringStream.Create(ReadBlobField(DataSet, AFieldName)); try if Stream.Size = 0 then (Attribute as TInstantReferences).Reset Modified: trunk/Source/Core/InstantClasses.pas =================================================================== --- trunk/Source/Core/InstantClasses.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantClasses.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -193,7 +193,8 @@ procedure WriteCharSet(CharSet: TChars); procedure WriteObject(AObject: TPersistent); virtual; procedure WriteProperties(AObject: TPersistent); - procedure WriteString(const Value: string); + // Might be needed for versions of Delphi <7? + //procedure WriteString(const Value: string); procedure WriteValue(Value: TValueType); property Stream: TStream read FStream; end; @@ -240,13 +241,20 @@ constructor Create(const FileName: string; Mode: Word); end; + {$IFDEF UNICODE} + TInstantStringStream = class(TStringStream) + public + constructor Create(AString: string); + end; + {$ELSE} TInstantStringStream = class(TInstantStream) private - function GetDataString: string; + function GetDataString: AnsiString; public constructor Create(AString: string); - property DataString: string read GetDataString; + property DataString: AnsiString read GetDataString; end; + {$ENDIF} TInstantXMLProducer = class(TObject) private @@ -260,6 +268,7 @@ function GetWriter: TAbstractWriter; procedure SetPosition(Value: Integer); procedure WriteString(const S: string); + procedure WriteWideString(const S: WideString); protected property TagStack: TStringList read GetTagStack; property Writer: TAbstractWriter read GetWriter; @@ -286,12 +295,12 @@ function GetPosition: Integer; function GetReader: TAbstractReader; function GetToken: TInstantXMLToken; - function ReadEscapedChar: Char; + function ReadEscapedChar: AnsiChar; procedure SetPosition(const Value: Integer); protected procedure CheckToken(AToken: TInstantXMLToken); - function PeekChar: Char; - function ReadChar: Char; + function PeekChar: AnsiChar; + function ReadChar: AnsiChar; procedure SkipBlanks; property Reader: TAbstractReader read GetReader; public @@ -769,13 +778,10 @@ var ObjectEnd: string; begin - with Converter do - begin - ObjectEnd := InstantBuildEndTag(ObjectClassName); - while not SameText(Processor.PeekTag, ObjectEnd) do - Convert; - Writer.WriteListEnd; - end; + ObjectEnd := InstantBuildEndTag(Converter.ObjectClassName); + while not SameText(Converter.Processor.PeekTag, ObjectEnd) do + Converter.Convert; + Converter.Writer.WriteListEnd; end; class procedure TInstantCollection.ConvertToText(Converter: TInstantBinaryToTextConverter); @@ -1052,6 +1058,7 @@ WriteListEnd; end; +(* Might be needed for versions of Delphi <7? procedure TInstantWriter.WriteString(const Value: string); var L: Integer; @@ -1068,6 +1075,7 @@ end; Write(Pointer(Value)^, L); end; +*) procedure TInstantWriter.WriteValue(Value: TValueType); begin @@ -1272,13 +1280,18 @@ constructor TInstantStringStream.Create(AString: string); begin + {$IFDEF UNICODE} + inherited Create(AString, TEncoding.Unicode); + {$ELSE} inherited Create(TMemoryStream.Create, True); if Length(AString) > 0 then Write(AString[1], Length(AString)); Position := 0; + {$ENDIF} end; -function TInstantStringStream.GetDataString: string; +{$IFNDEF UNICODE} +function TInstantStringStream.GetDataString: AnsiString; var Pos: Integer; begin @@ -1292,9 +1305,11 @@ finally Position := Pos; end; - end else + end + else Result := ''; end; +{$ENDIF} { TInstantXMLProducer } @@ -1405,10 +1420,21 @@ end; procedure TInstantXMLProducer.WriteString(const S: string); +var + U: UTF8String; begin - Writer.Write(S[1], Length(S)); + U := UTF8String(S); + Writer.Write(U[1], Length(U)); end; +procedure TInstantXMLProducer.WriteWideString(const S: WideString); +var + U : UTF8String; +begin + U := UTF8Encode(S); + Writer.Write(U[1], Length(U)); +end; + { TInstantXMLProcessor } procedure TInstantXMLProcessor.CheckToken(AToken: TInstantXMLToken); @@ -1455,7 +1481,7 @@ Result := xtData; end; -function TInstantXMLProcessor.PeekChar: Char; +function TInstantXMLProcessor.PeekChar: AnsiChar; var Pos: Integer; begin @@ -1491,9 +1517,9 @@ end; end; -function TInstantXMLProcessor.ReadChar: Char; +function TInstantXMLProcessor.ReadChar: AnsiChar; begin - Reader.Read(Result, SizeOf(Char)); + Reader.Read(Result, SizeOf(AnsiChar)); end; function TInstantXMLProcessor.ReadData: string; @@ -1507,11 +1533,11 @@ procedure TInstantXMLProcessor.ReadData(Stream: TStream); var - C: Char; + C: AnsiChar; CharSize: Integer; begin CheckToken(xtData); - CharSize := SizeOf(Char); + CharSize := SizeOf(AnsiChar); while not (PeekChar = InstantTagStart) do begin C := ReadEscapedChar; @@ -1519,7 +1545,7 @@ end; end; -function TInstantXMLProcessor.ReadEscapedChar: Char; +function TInstantXMLProcessor.ReadEscapedChar: AnsiChar; procedure UnEscape; var @@ -1533,7 +1559,7 @@ Result := ReadChar; end; if S[1] = '#' then - Result := Char(StrToInt(Copy(S, 2, Length(S) - 1))) + Result := AnsiChar(StrToInt(Copy(S, 2, Length(S) - 1))) else if S = 'quot' then Result := #34 else if S = 'amp' then @@ -1554,7 +1580,7 @@ function TInstantXMLProcessor.ReadTag: string; var - C: Char; + C: AnsiChar; Pos: Integer; begin Pos := Position; @@ -1722,6 +1748,8 @@ Producer.WriteData(InstantDateTimeToStr(Reader.ReadDate)); vaString, vaLString: Producer.WriteEscapedData(Reader.ReadString); + vaUTF8String: + Producer.WriteWideString(Reader.ReadWideString); vaSet: begin Reader.ReadValue; @@ -1817,7 +1845,7 @@ procedure ConvertProperty(PropInfo: PPropInfo); var I: Integer; - PropName, ValueStr: string; + PropName, ValueStr: String; S: TStringList; begin PropName := Processor.ReadTagName; @@ -1841,6 +1869,10 @@ {$ENDIF} tkString, tkLString, tkChar: Writer.WriteString(ValueStr); + {$IFDEF D12+} + tkUString: + Writer.WriteString(ValueStr); + {$ENDIF} tkEnumeration: Writer.WriteIdent(ValueStr); tkSet: Modified: trunk/Source/Core/InstantCode.pas =================================================================== --- trunk/Source/Core/InstantCode.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantCode.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -1341,8 +1341,8 @@ FOrigin: TInstantCodePos; procedure SetOrigin(Value: TInstantCodePos); protected - function GetStreamPos: Integer; override; - procedure SetStreamPos(Value: Integer); override; + function GetStreamPos: Int64; override; + procedure SetStreamPos(Value: Int64); override; public procedure Indent; procedure Unindent; @@ -5620,7 +5620,7 @@ begin if I > 0 then Writer.Write(', '); - Items[0].Write(Writer); + Items[I].Write(Writer); end; Writer.WriteLn(';'); finally @@ -6456,7 +6456,7 @@ { TInstantCodeWriter } -function TInstantCodeWriter.GetStreamPos: Integer; +function TInstantCodeWriter.GetStreamPos: Int64; begin Result := inherited GetStreamPos + Origin.Offset; end; @@ -6472,7 +6472,7 @@ Position := FOrigin; end; -procedure TInstantCodeWriter.SetStreamPos(Value: Integer); +procedure TInstantCodeWriter.SetStreamPos(Value: Int64); begin inherited SetStreamPos(Value - Origin.Offset); end; Modified: trunk/Source/Core/InstantCommand.pas =================================================================== --- trunk/Source/Core/InstantCommand.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantCommand.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -716,10 +716,10 @@ function TInstantIQLObject.GetText: string; var - Stream: TStringStream; + Stream: TInstantStringStream; Writer: TInstantIQLWriter; begin - Stream := TStringStream.Create(''); + Stream := TInstantStringStream.Create(''); try Writer := TInstantIQLWriter.Create(Stream); try @@ -1702,10 +1702,10 @@ procedure TInstantIQLTranslator.Translate; var - Stream: TStringStream; + Stream: TInstantStringStream; Writer: TInstantIQLStatementWriter; begin - Stream := TStringStream.Create(''); + Stream := TInstantStringStream.Create(''); try Writer := TInstantIQLStatementWriter.Create(Self, Stream); try Modified: trunk/Source/Core/InstantExplorer.pas =================================================================== --- trunk/Source/Core/InstantExplorer.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantExplorer.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -627,7 +627,6 @@ Result := TPanel.Create(AOwner); Result.BevelInner := bvNone; Result.BevelOuter := bvNone; - Result.Parent := Self; end; procedure TInstantExplorer.CreateSplitter; Modified: trunk/Source/Core/InstantMetadata.pas =================================================================== --- trunk/Source/Core/InstantMetadata.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantMetadata.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -1800,10 +1800,7 @@ function TInstantAttributeMetadata.GetValidChars: TChars; begin - if FValidChars = [] then - Result := [#0..#255] - else - Result := FValidChars; + Result := FValidChars; end; function TInstantAttributeMetadata.GetValidCharsString: string; Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantPersistence.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -1621,8 +1621,8 @@ I: Integer; begin Result := True; - for I := 0 to Pred(BufferLength) do - if not (Buffer[I] in ValidChars + [#8, #10, #13]) then + for I := 0 to Pred(BufferLength div SizeOf(Char)) do + if (ValidChars <> []) and not (Buffer[I] in ValidChars + [#8, #10, #13]) then begin Result := False; InvalidChar := Buffer[I]; @@ -1955,7 +1955,7 @@ SizeOfGraphicHeader = 8; MinimumBytesToRead = 10; var - P: array [0..MinimumBytesToRead - 1] of Char; + P: array [0..MinimumBytesToRead - 1] of Byte; StreamLength: Longint; BytesRetrieved: Integer; begin @@ -1964,44 +1964,44 @@ Exit; StreamLength := AStream.Size; AStream.Position := 0; - FillChar(P, SizeOf(P), #0); + FillChar(P, SizeOf(P), 0); BytesRetrieved := AStream.Read(P[0], SizeOf(P)); AStream.Position := 0; if BytesRetrieved < MinimumBytesToRead then Exit; // bitmap format - if (P[0] = #66) and (P[1] = #77) then + if (P[0] = 66) and (P[1] = 77) then Result := gffBmp // tiff format - else if ((P[0] = #73) and (P[1] = #73) and (P[2] = #42) and (P[3] = #0)) - or ((P[0] = #77) and (P[1] = #77) and (P[2] = #42) and (P[3] = #0)) then + else if ((P[0] = 73) and (P[1] = 73) and (P[2] = 42) and (P[3] = 0)) + or ((P[0] = 77) and (P[1] = 77) and (P[2] = 42) and (P[3] = 0)) then Result := gffTiff // jpg format - else if (P[6] = #74) and (P[7] = #70) and (P[8] = #73) and (P[9] = #70) - or (P[6] = #69) and (P[7] = #120) and (P[8] = #105) and (P[9] = #102) then + else if (P[6] = 74) and (P[7] = 70) and (P[8] = 73) and (P[9] = 70) + or (P[6] = 69) and (P[7] = 120) and (P[8] = 105) and (P[9] = 102) then Result := gffJpeg // png format - else if (P[0] = #137 ) and (P[1] = #80) and (P[2] = #78) and (P[3] = #71) - and (P[4] = #13) and (P[5] = #10) and (P[6] = #26) and (P[7] = #10) then + else if (P[0] = 137 ) and (P[1] = 80) and (P[2] = 78) and (P[3] = 71) + and (P[4] = 13) and (P[5] = 10) and (P[6] = 26) and (P[7] = 10) then Result := gffPng // dcx format - else if (P[0] = #177) and (P[1] = #104) and (P[2] = #222) and (P[3] = #58) then + else if (P[0] = 177) and (P[1] = 104) and (P[2] = 222) and (P[3] = 58) then Result := gffDcx // pcx format - else if p[0] = #10 then + else if p[0] = 10 then Result := gffPcx // emf format - else if ((P[0] = #215) and (P[1] = #205) and (P[2] = #198) and (P[3] = #154)) - or ((P[0] = #1) and (P[1] = #0) and (P[2] = #0) and (P[3] = #0)) then + else if ((P[0] = 215) and (P[1] = 205) and (P[2] = 198) and (P[3] = 154)) + or ((P[0] = 1) and (P[1] = 0) and (P[2] = 0) and (P[3] = 0)) then Result := gffEmf // gif format - else if (P[0] = #$47) and (P[1] = #$49) and (P[2] = #$46) then + else if (P[0] = $47) and (P[1] = $49) and (P[2] = $46) then Result := gffGif // Ico format - else if (P[0] = #00) and (P[1] = #00) and (P[2] = #01) and (P[3] = #00) then + else if (P[0] = 00) and (P[1] = 00) and (P[2] = 01) and (P[3] = 00) then Result := gffIco // bitmap format with TGraphicHeader header - else if (P[0] = #01) and (P[1] = #00) and (P[2] = #00) and (P[3] = #01) + else if (P[0] = 01) and (P[1] = 00) and (P[2] = 00) and (P[3] = 01) and (PLongint(@p[4])^ = StreamLength - SizeOfGraphicHeader) then begin Result := gffBmp; @@ -3489,7 +3489,7 @@ begin if Size > 0 then begin - SetLength(Result, Size); + SetLength(Result, Size div SizeOf(Char)); Read(Result[1], 0, Size); end else Result := ''; @@ -3501,7 +3501,7 @@ if (Metadata.Defaultvalue <> '') then begin try - Write(Metadata.DefaultValue[1], 0, Length(Metadata.DefaultValue)); + Write(Metadata.DefaultValue[1], 0, Length(Metadata.DefaultValue) * SizeOf(Char)); except on E: Exception do raise ConversionError(E); @@ -3571,9 +3571,10 @@ var L: Integer; begin - L := Length(AValue); + L := Length(AValue) * SizeOf(Char); if L > 0 then begin + Stream.Clear; WriteBuffer(AValue[1], 0, L); Stream.Size := L; end else Modified: trunk/Source/Core/InstantPresentation.pas =================================================================== --- trunk/Source/Core/InstantPresentation.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantPresentation.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -288,7 +288,11 @@ FContentBuffer: TInstantContentBuffer; FContentChanged: Boolean; FFieldOptions: TInstantFieldOptions; + {$IFDEF D12+} + FFilterBuffer: TRecordBuffer; + {$ELSE} FFilterBuffer: PChar; + {$ENDIF} FInSetFieldData: Boolean; FIsOpen: Boolean; FLimited: Boolean; @@ -319,13 +323,10 @@ FOnAddClassFieldDef: TInstantAddClassFieldDefEvent; procedure AccessorChanged(Sender: TObject; ChangeType: TInstantChangeType); procedure CheckClass(AObject: TObject); - procedure ClearData(Buffer: PChar); - procedure ClearRecord(Buffer: PChar); function DataFieldsSize: Integer; function GetAutoApplyChanges: Boolean; function GetCanDispose: Boolean; function GetContentBuffer: TInstantContentBuffer; - function GetCurrentBuffer: PChar; function GetDesignClass: TInstantCodeClass; function GetHasCurrentBuffer: Boolean; function GetHasSubject: Boolean; @@ -338,7 +339,6 @@ function GetObjectClassName: string; function GetObjectCount: Integer; function GetObjects(Index: Integer): TObject; - function GetRecInfo(Buffer: PChar): PRecInfo; function GetRecordBuffer: TInstantRecordBuffer; function GetSorted: Boolean; function GetTotalCount: Integer; @@ -352,7 +352,19 @@ procedure InitFields; function IsSelfField(Field: TField): Boolean; procedure ObjectChanged(AObject: TInstantObject); + {$IFDEF D12+} + procedure ClearData(Buffer: TRecordBuffer); + procedure ClearRecord(Buffer: TRecordBuffer); + function GetCurrentBuffer: TRecordBuffer; + function GetRecInfo(Buffer: TRecordBuffer): PRecInfo; + procedure PutObject(Buffer: TRecordBuffer; AObject: TObject; Append: Boolean); + {$ELSE} + procedure ClearData(Buffer: PChar); + procedure ClearRecord(Buffer: PChar); + function GetCurrentBuffer: PChar; + function GetRecInfo(Buffer: PChar): PRecInfo; procedure PutObject(Buffer: PChar; AObject: TObject; Append: Boolean); + {$ENDIF} procedure SetContainerName(const Value: string); procedure SetFieldOptions(Value: TInstantFieldOptions); procedure SetLimited(Value: Boolean); @@ -368,10 +380,14 @@ { IProviderSupport } procedure PSGetAttributes(List: TList); override; {$IFDEF D10+} + {$IFNDEF D12+} function PSGetTableNameW: WideString; override; {$ELSE} function PSGetTableName: string; override; {$ENDIF} + {$ELSE} + function PSGetTableName: string; override; + {$ENDIF} procedure PSReset; override; protected procedure AddClassFieldDefs(const FieldName: string; AClass: TClass); overload; @@ -379,13 +395,49 @@ function AddFieldDef(const Prefix: string; PropInfo: PPropInfo): TFieldDef; overload; function AddFieldDef(const FieldName: string; FieldType: TFieldType; FieldSize: Integer; FieldAttribs: TFieldAttributes): TFieldDef; overload; + {$IFDEF D12+} + function AddNewObject(Buffer: TRecordBuffer; Append: Boolean): TObject; + function AllocRecordBuffer: TRecordBuffer; override; + procedure ClearCalcFields(Buffer: TRecordBuffer); override; + procedure FreeRecordBuffer(var Buffer: TRecordBuffer); override; + procedure GetBookmarkData(Buffer: TRecordBuffer; Data: Pointer); override; + function GetBookmarkFlag(Buffer: TRecordBuffer): TBookmarkFlag; override; + function GetRecord(Buffer: TRecordBuffer; GetMode: TGetMode; + DoCheck: Boolean): TGetResult; override; + procedure InitRecord(Buffer: TRecordBuffer); override; + procedure InternalInitRecord(Buffer: TRecordBuffer); override; + procedure InternalSetToRecord(Buffer: TRecordBuffer); override; + procedure SetBookmarkData(Buffer: TRecordBuffer; Data: Pointer); override; + procedure SetBookmarkFlag(Buffer: TRecordBuffer; Value: TBookmarkFlag); override; + procedure CopyObjectToBuffer(AObject: TObject; Buffer: TRecordBuffer); + function FindObjectBuffer(AObject: TObject): TRecordBuffer; + procedure LoadRecord(RecNo: Integer; Buffer: TRecordBuffer); + function InternalGetRecord(Buffer: TRecordBuffer; GetMode: TGetMode; + DoCheck: Boolean): TGetResult; virtual; + procedure CopyBufferToObject(Buffer: TRecordBuffer; AObject: TObject); + {$ELSE} function AddNewObject(Buffer: PChar; Append: Boolean): TObject; function AllocRecordBuffer: PChar; override; + procedure ClearCalcFields(Buffer: PChar); override; + procedure FreeRecordBuffer(var Buffer: PChar); override; + procedure GetBookmarkData(Buffer: PChar; Data: Pointer); override; + function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag; override; + function GetRecord(Buffer: PChar; GetMode: TGetMode; + DoCheck: Boolean): TGetResult; override; + procedure InitRecord(Buffer: PChar); override; + procedure InternalInitRecord(Buffer: PChar); override; + procedure InternalSetToRecord(Buffer: PChar); override; + procedure SetBookmarkData(Buffer: PChar; Data: Pointer); override; + procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag); override; + procedure CopyObjectToBuffer(AObject: TObject; Buffer: PChar); + function FindObjectBuffer(AObject: TObject): PChar; + procedure LoadRecord(RecNo: Integer; Buffer: PChar); + function InternalGetRecord(Buffer: PChar; GetMode: TGetMode; + DoCheck: Boolean): TGetResult; virtual; + procedure CopyBufferToObject(Buffer: PChar; AObject: TObject); + {$ENDIF} procedure AutoDispose(AObject: TObject); procedure AutoStore(AObject: TObject); - procedure ClearCalcFields(Buffer: PChar); override; - procedure CopyBufferToObject(Buffer: PChar; AObject: TObject); - procedure CopyObjectToBuffer(AObject: TObject; Buffer: PChar); function CreateAccessor: TInstantAccessor; virtual; procedure CreateFields; override; function CreateNestedDataSet(DataSetField: TDataSetField): TDataSet; override; @@ -399,17 +451,11 @@ procedure DoIncludeField(FieldName: string; var Include: Boolean); virtual; procedure DoTranslate(Field: TField; var Value: Variant; Write: Boolean); function FindAttributeMetadata(const Path: string): TInstantAttributeMetadata; - function FindObjectBuffer(AObject: TObject): PChar; - procedure FreeRecordBuffer(var Buffer: PChar); override; function GetAccessor: TInstantAccessor; virtual; - procedure GetBookmarkData(Buffer: PChar; Data: Pointer); override; - function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag; override; function GetCanModify: Boolean; override; function GetCurrentObject: TObject; virtual; function GetFieldOffset(const Field: TField): Integer; function GetRecNo: Integer; override; - function GetRecord(Buffer: PChar; GetMode: TGetMode; - DoCheck: Boolean): TGetResult; override; function GetRecordCount: Longint; override; function GetRecordSize: Word; override; function GetSubject: TObject; virtual; abstract; @@ -421,19 +467,15 @@ procedure InitAccessor(AAccessor: TInstantAccessor); procedure InitField(Field: TField); virtual; procedure InitFieldDef(FieldDef: TFieldDef); virtual; - procedure InitRecord(Buffer: PChar); override; function InternalAddObject(AObject: TObject): Integer; procedure InternalAddRecord(Buffer: Pointer; Append: Boolean); override; procedure InternalCancel; override; procedure InternalClose; override; procedure InternalDelete; override; procedure InternalFirst; override; - function InternalGetRecord(Buffer: PChar; GetMode: TGetMode; - DoCheck: Boolean): TGetResult; virtual; procedure InternalGotoBookmark(Bookmark: Pointer); override; procedure InternalHandleException; override; procedure InternalInitFieldDefs; override; - procedure InternalInitRecord(Buffer: PChar); override; procedure InternalInsert; override; function InternalInsertObject(ARecNo: Integer; AObject: TObject): Integer; virtual; procedure InternalLast; override; @@ -443,14 +485,12 @@ procedure InternalReleaseObject(AObject: TObject); virtual; function InternalRemoveObject(AObject: TObject): Integer; virtual; procedure InternalReset; virtual; - procedure InternalSetToRecord(Buffer: PChar); override; function IsCalcField(Field: TField): Boolean; function IsCursorOpen: Boolean; override; function IsNested: Boolean; procedure LoadField(Obj: TObject; Field: TField); virtual; procedure LoadFieldParams(AObject: TObject; Field: TField); virtual; procedure LoadFieldValue(Field: TField; Buffer: Pointer; AObject: TObject); - procedure LoadRecord(RecNo: Integer; Buffer: PChar); function LocateObject(const KeyFields: string; const KeyValues: Variant; Options: TInstantCompareOptions): Boolean; overload; function LocateObject(AObject: TObject): Boolean; overload; @@ -460,8 +500,6 @@ procedure SaveField(Field: TField); virtual; procedure SaveFieldValue(Field: TField; Buffer: Pointer; AObject: TObject); procedure SetActive(Value: Boolean); override; - procedure SetBookmarkData(Buffer: PChar; Data: Pointer); override; - procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag); override; procedure SetFieldData(Field... [truncated message content] |