Installer for DevExpress VCL FullSource

Embed Size (px)

DESCRIPTION

Installer for DevExpress VCL FullSource

Citation preview

Installer for DevExpress VCL FullSource (D7-DXE6)

*** Tested with v14.1.2 and v13.2.5 ***

Features Installer: Compiling VCL packages (32bit and 64bit)- Searching for installed TeeChart Version and modifying according DPK-files- Searching for installed FireDAC/AnyDAC Version Installing packages into IDE Updating Search Path and Browsing Path Compile errors are displayed on the screen and logged in detail to 'Log_Errors.txt' ProgressBar is shown in the TitleBar of the console window

Install.bat(1000 lines)Code:@echo off@color 1F

setlocal enabledelayedexpansion

%~d0cd %~p0

rem ****************************************************************************rem *rem * DevExpress VCL FullSource - Installer for D7-DXE6 rem *rem * Tasks:rem * 1) Compiling VCL packages (32bit and 64bit) rem * - Searching for installed TeeChart Version and modifying DPK-filesrem * - Searching for installed FireDAC/AnyDAC Versionrem * 2) Installing packages into IDErem * 3) Updating Search Path and Browsing Pathrem *rem *****************************************************************************

set "TestMode=OFF"

set starttime=%time%set "varEcho="set "varLogFile= >nul 2>&1"if "%TestMode%"=="ON" ( set "varEcho=echo" set "varLogFile= >> "%~dp0Log_TestMode.txt"" echo TestMode - LogFile > "%~dp0Log_TestMode.txt" )

rem ----------------------------------------------------------rem Administrative permissions requiredrem ----------------------------------------------------------net session >nul 2>&1if %errorLevel% == 0 ( rem Success: Administrative permissions confirmed.) else ( echo ERROR: Administrative permissions required. echo. echo INFO: Run batch-file again as ADMIN ... echo. pause goto end)

rem -----------------------------------------rem BAT file must be executed in rem -----------------------------------------if not exist "%~dp0ExpressQuantumGrid\Sources\cxGrid.pas" ( echo ERROR: Current directory is not installdir echo. echo INFO: Run batch-file in installdir ... echo. pause goto end)call :GetDXVersion "%~dp0ExpressCore Library\Sources\Dxcore.pas" DXVersTITLE Installing DevExpress VCL v!DXVers!set /a major_vers=!DXVers:~0,2!

rem ------------------rem Setting installdirrem ------------------set "INSTALLDIR=%~dp0"set "INSTALLDIR=!INSTALLDIR:~0,-1!" set "TestNote="if "%TestMode%"=="ON" set "TestNote=T E S T M O D E" echo ===========================================================================echo Installing DevExpress VCL v!DXVers! !TestNote! echo ===========================================================================

rem --------------------------rem Copying *.dfm *.res *.increm --------------------------if NOT "!TestMode!"=="ON" ( for /f "eol=r tokens=*" %%a in ('dir *. /b') do xcopy "%~dp0%%a\Sources\*.res" Common /Y /I >nul 2>&1 for /f "eol=r tokens=*" %%a in ('dir *. /b') do xcopy "%~dp0%%a\Sources\*.dfm" Common /Y /I >nul 2>&1 for /f "eol=r tokens=*" %%a in ('dir *. /b') do xcopy "%~dp0%%a\Sources\*.inc" Common /Y /I >nul 2>&1 set /a nError=0)rem ----------------rem RUN INSTALLATIONrem ----------------

call :func_install DXE6

set endtime=%time%

if NOT "%TestMode%"=="ON" ( echo Started at: %starttime% echo Finished at: %endtime% if !nError! GEQ 1 ( echo. >> Log_Errors.txt echo Total sum of compile errors: !nError! >> Log_Errors.txt echo. echo -------------------------------------------------------- echo ATTENTION: echo Total sum of compile errors: !nError! echo See file 'Log_Errors.txt' for more details ... echo -------------------------------------------------------- ))echo.if "%TestMode%"=="ON" ( echo *** All commands were logged to: Log_TestMode.txt *** echo. echo.)pause:endexit

rem ==================================================================================rem F U N C T I O N Srem ==================================================================================:func_installset p1=%1_set "str=D7_D2007_D2010_DXE_DXE2_DXE3_DXE4_DXE5_DXE6_"if "x!str:%p1%=!"=="x%str%" ( echo. echo ERROR: %1 not supported echo. Choose !str:~0,-1! echo. echo INFO: BAT file will be terminated now ... echo. pause exit) CALL :func_HKCU BDSHKCU %1CALL :func_rootdir ROOTDIR reg QUERY !BDSHKCU! /v RootDir if not exist "!ROOTDIR!\Bin\dcc32.exe" ( echo ERROR: Compiler echo "!ROOTDIR!\Bin\dcc32.exe" echo NOT found echo. echo INFO: BAT file will be terminated now ... echo. pause exit )set /a nCount=0set /a nProgress=0call :progress 0 >nul 2>&1

CALL :func_64Bit Is64BitSupport %1CALL :func_Suffix SUFFIX %1CALL :func_BDSCommonDir BDSCOMMONDIR %1

set "BPLDir=!BDSCOMMONDIR!\Bpl"set "DCPDir=!BDSCOMMONDIR!\Dcp"set "RKeySearch32=!BDSHKCU!\Library"set "RKeySearch64="

set "D2010_OR_HIGHER=YES"set "Edition=%1"

set "LIBSubDir32=!Edition!"set "LIBSubDir64="

if "!Is64BitSupport!"=="YES" ( set "RKeySearch32=!BDSHKCU!\Library\Win32" set "RKeySearch64=!BDSHKCU!\Library\Win64" set "LIBSubDir32=!Edition!\Win32" set "LIBSubDir64=!Edition!\Win64")

if "!Edition!"=="D7" ( set "DCPDir=!INSTALLDIR!\Library\D7" set "D2010_OR_HIGHER=NO")if "!Edition!"=="D2007" set "D2010_OR_HIGHER=NO"

if not exist "%BPLDir%" md "%BPLDir%"if not exist "%DCPDir%" md "%DCPDir%"if "!Is64BitSupport!"=="YES" ( if not exist "%BPLDir%\Win64" md "%BPLDir%\Win64" if not exist "%DCPDir%\Win64" md "%DCPDir%\Win64")

rem ====================================rem Search TeeChart, FireDAC and AnyDACrem ====================================CALL :Search_Path TeeChartPath "reg QUERY "!BDSHKCU!\Known_Packages" /s" mytee \DclTeeProCALL :Search_Path FireDACPath "reg QUERY "!BDSHKCU!\Known_Packages" /s" dmy \dclFireDAC CALL :Search_Path AnyDACPath "reg QUERY "!BDSHKCU!\Known_Packages" /s" dmy \AnyDAC_Dcl

set IsFireDAC=FALSEif NOT "!FireDACPath!"=="" Set IsFireDAC=TRUEif NOT "!AnyDACPath!"=="" Set IsFireDAC=TRUE echo - Installing to %1if NOT "!mytee!"=="" ( echo - TeeChart: !mytee! PRO echo !TeeChartPath!)

rem echo - %1 is installed in "!ROOTDIR!"echo (ProgressBar is shown in TitleBar of Console Window)echo.

if NOT "!TestMode!"=="ON" ( if exist "!INSTALLDIR!\Library\!LIBSubDir32!" del "!INSTALLDIR!\Library\!LIBSubDir32!\*.*" /S /Q >nul 2>&1 if exist "!INSTALLDIR!\Library\!LIBSubDir64!" del "!INSTALLDIR!\Library\!LIBSubDir64!\*.*" /S /Q >nul 2>&1 if not exist "!INSTALLDIR!\Library\!LIBSubDir32!" md Library\!LIBSubDir32! if "!Is64BitSupport!"=="YES" ( if not exist "!INSTALLDIR!\Library\!LIBSubDir64!" md Library\!LIBSubDir64! ))

if "%mytee%"=="" GOTO :DoCompileif "%mytee%"=="Standard" GOTO :DoCompileif "!TestMode!"=="ON" GOTO :DoCompile

rem ---------------------------rem Modifying 4 TEE-Chart files rem ---------------------------rem dxPSTeeChartxx.dpkrem dcldxPSTeeChartxx.dpk rem dxPSDBTeeChartxx.dpkrem dcldxPSDBTeeChartxx.dpkrem ---------------------------echo Modifying Tee Chart Packages for %1for /f "eol=r tokens=*" %%a in ('dir "ExpressPrinting System\Packages\*TeeChart!SUFFIX!.dpk" /b') do ( if not exist "%~dp0ExpressPrinting System\Packages\%%a.bak" ( copy "%~dp0ExpressPrinting System\Packages\%%a" "%~dp0ExpressPrinting System\Packages\%%a.bak" >nul 2>&1 ) Call :TEE_Modify "%~dp0ExpressPrinting System\Packages\%%a.bak" )

:DoCompilerem ----------------------------------rem Compiling 32bit and 64bit packages rem ----------------------------------set "DCC32=!ROOTDIR!\Bin\dcc32.exe"set "DCC64=!ROOTDIR!\Bin\dcc64.exe"set "CompInfo=Compiling 32bit"if "!Is64BitSupport!"=="YES" ( if exist "!DCC64!" set "CompInfo=!CompInfo! and 64bit")echo !CompInfo! Packages for %1

set "TEEPATH32=!TeeChartPath!"set "TEEPATH64=!TeeChartPath!"if NOT "!TEEPATH64!"=="" Set "TEEPATH64=!TEEPATH64:WIN32\=WIN64\!

set "ANYPATH32=!AnyDACPath!"set "ANYPATH64=!AnyDACPath!"if NOT "!ANYPATH64!"=="" Set "ANYPATH64=!ANYPATH64!\Win64"

echo ...ExpressCore Librarycall :comp32 dxCore ExpressCore_Librarycall :comp32 dcldxCore ExpressCore_Librarycall :progress 1 >nul 2>&1 echo ...XP Theme Managercall :comp32 dxTheme XP_Theme_Managerecho ...ExpressGDI+ Librarycall :comp32 dxGDIPlus ExpressGDI+_Libraryecho ...ExpressLibrarycall :comp32 cxLibrary ExpressLibrarycall :comp32 dclcxLibrary ExpressLibrarycall :progress 2 >nul 2>&1 echo ...ExpressCommon Librarycall :comp32 dxComn ExpressCommon_Libraryecho ...ExpressDataControllercall :comp32 cxData ExpressDataControllercall :comp32 cxADOAdapters ExpressDataControllercall :comp32 cxBDEAdapters ExpressDataControllercall :comp32 cxIBXAdapters ExpressDataControllercall :comp32 dxServerMode ExpressDataControllercall :comp32 dcldxServerMode ExpressDataControllercall :comp32 dxADOServerMode ExpressDataControllercall :comp32 dxDBXServerMode ExpressDataControllerif "!IsFireDAC!"=="TRUE" call :comp32 dxFireDACServerMode ExpressDataControllercall :comp32 dcldxADOServerMode ExpressDataControllercall :comp32 dcldxDBXServerMode ExpressDataControllerif "!IsFireDAC!"=="TRUE" call :comp32 dcldxFireDACServerMode ExpressDataControllerecho ...ExpressEditors Librarycall :comp32 cxEditors ExpressEditors_Librarycall :comp32 dclcxEditors ExpressEditors_Librarycall :comp32 dclcxEditorFieldLink ExpressEditors_Libraryecho ...ExpressExport Librarycall :comp32 cxExport ExpressExport_Libraryecho ...ExpressPageControlcall :comp32 cxPageControl ExpressPageControlcall :comp32 dclcxPageControl ExpressPageControlecho ...ExpressLibrary IIcall :comp32 dcldxIconLibrary ExpressLibraryecho ...ExpressDocking Librarycall :comp32 dxDocking ExpressDocking_Librarycall :comp32 dcldxDocking ExpressDocking_Libraryecho ...ExpressTile Controlcall :comp32 dxTileControl ExpressTile_Controlcall :comp32 dcldxTileControl ExpressTile_Controlecho ...ExpressWizard Controlcall :comp32 dxWizardControl ExpressWizard_Controlcall :comp32 dcldxWizardControl ExpressWizard_Controlecho ...ExpressBarscall :comp32 dxBar ExpressBarscall :comp32 dxTabbedMDI ExpressBarscall :comp32 dxBarDBNav ExpressBarscall :comp32 dxBarExtDBItems ExpressBarscall :comp32 dxBarExtItems ExpressBarscall :comp32 dcldxBarExtDBItems ExpressBarscall :comp32 dxRibbon ExpressBarscall :comp32 cxBarEditItem ExpressBarscall :comp32 dcldxBar ExpressBarscall :comp32 dcldxBarExtItems ExpressBarscall :comp32 dcldxRibbon ExpressBarscall :comp32 dcldxTabbedMDI ExpressBarscall :comp32 dclcxBarEditItem ExpressBarscall :comp32 dcldxBarDBNav ExpressBarsecho ...ExpressPageControl IIcall :comp32 cxPageControldxBarPopupMenu ExpressPageControlcall :comp32 dclcxPageControldxBarPopupMenu ExpressPageControlecho ...ExpressNavBarcall :comp32 dxNavBar ExpressNavBarcall :comp32 dcldxNavBar ExpressNavBarcall :comp32 dxNavBarAdvancedCustomizeForm ExpressNavBarecho ...ExpressLayout Controlcall :comp32 dxLayoutControl ExpressLayout_Controlcall :comp32 dcldxLayoutControl ExpressLayout_Control

if !major_vers! GEQ 14 ( if "!D2010_OR_HIGHER!"=="YES" ( echo ...ExpressSpreadSheet call :comp32 dxSpreadSheet ExpressSpreadSheet call :comp32 dcldxSpreadSheet ExpressSpreadSheet ) echo ...ExpressSpreadSheet [deprecated] call :comp32 cxSpreadSheet ExpressSpreadSheet_[deprecated] call :comp32 dclcxSpreadSheet ExpressSpreadSheet_[deprecated]) ELSE ( echo ...ExpressSpreadSheet call :comp32 cxSpreadSheet ExpressSpreadSheet call :comp32 dclcxSpreadSheet ExpressSpreadSheet)echo ...ExpressMemDatacall :comp32 dxmds ExpressMemDatacall :comp32 dcldxmds ExpressMemDataecho ...ExpressDBTree Suitecall :comp32 dxdbtr ExpressDBTree_Suitecall :comp32 dcldxdbtr ExpressDBTree_Suitecall :comp32 dxtrmd ExpressDBTree_Suitecall :comp32 dcldxtrmd ExpressDBTree_Suiteecho ...ExpressFlowChartcall :comp32 dxFlowChart ExpressFlowChartcall :comp32 dcldxFlowChart ExpressFlowChartecho ...ExpressQuantumTreeListcall :comp32 cxTreeList ExpressQuantumTreeListcall :comp32 cxTreeListdxBarPopupMenu ExpressQuantumTreeListcall :comp32 dclcxTreeListdxBarPopupMenu ExpressQuantumTreeListcall :comp32 dclcxTreeList ExpressQuantumTreeListecho ...ExpressBars IIcall :comp32 dxRibbonCustomizationForm ExpressBarscall :comp32 dcldxRibbonCustomizationForm ExpressBarsecho ...ExpressQuantumGridcall :comp32 cxGrid ExpressQuantumGridcall :comp32 dclcxGrid ExpressQuantumGridcall :comp32 dclcxGridWizard ExpressQuantumGridecho ...ExpressVerticalGridcall :comp32 cxVerticalGrid ExpressVerticalGridcall :comp32 dclcxVerticalGrid ExpressVerticalGridecho ...ExpressOrgChartcall :comp32 dxOrgC ExpressOrgChartcall :comp32 dxDBOr ExpressOrgChartcall :comp32 dcldxOrgC ExpressOrgChartcall :comp32 dxOrgChartAdvancedCustomizeForm ExpressOrgChartcall :comp32 dcldxDBOr ExpressOrgChartecho ...ExpressSchedulercall :comp32 cxScheduler ExpressSchedulercall :comp32 cxSchedulerGrid ExpressSchedulercall :comp32 cxSchedulerTreeBrowser ExpressSchedulercall :comp32 dclcxScheduler ExpressSchedulercall :comp32 cxSchedulerRibbonStyleEventEditor ExpressSchedulercall :comp32 dclcxSchedulerGrid ExpressSchedulercall :comp32 dclcxSchedulerTreeBrowser ExpressSchedulercall :comp32 dclcxSchedulerRibbonStyleEventEditor ExpressSchedulerecho ...ExpressPivotGridcall :comp32 cxPivotGrid ExpressPivotGridcall :comp32 cxPivotGridOLAP ExpressPivotGridcall :comp32 cxPivotGridChart ExpressPivotGridcall :comp32 dclcxPivotGrid ExpressPivotGridcall :comp32 dclcxPivotGridOLAP ExpressPivotGridcall :comp32 dclcxPivotGridChart ExpressPivotGridecho ...ExpressSkins Librarycall :comp32 dxSkinsCore ExpressSkins_Librarycall :comp32 dxSkinBlack ExpressSkins_Librarycall :comp32 dxSkinBlueprint ExpressSkins_Librarycall :comp32 dxSkinBlue ExpressSkins_Librarycall :comp32 dxSkinCaramel ExpressSkins_Librarycall :comp32 dxSkinCoffee ExpressSkins_Librarycall :comp32 dxSkinDarkRoom ExpressSkins_Librarycall :comp32 dxSkinDarkSide ExpressSkins_Librarycall :comp32 dxSkinDevExpressDarkStyle ExpressSkins_Librarycall :comp32 dxSkinDevExpressStyle ExpressSkins_Librarycall :comp32 dxSkinFoggy ExpressSkins_Librarycall :comp32 dxSkinGlassOceans ExpressSkins_Librarycall :comp32 dxSkinHighContrast ExpressSkins_Librarycall :comp32 dxSkiniMaginary ExpressSkins_Librarycall :comp32 dxSkinLilian ExpressSkins_Librarycall :comp32 dxSkinLiquidSky ExpressSkins_Librarycall :comp32 dxSkinLondonLiquidSky ExpressSkins_Librarycall :comp32 dxSkinMcSkin ExpressSkins_Librarycall :comp32 dxSkinMetropolisDark ExpressSkins_Librarycall :comp32 dxSkinMetropolis ExpressSkins_Librarycall :comp32 dxSkinMoneyTwins ExpressSkins_Librarycall :comp32 dxSkinOffice2007Black ExpressSkins_Librarycall :comp32 dxSkinOffice2007Blue ExpressSkins_Librarycall :comp32 dxSkinOffice2007Green ExpressSkins_Librarycall :comp32 dxSkinOffice2007Pink ExpressSkins_Librarycall :comp32 dxSkinOffice2007Silver ExpressSkins_Librarycall :comp32 dxSkinOffice2010Black ExpressSkins_Librarycall :comp32 dxSkinOffice2010Blue ExpressSkins_Librarycall :comp32 dxSkinOffice2010Silver ExpressSkins_Librarycall :comp32 dxSkinOffice2013DarkGray ExpressSkins_Librarycall :comp32 dxSkinOffice2013LightGray ExpressSkins_Librarycall :comp32 dxSkinOffice2013White ExpressSkins_Librarycall :comp32 dxSkinPumpkin ExpressSkins_Librarycall :comp32 dxSkinSevenClassic ExpressSkins_Librarycall :comp32 dxSkinSeven ExpressSkins_Librarycall :comp32 dxSkinSharpPlus ExpressSkins_Librarycall :comp32 dxSkinSharp ExpressSkins_Librarycall :comp32 dxSkinSilver ExpressSkins_Librarycall :comp32 dxSkinSpringTime ExpressSkins_Librarycall :comp32 dxSkinStardust ExpressSkins_Librarycall :comp32 dxSkinSummer2008 ExpressSkins_Librarycall :comp32 dxSkinTheAsphaltWorld ExpressSkins_Librarycall :comp32 dxSkinValentine ExpressSkins_Librarycall :comp32 dxSkinVS2010 ExpressSkins_Librarycall :comp32 dxSkinWhiteprint ExpressSkins_Librarycall :comp32 dxSkinXmas2008Blue ExpressSkins_Librarycall :comp32 dxSkinscxPCPainter ExpressSkins_Librarycall :comp32 dxSkinsdxNavBarPainter ExpressSkins_Librarycall :comp32 dcldxSkinsCore ExpressSkins_Librarycall :comp32 dxSkinsdxBarPainter ExpressSkins_Librarycall :comp32 dcldxSkinsDesignHelper ExpressSkins_Librarycall :comp32 dxSkinsdxDLPainter ExpressSkins_Librarycall :comp32 dxSkinsdxRibbonPainter ExpressSkins_Librarycall :comp32 dcldxSkinscxEditorsHelper ExpressSkins_Librarycall :comp32 dcldxSkinscxPCPainter ExpressSkins_Librarycall :comp32 dcldxSkinsdxNavBarPainter ExpressSkins_Librarycall :comp32 dxSkinsdxBarSkinnedCustomizationForm ExpressSkins_Librarycall :comp32 dcldxSkinsdxBarsPainters ExpressSkins_Librarycall :comp32 dcldxSkinsdxRibbonPainters ExpressSkins_Librarycall :comp32 dxSkinscxSchedulerPainter ExpressSkins_Librarycall :comp32 dcldxSkinscxSchedulerPainter ExpressSkins_Libraryecho ...ExpressPrinting Systemcall :comp32 dxPSCore ExpressPrinting_Systemcall :comp32 dxPScxPCProd ExpressPrinting_Systemcall :comp32 dxPSLnks ExpressPrinting_Systemcall :comp32 dxPSTeeChart ExpressPrinting_Systemcall :comp32 dxPScxCommon ExpressPrinting_Systemcall :comp32 dxPScxSSLnk ExpressPrinting_Systemcall :comp32 dxPSDBTeeChart ExpressPrinting_Systemcall :comp32 dxPSdxLCLnk ExpressPrinting_Systemcall :comp32 dxPSdxOCLnk ExpressPrinting_Systemcall :comp32 dcldxPSCore ExpressPrinting_Systemcall :comp32 dxPScxExtCommon ExpressPrinting_Systemcall :comp32 dxPSdxDBTVLnk ExpressPrinting_Systemcall :comp32 dxPSdxFCLnk ExpressPrinting_Systemcall :comp32 dxPSdxSpreadSheetLnk ExpressPrinting_Systemcall :comp32 dxPSPrVwAdv ExpressPrinting_Systemcall :comp32 dcldxPSLnks ExpressPrinting_Systemcall :comp32 dcldxPSTeeChart ExpressPrinting_Systemcall :comp32 dxPSdxDBOCLnk ExpressPrinting_Systemcall :comp32 dxPSPrVwRibbon ExpressPrinting_Systemcall :comp32 dcldxPScxCommon ExpressPrinting_Systemcall :comp32 dcldxPSdxLCLnk ExpressPrinting_Systemcall :comp32 dcldxPSdxOCLnk ExpressPrinting_Systemcall :comp32 dcldxPScxExtCommon ExpressPrinting_Systemcall :comp32 dcldxPSDBTeeChart ExpressPrinting_Systemcall :comp32 dcldxPSdxDBTVLnk ExpressPrinting_Systemcall :comp32 dcldxPSdxFCLnk ExpressPrinting_Systemcall :comp32 dcldxPSdxSpreadSheetLnk ExpressPrinting_Systemcall :comp32 dcldxPSdxDBOCLnk ExpressPrinting_Systemcall :comp32 dcldxPSPrVwAdv ExpressPrinting_Systemcall :comp32 dcldxPSPrVwRibbon ExpressPrinting_Systemcall :comp32 dxPScxSchedulerLnk ExpressPrinting_Systemcall :comp32 dxPScxTLLnk ExpressPrinting_Systemcall :comp32 dxPScxVGridLnk ExpressPrinting_Systemcall :comp32 dxPScxPivotGridLnk ExpressPrinting_Systemcall :comp32 dxPScxGridLnk ExpressPrinting_Systemcall :comp32 dcldxPScxSchedulerLnk ExpressPrinting_Systemcall :comp32 dcldxPScxTLLnk ExpressPrinting_Systemcall :comp32 dcldxPScxVGridLnk ExpressPrinting_Systemcall :comp32 dcldxPScxGridLnk ExpressPrinting_Systemcall :comp32 dcldxPScxPivotGridLnk ExpressPrinting_Systemcall :comp32 dcldxPScxSSLnk ExpressPrinting_Systemif !major_vers! GEQ 14 ( if "!D2010_OR_HIGHER!"=="YES" ( echo ...ExpressGauge Control call :comp32 dxGaugeControl ExpressGauge_Control call :comp32 dcldxGaugeControl ExpressGauge_Control echo ...ExpressMap Control call :comp32 dxMapControl ExpressMap_Control call :comp32 dcldxMapControl ExpressMap_Control ))echo ...ExpressSpellCheckercall :comp32 dxSpellChecker ExpressSpellCheckercall :comp32 dcldxSpellChecker ExpressSpellChecker

call :progress 98 >nul 2>&1

rem ----------------------------rem Installing Packages into IDErem ----------------------------echo.echo Installing Packages into %1-IDE call :InstIDE dcldxCore "ExpressCoreLibrary by Developer Express Inc."call :InstIDE dclcxLibrary "Express Cross Platform Library by Developer Express Inc."call :InstIDE dxSkinBlack "ExpressSkins - Black Skin by Developer Express Inc."call :InstIDE dxSkinBlueprint "ExpressSkins - Blueprint Skin by Developer Express Inc."call :InstIDE dxSkinBlue "ExpressSkins - Blue Skin by Developer Express Inc."call :InstIDE dxSkinCaramel "ExpressSkins - Caramel Skin by Developer Express Inc."call :InstIDE dxSkinCoffee "ExpressSkins - Coffee Skin by Developer Express Inc."call :InstIDE dxSkinDarkRoom "ExpressSkins - Darkroom Skin by Developer Express Inc."call :InstIDE dxSkinDarkSide "ExpressSkins - DarkSide Skin by Developer Express Inc."call :InstIDE dxSkinDevExpressDarkStyle "ExpressSkins - DevExpressDarkStyle Skin by Developer Express Inc."call :InstIDE dxSkinDevExpressStyle "ExpressSkins - DevExpressStyle Skin by Developer Express Inc."call :InstIDE dxSkinFoggy "ExpressSkins - Foggy Skin by Developer Express Inc."call :InstIDE dxSkinGlassOceans "ExpressSkins - GlassOceans Skin by Developer Express Inc."call :InstIDE dxSkinHighContrast "ExpressSkins - HighContrast Skin by Developer Express Inc."call :InstIDE dxSkiniMaginary "ExpressSkins - iMaginary Skin by Developer Express Inc."call :InstIDE dxSkinLilian "ExpressSkins - Lilian Skin by Developer Express Inc."call :InstIDE dxSkinLiquidSky "ExpressSkins - LiquidSky Skin by Developer Express Inc."call :InstIDE dxSkinLondonLiquidSky "ExpressSkins - LondonLiquidSky Skin by Developer Express Inc."call :InstIDE dxSkinMcSkin "ExpressSkins - McSkin Skin by Developer Express Inc."call :InstIDE dxSkinMetropolisDark "ExpressSkins - MetropolisDark Skin by Developer Express Inc."call :InstIDE dxSkinMetropolis "ExpressSkins - Metropolis Skin by Developer Express Inc."call :InstIDE dxSkinMoneyTwins "ExpressSkins - MoneyTwins Skin by Developer Express Inc."call :InstIDE dxSkinOffice2007Black "ExpressSkins - Office2007Black Skin by Developer Express Inc."call :InstIDE dxSkinOffice2007Blue "ExpressSkins - Office2007Blue Skin by Developer Express Inc."call :InstIDE dxSkinOffice2007Green "ExpressSkins - Office2007Green Skin by Developer Express Inc."call :InstIDE dxSkinOffice2007Pink "ExpressSkins - Office2007Pink Skin by Developer Express Inc."call :InstIDE dxSkinOffice2007Silver "ExpressSkins - Office2007Silver Skin by Developer Express Inc."call :InstIDE dxSkinOffice2010Black "ExpressSkins - Office2010Black Skin by Developer Express Inc."call :InstIDE dxSkinOffice2010Blue "ExpressSkins - Office2010Blue Skin by Developer Express Inc."call :InstIDE dxSkinOffice2010Silver "ExpressSkins - Office2010Silver Skin by Developer Express Inc."call :InstIDE dxSkinOffice2013DarkGray "ExpressSkins - Office2013DarkGray Skin by Developer Express Inc."call :InstIDE dxSkinOffice2013LightGray "ExpressSkins - Office2013LightGray Skin by Developer Express Inc."call :InstIDE dxSkinOffice2013White "ExpressSkins - Office2013White Skin by Developer Express Inc."call :InstIDE dxSkinPumpkin "ExpressSkins - Pumpkin Skin by Developer Express Inc."call :InstIDE dxSkinSevenClassic "ExpressSkins - SevenClassic Skin by Developer Express Inc."call :InstIDE dxSkinSeven "ExpressSkins - Seven Skin by Developer Express Inc."call :InstIDE dxSkinSharpPlus "ExpressSkins - SharpPlus Skin by Developer Express Inc."call :InstIDE dxSkinSharp "ExpressSkins - Sharp Skin by Developer Express Inc."call :InstIDE dxSkinSilver "ExpressSkins - Silver Skin by Developer Express Inc."call :InstIDE dxSkinSpringTime "ExpressSkins - Springtime Skin by Developer Express Inc."call :InstIDE dxSkinStardust "ExpressSkins - Stardust Skin by Developer Express Inc."call :InstIDE dxSkinSummer2008 "ExpressSkins - Summer2008 Skin by Developer Express Inc."call :InstIDE dxSkinTheAsphaltWorld "ExpressSkins - TheAsphaltWorld Skin by Developer Express Inc."call :InstIDE dxSkinValentine "ExpressSkins - Valentine Skin by Developer Express Inc."call :InstIDE dxSkinVS2010 "ExpressSkins - VS2010 Skin by Developer Express Inc."call :InstIDE dxSkinWhiteprint "ExpressSkins - Whiteprint Skin by Developer Express Inc."call :InstIDE dxSkinXmas2008Blue "ExpressSkins - Xmas2008Blue Skin by Developer Express Inc."call :InstIDE dcldxFlowChart "ExpressFlowChart by Developer Express Inc."call :InstIDE dcldxOrgC "ExpressOrgChart by Developer Express Inc."call :InstIDE dxSkinscxPCPainter "ExpressSkins Library Painter for PageControl by Developer Express Inc."call :InstIDE dxSkinsdxNavBarPainter "ExpressSkins Library Painter for NavBar by Developer Express Inc."call :InstIDE dclcxPageControl "ExpressPageControl by Developer Express Inc."call :InstIDE dcldxBarExtDBItems "ExpressBars extended DB items by Developer Express Inc."call :InstIDE dcldxdbtr "ExpressDBTree by Developer Express Inc."call :InstIDE dcldxNavBar "ExpressNavBar by Developer Express Inc."call :InstIDE dcldxSkinsCore "ExpressSkins Library by Developer Express Inc."call :InstIDE dxSkinsdxBarPainter "ExpressSkins Library Painter for Bars by Developer Express Inc."call :InstIDE dclcxPageControldxBarPopupMenu "ExpressPageControl dxBar Popup Menu by Developer Express Inc."call :InstIDE dcldxBar "ExpressBars by Developer Express Inc."call :InstIDE dcldxDBOr "ExpressDBOrgChart by Developer Express Inc."call :InstIDE dcldxDocking "ExpressDocking Library by Developer Express Inc."call :InstIDE dcldxMapControl "ExpressMapControl by Developer Express Inc."call :InstIDE dcldxSkinsDesignHelper "ExpressSkins Library Uses Clause Auto Fill Helper by Developer Express Inc."call :InstIDE dxSkinsdxDLPainter "ExpressSkins Library Painter for Docking Library by Developer Express Inc."call :InstIDE dxSkinsdxRibbonPainter "ExpressSkins Library Painter for Ribbon by Developer Express Inc."call :InstIDE dclcxEditors "ExpressEditors Library by Developer Express Inc."call :InstIDE dcldxBarExtItems "ExpressBars extended items by Developer Express Inc."call :InstIDE dcldxIconLibrary "Express Cross Platform Library Icon Library by Developer Express Inc."call :InstIDE dcldxRibbon "ExpressBars Ribbon controls by Developer Express Inc."call :InstIDE dcldxSpellChecker "ExpressSpellChecker 2 by Developer Express Inc."call :InstIDE dcldxSpreadSheet "ExpressSpreadSheet by Developer Express Inc."call :InstIDE dcldxTabbedMDI "ExpressBars Tabbed MDI by Developer Express Inc."call :InstIDE dcldxTileControl "ExpressTileControl by Developer Express Inc."call :InstIDE dcldxPSCore "ExpressPrinting System by Developer Express Inc."call :InstIDE dcldxSkinscxEditorsHelper "ExpressSkins Library Uses Clause Auto Fill Helper for ExpressEditors by Developer Express Inc."call :InstIDE dcldxSkinscxPCPainter "ExpressSkins Library Uses Clause Auto Fill Helper for PageControl Painter by Developer Express Inc."call :InstIDE dcldxSkinsdxNavBarPainter "ExpressSkins Library Uses Clause Auto Fill Helper for NavBar Painter by Developer Express Inc."call :InstIDE dclcxBarEditItem "ExpressBars cxEditor item by Developer Express Inc."call :InstIDE dcldxLayoutControl "ExpressLayout Control by Developer Express Inc."call :InstIDE dcldxPSLnks "ExpressPrinting System ReportLinks (Standard) by Developer Express Inc."call :InstIDE dcldxPSTeeChart "ExpressPrinting System ReportLink for TeeChart by Developer Express Inc."call :InstIDE dcldxPScxCommon "ExpressPrinting System Cross Platform Library by Developer Express Inc."call :InstIDE dcldxPSdxLCLnk "ExpressPrinting System ReportLink for ExpressLayoutControl by Developer Express Inc."call :InstIDE dcldxPSdxOCLnk "ExpressPrinting System ReportLinks for ExpressOrgChart by Developer Express Inc."call :InstIDE dcldxPScxExtCommon "ExpressPrinting System Extended Cross Platform Library by Developer Express Inc."call :InstIDE dcldxPSDBTeeChart "ExpressPrinting System ReportLink for DBTeeChart by Developer Express Inc."call :InstIDE dcldxPSdxDBTVLnk "ExpressPrinting System ReportLink for ExpressDBTree by Developer Express Inc."call :InstIDE dcldxPSdxFCLnk "ExpressPrinting System ReportLinks for ExpressFlowChart by Developer Express Inc."call :InstIDE dcldxPSdxSpreadSheetLnk "ExpressPrinting System ReportLink for ExpressSpreadSheet by Developer Express Inc."call :InstIDE dcldxSkinsdxBarsPainters "ExpressSkins Library Uses Clause Auto Fill Helper for Bars Painters by Developer Express Inc."call :InstIDE dcldxPSdxDBOCLnk "ExpressPrinting System ReportLinks for ExpressDBOrgChart by Developer Express Inc."call :InstIDE dcldxPSPrVwAdv "ExpressPrinting System Advanced Preview Window by Developer Express Inc."call :InstIDE dcldxSkinsdxRibbonPainters "ExpressSkins Library Uses Clause Auto Fill Helper for Ribbon Painters by Developer Express Inc."call :InstIDE dcldxPSPrVwRibbon "ExpressPrinting System Ribbon Preview Window by Developer Express Inc."call :InstIDE dcldxGaugeControl "ExpressGaugeControl by Developer Express Inc."call :InstIDE dcldxmds "ExpressMemData by Developer Express Inc."call :InstIDE dcldxWizardControl "ExpressWizardControl by Developer Express Inc."call :InstIDE dcldxtrmd "ExpressTreePrintedDataSet by Developer Express Inc."call :InstIDE dcldxServerMode "ExpressDataController Server Mode by Developer Express Inc."call :InstIDE dcldxBarDBNav "ExpressBars DBNavigator by Developer Express Inc."call :InstIDE dclcxEditorFieldLink "ExpressEditors FieldLink by Developer Express Inc."call :InstIDE dxSkinscxSchedulerPainter "ExpressSkins Library Painter for Scheduler by Developer Express Inc."call :InstIDE dclcxScheduler "ExpressScheduler by Developer Express Inc."call :InstIDE dclcxVerticalGrid "ExpressVerticalGrid by Developer Express Inc."call :InstIDE dclcxPivotGrid "ExpressPivotGrid by Developer Express Inc."call :InstIDE dclcxTreeListdxBarPopupMenu "ExpressQuantumTreeList dxBar Built-In Menu by Developer Express Inc."call :InstIDE dclcxTreeList "ExpressQuantumTreeList by Developer Express Inc."call :InstIDE dclcxPivotGridOLAP "ExpressPivotGrid OLAP by Developer Express Inc."call :InstIDE dcldxSkinscxSchedulerPainter "ExpressSkins Library Uses Clause Auto Fill Helper for Scheduler Painter by Developer Express Inc."call :InstIDE dclcxGrid "ExpressQuantumGrid by Developer Express Inc."call :InstIDE dclcxSchedulerGrid "ExpressScheduler connection to ExpressQuantumGrid by Developer Express Inc."call :InstIDE dclcxSchedulerTreeBrowser "ExpressScheduler tree browser by Developer Express Inc."call :InstIDE dclcxPivotGridChart "ExpressPivotGrid connection to ExpressQuantumGrid Chart View by Developer Express Inc."call :InstIDE dclcxSchedulerRibbonStyleEventEditor "ExpressScheduler Ribbon Event Window by Developer Express Inc."call :InstIDE dcldxPScxSchedulerLnk "ExpressPrinting System ReportLink for ExpressScheduler by Developer Express Inc."call :InstIDE dcldxPScxTLLnk "ExpressPrinting System ReportLink for ExpressQuantumTreeList by Developer Express Inc."call :InstIDE dcldxPScxVGridLnk "ExpressPrinting System ReportLink for ExpressVerticalGrid by Developer Express Inc."call :InstIDE dclcxGridWizard "ExpressQuantumGrid Wizard by Developer Express Inc."call :InstIDE dcldxPScxGridLnk "ExpressPrinting System ReportLink for ExpressQuantumGrid by Developer Express Inc."call :InstIDE dcldxPScxPivotGridLnk "ExpressPrinting System ReportLink for ExpressPivotGrid by Developer Express Inc."call :InstIDE dcldxADOServerMode "ADO Data Source for ExpressDataController Server Mode by Developer Express Inc."call :InstIDE dcldxDBXServerMode "dbExpress Data Source for ExpressDataController Server Mode by Developer Express Inc."call :InstIDE dcldxFireDACServerMode "FireDAC Data Source for ExpressDataController Server Mode by Developer Express Inc."call :InstIDE dcldxRibbonCustomizationForm "ExpressBars Ribbon Customization Form by Developer Express Inc."call :InstIDE dcldxPScxSSLnk "ExpressPrinting System ReportLink for ExpressSpreadSheet by Developer Express Inc."call :InstIDE dclcxSpreadSheet "ExpressSpreadSheet by Developer Express Inc."

call :progress 99 >nul 2>&1

rem ----------------------------------------------------rem Adding Library Paths (Search Path and Browsing Path)rem ----------------------------------------------------echo Adding Library Paths (Search Path and Browsing Path)echo - Search Path (Win32)call :func_path olddata25 reg QUERY !RKeySearch32! "Search Path"%varEcho% reg ADD !RKeySearch32! /v "Search Path" /d "!olddata25!;%INSTALLDIR%\Library\!LIBSubDir32!;%INSTALLDIR%\Common" /f %varLogFile%

if "!Is64BitSupport!"=="NO" goto :Label_1if NOT exist "!DCC64!" goto :Label_1echo - Search Path (Win64) call :func_path olddata25 reg QUERY !RKeySearch64! "Search Path" %varEcho% reg ADD !RKeySearch64! /v "Search Path" /d "!olddata25!;%INSTALLDIR%\Library\!LIBSubDir64!;%INSTALLDIR%\Common" /f %varLogFile%

:Label_1echo - Browsing Path (Win32)call :func_path olddata25 reg QUERY !RKeySearch32! "Browsing Path" %varEcho% reg ADD !RKeySearch32! /v "Browsing Path" /d "!olddata25!;%INSTALLDIR%\ExpressCore Library\Sources;%INSTALLDIR%\XP Theme Manager\Sources;%INSTALLDIR%\ExpressDataController\Sources;%INSTALLDIR%\ExpressCommon Library\Sources;%INSTALLDIR%\ExpressGDI+ Library\Sources;%INSTALLDIR%\ExpressMemData\Sources;%INSTALLDIR%\ExpressDBTree Suite\Sources;%INSTALLDIR%\ExpressLibrary\Sources;%INSTALLDIR%\ExpressSkins Library\Sources;%INSTALLDIR%\ExpressPageControl\Sources;%INSTALLDIR%\ExpressSpreadSheet\Sources;%INSTALLDIR%\ExpressSpreadSheet (deprecated)\Sources;%INSTALLDIR%\ExpressFlowChart\Sources;%INSTALLDIR%\ExpressNavBar\Sources;%INSTALLDIR%\ExpressOrgChart\Sources;%INSTALLDIR%\ExpressDocking Library\Sources;%INSTALLDIR%\ExpressBars\Sources;%INSTALLDIR%\ExpressEditors Library\Sources;%INSTALLDIR%\ExpressSpellChecker\Sources;%INSTALLDIR%\ExpressLayout Control\Sources;%INSTALLDIR%\ExpressPrinting System\Sources;%INSTALLDIR%\ExpressExport Library\Sources;%INSTALLDIR%\ExpressScheduler\Sources;%INSTALLDIR%\ExpressVerticalGrid\Sources;%INSTALLDIR%\ExpressPivotGrid\Sources;%INSTALLDIR%\ExpressQuantumTreeList\Sources;%INSTALLDIR%\ExpressQuantumGrid\Sources;%INSTALLDIR%\ExpressTile Control\Sources;%INSTALLDIR%\ExpressWizard Control\Sources;%INSTALLDIR%\ExpressGauge Control\Sources;%INSTALLDIR%\ExpressMap Control\Sources" /f %varLogFile%

if "!Is64BitSupport!"=="NO" goto :Label_2 if NOT exist "!DCC64!" goto :Label_2echo - Browsing Path (Win64)call :func_path olddata25 reg QUERY !RKeySearch64! "Browsing Path" %varEcho% reg ADD !RKeySearch64! /v "Browsing Path" /d "!olddata25!;%INSTALLDIR%\ExpressCore Library\Sources;%INSTALLDIR%\XP Theme Manager\Sources;%INSTALLDIR%\ExpressDataController\Sources;%INSTALLDIR%\ExpressCommon Library\Sources;%INSTALLDIR%\ExpressGDI+ Library\Sources;%INSTALLDIR%\ExpressMemData\Sources;%INSTALLDIR%\ExpressDBTree Suite\Sources;%INSTALLDIR%\ExpressLibrary\Sources;%INSTALLDIR%\ExpressSkins Library\Sources;%INSTALLDIR%\ExpressPageControl\Sources;%INSTALLDIR%\ExpressSpreadSheet\Sources;%INSTALLDIR%\ExpressSpreadSheet (deprecated)\Sources;%INSTALLDIR%\ExpressFlowChart\Sources;%INSTALLDIR%\ExpressNavBar\Sources;%INSTALLDIR%\ExpressOrgChart\Sources;%INSTALLDIR%\ExpressDocking Library\Sources;%INSTALLDIR%\ExpressBars\Sources;%INSTALLDIR%\ExpressEditors Library\Sources;%INSTALLDIR%\ExpressSpellChecker\Sources;%INSTALLDIR%\ExpressLayout Control\Sources;%INSTALLDIR%\ExpressPrinting System\Sources;%INSTALLDIR%\ExpressExport Library\Sources;%INSTALLDIR%\ExpressScheduler\Sources;%INSTALLDIR%\ExpressVerticalGrid\Sources;%INSTALLDIR%\ExpressPivotGrid\Sources;%INSTALLDIR%\ExpressQuantumTreeList\Sources;%INSTALLDIR%\ExpressQuantumGrid\Sources;%INSTALLDIR%\ExpressTile Control\Sources;%INSTALLDIR%\ExpressWizard Control\Sources;%INSTALLDIR%\ExpressGauge Control\Sources;%INSTALLDIR%\ExpressMap Control\Sources" /f %varLogFile% :Label_2echo.echo.call :progress 100 >nul 2>&1echo Installation for DevExpress VCL v!DXVers! (%1) finished ...echo.goto:EOF

rem ==================================================================================:comp32 set p1=%1set p2=%2set p2=%p2:_= %set p2=%p2:[=(%set p2=%p2:]=)%rem ExpressSpreadSheet (deprecated) ... p3 otherwise ) gets lost in %2 comp64 %1 %2 ... comp64 %1 !p3! set p3=!p2: =_!

set ROOTLIB="!ROOTDIR!\lib"set "NAMESPACES="

if "!Is64BitSupport!"=="YES" ( set ROOTLIB="!ROOTDIR!\lib\win32\release" set "NAMESPACES=-NSWinApi;System;System.Win;Vcl;Vcl.Imaging;Data;Data.Win;Bde;Xml;Vcl.Shell;VclTee;IBX")

if NOT "!TEEPATH32!"=="" set ROOTLIB=!ROOTLIB!;"!TEEPATH32!"if NOT "!ANYPATH32!"=="" set ROOTLIB=!ROOTLIB!;"!ANYPATH32!"

if not exist "%~dp0!p2!\Packages\%1!SUFFIX!.dpk" goto :Label_3%varEcho% "%DCC32%" -R"%~dp0!p2!\Sources" -B -W -$C- -$D- -$L- -$O+ -$W- -$Y- -LE"!BPLDir!" -LN"!DCPDir!" -N0"%~dp0Library\!LIBSubDir32!" -I"%~dp0Common";"%~dp0!p2!\Sources";"%~dp0ExpressCore Library\Sources"; !NAMESPACES! -U"%~dp0Library\!LIBSubDir32!";"%~dp0!p2!\Sources";!ROOTLIB! "%~dp0!p2!\Packages\%1!SUFFIX!.dpk" %varLogFile% if NOT "!TestMode!"=="ON" ( if errorlevel 1 ( echo *** COMPILE ERROR: %1!SUFFIX!.dpk - 32bit if !nError! EQU 0 ( echo Compile Errors > Log_Errors.txt echo. >> Log_Errors.txt ) echo *** COMPILE ERROR: %1!SUFFIX!.dpk - 32bit >> Log_Errors.txt "%DCC32%" -R"%~dp0!p2!\Sources" -B -W -$C- -$D- -$L- -$O+ -$W- -$Y- -LE"!BPLDir!" -LN"!DCPDir!" -N0"%~dp0Library\!LIBSubDir32!" -I"%~dp0Common";"%~dp0!p2!\Sources";"%~dp0ExpressCore Library\Sources"; !NAMESPACES! -U"%~dp0Library\!LIBSubDir32!";"%~dp0!p2!\Sources";!ROOTLIB! "%~dp0!p2!\Packages\%1!SUFFIX!.dpk" >> Log_Errors.txt set /a nError = !nError! + 1 echo. >> Log_Errors.txt echo. >> Log_Errors.txt ))

:Label_3set /a nCount = %nCount% + 1Set /a remain = %nCount% %% 16 if %remain%==0 ( set /a nProgress = !nProgress! + 5 if NOT !nProgress! GTR 98 call :progress !nProgress! >nul 2>&1)if "!Is64BitSupport!"=="YES" ( if exist "!DCC64!" ( set "prae=!p1:~0,3!" set "prae7=!p1:~0,7!" if NOT "!prae!"=="dcl" ( if NOT "!prae7!"=="cxBDEAd" call :comp64 %1 !p3! ) ))GOTO :EOF

rem ==================================================================================:comp64 set p2=%2set p2=%p2:_= %

set ROOTLIB="!ROOTDIR!\lib\win64\release"if NOT "!TEEPATH64!"=="" set ROOTLIB=!ROOTLIB!;"!TEEPATH64!"if NOT "!ANYPATH64!"=="" set ROOTLIB=!ROOTLIB!;"!ANYPATH64!"

if not exist "%~dp0!p2!\Packages\%1!SUFFIX!.dpk" goto :Label_4

%varEcho% "%DCC64%" -R"%~dp0!p2!\Sources" -B -W- -$C- -$D- -$L- -$O+ -$W- -$Y- -LE"!BPLDir!\Win64" -LN"!DCPDir!\Win64" -N0"%~dp0Library\!LIBSubDir64!" -I"%~dp0Common";"%~dp0!p2!\Sources";"%~dp0ExpressCore Library\Sources" -NSWinApi;System;System.Win;Vcl;Vcl.Imaging;Data;Data.Win;Bde;Xml;Vcl.Shell;VclTee;IBX -U"%~dp0Library\!LIBSubDir64!";"%~dp0!p2!\Sources";!ROOTLIB! "%~dp0!p2!\Packages\%1!SUFFIX!.dpk" %varLogFile%if NOT "%TestMode%"=="ON" ( if errorlevel 1 ( echo *** COMPILE ERROR: %1!SUFFIX!.dpk - 64bit if !nError! EQU 0 ( echo Compile Errors > Log_Errors.txt echo. >> Log_Errors.txt ) echo *** COMPILE ERROR: %1!SUFFIX!.dpk - 64bit >> Log_Errors.txt "%DCC64%" -R"%~dp0!p2!\Sources" -B -W- -$C- -$D- -$L- -$O+ -$W- -$Y- -LE"!BPLDir!\Win64" -LN"!DCPDir!\Win64" -N0"%~dp0Library\!LIBSubDir64!" -I"%~dp0Common";"%~dp0!p2!\Sources";"%~dp0ExpressCore Library\Sources" -NSWinApi;System;System.Win;Vcl;Vcl.Imaging;Data;Data.Win;Bde;Xml;Vcl.Shell;VclTee;IBX -U"%~dp0Library\!LIBSubDir64!";"%~dp0!p2!\Sources";!ROOTLIB! "%~dp0!p2!\Packages\%1!SUFFIX!.dpk" >> Log_Errors.txt set /a nError = !nError! + 1 echo. >> Log_Errors.txt echo. >> Log_Errors.txt ))

:Label_4set /a nCount = %nCount% + 1Set /a remain = %nCount% %% 16 if %remain%==0 ( set /a nProgress = !nProgress! + 5 if NOT !nProgress! GTR 98 call :progress !nProgress! >nul 2>&1)GOTO :EOF

rem ==================================================================================:InstIDE if NOT exist "!BPLDir!\%1!SUFFIX!.bpl" ( if "!TestMode!"=="OFF" goto :Label_5)%varEcho% REG ADD "!BDSHKCU!\Known Packages" /v "!BPLDir!\%1!SUFFIX!.bpl" /d %2 /f %varLogFile%:Label_5REG DELETE "!BDSHKCU!\Disabled Packages" /v "!BPLDir!\%1!SUFFIX!.bpl" /f >nul 2>&1REG DELETE "!BDSHKCU!\Package Cache\%1!SUFFIX!.bpl" /f >nul 2>&1GOTO :EOF

rem ==================================================================================:func_rootdir set hlp=%2 %3 %4 %5 %6for /f "tokens=* skip=2" %%a in ('!hlp!') do ( set "dmy=%%a" set "dmy=!dmy:~21! set "lastChar=!dmy:~-1!" if "!lastChar!"=="\" set "dmy=!dmy:~0,-1!" set "%1=!dmy!")GOTO :EOF

rem ==================================================================================:func_path set hlp=%2 %3 %4 %5 for /f "tokens=* skip=2" %%a in ('%2 %3 %4 /v %5') do ( for /f "tokens=1,2,3,4* delims= " %%k in ('echo %%a') do ( if NOT "%%o"=="" ( set "olddata25=%%n %%o") ELSE ( set "olddata25=%%n" ) ))set "%1=%olddata25%"GOTO :EOF

rem ==================================================================================:progressSETLOCAL ENABLEDELAYEDEXPANSIONSET ProgressPercent=%1rem if NOT "%ProgressPercent%"=="0" ( SET /A NumBars=%ProgressPercent%/2 SET /A NumSpaces=50-%NumBars% SET Meter= FOR /L %%A IN (%NumBars%,-1,1) DO SET Meter=!Meter!I FOR /L %%A IN (%NumSpaces%,-1,1) DO SET Meter=!Meter! TITLE Progress: [%Meter%] %ProgressPercent%%%rem )ENDLOCALGOTO :EOF

rem ==================================================================================:TEE_Modifyset INIFILE="%~dpn1.tmp"set DPKFile=%1set DPKFile=!DPKFile:~0,-5!"

if exist %INIFILE% del %INIFILE% >nul 2>&1for /f "tokens=* delims=" %%a in (%~s1) do ( set Line=%%a set Line=!Line:tee,=tee%mytee%,! set Line=!Line:tee;=tee%mytee%;! set Line=!Line:teedb,=teedb%mytee%,! set Line=!Line:teedb;=teedb%mytee%;! set dmy=!Line! for /l %%a in (1,1,100) do ( if "!dmy:~-1!"==" " set dmy=!dmy:~0,-1! ) if NOT "!dmy!"=="" echo !Line!>>%INIFILE%

)copy %INIFILE% %DPKFile% /Y >nul 2>&1del %INIFILE% >nul 2>&1 exit /b

rem ==================================================================================:func_BDSCommonDir if "%2"=="D7" ( CALL :func_HKCU RK1 D7 CALL :func_rootdir RDIR7 reg QUERY !RK1! /v RootDir )set "RS1=%RDIR7%\Projects"set "RS2=%PUBLIC%\Documents\RAD Studio"set "RS3=%PUBLIC%\Documents\Embarcadero\Studio"

set "NS=D7-%RS1%;D2007-%RS2%\5.0;D2010-%RS2%\7.0;DXE-%RS2%\8.0;DXE2-%RS2%\9.0;DXE3-%RS2%\10.0;DXE4-%RS2%\11.0;DXE5-%RS2%\12.0;DXE6-%RS3%\14.0"set v=%2CALL SET v=%%NS:*%v%-=%%SET v=%v:;=&rem.%set %1=%v%GOTO :EOF

rem ==================================================================================:func_HKCU set "RS1=HKCU\Software\Borland"set "RS2=HKCU\Software\CodeGear"set "RS3=HKCU\Software\Embarcadero\BDS" set "NS=D7-%RS1%\Delphi\7.0;D2007-%RS1%\BDS\5.0;D2010-%RS2%\BDS\7.0;DXE-%RS3%\8.0;DXE2-%RS3%\9.0;DXE3-%RS3%\10.0;DXE4-%RS3%\11.0;DXE5-%RS3%\12.0;DXE6-%RS3%\14.0"set v=%2CALL SET v=%%NS:*%v%-=%%SET v=%v:;=&rem.%set %1=%v%GOTO :EOF

rem ==================================================================================:func_64Bit set "NS=D7-NO;D2007-NO;D2010-NO;DXE-NO;DXE2-YES;DXE3-YES;DXE4-YES;DXE5-YES;DXE6-YES"set v=%2CALL SET v=%%NS:*%v%-=%%SET v=%v:;=&rem.%set %1=%v%GOTO :EOF

rem ==================================================================================:func_Suffix set "NS=D7-D7;D2007-RS11;D2010-RS14;DXE-RS15;DXE2-RS16;DXE3-RS17;DXE4-RS18;DXE5-RS19;DXE6-RS20"set v=%2CALL SET v=%%NS:*%v%-=%%SET v=%v:;=&rem.%set %1=%v%GOTO :EOF

rem ==================================================================================:Search_Pathset hlp=%2set hlp=%hlp:_= %set hlp=!hlp:~1,-1!

set "rck1="set "rck2="

for /f "tokens=* skip=2" %%a in ('!hlp!') do ( Set "string=%%a" call :Instr "!string!" "%4" pos if NOT "!pos!"=="0" ( if "%4"=="\DclTeePro" ( call :Instr "!string!" ".bpl" pos2 set /a pos1 = !pos!+10 set /a pos2 = !pos2!-1 set /a pos3 = !pos2!-!pos1!+1 CALL :Substring version "!string!" !pos1! !pos3! set "rck2=!version!" )

set /a pos1=1 set /a pos3=!pos!-1 Set "string=%%a" CALL :Substring tpath "!string!" !pos1! !pos3! if "%4"=="\DclTeePro" set tpath=!tpath:\Bin=\Lib! if NOT "!Edition!"=="D7" ( if "%4"=="\AnyDAC_Dcl" set tpath=!tpath:\BPL=\Dcp! ) set "rck1=!tpath!" ))set "%1=!rck1!"if "%4"=="\DclTeePro" (set "%3=!rck2!") ELSE (set "%3=")goto :EOF

rem ==================================================================================:uppercasefor /F "delims=" %%a in ("%1%") do ( set "line=%%a" for %%b in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do ( set "line=!line:%%b=%%b!" ) set "%2=!line!" )goto :eof

rem ===============================================================:Instrsetlocal enableextensions enabledelayedexpansionecho %1|findstr %2>nulif %errorlevel% EQU 1 (endlocal & set %3=0& goto :EOF)set rest_=%1set /a instr_=0:_loop set rest_=%rest_:~1% echo !rest_!|findstr %2>nul if %errorlevel% EQU 1 (endlocal & set %3=%instr_%& goto :EOF) set /a instr_ +=1 goto _loop

rem ==================================================================================:Substring::Substring(retVal,string,startIndex,length):: extracts the substring from string starting at startIndex for the specified length SET string=%2% SET startIndex=%3% SET length=%4% if "%4" == "0" goto :noLength CALL SET _substring=%%string:~%startIndex%,%length%%% goto :substringResult :noLength CALL SET _substring=%%string:~%startIndex%%% :substringResult set "%~1=%_substring%"GOTO :EOF

rem ==================================================================================:GetDXVersionrem dxBuildNumber: Cardinal = 20130205;for /f "tokens=* delims=" %%a in (%~s1) do ( set "line1=%%a" set "line2=!line1!" set "line2=!line2:dxBuildNumber:=!" if NOT "!line1!"=="!line2!" ( for /f "tokens=1,2,3 delims==;" %%r in ('echo !line1!') do ( set p1=%%s set "p1=!p1: =!" set "dmy1=!p1:~2,2!" set "dmy2=!p1:~4,2!" set "dmy2=!dmy2:0=!" set "dmy3=!p1:~6,2!" set "lastDigit=!p1:~-1!" if NOT "!lastDigit!"=="0" set "dmy3=!dmy3:0=!" set %2=!dmy1!.!dmy2!.!dmy3! ) ))exit /bHow to:1. Unzip sourcecode to an installdir of your choice2. In Install.bat: Set parameter at line 88:D7, D2007, D2010, DXE, DXE2, DXE3, DXE4, DXE5 or DXE6Default parameter is DXE6:Code:CALL :func_install DXE63. Run Install.bat in AS ADMIN

Notes:1. It is possible to install DevExpress VCL to D7-DXE6at onceas follows:Code:CALL :func_install D7CALL :func_install D2007CALL :func_install D2010CALL :func_install DXECALL :func_install DXE2CALL :func_install DXE3CALL :func_install DXE4CALL :func_install DXE5CALL :func_install DXE62. If TestMode is set ON at line 22Code: set "TestMode=ON"all installation commands are logged to textfile "Log_TestMode.txt"BUT NO CHANGES are made on your computer.

3. If 64bit-packages should not be compiled simply rename "dcc64.exe" in line 238

UnInstaller for DevExpress VCL (D7-DXE6)

*** See previous post for Installer ! ***

Features UnInstaller: Cleaning Up installdir Uninstalling packages from IDE Cleaning Up BPL and DCP folders Cleaning Up Search Path and Browsing Path

UnInstall.bat(420 lines)Code:@echo off@color 1F

setlocal enabledelayedexpansion

rem ***********************************************************rem *rem * Uninstall DevExpress VCL D7-DXE6 rem *rem * Tasks:rem * 1) Cleaning Up installdirrem * 2) Uninstalling packages from IDErem * 3) Cleaning Up BPL and DCP foldersrem * 4) Cleaning Up Search Path and Browsing Pathrem *rem ***********************************************************

set starttime=%time%

rem ----------------------------------------------------------rem Administrative permissions required. Detecting permissionsrem ----------------------------------------------------------net session >nul 2>&1if %errorLevel% == 0 ( rem Success: Administrative permissions confirmed.) else ( echo ERROR: Administrative permissions required. echo. echo INFO: Run batch-file again as ADMIN ... echo. pause goto end)

%~d0cd %~p0

rem -----------------------------------------rem BAT file must be executed in rem -----------------------------------------if not exist "%~dp0ExpressQuantumGrid\Sources\cxGrid.pas" ( echo ERROR: Current directory is not installdir echo. echo INFO: Run batch-file in installdir ... echo. pause goto end)

set "cFile=%~dp0ExpressCore Library\Sources\Dxcore.pascall :GetDXVersion "%cFile%" DXVersTITLE UnInstalling DevExpress VCL v!DXVers!

set /a major_vers=!DXVers:~0,2!

rem ------------------rem Setting installdirrem ------------------set "INSTALLDIR=%~dp0"set "INSTALLDIR=%INSTALLDIR:~0,-1%"

rem ------------------rem RUN UNINSTALLATIONrem ------------------

call :func_uninstall DXE6

set endtime=%time%echo Started at: %starttime%echo Finished at: %endtime%echo.pause

:endexit /b

rem =====================================================================================rem F U N C T I O N S rem =====================================================================================

:func_uninstallecho ============================================echo Uninstalling DevExpress VCL v!DXVers! (%1)echo ============================================echo.CALL :func_HKCU BDSHKCU %1CALL :func_rootdir ROOTDIR reg QUERY !BDSHKCU! /v RootDir CALL :func_64Bit Is64BitSupport %1CALL :func_Suffix SUFFIX %1CALL :func_BDSCommonDir BDSCOMMONDIR %1

set "BPLDir=!BDSCOMMONDIR!\Bpl"set "DCPDir=!BDSCOMMONDIR!\Dcp"set "Edition=%1"if "!Edition!"=="D7" ( set "DCPDir=!INSTALLDIR!\Lib\D7")

set "RKeySearch32=!BDSHKCU!\Library"set "RKeySearch64="set "LIBSubDir32=!Edition!"set "LIBSubDir64="

if "!Is64BitSupport!"=="YES" ( set "RKeySearch32=!BDSHKCU!\Library\Win32" set "RKeySearch64=!BDSHKCU!\Library\Win64" set "LIBSubDir32=!Edition!\Win32" set "LIBSubDir64=!Edition!\Win64")

rem ------------------------rem Cleaning Up rem ------------------------Set "CleanInfo=1. Cleaning Up installdir: Library\!LIBSubDir32!"if "!Is64BitSupport!"=="YES" Set CleanInfo=!CleanInfo! and Library\!LIBSubDir64! echo !CleanInfo! rd "%~dp0Library\%1" /Q /S >nul 2>&1 rem Delete directory Library if emptyfor /F %%a in ('dir /S/B "%~dp0Library\*" ^| find /V /C "::"') do (if %%a EQU 0 rd "%~dp0Library" /Q >nul 2>&1)

rem ------------------------------rem UnInstalling Packages from IDErem ------------------------------echo 2. UnInstalling Packages from IDEcall :DelIDE dcldxCorecall :DelIDE dclcxLibrarycall :DelIDE dxSkinBlackcall :DelIDE dxSkinBlueprintcall :DelIDE dxSkinBluecall :DelIDE dxSkinCaramelcall :DelIDE dxSkinCoffeecall :DelIDE dxSkinDarkRoomcall :DelIDE dxSkinDarkSidecall :DelIDE dxSkinDevExpressDarkStylecall :DelIDE dxSkinDevExpressStylecall :DelIDE dxSkinFoggycall :DelIDE dxSkinGlassOceanscall :DelIDE dxSkinHighContrastcall :DelIDE dxSkiniMaginarycall :DelIDE dxSkinLiliancall :DelIDE dxSkinLiquidSkycall :DelIDE dxSkinLondonLiquidSkycall :DelIDE dxSkinMcSkincall :DelIDE dxSkinMetropolisDarkcall :DelIDE dxSkinMetropoliscall :DelIDE dxSkinMoneyTwinscall :DelIDE dxSkinOffice2007Blackcall :DelIDE dxSkinOffice2007Bluecall :DelIDE dxSkinOffice2007Greencall :DelIDE dxSkinOffice2007Pinkcall :DelIDE dxSkinOffice2007Silvercall :DelIDE dxSkinOffice2010Blackcall :DelIDE dxSkinOffice2010Bluecall :DelIDE dxSkinOffice2010Silvercall :DelIDE dxSkinOffice2013DarkGraycall :DelIDE dxSkinOffice2013LightGraycall :DelIDE dxSkinOffice2013Whitecall :DelIDE dxSkinPumpkincall :DelIDE dxSkinSevenClassiccall :DelIDE dxSkinSevencall :DelIDE dxSkinSharpPluscall :DelIDE dxSkinSharpcall :DelIDE dxSkinSilvercall :DelIDE dxSkinSpringTimecall :DelIDE dxSkinStardustcall :DelIDE dxSkinSummer2008call :DelIDE dxSkinTheAsphaltWorldcall :DelIDE dxSkinValentinecall :DelIDE dxSkinVS2010call :DelIDE dxSkinWhiteprintcall :DelIDE dxSkinXmas2008Bluecall :DelIDE dcldxFlowChartcall :DelIDE dcldxOrgCcall :DelIDE dxSkinscxPCPaintercall :DelIDE dxSkinsdxNavBarPaintercall :DelIDE dclcxPageControlcall :DelIDE dcldxBarExtDBItemscall :DelIDE dcldxdbtrcall :DelIDE dcldxNavBarcall :DelIDE dcldxSkinsCorecall :DelIDE dxSkinsdxBarPaintercall :DelIDE dclcxPageControldxBarPopupMenucall :DelIDE dcldxBarcall :DelIDE dcldxDBOrcall :DelIDE dcldxDockingcall :DelIDE dcldxMapControlcall :DelIDE dcldxSkinsDesignHelpercall :DelIDE dxSkinsdxDLPaintercall :DelIDE dxSkinsdxRibbonPaintercall :DelIDE dclcxEditorscall :DelIDE dcldxBarExtItemscall :DelIDE dcldxIconLibrarycall :DelIDE dcldxRibboncall :DelIDE dcldxSpellCheckercall :DelIDE dcldxSpreadSheetcall :DelIDE dcldxTabbedMDIcall :DelIDE dcldxTileControlcall :DelIDE dcldxPSCorecall :DelIDE dcldxSkinscxEditorsHelpercall :DelIDE dcldxSkinscxPCPaintercall :DelIDE dcldxSkinsdxNavBarPaintercall :DelIDE dclcxBarEditItemcall :DelIDE dcldxLayoutControlcall :DelIDE dcldxPSLnkscall :DelIDE dcldxPSTeeChartcall :DelIDE dcldxPScxCommoncall :DelIDE dcldxPSdxLCLnkcall :DelIDE dcldxPSdxOCLnkcall :DelIDE dcldxPScxExtCommoncall :DelIDE dcldxPSDBTeeChartcall :DelIDE dcldxPSdxDBTVLnkcall :DelIDE dcldxPSdxFCLnkcall :DelIDE dcldxPSdxSpreadSheetLnkcall :DelIDE dcldxSkinsdxBarsPainterscall :DelIDE dcldxPSdxDBOCLnkcall :DelIDE dcldxPSPrVwAdvcall :DelIDE dcldxSkinsdxRibbonPainterscall :DelIDE dcldxPSPrVwRibboncall :DelIDE dcldxGaugeControlcall :DelIDE dcldxmdscall :DelIDE dcldxWizardControlcall :DelIDE dcldxtrmdcall :DelIDE dcldxServerModecall :DelIDE dcldxBarDBNavcall :DelIDE dclcxEditorFieldLinkcall :DelIDE dxSkinscxSchedulerPaintercall :DelIDE dclcxSchedulercall :DelIDE dclcxVerticalGridcall :DelIDE dclcxPivotGridcall :DelIDE dclcxTreeListdxBarPopupMenucall :DelIDE dclcxTreeListcall :DelIDE dclcxPivotGridOLAPcall :DelIDE dcldxSkinscxSchedulerPaintercall :DelIDE dclcxGridcall :DelIDE dclcxSchedulerGridcall :DelIDE dclcxSchedulerTreeBrowsercall :DelIDE dclcxPivotGridChartcall :DelIDE dclcxSchedulerRibbonStyleEventEditorcall :DelIDE dcldxPScxSchedulerLnkcall :DelIDE dcldxPScxTLLnkcall :DelIDE dcldxPScxVGridLnkcall :DelIDE dclcxGridWizardcall :DelIDE dcldxPScxGridLnkcall :DelIDE dcldxPScxPivotGridLnkcall :DelIDE dcldxADOServerModecall :DelIDE dcldxDBXServerModecall :DelIDE dcldxFireDACServerModecall :DelIDE dcldxRibbonCustomizationFormcall :DelIDE dcldxPScxSSLnkcall :DelIDE dclcxSpreadSheet

rem -------------------------------rem Cleaning Up BPL and DCP foldersrem -------------------------------echo 3. Cleaning Up BPL and DCP folderscall :func_deletefiles "!BPLDir!"call :func_deletefiles "!DCPDir!"

rem -------------------------------------------------------------rem Cleaning Up Library Paths (Search Path and Browsing Path)rem -------------------------------------------------------------echo 4. Cleaning Up Library Pathsset "RegKey1=!RKeySearch32!"set "RegKey2=!RKeySearch64!"set /a nCount = 2if "!Is64BitSupport!"=="NO" set /a nCount = 1if not exist "!ROOTDIR!\Bin\dcc64.exe" set /a nCount = 1set "LibPath1=Search Path"set "LibPath2=Browsing Path"

for /L %%1 IN (1,1,!nCount!) do ( for /L %%2 IN (1,1,2) do ( set "currRegKey=!RegKey%%1!" set "currLibPath=!LibPath%%2!" set "newpath=" set dmy=reg QUERY !currRegKey! /v "!currLibPath!" echo ...!currRegKey!: "!currLibPath!" CALL :update_path !dmy! ))

echo.echo DevExpress VCL v!DXVers! (%1) uninstalled ...echo.echo.goto:EOF

rem ==================================================================================:DelIDE REG DELETE "!BDSHKCU!\Known Packages" /v "!BPLDir!\%1!SUFFIX!.bpl" /f >nul 2>&1GOTO :EOF

rem =====================================================================================:update_pathset hlp=%1 %2 %3 %4 %5for /f "tokens=* skip=2" %%a in ('!hlp!') do ( for /f "tokens=1,2,3,4* delims= " %%k in ('echo %%a') do ( if NOT "%%o"=="" ( set "olddata25=%%n %%o") ELSE ( set "olddata25=%%n" ) ) set "_myvar=!olddata25!" set newpath= :FORLOOP for /F "tokens=1* delims=;" %%A IN ("!_myvar!") do ( set "part=%%A" set "dmy=!part:%INSTALLDIR%=!" if !dmy!==!part! set "newpath=!newpath!!part!;" set "_myvar=%%B" if NOT "!_myvar!"=="" goto :FORLOOP ) set "lastChar=!newpath:~-1!" if "!lastChar!"==";" set newpath=!newpath:~0,-1!

rem echo NEWPATH=!newpath! if NOT "!newpath!"=="" reg ADD !currRegKey! /v "!currLibPath!" /d "!newpath!" /f >nul 2>&1 )GOTO:EOF

rem ==================================================================================:func_rootdir set hlp=%2 %3 %4 %5 %6for /f "tokens=* skip=2" %%a in ('!hlp!') do ( set "dmy=%%a" set "dmy=!dmy:~21! set "lastChar=!dmy:~-1!" if "!lastChar!"=="\" set "dmy=!dmy:~0,-1!" set "%1=!dmy!")GOTO :EOF

rem ==================================================================================:func_BDSCommonDir if "%2"=="D7" ( CALL :func_HKCU RK1 D7 CALL :func_rootdir RDIR7 reg QUERY !RK1! /v RootDir )set "RS1=%RDIR7%\Projects"set "RS2=%PUBLIC%\Documents\RAD Studio"set "RS3=%PUBLIC%\Documents\Embarcadero\Studio"

set "NS=D7-%RS1%;D2007-%RS2%\5.0;D2010-%RS2%\7.0;DXE-%RS2%\8.0;DXE2-%RS2%\9.0;DXE3-%RS2%\10.0;DXE4-%RS2%\11.0;DXE5-%RS2%\12.0;DXE6-%RS3%\14.0"set v=%2CALL SET v=%%NS:*%v%-=%%SET v=%v:;=&rem.%set %1=%v%GOTO :EOF

rem ==================================================================================:func_HKCU set "RS1=HKCU\Software\Borland"set "RS2=HKCU\Software\CodeGear"set "RS3=HKCU\Software\Embarcadero\BDS"set "NS=D7-%RS1%\Delphi\7.0;D2007-%RS1%\BDS\5.0;D2010-%RS2%\BDS\7.0;DXE-%RS3%\8.0;DXE2-%RS3%\9.0;DXE3-%RS3%\10.0;DXE4-%RS3%\11.0;DXE5-%RS3%\12.0;DXE6-%RS3%\14.0"set v=%2CALL SET v=%%NS:*%v%-=%%SET v=%v:;=&rem.%set %1=%v%GOTO :EOF

rem ==================================================================================:func_64Bit set "NS=D7-NO;D2007-NO;D2010-NO;DXE-NO;DXE2-YES;DXE3-YES;DXE4-YES;DXE5-YES;DXE6-YES"set v=%2CALL SET v=%%NS:*%v%-=%%SET v=%v:;=&rem.%set %1=%v%GOTO :EOF

rem ==================================================================================:func_Suffix set "NS=D7-D7;D2007-RS11;D2010-RS14;DXE-RS15;DXE2-RS16;DXE3-RS17;DXE4-RS18;DXE5-RS19;DXE6-RS20"set v=%2CALL SET v=%%NS:*%v%-=%%SET v=%v:;=&rem.%set %1=%v%GOTO :EOF

rem ==================================================================================:func_deletefilesset "fldr=%1"set "fldr=!fldr:"=!" for /f "eol=r tokens=*" %%a in ('dir *. /b') do ( dir "%~dp0%%a\Packages\*!SUFFIX!.dpk" /b 1>NUL 2>NUL if NOT errorlevel 1 ( for /f "eol=r tokens=*" %%m in ('dir "%~dp0%%a\Packages\*!SUFFIX!.dpk" /b') do ( rem echo %%m set "dmy=%%m" set "currFiles=!dmy:.dpk=*.*!" del "!fldr!\!currFiles!" /S /Q >nul 2>&1 ) ))GOTO :EOF

rem ==================================================================================:GetDXVersionrem dxBuildNumber: Cardinal = 20130205;for /f "tokens=* delims=" %%a in (%~s1) do ( set "line1=%%a" set "line2=!line1!" set "line2=!line2:dxBuildNumber:=!" if NOT "!line1!"=="!line2!" ( for /f "tokens=1,2,3 delims==;" %%r in ('echo !line1!') do ( set p1=%%s set "p1=!p1: =!" set "dmy1=!p1:~2,2!" set "dmy2=!p1:~4,2!" set "dmy2=!dmy2:0=!" set "dmy3=!p1:~6,2!" set "lastDigit=!p1:~-1!" if NOT "!lastDigit!"=="0" set "dmy3=!dmy3:0=!" set %2=!dmy1!.!dmy2!.!dmy3! ) ))exit /bHow to:1. Set UnInstall parameter in line 66:D7, D2007, D2010, DXE, DXE2, DXE3, DXE4, DXE5 or DXE6Default parameter is DXE6:Code:CALL :func_uninstall DXE62. Run UnInstall.bat in AS ADMIN

Note:It is possible to uninstall DevExparess VCL from D7-DXE6at onceas follows:Code:CALL :func_uninstall D7CALL :func_uninstall D2007CALL :func_uninstall D2010CALL :func_uninstall DXECALL :func_uninstall DXE2CALL :func_uninstall DXE3CALL :func_uninstall DXE4CALL :func_uninstall DXE5CALL :func_uninstall DXE6

CleanUp Tool for DevExpress VCL Packages (D7-DXE6)

Features: Removing all packages from previous DevExpress installations from all IDEs (D7-DXE6) Deleting according BPL-files

DXCleanUp.bat(100 lines)Code:@echo off@color 1F

setlocal enabledelayedexpansionrem **************************************************************************rem *rem * CleanUp Tool for DevExpress VCL Packages (D7-DXE6) rem *rem * Tasks:rem * 1) Removing all packages from previous DevExpress installations fromrem * all IDEs at once (D7-DXE6) rem * 2) Deleting according BPL-files rem *rem ***************************************************************************

rem ----------------------------------------------------------rem Administrative permissions required. Detecting permissionsrem ----------------------------------------------------------net session >nul 2>&1if %errorLevel% == 0 ( rem Success: Administrative permissions confirmed.) else ( echo ERROR: Administrative permissions required. echo. echo INFO: Run batch-file again as ADMIN ... echo. pause exit)

set "Edition1=D7 " & set "RegKey1=HKCU\Software\Borland\Delphi\7.0" set "Edition2=D2007" & set "RegKey2=HKCU\Software\Borland\BDS\5.0" set "Edition3=D2009" & set "RegKey3=HKCU\Software\CodeGear\BDS\6.0" set "Edition4=D2010" & set "RegKey4=HKCU\Software\CodeGear\BDS\7.0" set "Edition5=DXE " & set "RegKey5=HKCU\Software\Embarcadero\BDS\8.0" set "Edition6=DXE2 " & set "RegKey6=HKCU\Software\Embarcadero\BDS\9.0" set "Edition7=DXE3 " & set "RegKey7=HKCU\Software\Embarcadero\BDS\10.0" set "Edition8=DXE4 " & set "RegKey8=HKCU\Software\Embarcadero\BDS\11.0" set "Edition9=DXE5 " & set "RegKey9=HKCU\Software\Embarcadero\BDS\12.0" set "Edition10=DXE6 " & set "RegKey10=HKCU\Software\Embarcadero\BDS\14.0"

set /a nSum = 0

echo ====================================================================echo Removing DevExpress VCL Packages from all IDEs (D7-DXE6) at once andecho Deleting according BPL-filesecho ====================================================================set starttime=%time%

for /L %%1 IN (1,1,10) do ( set /a nCount = 0 Set "IsInstalled=NO" reg QUERY "!RegKey%%1!" /ve 1>NUL 2>NUL if NOT errorlevel 1 ( Set "IsInstalled=YES" for /f "tokens=* skip=2" %%a in ('reg QUERY "!RegKey%%1!\Known Packages" /s') do ( call :CheckDXEntry "%%a" BPLFile if NOT "!BPLFile!"=="" ( REG DELETE "!RegKey%%1!\Known Packages" /v "!BPLFile!" /f >nul 2>&1 del "!BPLFile!*" /Q >nul 2>&1 rem echo !RegKey%%1!\Known Packages\!BPLFile! deleted ... set /a nCount = !nCount! + 1 ) ) ) if "!IsInstalled!"=="YES" ( if !nCount! GEQ 1 (echo !Edition%%1!: !nCount! packages removed) ELSE (echo !Edition%%1!: No package removed) ) ELSE ( echo !Edition%%1!: not installed ! ) set /a nSum = !nSum! + !nCount!)set endtime=%time%

echo.echo Total sum of removed packages (D7-DXE6): !nSum!echo.echo Started at: %starttime%echo Finished at: %endtime%echo.pause

exit

:CheckDXEntrySET line=%1set "line=!line:"=!"SET divider=REG_SZCALL SET after=%%line:*%divider%=%%CALL SET before=%%line:%divider%%after%=%%set "dmy=!after!"set "dmy=!dmy:Developer Express=!"if NOT "!dmy!"=="!after!" ( for /l %%a in (1,1,20) do ( if "!before:~-1!"==" " set before=!before:~0,-1! ) set %2=!before!) ELSE (set %2=)exit /bHow to:Run DXCleanUp.bat in a directory of your choice

Help Installer for all versions of DevExpress VCL (D2007-DXE6)

Install_Help.bat:(210 lines)Code:@echo off@color 1Fsetlocal enabledelayedexpansion%~d0cd %~p0

rem *****************************************************************rem *rem * HELP Installer for all versions of DevExpress VCL (D2007-DXE6) rem *rem *****************************************************************

set starttime=%time%

rem ----------------------------------------------------------rem Administrative permissions required. Detecting permissionsrem ----------------------------------------------------------net session >nul 2>&1if %errorLevel% == 0 ( rem Success: Administrative permissions confirmed.) else ( echo ERROR: Administrative permissions required. echo. echo INFO: Run batch-file again as ADMIN ... echo. pause exit)

rem -----------------------------------------rem BAT file must be executed in rem -----------------------------------------if not exist "%~dp0ExpressQuantumGrid\Help\ExpressQuantumGrid.HxS" ( echo ERROR: Current directory is not installdir echo. echo INFO: Run batch-file in installdir ... echo. pause exit)

if not exist "%~dp0H2Reg.exe" ( echo ERROR: H2Reg.exe not found in installdir echo. echo INFO: Copy H2Reg.exe to installdir ... echo. pause exit)

if not exist "%~dp0H2Reg.ini" ( echo ERROR: H2Reg.ini not found in installdir echo. echo INFO: Copy H2Reg.ini to installdir ... echo. pause exit)

call :GetDXVersion "%~dp0ExpressCore Library\Sources\Dxcore.pas" DXVersTITLE Installing HELP for DevExpress VCL v!DXVers! echo ===========================================================================echo Installing Help for DevExpress VCL v!DXVers! echo ===========================================================================

call :progress 0rem ----------------rem RUN INSTALLATIONrem ----------------

CALL :func_install DXE6

set endtime=%time%echo Started at: %starttime%echo Finished at: %endtime%echo.

pause

:endexit

rem ==================================================================================rem F U N C T I O N Srem ==================================================================================:func_installset p1=%1_set "str=D2007_D2009_D2010_DXE_DXE2_DXE3_DXE4_DXE5_DXE6_"if "x!str:%p1%=!"=="x%str%" ( echo. echo ERROR: %1 not supported echo. Choose D2007, D2009, D2010, DXE, DXE2, DXE3, DXE4, DXE5 or DXE6 echo. echo INFO: BAT file will be terminated now ... echo. pause exit)

rem ---------------rem Installing HELPrem ---------------echo - Installing Help for %1echo (ProgressBar is displayed in TitleBar of Console Window)echo.

set /a nCount=0set /a nProgress=0

set H2REG="%~dp0h2reg"

call :Namespace NS %1set IDE_NS=%NS%

call :Namespace NS %1 POSTset IDE_NS_Post=%NS%

echo Namespace=%IDE_NS%echo Namespace_PostFix=%IDE_NS_Post%echo.if exist H2Reg_Log.txt del H2Reg_Log.txt >nul 2>&1

for /f "eol=r tokens=*" %%a in ('dir *. /b') do ( rem echo %%a if exist "%~dp0%%a\Help" ( for /f "eol=r tokens=*" %%k in ('dir "%~dp0%%a\Help\*.ini" /b') do ( rem echo %%k Call :InstHelp "%~dp0%%a\Help\%%k" set /a nCount = !nCount! + 1 set /a nProgress = !nCount!*4 if NOT "!nProgress!"=="100" call :progress !nProgress! ) ) )

:Finishcall :progress 100 echo.echo.

echo Help for DevExpress VCL (%1) installed ...echo.goto:EOF

rem ==================================================================================:progressSETLOCAL ENABLEDELAYEDEXPANSIONSET ProgressPercent=%1rem if NOT "%ProgressPercent%"=="0" ( SET /A NumBars=%ProgressPercent%/2 SET /A NumSpaces=50-%NumBars% SET Meter= FOR /L %%A IN (%NumBars%,-1,1) DO SET Meter=!Meter!I FOR /L %%A IN (%NumSpaces%,-1,1) DO SET Meter=!Meter! TITLE Progress: [%Meter%] %ProgressPercent%%%rem )ENDLOCALGOTO :EOF

rem ==================================================================================:InstHelpset INIFILE=%1echo ... %~n1%~x1set INIFILE=!INIFILE:~0,-2!_"del !INIFILE! 1>nul 2>nulfor /F "usebackq tokens=*" %%a in (%1) do ( set Line=%%a set Line=!Line:%%=! set Line=!Line:IDE_Namespace_Postfix=%IDE_NS_Post%! set Line=!Line:IDE_Namespace=%IDE_NS%! echo !Line!>>%INIFILE%)%H2REG%.exe -r -q CmdFile=!INIFILE! 1>nul 2>nuldel !INIFILE! 1>nul 2>nulexit /b

:Namespace set "NS=D2007-borland;D2009-embarcadero;D2010-embarcadero;DXE-embarcadero;DXE2-embarcadero;DXE3-embarcadero;DXE4-embarcadero;DXE5-embarcadero;DXE6-embarcadero"if "%3"=="POST" set "NS=D2007-bds5;D2009-rs2009;D2010-rs2010;DXE-rs_xe;DXE2-rs_xe2;DXE3-rs_xe3;DXE4-rs_xe4;DXE5-rs_xe5;DXE6-rs_xe6"set v=%2rem echo %v%CALL SET v=%%NS:*%v%-=%%SET v=%v:;=&rem.%set %1=%v%GOTO :EOF

rem ==================================================================================:GetDXVersionrem dxBuildNumber: Cardinal = 20130205;for /f "tokens=* delims=" %%a in (%~s1) do ( set "line1=%%a" set "line2=!line1!" set "line2=!line2:dxBuildNumber:=!" if NOT "!line1!"=="!line2!" ( for /f "tokens=1,2,3 delims==;" %%r in ('echo !line1!') do ( set p1=%%s set "p1=!p1: =!" set "dmy1=!p1:~2,2!" set "dmy2=!p1:~4,2!" set "dmy2=!dmy2:0=!" set "dmy3=!p1:~6,2!" set "lastDigit=!p1:~-1!" if NOT "!lastDigit!"=="0" set "dmy3=!dmy3:0=!" set %2=!dmy1!.!dmy2!.!dmy3! ) ))exit /b

UnInstall_Help.bat:(210 lines)Code:@echo off@color 1Fsetlocal enabledelayedexpansion%~d0cd %~p0

rem ******************************************************************rem *rem * HELP UnInstaller for all versions of DevExpress VCL (D2007-DXE6) rem *rem ******************************************************************

set starttime=%time%

rem ----------------------------------------------------------rem Administrative permissions required. Detecting permissionsrem ----------------------------------------------------------net session >nul 2>&1if %errorLevel% == 0 ( rem Success: Administrative permissions confirmed.) else ( echo ERROR: Administrative permissions required. echo. echo INFO: Run batch-file again as ADMIN ... echo. pause goto end)

rem -----------------------------------------rem BAT file must be executed in rem -----------------------------------------if not exist "%~dp0ExpressQuantumGrid\Help\ExpressQuantumGrid.HxS" ( echo ERROR: Current directory is not installdir echo. echo INFO: Run batch-file in installdir ... echo. pause exit)

if not exist "%~dp0H2Reg.exe" ( echo ERROR: H2Reg.exe not found in installdir echo. echo INFO: Copy H2Reg.exe to installdir ... echo. pause exit)

if not exist "%~dp0H2Reg.ini" ( echo ERROR: H2Reg.ini not found in installdir echo. echo INFO: Copy H2Reg.ini to installdir ... echo. pause exit)

call :GetDXVersion "%~dp0ExpressCore Library\Sources\Dxcore.pas" DXVersTITLE UnInstalling HELP DevExpress VCL v!DXVers!

echo ===========================================================================echo UnInstalling Help for DevExpress VCL v!DXVers! echo ===========================================================================call :progress 0rem -------------rem RUN UNINSTALLrem -------------

CALL :func_uninstall DXE6

set endtime=%time%echo Started at: %starttime%echo Finished at: %endtime%

echo.pause

:endexit

rem ==================================================================================rem F U N C T I O N Srem ==================================================================================:func_uninstallset p1=%1_set "str=D2007_D2009_D2010_DXE_DXE2_DXE3_DXE4_DXE5_DXE6_"if "x!str:%p1%=!"=="x%str%" ( echo. echo ERROR: %1 not supported echo. Choose D2007, D2009, D2010, DXE, DXE2, DXE3, DXE4, DXE5 or DXE6 echo. echo INFO: BAT file will be terminated now ... echo. pause exit) rem -----------------rem UnInstalling HELPrem -----------------echo - UnInstalling Help for %1echo (ProgressBar is displayed in TitleBar of Console Window)echo.

set /a nCount=0set /a nProgress=0

set H2REG="%~dp0h2reg"

call :Namespace NS %1set IDE_NS=%NS%

call :Namespace NS %1 POSTset IDE_NS_Post=%NS%

echo Namespace=%IDE_NS%echo Namespace_PostFix=%IDE_NS_Post%echo.

if exist H2Reg_Log.txt del H2Reg_Log.txt >nul 2>&1

for /f "eol=r tokens=*" %%a in ('dir *. /b') do ( rem echo %%a if exist "%~dp0%%a\Help" ( for /f "eol=r tokens=*" %%k in ('dir "%~dp0%%a\Help\*.ini" /b') do ( rem echo %%k Call :UnInstHelp "%~dp0%%a\Help\%%k" set /a nCount = !nCount! + 1 set /a nProgress = !nCount!*4 if NOT "!nProgress!"=="100" call :progress !nProgress! ) ) )

:Finishcall :progress 100 echo.echo.

echo Help for DevExpress VCL (%1) uninstalled ...echo.goto:EOF

rem ==================================================================================:progressSETLOCAL ENABLEDELAYEDEXPANSIONSET ProgressPercent=%1rem if NOT "%ProgressPercent%"=="0" ( SET /A NumBars=%ProgressPercent%/2 SET /A NumSpaces=50-%NumBars% SET Meter= FOR /L %%A IN (%NumBars%,-1,1) DO SET Meter=!Meter!I FOR /L %%A IN (%NumSpaces%,-1,1) DO SET Meter=!Meter! TITLE Progress: [%Meter%] %ProgressPercent%%%rem )ENDLOCALGOTO :EOF

rem ==================================================================================:UnInstHelpset INIFILE=%1echo ... %~n1%~x1set INIFILE=!INIFILE:~0,-2!_"del !INIFILE! 1>nul 2>nulfor /F "usebackq tokens=*" %%a in (%1) do ( set Line=%%a set Line=!Line:%%=! set Line=!Line:IDE_Namespace_Postfix=%IDE_NS_Post%! set Line=!Line:IDE_Namespace=%IDE_NS%! echo !Line!>>%INIFILE%)%H2REG%.exe -u -q CmdFile=!INIFILE! 1>nul 2>nuldel !INIFILE! 1>nul 2>nul

exit /b

:Namespace set "NS=D2007-borland;D2009-embarcadero;D2010-embarcadero;DXE-embarcadero;DXE2-embarcadero;DXE3-embarcadero;DXE4-embarcadero;DXE5-embarcadero;DXE6-embarcadero"if "%3"=="POST" set "NS=D2007-bds5;D2009-rs2009;D2010-rs2010;DXE-rs_xe;DXE2-rs_xe2;DXE3-rs_xe3;DXE4-rs_xe4;DXE5-rs_xe5;DXE6-rs_xe6"set v=%2rem echo %v%CALL SET v=%%NS:*%v%-=%%SET v=%v:;=&rem.%set %1=%v%GOTO :EOF

rem ==================================================================================:GetDXVersionrem dxBuildNumber: Cardinal = 20130205;for /f "tokens=* delims=" %%a in (%~s1) do ( set "line1=%%a" set "line2=!line1!" set "line2=!line2:dxBuildNumber:=!" if NOT "!line1!"=="!line2!" ( for /f "tokens=1,2,3 delims==;" %%r in ('echo !line1!') do ( set p1=%%s set "p1=!p1: =!" set "dmy1=!p1:~2,2!" set "dmy2=!p1:~4,2!" set "dmy2=!dmy2:0=!" set "dmy3=!p1:~6,2!" set "lastDigit=!p1:~-1!" if NOT "!lastDigit!"=="0" set "dmy3=!dmy3:0=!" set %2=!dmy1!.!dmy2!.!dmy3! ) ))exit /b

How to:

1. Copy H2Reg.exe and H2Reg.ini to DX-installdir

H2Reg can be downloaded from here:Code:http://helpware.net/downloads/h2reg_setup2010.exe2. Run Install_Help.bat AS ADMIN in DX-installdir(ProgressBar will be displayed in TitelBar of ConsoleWindow)

By default help files for DXE6 are installed:Code: CALL :func_install DXE6To install help files for another Delphi version change the paramter "DXE6" toDXE5, DXE4, DXE3, DXE2, DXE, D2010, D2009 or D2007 atline 72.

It is possible to install Help files for multiple Delphi versionsat once(e.g: DXE6 and DXE5) as follows:Code: CALL :func_install DXE5 CALL :func_install DXE6

Note:To uninstall help files, run UnInstall_Help.bat AS ADMIN in DX-installdir.By default help files for DXE6 are uninstalled:Code: CALL :func_uninstall DXE6Change parameter to your Delphi version atline 71!