You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
(20) |
May
(48) |
Jun
(8) |
Jul
(23) |
Aug
(41) |
Sep
(42) |
Oct
(22) |
Nov
(17) |
Dec
(36) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(43) |
Feb
(42) |
Mar
(17) |
Apr
(39) |
May
(16) |
Jun
(35) |
Jul
(37) |
Aug
(47) |
Sep
(49) |
Oct
(9) |
Nov
(52) |
Dec
(37) |
2008 |
Jan
(48) |
Feb
(21) |
Mar
(7) |
Apr
(2) |
May
(5) |
Jun
(17) |
Jul
(17) |
Aug
(40) |
Sep
(58) |
Oct
(38) |
Nov
(19) |
Dec
(32) |
2009 |
Jan
(67) |
Feb
(46) |
Mar
(54) |
Apr
(34) |
May
(37) |
Jun
(52) |
Jul
(67) |
Aug
(72) |
Sep
(48) |
Oct
(35) |
Nov
(27) |
Dec
(12) |
2010 |
Jan
(56) |
Feb
(46) |
Mar
(19) |
Apr
(14) |
May
(21) |
Jun
(3) |
Jul
(13) |
Aug
(48) |
Sep
(34) |
Oct
(51) |
Nov
(16) |
Dec
(32) |
2011 |
Jan
(36) |
Feb
(14) |
Mar
(12) |
Apr
(3) |
May
(5) |
Jun
(24) |
Jul
(15) |
Aug
(30) |
Sep
(21) |
Oct
(4) |
Nov
(25) |
Dec
(23) |
2012 |
Jan
(45) |
Feb
(42) |
Mar
(19) |
Apr
(14) |
May
(13) |
Jun
(7) |
Jul
(3) |
Aug
(46) |
Sep
(21) |
Oct
(10) |
Nov
(2) |
Dec
|
2013 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ou...@us...> - 2009-09-21 21:25:13
|
Revision: 3017 http://jcl.svn.sourceforge.net/jcl/?rev=3017&view=rev Author: outchy Date: 2009-09-21 21:25:05 +0000 (Mon, 21 Sep 2009) Log Message: ----------- fix compilation with C6, D6 and D7. Modified Paths: -------------- trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerClasses.pas trunk/jcl/experts/useswizard/JclUsesDialog.pas Modified: trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerClasses.pas =================================================================== --- trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerClasses.pas 2009-09-19 12:01:00 UTC (rev 3016) +++ trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerClasses.pas 2009-09-21 21:25:05 UTC (rev 3017) @@ -116,7 +116,7 @@ public constructor Create; override; function Add(Addr: Pointer): TJclStackTraceViewerLocationInfo; - property Items[AIndex: Integer]: TJclStackTraceViewerLocationInfo read GetItems; default; + property Items[AIndex: Integer]: TJclStackTraceViewerLocationInfo read GetItems; { IInterface } function QueryInterface(const IID: TGUID; out Obj): HRESULT; stdcall; @@ -126,7 +126,7 @@ function GetCount: Integer; function GetLocationItems(AIndex: Integer): IJclLocationInfo; property Count: Integer read GetCount; - property Items[AIndex: Integer]: IJclLocationInfo read GetLocationItems; default; + property LocationItems[AIndex: Integer]: IJclLocationInfo read GetLocationItems; default; { IJclPreparedLocationInfoList } function GetPrepared: Boolean; procedure SetPrepared(AValue: Boolean); Modified: trunk/jcl/experts/useswizard/JclUsesDialog.pas =================================================================== --- trunk/jcl/experts/useswizard/JclUsesDialog.pas 2009-09-19 12:01:00 UTC (rev 3016) +++ trunk/jcl/experts/useswizard/JclUsesDialog.pas 2009-09-21 21:25:05 UTC (rev 3017) @@ -77,23 +77,31 @@ {$R *.dfm} constructor TFormUsesConfirm.Create(AOwner: TComponent; AChangeList: TStrings; Errors: TList); -const - ActionStrings: array [TWizardAction] of PResStringRec = - (@RsActionSkip, @RsActionAdd, @RsActionAdd, @RsActionMove); - SectionStrings: array [TWizardAction] of PResStringRec = - (nil, @RsSectionImpl, @RsSectionIntf, @RsSectionIntf); var I, J: Integer; Node: TTreeNode; + ActionStrings: array [TWizardAction] of string; + SectionStrings: array [TWizardAction] of string; begin inherited Create(AOwner); + + ActionStrings[waSkip] := LoadResString(@RsActionSkip); + ActionStrings[waAddToImpl] := LoadResString(@RsActionAdd); + ActionStrings[waAddToIntf] := LoadResString(@RsActionAdd); + ActionStrings[waMoveToIntf] := LoadResString(@RsActionMove); + + SectionStrings[waSkip] := ''; + SectionStrings[waAddToImpl] := LoadResString(@RsSectionImpl); + SectionStrings[waAddToIntf] := LoadResString(@RsSectionIntf); + SectionStrings[waMoveToIntf] := LoadResString(@RsSectionIntf); + FChangeList := AChangeList; FErrors := Errors; for I := 0 to FChangeList.Count - 1 do begin Node := TreeViewChanges.Items.AddChildObject(nil, Format('%d. %s %s %s', - [I + 1, LoadResString(ActionStrings[TWizardAction(FChangeList.Objects[I])]), FChangeList[I], - LoadResString(SectionStrings[TWizardAction(FChangeList.Objects[I])])]), Pointer(I)); + [I + 1, ActionStrings[TWizardAction(FChangeList.Objects[I])], FChangeList[I], + SectionStrings[TWizardAction(FChangeList.Objects[I])]]), Pointer(I)); for J := 0 to FErrors.Count - 1 do with PErrorInfo(FErrors[J])^ do if AnsiCompareText(UsesName, FChangeList[I]) = 0 then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2009-09-19 12:01:10
|
Revision: 3016 http://jcl.svn.sourceforge.net/jcl/?rev=3016&view=rev Author: ahuser Date: 2009-09-19 12:01:00 +0000 (Sat, 19 Sep 2009) Log Message: ----------- Added SUPPORTS_CLASS_CTORDTORS for class contructors/destructors Modified Paths: -------------- trunk/jcl/source/include/jedi.inc Modified: trunk/jcl/source/include/jedi.inc =================================================================== --- trunk/jcl/source/include/jedi.inc 2009-09-18 15:31:58 UTC (rev 3015) +++ trunk/jcl/source/include/jedi.inc 2009-09-19 12:01:00 UTC (rev 3016) @@ -390,6 +390,7 @@ SUPPORTS_CLASS_FIELDS Compiler supports class fields (D9.NET, D10+) SUPPORTS_CLASS_HELPERS Compiler supports class helpers (D9.NET, D10+) SUPPORTS_CLASS_OPERATORS Compiler supports class operators (D9.NET, D10+) + SUPPORTS_CLASS_CTORDTORS Compiler supports class contructors/destructors (D14+) SUPPORTS_STRICT Compiler supports strict keyword (D9.NET, D10+) SUPPORTS_STATIC Compiler supports static keyword (D9.NET, D10+) SUPPORTS_FINAL Compiler supports final keyword (D9.NET, D10+) @@ -1153,6 +1154,10 @@ {$ENDIF CLR} {$ENDIF COMPILER12_UP} +{$IFDEF COMPILER14_UP} + {$DEFINE SUPPORTS_CLASS_CTORDTORS} +{$ENDIF COMPILER14_UP} + {$IFDEF RTL130_UP} {$DEFINE HAS_UNIT_CONTNRS} {$ENDIF RTL130_UP} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-18 15:32:06
|
Revision: 3015 http://jcl.svn.sourceforge.net/jcl/?rev=3015&view=rev Author: outchy Date: 2009-09-18 15:31:58 +0000 (Fri, 18 Sep 2009) Log Message: ----------- The properties TButton.DoubleBufered and TButton.ParentDoubleBuffered do not exist in Delphi 6. Modified Paths: -------------- trunk/jcl/install/VclGui/JediGUIMain.dfm Modified: trunk/jcl/install/VclGui/JediGUIMain.dfm =================================================================== --- trunk/jcl/install/VclGui/JediGUIMain.dfm 2009-09-18 13:53:34 UTC (rev 3014) +++ trunk/jcl/install/VclGui/JediGUIMain.dfm 2009-09-18 15:31:58 UTC (rev 3015) @@ -235,7 +235,6 @@ Height = 25 Anchors = [akRight, akBottom] Caption = 'RsGUIInstall' - DoubleBuffered = True Glyph.Data = { 36030000424D3603000000000000360000002800000010000000100000000100 18000000000000030000230B0000230B00000000000000000000C6CED6C6CED6 @@ -263,7 +262,6 @@ ADDEBD9CD6ADBDB5A563635A8C947394C69CB5CEBDC6CED6C6CED6C6CECEC6CE D6C6CED6C6CECEC6CED6C6CED6C6CECEC6CED6C6CED6C6C6BD9C9C9CB5BDBDC6 CED6C6CECEC6CED6C6CED6C6CECEC6CED6C6CECEC6CED6C6CED6} - ParentDoubleBuffered = False TabOrder = 0 OnClick = InstallBtnClick end @@ -274,7 +272,6 @@ Height = 25 Anchors = [akRight, akBottom] Caption = 'RsGUIQuit' - DoubleBuffered = True Glyph.Data = { 36050000424D3605000000000000360400002800000010000000100000000100 08000000000000010000230B0000230B000000010000000100000026B5000026 @@ -318,7 +315,6 @@ 554C464174A7792B10A7A7687E7893A795777194A78D40280EA7A7728C87758E A4A7A7A2894D472C0CA7A77C908B7D78706B6A67645C4D280AA7A6977B6D6663 5D5A59524A48422084A69DA6A7A7A7A7A7A7A7A7A7A7A7A7A69D} - ParentDoubleBuffered = False TabOrder = 2 OnClick = QuitBtnClick end @@ -348,8 +344,6 @@ Height = 25 Anchors = [akRight, akBottom] Caption = 'RsGUIUninstall' - DoubleBuffered = True - ParentDoubleBuffered = False TabOrder = 1 OnClick = UninstallBtnClick end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-18 13:53:45
|
Revision: 3014 http://jcl.svn.sourceforge.net/jcl/?rev=3014&view=rev Author: outchy Date: 2009-09-18 13:53:34 +0000 (Fri, 18 Sep 2009) Log Message: ----------- Refactoring of JCL installer resources. Modified Paths: -------------- trunk/jcl/install/JclInstall.pas trunk/jcl/install/JediInstall.pas trunk/jcl/install/JediInstallConfigIni.pas trunk/jcl/install/JediInstaller.dpr trunk/jcl/install/VclGui/FrmCompile.dfm trunk/jcl/install/VclGui/FrmCompile.pas trunk/jcl/install/VclGui/JediGUIInstall.dfm trunk/jcl/install/VclGui/JediGUIInstall.pas trunk/jcl/install/VclGui/JediGUIMain.dfm trunk/jcl/install/VclGui/JediGUIMain.pas trunk/jcl/install/VclGui/JediGUIProfiles.dfm trunk/jcl/install/VclGui/JediGUIProfiles.pas Added Paths: ----------- trunk/jcl/install/JclInstallResources.pas trunk/jcl/install/JediInstallResources.pas Modified: trunk/jcl/install/JclInstall.pas =================================================================== --- trunk/jcl/install/JclInstall.pas 2009-09-15 05:48:47 UTC (rev 3013) +++ trunk/jcl/install/JclInstall.pas 2009-09-18 13:53:34 UTC (rev 3014) @@ -17,11 +17,12 @@ { } { Contributor(s): } { - Robert Rossmair - crossplatform & BCB support, refactoring } -{ - Florent Ouchet (outchy) - New installer core for .net compilation } +{ - Florent Ouchet (outchy) - New installer core } +{ - Resource refactorings } { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -305,362 +306,113 @@ JediRegInfo, JclShell, {$ENDIF MSWINDOWS} - JclFileUtils, JclStrings; + JclFileUtils, JclStrings, + JediInstallResources, + JclInstallResources; -resourcestring -// Names - RsNameBPLPath = 'BPL-Path'; - RsNameDCPPath = 'DCP-Path'; - RsNameBPIPath = 'BPI-Path'; - -// Captions - RsCaptionBPLPath = '&BPL path:'; - RsCaptionDCPPath = '&DCP path:'; - RsCaptionBPIPath = 'BP&I path:'; - - // Products - RsCaptionLibrary = 'JEDI Code Library'; - - // Conditional features - RsCaptionDef = 'Conditional defines'; - RsCaptionDefThreadSafe = 'Enable thread safe code'; - RsCaptionDefDropObsoleteCode = 'Drop obsolete code'; - RsCaptionDefUnitVersioning = 'Include Unit Versioning'; - // math options - RsCaptionDefMath = 'Math options'; - RsCaptionDefMathPrecSingle = 'Single float precision'; - RsCaptionDefMathPrecDouble = 'Double float precision'; - RsCaptionDefMathPrecExtended = 'Extended float precision'; - RsCaptionDefMathExtremeValues = 'Support for infinite and NaN'; - // debug options - RsCaptionDefDebug = 'Debug and exception hooking options'; - RsCaptionDefHookDllExceptions = 'Hook exceptions in DLL'; - RsCaptionDefDebugNoBinary = 'No debug source from JEDI debug informations'; - RsCaptionDefDebugNoTD32 = 'No debug source from TD32 debug symbols'; - RsCaptionDefDebugNoMap = 'No debug source from Map files'; - RsCaptionDefDebugNoExports = 'No debug source from function export table for libraries'; - RsCaptionDefDebugNoSymbols = 'No debug source from Microsoft debug symbols'; - // EDI options - RsCaptionDefEDI = 'EDI options'; - RsCaptionDefEDIWeakPackageUnits = 'EDI weak package units'; - // PCRE options - RsCaptionDefPCRE = 'PCRE options'; - RsCaptionDefPCREStaticLink = 'Static link to PCRE code'; - RsCaptionDefPCRELinkDLL = 'Static bind to pcre.dll'; - RsCaptionDefPCRELinkOnRequest = 'Late bind to pcre.dll'; - // BZip2 options - RsCaptionDefBZip2 = 'BZip2 options'; - RsCaptionDefBZip2StaticLink = 'Static link to BZip2 code'; - RsCaptionDefBZip2LinkDLL = 'Static bind to bzip2.dll'; - RsCaptionDefBZip2LinkOnRequest = 'Late bind to bzip2.dll'; - // ZLib options - RsCaptionDefZLib = 'ZLib options'; - RsCaptionDefZLibStaticLink = 'Static link to ZLib code'; - RsCaptionDefZLibLinkDLL = 'Static bind to zlib1.dll'; - RsCaptionDefZLibLinkOnRequest = 'Late bind to zlib1.dll'; - // Unicode options - RsCaptionDefUnicode = 'Unicode options'; - RsCaptionDefUnicodeSilentFailure = 'Silent failure'; - RsCaptionDefUnicodeRawData = 'Uncompressed Unicode data'; - RsCaptionDefUnicodeZLibData = 'Compressed data using zlib'; - RsCaptionDefUnicodeBZip2Data = 'Compressed data using bzip2'; - // Container options - RsCaptionDefContainer = 'Container options'; - RsCaptionDefContainerAnsiStr = 'Alias AnsiString containers to String containers'; - RsCaptionDefContainerWideStr = 'Alias WideString containers to String containers'; - RsCaptionDefContainerUnicodeStr = 'Alias UnicodeString containers to String containers (Delphi 2009 only)'; - RsCaptionDefContainerNoStr = 'Do not alias anything'; - // 7Z options - RsCaptionDef7z = 'Sevenzip options'; - //RsCaptionDef7zStaticLink = 'Static link to Sevenzip code (not supported yet)'; - RsCaptionDef7zLinkDLL = 'Static bind to 7z.dll'; - RsCaptionDef7zLinkOnRequest = 'Late bind to 7z.dll'; - - // post compilation - RsCaptionMapCreate = 'Create MAP files'; - RsCaptionJdbgCreate = 'Create JEDI Debug Informations'; - RsCaptionJdbgInsert = 'Insert JEDI Debug Informations in the libraries'; - RsCaptionMapDelete = 'Do not keep MAP files'; - - // environment - RsCaptionEnvironment = 'Environment'; - RsCaptionEnvLibPath = 'Add JCL to IDE Library Path'; - RsCaptionEnvBrowsingPath = 'Add JCL to IDE Browsing Path'; - RsCaptionEnvDebugDCUPath = 'Add JCL to Debug DCU Path'; - - // make units - RsCaptionMake = 'Make library units'; - RsCaptionMakeRelease = 'Release'; - RsCaptionMakeDebug = 'Debug'; - RsCaptionMakeVCL = 'Visual Component Library'; - RsCaptionCopyHppFiles = 'Copy HPP files to %s'; - RsCaptionCheckHppFiles = 'Check HPP files'; - - // packages - RsCaptionPackages = 'Packages'; - RsCaptionVclPackage = 'VCL Package'; - RsCaptionDualPackages = 'Dual packages'; - RsCaptionCopyPackagesHppFiles = 'Output HPP files to %s'; - - // exception dialogs - RsCaptionExceptDlg = 'Sample Exception Dialogs in the Object Repository'; - RsCaptionExceptDlgVCL = 'VCL Exception Dialog'; - RsCaptionExceptDlgVCLSnd = 'VCL Exception Dialog with Send button'; - - // experts - RsCaptionExperts = 'IDE experts'; - RsCaptionExpertsDsgnPackages = 'Design packages'; - RsCaptionExpertsDLL = 'DLL experts'; - RsCaptionExpertDebug = 'Debug Extension'; - RsCaptionExpertAnalyzer = 'Project Analyzer'; - RsCaptionExpertFavorite = 'Favorite combobox in Open/Save dialogs'; - RsCaptionExpertRepository = 'Exception dialog expert'; - RsCaptionExpertThreadNames = 'Displaying thread names in Thread Status window'; - RsCaptionExpertUses = 'Uses Wizard'; - RsCaptionExpertSimdView = 'Debug window for XMM registers'; - RsCaptionExpertVersionControl = 'Version control'; - RsCaptionExpertStackTraceViewer = 'Stack Trace Viewer'; - - // help - RsCaptionHelp = 'Help files'; - RsCaptionHelpHlp = 'Add help file to IDE help system'; - RsCaptionHelpChm = 'Add HTML help to the Tools menu'; - RsCaptionHelpHxS = 'Register help 2.0 files'; - RsCaptionHelpHxSPlugin = 'Plug help 2.0 files in the Borland help system'; - - // demos - RsCaptionMakeDemos = 'Make demos'; - -// Hints - // products - RsHintLibrary = 'Select to install JCL for this target.'; - - // conditional defines - RsHintDef = 'Enable or disable specific features to be compiled'; - RsHintDefThreadSafe = 'Conditionally some pieces of code to be thread safe, the ThreadSafe.txt file contains more informations about this feature'; - RsHintDefDropObsoleteCode = 'Do not compile deprecated code'; - RsHintDefUnitVersioning = 'Includes JCL Unit Versioning informations into each JCL unit (see also JclUnitVersioning.pas)'; - // math options - RsHintDefMath = 'Math specific options (JclMath.pas)'; - RsHintDefMathPrecSingle = 'type Float = Single'; - RsHintDefMathPrecDouble = 'type Float = Double'; - RsHintDefMathPrecExtended = 'type Float = Extended'; - RsHintDefMathExtremeValues = 'Exp en Power functions accept and return infinite and NaN'; - // Debug options - RsHintDefDebug = 'Debug and exception hooking specific options (JclDebug.pas and JclHookExcept.pas)'; - RsHintDefHookDllExceptions = 'Hook exceptions raised in DLL compiled with the JCL'; - RsHintDefDebugNoBinary = 'Disable support for JDBG files'; - RsHintDefDebugNoMap = 'Disable support for MAP files'; - RsHintDefDebugNoTD32 = 'Disable support for TD32 informations'; - RsHintDefDebugNoExports = 'Disable support for export names of libraries'; - RsHintDefDebugNoSymbols = 'Disable support for Microsoft debug symbols (PDB and DBG files)'; - // EDI options - RsHintDefEDI = 'EDI specific options (JclEDI*.pas)'; - RsHintDefEDIWeakPackageUnits = 'Mark EDI units as weak package units (check if you use the original EDI package)'; - // PCRE options - RsHintDefPCRE = 'PCRE specific options (pcre.pas and JclPCRE.pas)'; - RsHintDefPCREStaticLink = 'Code from PCRE is linked into JCL binaries'; - RsHintDefPCRELinkDLL = 'JCL binaries require pcre.dll to be present'; - RsHintDefPCRELinkOnRequest = 'JCL binaries require pcre.dll when calling PCRE functions'; - // BZip2 options - RsHintDefBZip2 = 'BZip2 specific options (bzip2.pas)'; - RsHintDefBZip2StaticLink = 'Code from BZip2 is linked into JCL binaries'; - RsHintDefBZip2LinkDLL = 'JCL binaries require bzip2.dll to be present'; - RsHintDefBZip2LinkOnRequest = 'JCL binaries require bzip2.dll when calling BZip2 functions'; - // ZLib options - RsHintDefZLib = 'ZLib specific options (zlibh.pas)'; - RsHintDefZLibStaticLink = 'Code from ZLib is linked into JCL binaries'; - RsHintDefZLibLinkDLL = 'JCL binaries require zlib1.dll to be present'; - RsHintDefZLibLinkOnRequest = 'JCL binaries require zlib1.dll when calling ZLib functions'; - // Unicode options - RsHintDefUnicode = 'Unicode specific option (JclUnicode.pas)'; - RsHintDefUnicodeSilentFailure = 'Insert a replacement character if sequence is corrupted rather than raising an exception'; - RsHintDefUnicodeRawData = 'Link resource containing uncompressed Unicode data (bigger executable size)'; - RsHintDefUnicodeZLibData = 'Link resource containing Unicode data compressed with ZLib'; - RsHintDefUnicodeBZip2Data = 'Link resource containing Unicode data compressed with BZip2'; - // Container options - RsHintDefContainer = 'Container specific options'; - RsHintDefContainerAnsiStr = 'Define TJclStr* containers as alias of TJclAnsiStr* containers'; - RsHintDefContainerWideStr = 'Define TJclStr* containers as alias of TJclWideStr* containers'; - RsHintDefContainerUnicodeStr = 'Define TJClStr* containers as alias of TJclUnicodeStr* containers'; - RsHintDefContainerNoStr = 'Do not define TJclStr* containers'; - // 7Z options - RsHintDef7z = 'Sevenzip specific options (sevenzip.pas)'; - //RsHintDef7zStaticLink = 'Code from Sevenzip is linked into JCL binaries'; - RsHintDef7zLinkDLL = 'JCL binaries require 7z.dll to be present'; - RsHintDef7zLinkOnRequest = 'JCL binaries require 7z.dll when calling Sevenzip functions'; - - // post compilation - RsHintMapCreate = 'Create detailed MAP files for each libraries'; - RsHintJdbgCreate = 'Create JEDI Debug Informations from the MAP files'; - RsHintJdbgInsert = 'Insert JEDI Debug Informations into the libraries (only the BPL has to be redistributed)'; - RsHintMapDelete = 'The original MAP file is not kept once JEDI Debug Informations are generated'; - - // environment - RsHintEnvironment = 'Set selected environment items'; - RsHintEnvLibPath = 'Add JCL precompiled unit directories to library path'; - RsHintEnvBrowsingPath = 'Add JCL source directories to browsing path'; - RsHintEnvDebugDCUPath = 'This is a prerequisite for using the precompiled JCL debug units by means of the respective' + NativeLineBreak + - 'Project Options|Compiler switch. See "Make library units/Debug" option below.'; - - // make units - RsHintMake = 'Generate .dcu files.' + NativeLineBreak + 'Recommended.'; - RsHintMakeRelease = 'Make precompiled units for release, i.e. optimized, w/o debug information.'; - RsHintMakeReleaseVcl = 'Make precompiled VCL units for release'; - RsHintMakeDebug = 'Make precompiled units for debugging, i.e.optimization off, debug information included.' + NativeLineBreak + - 'When installed, available through Project Options|Compiler|Use Debug DCUs.'; - RsHintMakeDebugVcl = 'Make precompiled VCL units for debugging'; - RsHintCopyHppFiles = 'Copy .hpp files into C++Builder''s include path.'; - RsHintCheckHppFiles = 'Compile some C++ source files to verify JCL headers'; - - // packages - RsHintPackages = 'Build and eventually install JCL runtime packages and optional IDE experts.'; - RsHintVclPackage = 'Build JCL runtime package containing VCL extensions'; - RsHintDualPackages = 'The same package introduce code for Delphi Win32 and C++Builder Win32'; - RsHintCopyPackagesHppFiles = 'Output .hpp files into C++Builder''s include path instead of ' + - 'the source paths.'; - - // exception dialogs - RsHintExceptDlg = 'Add selected Exception dialogs to the Object Repository.'; - RsHintExceptDlgVCL = 'Add VCL exception dialog to the Object Repository.'; - RsHintExceptDlgVCLSnd = 'Add VCL exception dialog with "Send Button" to the Object Repository.'; - - // experts - RsHintExperts = 'Build and install selected IDE experts.'; - RsHintExpertsDsgnPackages = 'Design packages containing JCL experts'; - RsHintExpertsDLL = 'DLLs containing JCL experts'; - RsHintExpertDebug = 'Install IDE expert which assists to insert JCL Debug information into executable files.'; - RsHintExpertAnalyzer = 'Install IDE Project Analyzer.'; - RsHintExpertFavorite = 'Install "Favorites" combobox in IDE Open/Save dialogs.'; - RsHintExpertRepository = 'Repository expert to easily create exception dialogs'; - RsHintExpertThreadNames = 'Display thread names in Thread Status window IDE extension.'; - RsHintExpertUses = 'Install IDE Uses Wizard.'; - RsHintExpertSimdView = 'Install a debug window of XMM registers (used by SSE instructions)'; - RsHintExpertVersionControl = 'Integration of TortoiseCVS and TortoiseSVN in the IDE'; - RsHintExpertStackTraceViewer = 'Install an IDE expert which shows the JCL Debug stack trace information.'; - - // help - RsHintHelp = 'Install JCL help files.'; - RsHintHelpHlp = 'Customize Borland Open Help to include JCL help files.'; - RsHintHelpChm = 'Compiled help files won''t be merged with the IDE help'; - RsHintHelpHxS = 'Register Help 2.0 files'; - RsHintHelpHxSPlugin = 'Register Help 2.0 files as a plugin for the Borland.BDS* namespace'; - - // demos - RsHintMakeDemos = 'Make JCL demo applications'; - -// warning messages - RsWarningPackageNodeNotSelected = 'The "Packages" or "VCL package" nodes are not selected.' + sLineBreak + - 'Various libraries (including the JVCL) require JCL packages to be compiled' + sLineBreak + - 'Do you want to continue without compiling JCL packages?'; - RsWarningCreatePath = 'The path where %s files will be created doesn''t exists.' + sLineBreak + - 'Do you want the JCL installer to create it?'; - RsErrorCantCreatePath = 'The path %s cannot be created'; - RsWarningAddPathToEnvironment = 'The path where BPL are created must be present in the PATH' + sLineBreak + - 'environment variable, otherwise JCL packages won''t be found by the IDE.' + sLineBreak + - 'Do you want the JCL installer to add it?' + sLineBreak + - 'You will have to reboot your computer and/or to close your session to validate this change'; - RsHtmlHelp2Credentials = 'Registering HTML Help 2.0 files requires administrator privilege to be performed' + sLineBreak + - 'The RegHelper.exe utility will make this operation'; - type TOptionRec = record Id: Integer; - Caption: string; - Hint: string; + Caption: PResStringRec; + Hint: PResStringRec; end; var OptionData: array[TInstallerOption] of TOptionRec = ( - (Id: -1; Caption: RsCaptionLibrary; Hint: RsHintLibrary), // joLibrary - (Id: -1; Caption: RsCaptionDef; Hint: RsHintDef), // joDef - (Id: -1; Caption: RsCaptionDefMath; Hint: RsHintDefMath), // joDefMath - (Id: -1; Caption: RsCaptionDefDebug; Hint: RsHintDefDebug), // joDefDebug - (Id: -1; Caption: RsCaptionDefEDI; Hint: RsHintDefEDI), // joDefEDI - (Id: -1; Caption: RsCaptionDefPCRE; Hint: RsHintDefPCRE), // joDefPCRE - (Id: -1; Caption: RsCaptionDefBZip2; Hint: RsHintDefBZip2), // joDefBZip2 - (Id: -1; Caption: RsCaptionDefZLib; Hint: RsHintDefZLib), // joDefZLib - (Id: -1; Caption: RsCaptionDefUnicode; Hint: RsHintDefUnicode), // joDefUnicode - (Id: -1; Caption: RsCaptionDefContainer; Hint: RsHintDefContainer), // joDefContainer - (Id: -1; Caption: RsCaptionDef7z; Hint: RsHintDef7z), // joDef7z - (Id: -1; Caption: RsCaptionDefThreadSafe; Hint: RsHintDefThreadSafe), // joDefThreadSafe - (Id: -1; Caption: RsCaptionDefDropObsoleteCode; Hint: RsHintDefDropObsoleteCode), // joDefDropObsoleteCode - (Id: -1; Caption: RsCaptionDefUnitVersioning; Hint: RsHintDefUnitVersioning), // joDefUnitVersioning - (Id: -1; Caption: RsCaptionDefMathPrecSingle; Hint: RsHintDefMathPrecSingle), // ioDefMathPrecSingle - (Id: -1; Caption: RsCaptionDefMathPrecDouble; Hint: RsHintDefMathPrecDouble), // joDefMathPrecDouble - (Id: -1; Caption: RsCaptionDefMathPrecExtended; Hint: RsHintDefMathPrecExtended), // joDefMathPrecExtended - (Id: -1; Caption: RsCaptionDefMathExtremeValues; Hint: RsHintDefMathExtremeValues), // joDefMathExtremeValues - (Id: -1; Caption: RsCaptionDefHookDllExceptions; Hint: RsHintDefHookDllExceptions), // joDefHookDllExceptions - (Id: -1; Caption: RsCaptionDefDebugNoBinary; Hint: RsHintDefDebugNoBinary), // joDefDebugNoBinary - (Id: -1; Caption: RsCaptionDefDebugNoTD32; Hint: RsHintDefDebugNoTD32), // joDefDebugNoTD32 - (Id: -1; Caption: RsCaptionDefDebugNoMap; Hint: RsHintDefDebugNoMap), // joDefDebugNoMap - (Id: -1; Caption: RsCaptionDefDebugNoExports; Hint: RsHintDefDebugNoExports), // joDefDebugNoExports - (Id: -1; Caption: RsCaptionDefDebugNoSymbols; Hint: RsHintDefDebugNoSymbols), // joDefDebugNoSymbols - (Id: -1; Caption: RsCaptionDefEDIWeakPackageUnits; Hint: RsHintDefEDIWeakPackageUnits), // joDefEDIWeakPackageUnits - (Id: -1; Caption: RsCaptionDefPCREStaticLink; Hint: RsHintDefPCREStaticLink), // joDefPCREStaticLink - (Id: -1; Caption: RsCaptionDefPCRELinkDLL; Hint: RsHintDefPCRELinkDLL), // joDefPCRELinkDLL - (Id: -1; Caption: RsCaptionDefPCRELinkOnRequest; Hint: RsHintDefPCRELinkOnRequest), // joDefPCRELinkOnRequest - (Id: -1; Caption: RsCaptionDefBZip2StaticLink; Hint: RsHintDefBZip2StaticLink), // joDefBZip2StaticLink - (Id: -1; Caption: RsCaptionDefBZip2LinkDLL; Hint: RsHintDefBZip2LinkDLL), // joDefBZip2LinkDLL - (Id: -1; Caption: RsCaptionDefBZip2LinkOnRequest; Hint: RsHintDefBZip2LinkOnRequest), // joDefBZip2LinkOnRequest - (Id: -1; Caption: RsCaptionDefZLibStaticLink; Hint: RsHintDefZLibStaticLink), // joDefZLibStaticLink - (Id: -1; Caption: RsCaptionDefZLibLinkDLL; Hint: RsHintDefZLibLinkDLL), // joDefZLibLinkDLL - (Id: -1; Caption: RsCaptionDefZLibLinkOnRequest; Hint: RsHintDefZLibLinkOnRequest), // joDefZLibLinkOnRequest - (Id: -1; Caption: RsCaptionDefUnicodeSilentFailure; Hint: RsHintDefUnicodeSilentFailure), // joDefUnicodeSilentFailure - (Id: -1; Caption: RsCaptionDefUnicodeRawData; Hint: RsHintDefUnicodeRawData), // joDefUnicodeRawData - (Id: -1; Caption: RsCaptionDefUnicodeZLibData; Hint: RsHintDefUnicodeZLibData), // joDefUnicodeZLibData - (Id: -1; Caption: RsCaptionDefUnicodeBZip2Data; Hint: RsHintDefUnicodeBZip2Data), // joDefUnicodeBZip2Data - (Id: -1; Caption: RsCaptionDefContainerAnsiStr; Hint: RsHintDefContainerAnsiStr), // joDefContainerAnsiStr - (Id: -1; Caption: RsCaptionDefContainerWideStr; Hint: RsHintDefContainerWideStr), // joDefContainerWideStr - (Id: -1; Caption: RsCaptionDefContainerUnicodeStr; Hint: RsHintDefContainerUnicodeStr), // joDefContainerUnicodeStr - (Id: -1; Caption: RsCaptionDefContainerNoStr; Hint: RsHintDefContainerNoStr), // joDefContainerNoStr - //(Id: -1; Caption: RsCaptionDef7zStaticLink; Hint: RsHintDef7zStaticLink), // joDef7zStaticLink - (Id: -1; Caption: RsCaptionDef7zLinkDLL; Hint: RsHintDef7zLinkDLL), // joDef7zLinkDLL - (Id: -1; Caption: RsCaptionDef7zLinkOnRequest; Hint: RsHintDef7zLinkOnRequest), // joDef7zLinkOnRequest - (Id: -1; Caption: RsCaptionEnvironment; Hint: RsHintEnvironment), // joEnvironment - (Id: -1; Caption: RsCaptionEnvLibPath; Hint: RsHintEnvLibPath), // joEnvLibPath - (Id: -1; Caption: RsCaptionEnvBrowsingPath; Hint: RsHintEnvBrowsingPath), // joEnvBrowsingPath - (Id: -1; Caption: RsCaptionEnvDebugDCUPath; Hint: RsHintEnvDebugDCUPath), // joEnvDebugDCUPath - (Id: -1; Caption: RsCaptionMake; Hint: RsHintMake), // joMake - (Id: -1; Caption: RsCaptionMakeRelease; Hint: RsHintMakeRelease), // joMakeRelease - (Id: -1; Caption: RsCaptionMakeVCL; Hint: RsHintMakeReleaseVCL), // joMakeReleaseVCL - (Id: -1; Caption: RsCaptionMakeDebug; Hint: RsHintMakeDebug), // joMakeDebug - (Id: -1; Caption: RsCaptionMakeVCL; Hint: RsHintMakeDebugVCL), // joMakeDebugVCL - (Id: -1; Caption: RsCaptionCopyHppFiles; Hint: RsHintCopyHppFiles), // joCopyHppFiles - (Id: -1; Caption: RsCaptionCheckHppFiles; Hint: RsHintCheckHppFiles), // joCheckHppFiles - (Id: -1; Caption: RsCaptionPackages; Hint: RsHintPackages), // joPackages - (Id: -1; Caption: RsCaptionVclPackage; Hint: RsHintVclPackage), // joVclPackage - (Id: -1; Caption: RsCaptionDualPackages; Hint: RsHintDualPackages), // joDualPackages - (Id: -1; Caption: RsCaptionCopyPackagesHppFiles; Hint: RsHintCopyPackagesHppFiles), // joCopyPackagesHppFiles - (Id: -1; Caption: RsCaptionMapCreate; Hint: RsHintMapCreate), // joMapCreate - (Id: -1; Caption: RsCaptionJdbgCreate; Hint: RsHintJdbgCreate), // joJdbgCreate - (Id: -1; Caption: RsCaptionJdbgInsert; Hint: RsHintJdbgInsert), // joJdbgInsert - (Id: -1; Caption: RsCaptionMapDelete; Hint: RsHintMapDelete), // joMapDelete - (Id: -1; Caption: RsCaptionExperts; Hint: RsHintExperts), // joExperts - (Id: -1; Caption: RsCaptionExpertsDsgnPackages; Hint: RsHintExpertsDsgnPackages), // joExpertsDsgnPackages - (Id: -1; Caption: RsCaptionExpertsDLL; Hint: RsHintExpertsDLL), // joExpertsDLL - (Id: -1; Caption: RsCaptionExpertDebug; Hint: RsHintExpertDebug), // joExpertDebug - (Id: -1; Caption: RsCaptionExpertAnalyzer; Hint: RsHintExpertAnalyzer), // joExpertAnalyzer - (Id: -1; Caption: RsCaptionExpertFavorite; Hint: RsHintExpertFavorite), // joExpertFavorite - (Id: -1; Caption: RsCaptionExpertRepository; Hint: RsHintExpertRepository), // joExpertRepository - (Id: -1; Caption: RsCaptionExpertThreadNames; Hint: RsHintExpertThreadNames), // joExpertThreadNames - (Id: -1; Caption: RsCaptionExpertUses; Hint: RsHintExpertUses), // joExpertUses - (Id: -1; Caption: RsCaptionExpertSimdView; Hint: RsHintExpertSimdView), // joExpertSimdView - (Id: -1; Caption: RsCaptionExpertVersionControl; Hint: RsHintExpertVersionControl), // joExpertVersionControl - (Id: -1; Caption: RsCaptionExpertStackTraceViewer; Hint: RsHintExpertStackTraceViewer), //joExpertStackTraceViewer - (Id: -1; Caption: RsCaptionExceptDlg; Hint: RsHintExceptDlg), // joExceptDlg - (Id: -1; Caption: RsCaptionExceptDlgVCL; Hint: RsHintExceptDlgVCL), // joExceptDlgVCL - (Id: -1; Caption: RsCaptionExceptDlgVCLSnd; Hint: RsHintExceptDlgVCLSnd), // joExceptDlgVCLSnd - (Id: -1; Caption: RsCaptionHelp; Hint: RsHintHelp), // joHelp - (Id: -1; Caption: RsCaptionHelpHlp; Hint: RsHintHelpHlp), // joHelpHlp - (Id: -1; Caption: RsCaptionHelpChm; Hint: RsHintHelpChm), // joHelpChm - (Id: -1; Caption: RsCaptionHelpHxS; Hint: RsHintHelpHxS), // joHelpHxS - (Id: -1; Caption: RsCaptionHelpHxSPlugin; Hint: RsHintHelpHxSPlugin), // joHelpHxSPlugin - (Id: -1; Caption: RsCaptionMakeDemos; Hint: RsHintMakeDemos) // joMakeDemos + (Id: -1; Caption: @RsCaptionLibrary; Hint: @RsHintLibrary), // joLibrary + (Id: -1; Caption: @RsCaptionDef; Hint: @RsHintDef), // joDef + (Id: -1; Caption: @RsCaptionDefMath; Hint: @RsHintDefMath), // joDefMath + (Id: -1; Caption: @RsCaptionDefDebug; Hint: @RsHintDefDebug), // joDefDebug + (Id: -1; Caption: @RsCaptionDefEDI; Hint: @RsHintDefEDI), // joDefEDI + (Id: -1; Caption: @RsCaptionDefPCRE; Hint: @RsHintDefPCRE), // joDefPCRE + (Id: -1; Caption: @RsCaptionDefBZip2; Hint: @RsHintDefBZip2), // joDefBZip2 + (Id: -1; Caption: @RsCaptionDefZLib; Hint: @RsHintDefZLib), // joDefZLib + (Id: -1; Caption: @RsCaptionDefUnicode; Hint: @RsHintDefUnicode), // joDefUnicode + (Id: -1; Caption: @RsCaptionDefContainer; Hint: @RsHintDefContainer), // joDefContainer + (Id: -1; Caption: @RsCaptionDef7z; Hint: @RsHintDef7z), // joDef7z + (Id: -1; Caption: @RsCaptionDefThreadSafe; Hint: @RsHintDefThreadSafe), // joDefThreadSafe + (Id: -1; Caption: @RsCaptionDefDropObsoleteCode; Hint: @RsHintDefDropObsoleteCode), // joDefDropObsoleteCode + (Id: -1; Caption: @RsCaptionDefUnitVersioning; Hint: @RsHintDefUnitVersioning), // joDefUnitVersioning + (Id: -1; Caption: @RsCaptionDefMathPrecSingle; Hint: @RsHintDefMathPrecSingle), // ioDefMathPrecSingle + (Id: -1; Caption: @RsCaptionDefMathPrecDouble; Hint: @RsHintDefMathPrecDouble), // joDefMathPrecDouble + (Id: -1; Caption: @RsCaptionDefMathPrecExtended; Hint: @RsHintDefMathPrecExtended), // joDefMathPrecExtended + (Id: -1; Caption: @RsCaptionDefMathExtremeValues; Hint: @RsHintDefMathExtremeValues), // joDefMathExtremeValues + (Id: -1; Caption: @RsCaptionDefHookDllExceptions; Hint: @RsHintDefHookDllExceptions), // joDefHookDllExceptions + (Id: -1; Caption: @RsCaptionDefDebugNoBinary; Hint: @RsHintDefDebugNoBinary), // joDefDebugNoBinary + (Id: -1; Caption: @RsCaptionDefDebugNoTD32; Hint: @RsHintDefDebugNoTD32), // joDefDebugNoTD32 + (Id: -1; Caption: @RsCaptionDefDebugNoMap; Hint: @RsHintDefDebugNoMap), // joDefDebugNoMap + (Id: -1; Caption: @RsCaptionDefDebugNoExports; Hint: @RsHintDefDebugNoExports), // joDefDebugNoExports + (Id: -1; Caption: @RsCaptionDefDebugNoSymbols; Hint: @RsHintDefDebugNoSymbols), // joDefDebugNoSymbols + (Id: -1; Caption: @RsCaptionDefEDIWeakPackageUnits; Hint: @RsHintDefEDIWeakPackageUnits), // joDefEDIWeakPackageUnits + (Id: -1; Caption: @RsCaptionDefPCREStaticLink; Hint: @RsHintDefPCREStaticLink), // joDefPCREStaticLink + (Id: -1; Caption: @RsCaptionDefPCRELinkDLL; Hint: @RsHintDefPCRELinkDLL), // joDefPCRELinkDLL + (Id: -1; Caption: @RsCaptionDefPCRELinkOnRequest; Hint: @RsHintDefPCRELinkOnRequest), // joDefPCRELinkOnRequest + (Id: -1; Caption: @RsCaptionDefBZip2StaticLink; Hint: @RsHintDefBZip2StaticLink), // joDefBZip2StaticLink + (Id: -1; Caption: @RsCaptionDefBZip2LinkDLL; Hint: @RsHintDefBZip2LinkDLL), // joDefBZip2LinkDLL + (Id: -1; Caption: @RsCaptionDefBZip2LinkOnRequest; Hint: @RsHintDefBZip2LinkOnRequest), // joDefBZip2LinkOnRequest + (Id: -1; Caption: @RsCaptionDefZLibStaticLink; Hint: @RsHintDefZLibStaticLink), // joDefZLibStaticLink + (Id: -1; Caption: @RsCaptionDefZLibLinkDLL; Hint: @RsHintDefZLibLinkDLL), // joDefZLibLinkDLL + (Id: -1; Caption: @RsCaptionDefZLibLinkOnRequest; Hint: @RsHintDefZLibLinkOnRequest), // joDefZLibLinkOnRequest + (Id: -1; Caption: @RsCaptionDefUnicodeSilentFailure; Hint: @RsHintDefUnicodeSilentFailure), // joDefUnicodeSilentFailure + (Id: -1; Caption: @RsCaptionDefUnicodeRawData; Hint: @RsHintDefUnicodeRawData), // joDefUnicodeRawData + (Id: -1; Caption: @RsCaptionDefUnicodeZLibData; Hint: @RsHintDefUnicodeZLibData), // joDefUnicodeZLibData + (Id: -1; Caption: @RsCaptionDefUnicodeBZip2Data; Hint: @RsHintDefUnicodeBZip2Data), // joDefUnicodeBZip2Data + (Id: -1; Caption: @RsCaptionDefContainerAnsiStr; Hint: @RsHintDefContainerAnsiStr), // joDefContainerAnsiStr + (Id: -1; Caption: @RsCaptionDefContainerWideStr; Hint: @RsHintDefContainerWideStr), // joDefContainerWideStr + (Id: -1; Caption: @RsCaptionDefContainerUnicodeStr; Hint: @RsHintDefContainerUnicodeStr), // joDefContainerUnicodeStr + (Id: -1; Caption: @RsCaptionDefContainerNoStr; Hint: @RsHintDefContainerNoStr), // joDefContainerNoStr + //(Id: -1; Caption: @RsCaptionDef7zStaticLink; Hint: @RsHintDef7zStaticLink), // joDef7zStaticLink + (Id: -1; Caption: @RsCaptionDef7zLinkDLL; Hint: @RsHintDef7zLinkDLL), // joDef7zLinkDLL + (Id: -1; Caption: @RsCaptionDef7zLinkOnRequest; Hint: @RsHintDef7zLinkOnRequest), // joDef7zLinkOnRequest + (Id: -1; Caption: @RsCaptionEnvironment; Hint: @RsHintEnvironment), // joEnvironment + (Id: -1; Caption: @RsCaptionEnvLibPath; Hint: @RsHintEnvLibPath), // joEnvLibPath + (Id: -1; Caption: @RsCaptionEnvBrowsingPath; Hint: @RsHintEnvBrowsingPath), // joEnvBrowsingPath + (Id: -1; Caption: @RsCaptionEnvDebugDCUPath; Hint: @RsHintEnvDebugDCUPath), // joEnvDebugDCUPath + (Id: -1; Caption: @RsCaptionMake; Hint: @RsHintMake), // joMake + (Id: -1; Caption: @RsCaptionMakeRelease; Hint: @RsHintMakeRelease), // joMakeRelease + (Id: -1; Caption: @RsCaptionMakeVCL; Hint: @RsHintMakeReleaseVCL), // joMakeReleaseVCL + (Id: -1; Caption: @RsCaptionMakeDebug; Hint: @RsHintMakeDebug), // joMakeDebug + (Id: -1; Caption: @RsCaptionMakeVCL; Hint: @RsHintMakeDebugVCL), // joMakeDebugVCL + (Id: -1; Caption: @RsCaptionCopyHppFiles; Hint: @RsHintCopyHppFiles), // joCopyHppFiles + (Id: -1; Caption: @RsCaptionCheckHppFiles; Hint: @RsHintCheckHppFiles), // joCheckHppFiles + (Id: -1; Caption: @RsCaptionPackages; Hint: @RsHintPackages), // joPackages + (Id: -1; Caption: @RsCaptionVclPackage; Hint: @RsHintVclPackage), // joVclPackage + (Id: -1; Caption: @RsCaptionDualPackages; Hint: @RsHintDualPackages), // joDualPackages + (Id: -1; Caption: @RsCaptionCopyPackagesHppFiles; Hint: @RsHintCopyPackagesHppFiles), // joCopyPackagesHppFiles + (Id: -1; Caption: @RsCaptionMapCreate; Hint: @RsHintMapCreate), // joMapCreate + (Id: -1; Caption: @RsCaptionJdbgCreate; Hint: @RsHintJdbgCreate), // joJdbgCreate + (Id: -1; Caption: @RsCaptionJdbgInsert; Hint: @RsHintJdbgInsert), // joJdbgInsert + (Id: -1; Caption: @RsCaptionMapDelete; Hint: @RsHintMapDelete), // joMapDelete + (Id: -1; Caption: @RsCaptionExperts; Hint: @RsHintExperts), // joExperts + (Id: -1; Caption: @RsCaptionExpertsDsgnPackages; Hint: @RsHintExpertsDsgnPackages), // joExpertsDsgnPackages + (Id: -1; Caption: @RsCaptionExpertsDLL; Hint: @RsHintExpertsDLL), // joExpertsDLL + (Id: -1; Caption: @RsCaptionExpertDebug; Hint: @RsHintExpertDebug), // joExpertDebug + (Id: -1; Caption: @RsCaptionExpertAnalyzer; Hint: @RsHintExpertAnalyzer), // joExpertAnalyzer + (Id: -1; Caption: @RsCaptionExpertFavorite; Hint: @RsHintExpertFavorite), // joExpertFavorite + (Id: -1; Caption: @RsCaptionExpertRepository; Hint: @RsHintExpertRepository), // joExpertRepository + (Id: -1; Caption: @RsCaptionExpertThreadNames; Hint: @RsHintExpertThreadNames), // joExpertThreadNames + (Id: -1; Caption: @RsCaptionExpertUses; Hint: @RsHintExpertUses), // joExpertUses + (Id: -1; Caption: @RsCaptionExpertSimdView; Hint: @RsHintExpertSimdView), // joExpertSimdView + (Id: -1; Caption: @RsCaptionExpertVersionControl; Hint: @RsHintExpertVersionControl), // joExpertVersionControl + (Id: -1; Caption: @RsCaptionExpertStackTraceViewer; Hint: @RsHintExpertStackTraceViewer), //joExpertStackTraceViewer + (Id: -1; Caption: @RsCaptionExceptDlg; Hint: @RsHintExceptDlg), // joExceptDlg + (Id: -1; Caption: @RsCaptionExceptDlgVCL; Hint: @RsHintExceptDlgVCL), // joExceptDlgVCL + (Id: -1; Caption: @RsCaptionExceptDlgVCLSnd; Hint: @RsHintExceptDlgVCLSnd), // joExceptDlgVCLSnd + (Id: -1; Caption: @RsCaptionHelp; Hint: @RsHintHelp), // joHelp + (Id: -1; Caption: @RsCaptionHelpHlp; Hint: @RsHintHelpHlp), // joHelpHlp + (Id: -1; Caption: @RsCaptionHelpChm; Hint: @RsHintHelpChm), // joHelpChm + (Id: -1; Caption: @RsCaptionHelpHxS; Hint: @RsHintHelpHxS), // joHelpHxS + (Id: -1; Caption: @RsCaptionHelpHxSPlugin; Hint: @RsHintHelpHxSPlugin), // joHelpHxSPlugin + (Id: -1; Caption: @RsCaptionMakeDemos; Hint: @RsHintMakeDemos) // joMakeDemos ); const + // Names + OptionNameBPLPath = 'BPL-Path'; + OptionNameDCPPath = 'DCP-Path'; + OptionNameBPIPath = 'BPI-Path'; + VersionDir = '\%s'; VersionDirExp = '\%%s'; @@ -669,10 +421,6 @@ JclContainersDpk = 'JclContainers'; JclVclDpk = 'JclVcl'; - // .net packages - JediJclDpk = 'Jedi.Jcl'; - JediJclContainersDpk = 'Jedi.JclContainers'; - JclExpertBase = 'JclBaseExpert'; JclExpertDebug = 'JclDebugExpert'; JclExpertAnalyzer = 'JclProjectAnalysisExpert'; @@ -713,13 +461,6 @@ ExceptDlgVclFileName = 'ExceptDlg.pas'; ExceptDlgVclSndFileName = 'ExceptDlgMail.pas'; - ExceptDlgVclName = 'Exception Dialog'; - ExceptDlgVclSndName = 'Exception Dialog with Send'; - - ExceptDlgDescription = 'JCL Application exception dialog'; - ExceptDlgAuthor = 'Project JEDI'; - ExceptDlgPage = 'Dialogs'; - JclChmHelpFile = 'help' + DirDelimiter + 'JCLHelp.chm'; JclHlpHelpFile = 'help' + DirDelimiter + 'JCLHelp.hlp'; JclHxSHelpFile = 'help' + DirDelimiter + 'JCLHelp.HxS'; @@ -758,19 +499,6 @@ ProfilesSectionName = 'Profiles'; -resourcestring - RsInstallMessage = 'Installing %s...'; - //RsStatusDetailMessage = 'Installing %s for %s...'; - RsUninstallMessage = 'Removing %s...'; - RsBuildingMessage = 'Building %s...'; - //RsBuildingDemosMessage = 'Building demo projects...'; - //RsBuildingDemosByTargetMessage = 'Building demo projects by %s...'; - RsCompilingMessage = 'Compiling %s...'; - //RsInstallFailed = 'Installation of %s failed, see %s for details.'; - RsInvalidBplPath = 'Invalid BPL path "%s"'; - RsInvalidDcpPath = 'Invalid DCP path "%s"'; - RsLibDescriptor = '%s library %sunits for %s'; - function FullPackageFileName(Target: TJclBorRADToolInstallation; const BaseName: string): string; const S = 'packages' + VersionDir + DirDelimiter + '%s'; @@ -937,7 +665,7 @@ if Assigned(GUIPage) then GUIPage.MarkOptionBegin(OptionData[Option].Id); if Assigned(GUI) then - GUI.Status := OptionData[Option].Hint; + GUI.Status := LoadResString(@OptionData[Option].Hint); end; procedure TJclInstallation.MarkOptionEnd(Id: Integer; Success: Boolean); @@ -968,6 +696,12 @@ end; procedure AddOption(Option: TInstallerOption; GUIOptions: TJediInstallGUIOptions; + Parent: Integer; Caption, Hint: PResStringRec); overload; + begin + AddOption(Option, GUIOptions, Parent, LoadResString(Caption), LoadResString(Hint)); + end; + + procedure AddOption(Option: TInstallerOption; GUIOptions: TJediInstallGUIOptions; Parent: Integer); overload; begin AddOption(Option, GUIOptions, Parent, OptionData[Option].Caption, OptionData[Option].Hint); @@ -1078,8 +812,8 @@ if bpBCBuilder32 in Target.Personalities then begin AddOption(joJCLCopyHppFiles, [goChecked], OptionData[joJCLMake].Id, - Format(OptionData[joJCLCopyHppFiles].Caption, [Target.VclIncludeDir]), - OptionData[joJCLCopyHppFiles].Hint); + Format(LoadResString(OptionData[joJCLCopyHppFiles].Caption), [Target.VclIncludeDir]), + LoadResString(OptionData[joJCLCopyHppFiles].Hint)); AddOption(joJCLCheckHppFiles, [goChecked], joJCLMake); end; end; @@ -1137,13 +871,13 @@ begin AddOption(joJCLDualPackages, [goStandAloneParent, goChecked], Parent); AddOption(joJCLCopyPackagesHppFiles, [goChecked], OptionData[joJCLDualPackages].Id, - Format(OptionData[joJCLCopyPackagesHppFiles].Caption, [Target.VclIncludeDir]), - OptionData[joJCLCopyPackagesHppFiles].Hint); + Format(LoadResString(OptionData[joJCLCopyPackagesHppFiles].Caption), [Target.VclIncludeDir]), + LoadResString(OptionData[joJCLCopyPackagesHppFiles].Hint)); end else AddOption(joJCLCopyPackagesHppFiles, [goChecked], OptionData[Parent].Id, - Format(OptionData[joJCLCopyPackagesHppFiles].Caption, [Target.VclIncludeDir]), - OptionData[joJCLCopyPackagesHppFiles].Hint); + Format(LoadResString(OptionData[joJCLCopyPackagesHppFiles].Caption), [Target.VclIncludeDir]), + LoadResString(OptionData[joJCLCopyPackagesHppFiles].Hint)); end; AddOption(joJCLMapCreate, [goExpandable, goStandaloneParent, goNoAutoCheck], Parent); @@ -1270,14 +1004,14 @@ end; end; - StoredValue := AConfiguration.OptionAsStringByName[TargetName, RsNameBPLPath]; + StoredValue := AConfiguration.OptionAsStringByName[TargetName, OptionNameBPLPath]; if StoredValue = '' then StoredValue := Target.BPLOutputPath; GUIPage.Directories[FGUIBPLPathIndex] := StoredValue; if Target.RadToolKind = brCppBuilder then - StoredValue := AConfiguration.OptionAsStringByName[TargetName, RsNameBPIPath] + StoredValue := AConfiguration.OptionAsStringByName[TargetName, OptionNameBPIPath] else - StoredValue := AConfiguration.OptionAsStringByName[TargetName, RsNameDCPPath]; + StoredValue := AConfiguration.OptionAsStringByName[TargetName, OptionNameDCPPath]; if StoredValue = '' then StoredValue := FJclDcpPath; GUIPage.Directories[FGUIDCPPathIndex] := StoredValue; @@ -1330,11 +1064,11 @@ if not Target.IsTurboExplorer then begin - FGUIBPLPathIndex := GUIPage.AddDirectory(RsCaptionBPLPath); + FGUIBPLPathIndex := GUIPage.AddDirectory(LoadResString(@RsCaptionBPLPath)); if Target.RadToolKind = brCppBuilder then - FGUIDCPPathIndex := GUIPage.AddDirectory(RsCaptionBPIPath) + FGUIDCPPathIndex := GUIPage.AddDirectory(LoadResString(@RsCaptionBPIPath)) else - FGUIDCPPathIndex := GUIPage.AddDirectory(RsCaptionDCPPath); + FGUIDCPPathIndex := GUIPage.AddDirectory(LoadResString(@RsCaptionDCPPath)); end; LoadValues; @@ -1354,7 +1088,7 @@ WriteLog(''); WriteLog(StrPadRight(StrRepeat('=', 10) + TargetName, 80, '=')); WriteLog(''); - WriteLog('Installed personalities :'); + WriteLog(LoadResString(@RsLogInstalledPersonalities)); for Personality := Low(TJclBorPersonality) to High(TJclBorPersonality) do if Personality in Target.Personalities then begin @@ -1363,6 +1097,7 @@ WriteLog(''); WriteLog(StrRepeat('=', 80)); WriteLog(''); + WriteLog(LoadResString(@RsLogMultipleProfile)); if AProfilesManager.MultipleProfileMode then begin for Index := 0 to AProfilesManager.ProfileCount - 1 do @@ -1370,7 +1105,7 @@ WriteLog(AProfilesManager.ProfileNames[Index]); end else - WriteLog('Single profile installation'); + WriteLog(LoadResString(@RsLogSingleProfile)); WriteLog(''); WriteLog(StrRepeat('=', 80)); WriteLog(''); @@ -1383,7 +1118,7 @@ {$IFDEF MSWINDOWS} if (not OptionChecked[joJCLPackages] or (Target.SupportsVCL and not OptionChecked[joJCLVCLPackage])) and Assigned(GUI) and not Target.IsTurboExplorer then - Result := GUI.Dialog(RsWarningPackageNodeNotSelected, dtConfirmation, [drYes, drNo]) = drYes; + Result := GUI.Dialog(LoadResString(@RsWarningPackageNodeNotSelected), dtConfirmation, [drYes, drNo]) = drYes; {$ENDIF MSWINDOWS} if Result and OptionChecked[joJCLPackages] then @@ -1393,24 +1128,24 @@ begin Result := False; if not Assigned(GUI) then - WriteLog(Format(RsInvalidBplPath, [GetBplPath])) - else if GUI.Dialog(Format(RsWarningCreatePath, ['BPL']), dtWarning, [drYes, drNo]) = drYes then + WriteLog(Format(LoadResString(@RsLogInvalidBplPath), [GetBplPath])) + else if GUI.Dialog(Format(LoadResString(@RsWarningCreatePath), ['BPL']), dtWarning, [drYes, drNo]) = drYes then begin Result := ForceDirectories(GetBplPath); if not Result then - GUI.Dialog(Format(RsErrorCantCreatePath, [GetBplPath]), dtError, [drCancel]); + GUI.Dialog(Format(LoadResString(@RsErrorCantCreatePath), [GetBplPath]), dtError, [drCancel]); end; end; if not DirectoryExists(GetDcpPath) then begin Result := False; if not Assigned(GUI) then - WriteLog(Format(RsInvalidDcpPath, [GetDcpPath])) - else if GUI.Dialog(Format(RsWarningCreatePath, ['DCP']), dtWarning, [drYes, drNo]) = drYes then + WriteLog(Format(LoadResString(@RsLogInvalidDcpPath), [GetDcpPath])) + else if GUI.Dialog(Format(LoadResString(@RsWarningCreatePath), ['DCP']), dtWarning, [drYes, drNo]) = drYes then begin Result := ForceDirectories(GetDcpPath); if not Result then - GUI.Dialog(Format(RsErrorCantCreatePath, [GetDcpPath]), dtError, [drCancel]); + GUI.Dialog(Format(LoadResString(@RsErrorCantCreatePath), [GetDcpPath]), dtError, [drCancel]); end; end; end; @@ -1428,7 +1163,7 @@ DefineText = '$DEFINE'; NotDefineText = '.' + DefineText; begin - WriteLog('Saving conditional defines...'); + WriteLog(LoadResString(@RsLogConditionalDefines)); Result := True; TemplateFileName := PathAddSeparator(Distribution.JclIncludeDir) + 'jcl.template.inc'; IncludeFileName := Format('%sjcl%s.inc', [PathAddSeparator(Distribution.JclIncludeDir), Target.IDEVersionNumberStr]); @@ -1436,7 +1171,7 @@ IncludeFile := TStringList.Create; try IncludeFile.LoadFromFile(TemplateFileName); - WriteLog(Format('Loaded template for include file %s', [TemplateFileName])); + WriteLog(Format(LoadResString(@RsLogLoadTemplate), [TemplateFileName])); for IndexLine := 0 to IncludeFile.Count - 1 do begin @@ -1467,7 +1202,7 @@ end; end; IncludeFile.SaveToFile(IncludeFileName); - WriteLog(Format('Saved include file %s', [IncludeFileName])); + WriteLog(Format(LoadResString(@RsLogSaveIncludeFile), [IncludeFileName])); finally IncludeFile.Free; end; @@ -1579,7 +1314,7 @@ Result := ATarget.AddToLibrarySearchPath(FLibReleaseDir) and ATarget.AddToLibrarySearchPath(Distribution.JclIncludeDir); if Result then begin - WriteLog(Format('Added "%s;%s" to library search path.', [FLibReleaseDir, Distribution.JclIncludeDir])); + WriteLog(Format(LoadResString(@RsLogAddLibrarySearchPath2), [FLibReleaseDir, Distribution.JclIncludeDir])); {$IFDEF MSWINDOWS} if (ATarget.RadToolKind = brBorlandDevStudio) and (bpBCBuilder32 in ATarget.Personalities) and OptionChecked[joJCLDualPackages] then @@ -1588,63 +1323,58 @@ Result := AddToCppSearchPath(FLibReleaseDir) and AddToCppSearchPath(Distribution.JclIncludeDir) and ((IDEVersionNumber < 5) or AddToCppLibraryPath(FLibReleaseDir)); if Result then - WriteLog(Format('Added "%s;%s" to cpp search path.', [FLibReleaseDir, Distribution.JclIncludeDir])) + WriteLog(Format(LoadResString(@RsLogAddCppSearchPath2), [FLibReleaseDir, Distribution.JclIncludeDir])) else - WriteLog('Failed to add cpp search paths.'); + WriteLog(LoadResString(@RsLogFailedAddCppSearchPath)); end; {$ENDIF MSWINDOWS} if ATarget.IsTurboExplorer then begin Result := ATarget.AddToLibrarySearchPath(Distribution.JclSourcePath); if Result then - WriteLog(Format('Added "%s" to library search path.', [Distribution.JclSourcePath])) + WriteLog(Format(LoadResString(@RsLogAddLibrarySearchPath1), [Distribution.JclSourcePath])) else - WriteLog('Failed to add library search paths.'); + WriteLog(LoadResString(@RsLogFailedAddLibrarySearchPath)); end; end else - WriteLog('Failed to add library search paths.'); + WriteLog(LoadResString(@RsLogFailedAddLibrarySearchPath)); MarkOptionEnd(joJCLEnvLibPath, Result); end; - + if Result and OptionChecked[joJCLEnvBrowsingPath] then begin MarkOptionBegin(joJCLEnvBrowsingPath); + Result := ATarget.AddToLibraryBrowsingPath(Distribution.JclSourcePath); if Result then begin - Result := ATarget.AddToLibraryBrowsingPath(Distribution.JclSourcePath); - if Result then + WriteLog(Format(LoadResString(@RsLogAddLibraryBrowsingPath), [Distribution.JclSourcePath])); + {$IFDEF MSWINDOWS} + if (ATarget.RadToolKind = brBorlandDevStudio) and (bpBCBuilder32 in ATarget.Personalities) + and OptionChecked[joJCLDualPackages] then + with TJclBDSInstallation(ATarget) do begin - WriteLog(Format('Added "%s" to library browsing path.', [Distribution.JclSourcePath])); - {$IFDEF MSWINDOWS} - if (ATarget.RadToolKind = brBorlandDevStudio) and (bpBCBuilder32 in ATarget.Personalities) - and OptionChecked[joJCLDualPackages] then - with TJclBDSInstallation(ATarget) do - begin - Result := AddToCppBrowsingPath(Distribution.JclSourcePath); - if Result then - WriteLog(Format('Added "%s" to cpp browsing path.', [Distribution.JclSourcePath])) - else - WriteLog('Failed to add cpp browsing paths.'); - end; - {$ENDIF MSWINDOWS} - end - else - WriteLog('Failed to add library browsing path'); + Result := AddToCppBrowsingPath(Distribution.JclSourcePath); + if Result then + WriteLog(Format(LoadResString(@RsLogAddCppBrowsingPath), [Distribution.JclSourcePath])) + else + WriteLog(LoadResString(@RsLogFailedAddCppBrowsingPath)); + end; + {$ENDIF MSWINDOWS} end else - WriteLog('Failed to add library browsing path.'); + WriteLog(LoadResString(@RsLogFailedAddLibraryBrowsingPath)); MarkOptionEnd(joJCLEnvBrowsingPath, Result); end; - + if Result and OptionChecked[joJCLEnvDebugDCUPath] then begin MarkOptionBegin(joJCLEnvDebugDCUPath); Result := ATarget.AddToDebugDCUPath(FLibDebugDir); if Result then - WriteLog(Format('Added "%s" to Debug DCU Path.', [FLibDebugDir])) + WriteLog(Format(LoadResString(@RsLogAddDebugDCUPath), [FLibDebugDir])) else - WriteLog('Failed to add debug DCU path'); + WriteLog(LoadResString(@RsLogFailedAddDebugDCUPath)); MarkOptionEnd(joJCLEnvDebugDCUPath, Result); end; @@ -1776,7 +1506,7 @@ PathListIncludeItems(PathEnvVar, RegReadStringDef(HKLM, RegHKLMEnvironmentVar, PathEnvironmentVar, '')); ExpandEnvironmentVar(PathEnvVar); if (PathListItemIndex(PathEnvVar, GetBplPath) = -1) and (PathListItemIndex(PathEnvVar, PathAddSeparator(GetBplPath)) = -1) - and Assigned(GUI) and (GUI.Dialog(RsWarningAddPathToEnvironment, dtWarning, [drYes, drNo]) = drYes) then + and Assigned(GUI) and (GUI.Dialog(LoadResString(@RsWarningAddPathToEnvironment), dtWarning, [drYes, drNo]) = drYes) then begin PathEnvVar := RegReadStringDef(ATarget.RootKey, RegHKCUEnvironmentVar, PathEnvironmentVar, ''); PathListIncludeItems(PathEnvVar, GetBplPath); @@ -1868,13 +1598,13 @@ begin Result := True; try - WriteLog(Format('Installing %s...', [DialogName])); + WriteLog(Format(LoadResString(@RsLogInstalling), [DialogName])); Target.Repository.AddObject(DialogFileName, BorRADToolRepositoryFormTemplate, - Target.Repository.FindPage(ExceptDlgPage, 1), DialogName, DialogIconFileName, - ExceptDlgDescription, ExceptDlgAuthor, BorRADToolRepositoryDesignerDfm); + Target.Repository.FindPage(LoadResString(@RsExceptDlgPage), 1), DialogName, DialogIconFileName, + LoadResString(@RsExceptDlgDescription), LoadResString(@RsExceptDlgAuthor), BorRADToolRepositoryDesignerDfm); WriteLog('-> ' + DialogFileName); WriteLog('-> ' + DialogIconFileName); - WriteLog('...done.'); + WriteLog(LoadResString(@RsLogDone)); except Result := False; end; @@ -1888,14 +1618,14 @@ if OptionChecked[joJCLExceptDlgVCL] then begin MarkOptionBegin(joJCLExceptDlgVCL); - Result := AddDialogToRepository(ExceptDlgVclName, Distribution.VclDialogFileName, + Result := AddDialogToRepository(LoadResString(@RsExceptDlgVclName), Distribution.VclDialogFileName, Distribution.VclDialogIconFileName, BorRADToolRepositoryDesignerDfm); MarkOptionEnd(joJCLExceptDlgVCL, Result); end; if Result and OptionChecked[joJCLExceptDlgVCLSnd] then begin MarkOptionBegin(joJCLExceptDlgVCLSnd); - Result := AddDialogToRepository(ExceptDlgVclSndName, Distribution.VclDialogSendFileName, + Result := AddDialogToRepository(LoadResString(@RsExceptDlgVclSndName), Distribution.VclDialogSendFileName, Distribution.VclDialogSendIconFileName, BorRADToolRepositoryDesignerDfm); MarkOptionEnd(joJCLExceptDlgVCLSnd, Result); end; @@ -1934,9 +1664,9 @@ begin Result := Target.OpenHelp.AddHelpFile(Distribution.FJclHlpHelpFileName, JclHelpIndexName); if Result then - WriteLog(Format('Added %s to %s Online Help', [Distribution.FJclHlpHelpFileName, Target.RADToolName])) + WriteLog(Format(LoadResString(@RsLogAddOpenHelp), [Distribution.FJclHlpHelpFileName, Target.RADToolName])) else - WriteLog('failed to add help file to Online Help'); + WriteLog(LoadResString(@RsLogFailedAddOpenHelp)); end; function RegisterHelp2Files: Boolean; @@ -1949,7 +1679,7 @@ if (Target.RadToolKind <> brBorlandDevStudio) or (Target.VersionNumber < 3) then Exit; - WriteLog('Registering help 2.0 files...'); + WriteLog(LoadResString(@RsLogAddHelp2Files)); // to avoid Write AV, data have to be copied in data segment NameSpace := Help2NameSpace; @@ -1972,7 +1702,7 @@ Distribution.RegHelpCommitTransaction; - WriteLog('...defered'); + WriteLog(LoadResString(@RsLogDefered)); end; begin Result := True; @@ -2052,7 +1782,7 @@ Target.OutputCallback := WriteLog; if Assigned(GUI) then - GUI.Status := Format(RsInstallMessage, [TargetName]); + GUI.Status := Format(LoadResString(@RsLogInstalling), [TargetName]); if Assigned(GUIPage) then begin @@ -2132,9 +1862,9 @@ if ATarget.RemoveFromLibrarySearchPath(FLibReleaseDir) and ATarget.RemoveFromLibrarySearchPath(Distribution.JclSourceDir) and ATarget.RemoveFromLibrarySearchPath(Distribution.JclIncludeDir) then - WriteLog(Format('Removed "%s;%s;%s" from library search path.', [FLibReleaseDir, Distribution.JclSourceDir, Distribution.JclIncludeDir])) + WriteLog(Format(LoadResString(@RsLogDelLibrarySearchPath3), [FLibReleaseDir, Distribution.JclSourceDir, Distribution.JclIncludeDir])) else - WriteLog('Failed to remove library search path.'); + WriteLog(LoadResString(@RsLogFailedDelLibrarySearchPath)); {$IFDEF MSWINDOWS} if (ATarget.RadToolKind = brBorlandDevStudio) and (bpBCBuilder32 in ATarget.Personalities) then with TJclBDSInstallation(ATarget) do @@ -2143,31 +1873,33 @@ RemoveFromCppSearchPath(Distribution.JclSourceDir) and RemoveFromCppSearchPath(Distribution.JclIncludeDir) and ((IDEVersionNumber < 5) or RemoveFromCppLibraryPath(FLibReleaseDir)) then - WriteLog(Format('Removed "%s;%s;%s" from cpp search path.', [FLibReleaseDir, Distribution.JclSourceDir, Distribution.JclIncludeDir])) + WriteLog(Format(LoadResString(@RsLogDelCppSearchPath3), [FLibReleaseDir, Distribution.JclSourceDir, Distribution.JclIncludeDir])) else - WriteLog('Failed to remove cpp search path.'); + WriteLog(LoadResString(@RsLogFailedDelCppSearchPath)); end; {$ENDIF MSWINDOWS} //ioJclEnvBrowsingPath if ATarget.RemoveFromLibraryBrowsingPath(Distribution.JclSourcePath) then - WriteLog(Format('Removed "%s" from library browsing path.', [Distribution.JclSourcePath])) + WriteLog(Format(LoadResString(@RsLogDelLibraryBrowsingPath), [Distribution.JclSourcePath])) else - WriteLog('Failed to remove library browsing path.'); + WriteLog(LoadResString(@RsLogFailedDelLibraryBrowsingPath)); {$IFDEF MSWINDOWS} if (ATarget.RadToolKind = brBorlandDevStudio) and (bpBCBuilder32 in ATarget.Personalities) then with TJclBDSInstallation(ATarget) do begin if RemoveFromCppBrowsingPath(Distribution.JclSourcePath) then - WriteLog(Format('Removed "%s" from cpp browsing path.', [Distribution.JclSourcePath])) + WriteLog(Format(LoadResString(@RsLogDelCppBrowsingPath), [Distribution.JclSourcePath])) else - WriteLog('Failed to remove cpp browsing path.'); + WriteLog(LoadResString(@RsLogFailedDelCppBrowsingPath)); end; {$ENDIF MSWINDOWS} //ioJclEnvDebugDCUPath if ATarget.RemoveFromDebugDCUPath(FLibDebugDir) then - WriteLog(Format('Removed "%s" from Debug DCU Path.', [FLibDebugDir])); + WriteLog(Format(LoadResString(@RsLogDelDebugDCUPath), [FLibDebugDir])) + else + WriteLog(LoadResString(@RsLogFailedDelDebugDCUPath)); end; procedure RemoveMake; @@ -2301,11 +2033,10 @@ procedure RemoveHelpFromOpenHelp; begin - WriteLog(Format('Removing %s from %s Online Help', [Distribution.FJclHlpHelpFileName, Target.RADToolName])); if Target.OpenHelp.RemoveHelpFile(Distribution.FJclHlpHelpFileName, JclHelpIndexName) then - WriteLog('...done.') + WriteLog(Format(LoadResString(@RsLogDelOpenHelp), [Distribution.FJclHlpHelpFileName, Target.RADToolName])) else - WriteLog('...failed.'); + WriteLog(LoadResString(@RsLogFailedDelOpenHelp)); end; procedure UnregisterHelp2Files; @@ -2316,7 +2047,7 @@ if (Target.RadToolKind <> brBorlandDevStudio) or (Target.VersionNumber < 3) then Exit; - WriteLog('Unregistering help 2.0 files...'); + WriteLog(LoadResString(@RsLogDelHelp2Files)); // to avoid Write AV, data has to be copied in data segment NameSpace := Help2NameSpace; @@ -2331,7 +2062,7 @@ Distribution.RegHelpUnregisterNameSpace(NameSpace); Distribution.RegHelpCommitTransaction; - WriteLog('...defered'); + WriteLog(LoadResString(@RsLogDefered)); end; begin @@ -2348,7 +2079,7 @@ procedure RemoveDialogFromRepository(const DialogName, DialogFileName: string); begin Target.Repository.RemoveObjects(ExceptDlgPath, DialogFileName, BorRADToolRepositoryFormTemplate); - WriteLog(Format('Removed %s.', [DialogName])); + WriteLog(Format(LoadResString(@RsLogUninstalling), [DialogName])); end; begin if Target.RadToolKind <> brBorlandDevStudio then @@ -2356,9 +2087,9 @@ {$IFDEF MSWINDOWS} // ioJclExcDialog // ioJclExcDialogVCL - RemoveDialogFromRepository(ExceptDlgVclName, Distribution.VclDialogFileName); + RemoveDialogFromRepository(LoadResString(@RsExceptDlgVclName), Distribution.VclDialogFileName); //ioJclExcDialogVCLSnd - RemoveDialogFromRepository(ExceptDlgVclSndName, Distribution.VclDialogSendFileName); + RemoveDialogFromRepository(LoadResString(@RsExceptDlgVclSndName), Distribution.VclDialogSendFileName); {$ENDIF MSWINDOWS} end; end; @@ -2373,12 +2104,10 @@ try Target.OutputCallback := WriteLog; if Assigned(GUI) then - GUI.Status := Format(RsUninstallMessage, [TargetName]); + GUI.Status := Format(LoadResString(@RsLogUninstalling), [TargetName]); if Assigned(GUIPage) then GUIPage.Show; - WriteLog(StrPadRight('Starting Uninstall process', 44, '.')); - if AProfilesManager.MultipleProfileMode then begin for Index := 0 to AProfilesManager.ProfileCount - 1 do @@ -2450,7 +2179,7 @@ begin AConfiguration := InstallCore.Configuration; if Assigned(AConfiguration) then - Result := AConfiguration.OptionAsStringByName[TargetName, RsNameBPLPath] + Result := AConfiguration.OptionAsStringByName[TargetName, OptionNameBPLPath] else Result := Target.BPLOutputPath; end; @@ -2469,7 +2198,7 @@ begin AConfiguration := InstallCore.Configuration; if Assigned(AConfiguration) then - Result := AConfiguration.OptionAsStringByName[TargetName, RsNameDCPPath] + Result := AConfiguration.OptionAsStringByName[TargetName, OptionNameDCPPath] else Result := FJclDcpPath; end; @@ -2512,11 +2241,11 @@ end; end; - AConfiguration.OptionAsStringByName[TargetName, RsNameBPLPath] := GUIPage.Directories[FGUIBPLPathIndex]; + AConfiguration.OptionAsStringByName[TargetName, OptionNameBPLPath] := GUIPage.Directories[FGUIBPLPathIndex]; if Target.RadToolKind ... [truncated message content] |
From: <ou...@us...> - 2009-09-15 05:48:54
|
Revision: 3013 http://jcl.svn.sourceforge.net/jcl/?rev=3013&view=rev Author: outchy Date: 2009-09-15 05:48:47 +0000 (Tue, 15 Sep 2009) Log Message: ----------- RsClose is not declared in JclSIMDCpuInfo.pas. Modified Paths: -------------- trunk/jcl/experts/common/JclOtaResources.pas Modified: trunk/jcl/experts/common/JclOtaResources.pas =================================================================== --- trunk/jcl/experts/common/JclOtaResources.pas 2009-09-14 16:00:50 UTC (rev 3012) +++ trunk/jcl/experts/common/JclOtaResources.pas 2009-09-15 05:48:47 UTC (rev 3013) @@ -326,6 +326,7 @@ RsSSE4B = 'SSE Version 4 B'; RsSSE5 = 'SSE Version 5'; RsAVX = 'AVX'; + RsClose = 'Close'; //=== JclSIMDModifyForm.pas ================================================== resourcestring This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-14 16:01:00
|
Revision: 3012 http://jcl.svn.sourceforge.net/jcl/?rev=3012&view=rev Author: outchy Date: 2009-09-14 16:00:50 +0000 (Mon, 14 Sep 2009) Log Message: ----------- JCL experts' resources cleanup. Modified Paths: -------------- trunk/jcl/experts/common/JclOtaActionConfigureSheet.dfm trunk/jcl/experts/common/JclOtaActionConfigureSheet.pas trunk/jcl/experts/common/JclOtaConfigurationForm.dfm trunk/jcl/experts/common/JclOtaConfigurationForm.pas trunk/jcl/experts/common/JclOtaExceptionForm.dfm trunk/jcl/experts/common/JclOtaExceptionForm.pas trunk/jcl/experts/common/JclOtaResources.pas trunk/jcl/experts/common/JclOtaUnitVersioningSheet.dfm trunk/jcl/experts/common/JclOtaUnitVersioningSheet.pas trunk/jcl/experts/common/JclOtaUtils.pas trunk/jcl/experts/common/JclOtaWizardForm.dfm trunk/jcl/experts/common/JclOtaWizardForm.pas trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.pas trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas trunk/jcl/experts/debug/converter/JclDebugIdeResult.dfm trunk/jcl/experts/debug/converter/JclDebugIdeResult.pas trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas trunk/jcl/experts/debug/dialog/ExceptDlg.pas trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.dfm trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.pas trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.dfm trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.pas trunk/jcl/experts/debug/simdview/JclSIMDUtils.pas trunk/jcl/experts/debug/simdview/JclSIMDView.pas trunk/jcl/experts/debug/simdview/JclSIMDViewForm.dfm trunk/jcl/experts/debug/simdview/JclSIMDViewForm.pas trunk/jcl/experts/favfolders/OpenDlgFavAdapter.pas trunk/jcl/experts/projectanalyzer/ProjAnalyzerFrm.dfm trunk/jcl/experts/projectanalyzer/ProjAnalyzerFrm.pas trunk/jcl/experts/projectanalyzer/ProjAnalyzerImpl.pas trunk/jcl/experts/repository/JclOtaExcDlgFileFrame.dfm trunk/jcl/experts/repository/JclOtaExcDlgFileFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgFormFrame.dfm trunk/jcl/experts/repository/JclOtaExcDlgFormFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgIgnoreFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgLogFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgSystemFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgThreadFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgTraceFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgWizard.pas trunk/jcl/experts/repository/JclOtaRepositoryReg.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerConfigFrame.dfm trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerConfigFrame.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerExceptInfoFrame.dfm trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerExceptInfoFrame.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerImpl.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerMainFrame.dfm trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerMainFrame.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerModuleFrame.dfm trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerModuleFrame.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerStackFrame.dfm trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerStackFrame.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerStackUtils.pas trunk/jcl/experts/useswizard/JCLOptionsFrame.pas trunk/jcl/experts/useswizard/JCLUsesWizard.pas trunk/jcl/experts/useswizard/JclParseUses.pas trunk/jcl/experts/useswizard/JclUsesDialog.dfm trunk/jcl/experts/useswizard/JclUsesDialog.pas trunk/jcl/experts/versioncontrol/JclVersionControlImpl.pas trunk/jcl/experts/versioncontrol/JclVersionCtrlCommonOptions.pas Modified: trunk/jcl/experts/common/JclOtaActionConfigureSheet.dfm =================================================================== --- trunk/jcl/experts/common/JclOtaActionConfigureSheet.dfm 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaActionConfigureSheet.dfm 2009-09-14 16:00:50 UTC (rev 3012) @@ -6,10 +6,13 @@ Anchors = [akLeft, akTop, akRight, akBottom] TabOrder = 0 TabStop = True + DesignSize = ( + 369 + 375) object LabelActions: TLabel Left = 16 Top = 16 - Width = 48 + Width = 47 Height = 13 Caption = 'RsActions' FocusControl = ListViewActions @@ -48,6 +51,7 @@ Left = 80 Top = 330 Width = 121 + Height = 19 Anchors = [akLeft, akBottom] HotKey = 0 InvalidKeys = [hcNone] Modified: trunk/jcl/experts/common/JclOtaActionConfigureSheet.pas =================================================================== --- trunk/jcl/experts/common/JclOtaActionConfigureSheet.pas 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaActionConfigureSheet.pas 2009-09-14 16:00:50 UTC (rev 3012) @@ -102,15 +102,15 @@ begin inherited Create(AOwner); - ButtonRestore.Caption := RsRestore; - LabelActions.Caption := RsActions; - LabelShortcut.Caption := RsShortcut; - ListViewActions.Columns.Items[0].Caption := RsCaption; - ListViewActions.Columns.Items[1].Caption := RsShortcut; + ButtonRestore.Caption := LoadResString(@RsRestore); + LabelActions.Caption := LoadResString(@RsActions); + LabelShortcut.Caption := LoadResString(@RsShortcut); + ListViewActions.Columns.Items[0].Caption := LoadResString(@RsCaption); + ListViewActions.Columns.Items[1].Caption := LoadResString(@RsShortcut); Supports(BorlandIDEServices, INTAServices, ANTAServices); if not Assigned(ANTAServices) then - raise EJclExpertException.CreateTrace(RsENoNTAServices); + raise EJclExpertException.CreateRes(@RsENoNTAServices); ListViewActions.SmallImages := ANTAServices.ImageList; Modified: trunk/jcl/experts/common/JclOtaConfigurationForm.dfm =================================================================== --- trunk/jcl/experts/common/JclOtaConfigurationForm.dfm 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaConfigurationForm.dfm 2009-09-14 16:00:50 UTC (rev 3012) @@ -1,9 +1,9 @@ object JclOtaOptionsForm: TJclOtaOptionsForm Left = 0 Top = 0 + Caption = 'RsOtaConfigurationCaption' + ClientHeight = 486 ClientWidth = 554 - ClientHeight = 486 - Caption = 'RsOtaConfigurationCaption' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -19,18 +19,21 @@ object SplitterSep: TSplitter Left = 185 Top = 0 - Width = 3 - Height = 450 - Cursor = crHSplit + Height = 448 + ExplicitHeight = 450 end object PanelName: TPanel Left = 0 - Top = 450 + Top = 448 Width = 554 Height = 38 Align = alBottom BevelOuter = bvNone TabOrder = 0 + ExplicitTop = 450 + DesignSize = ( + 554 + 38) object LabelHomePage: TLabel Left = 8 Top = 8 @@ -73,10 +76,14 @@ Left = 0 Top = 0 Width = 185 - Height = 450 + Height = 448 Align = alLeft BevelOuter = bvNone TabOrder = 1 + ExplicitHeight = 450 + DesignSize = ( + 185 + 448) object TreeViewCategories: TTreeView Left = 8 Top = 8 @@ -95,10 +102,11 @@ Left = 188 Top = 0 Width = 366 - Height = 450 + Height = 448 Align = alClient BevelOuter = bvNone TabOrder = 2 + ExplicitHeight = 450 object LabelSelectPage: TLabel Left = 152 Top = 184 Modified: trunk/jcl/experts/common/JclOtaConfigurationForm.pas =================================================================== --- trunk/jcl/experts/common/JclOtaConfigurationForm.pas 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaConfigurationForm.pas 2009-09-14 16:00:50 UTC (rev 3012) @@ -230,11 +230,11 @@ procedure TJclOtaOptionsForm.FormCreate(Sender: TObject); begin - Caption := RsConfigurationCaption; - ButtonOk.Caption := RsOk; - ButtonCancel.Caption := RsCancel; - LabelSelectPage.Caption := RsSelectPage; - LabelHomePage.Caption := RsHomePage; + Caption := LoadResString(@RsConfigurationCaption); + ButtonOk.Caption := LoadResString(@RsOk); + ButtonCancel.Caption := LoadResString(@RsCancel); + LabelSelectPage.Caption := LoadResString(@RsSelectPage); + LabelHomePage.Caption := LoadResString(@RsHomePage); SetBounds(Settings.LoadInteger(JclLeft, Left), Settings.LoadInteger(JclTop, Top), @@ -254,7 +254,7 @@ procedure TJclOtaOptionsForm.LabelHomePageClick(Sender: TObject); begin - ShellExecute(Handle, 'open', PChar(RsHomePageURL), '', '', SW_SHOW); + ShellExecute(Handle, 'open', PChar(LoadResString(@RsHomePageURL)), '', '', SW_SHOW); end; procedure TJclOtaOptionsForm.TreeViewCategoriesChange(Sender: TObject; Modified: trunk/jcl/experts/common/JclOtaExceptionForm.dfm =================================================================== --- trunk/jcl/experts/common/JclOtaExceptionForm.dfm 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaExceptionForm.dfm 2009-09-14 16:00:50 UTC (rev 3012) @@ -1,10 +1,10 @@ object JclExpertExceptionForm: TJclExpertExceptionForm Left = 157 Top = 183 - ClientWidth = 551 - ClientHeight = 423 BorderIcons = [biSystemMenu] Caption = 'RsReportFormCaption' + ClientHeight = 423 + ClientWidth = 551 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -14,6 +14,9 @@ OldCreateOrder = False Position = poScreenCenter OnCreate = FormCreate + DesignSize = ( + 551 + 423) PixelsPerInch = 96 TextHeight = 13 object LabelURL: TLabel Modified: trunk/jcl/experts/common/JclOtaExceptionForm.pas =================================================================== --- trunk/jcl/experts/common/JclOtaExceptionForm.pas 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaExceptionForm.pas 2009-09-14 16:00:50 UTC (rev 3012) @@ -97,15 +97,15 @@ procedure TJclExpertExceptionForm.FormCreate(Sender: TObject); begin - Caption := RsReportFormCaption; - MemoDetails.Lines.Text := RsExceptionDetails; - LabelURL.Caption := RsReportCaption; - ButtonClose.Caption := RsReportClose; + Caption := LoadResString(@RsReportFormCaption); + MemoDetails.Lines.Text := LoadResString(@RsExceptionDetails); + LabelURL.Caption := LoadResString(@RsReportCaption); + ButtonClose.Caption := LoadResString(@RsReportClose); end; procedure TJclExpertExceptionForm.LabelURLClick(Sender: TObject); begin - ShellExecute(Handle, 'open', PChar(RsReportURL), '', '', SW_SHOW); // do not localize + ShellExecute(Handle, 'open', PChar(LoadResString(@RsReportURL)), '', '', SW_SHOW); // do not localize end; procedure TJclExpertExceptionForm.ShowException(AExceptionObj: TObject); @@ -116,11 +116,11 @@ try if Assigned(AExceptionObj) then - MemoCallStack.Lines.Add(RsDetailsExceptionName + AExceptionObj.ClassName); + MemoCallStack.Lines.Add(Format(LoadResString(@RsDetailsExceptionName), [AExceptionObj.ClassName])); if AExceptionObj is Exception then begin - MemoCallStack.Lines.Add(RsDetailsExceptionMessage + Exception(AExceptionObj).Message); + MemoCallStack.Lines.Add(Format(LoadResString(@RsDetailsExceptionMessage), [Exception(AExceptionObj).Message])); {$IFDEF MSWINDOWS} if (AExceptionObj is EJclExpertException) then with EJclExpertException(AExceptionObj) do @@ -141,7 +141,7 @@ end; {$ENDIF MSWINDOWS} except - MemoCallStack.Lines.Add(RsErrorWhileFormatting); + MemoCallStack.Lines.Add(LoadResString(@RsErrorWhileFormatting)); end; end; Modified: trunk/jcl/experts/common/JclOtaResources.pas =================================================================== --- trunk/jcl/experts/common/JclOtaResources.pas 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaResources.pas 2009-09-14 16:00:50 UTC (rev 3012) @@ -45,7 +45,6 @@ RsENoOTAServices = 'Unable to get Borland IDE Services'; RsENoNTAServices = 'Unable to get Borland NTA Services'; RsENoDebuggerServices = 'Unable to get Borland Debugger Services'; - RsENoNTASplashServices = 'Unable to get Borland Splash Services'; RsENoOTAAboutServices = 'Unable to get Borland About Services'; RsENoOTAModuleServices = 'Unable to get Borland Module Services'; RsENoOTAWizardServices = 'Unable to get Borland Wizard Services'; @@ -61,7 +60,6 @@ RsENoToolsMenu = 'Unable to get Tools menu'; RsAboutDialogTitle = 'JEDI Code Library'; - RsAboutCopyright = 'Copyright the JCL development team'; RsAboutTitle = 'JEDI Code Library'; RsAboutDescription = 'JEDI Code Library http://jcl.delphi-jedi.org/' + NativeLineBreak + 'The JCL is a member of the JEDI Project http://www.delphi-jedi.org' + NativeLineBreak + @@ -92,8 +90,8 @@ { TODO : Should this link lead directly to the issue tracker at http://issuetracker.delphi-jedi.org/ ?} RsReportURL = 'http://jcl.delphi-jedi.org/page24.html'; RsReportCaption = 'JCL - Feedback&&Support - Report a bug page'; - RsDetailsExceptionName = 'Exception class name: '; - RsDetailsExceptionMessage = 'Exception message: '; + RsDetailsExceptionName = 'Exception class name: %s'; + RsDetailsExceptionMessage = 'Exception message: %s'; RsErrorWhileFormatting = 'An exception was raised while formatting details for the report'; RsReportClose = '&Close'; @@ -233,13 +231,23 @@ //=== ProjAnalyzerFrm.pas ==================================================== resourcestring + RsCopy = 'Copy'; + RsSave = 'Save'; + RsDetails = 'Details'; + RsSummary = 'Summary'; + RsForms = 'Forms'; + RsShowPackages = 'Show Packages'; + RsTextLabels = 'Text labels'; + RsName = 'Name'; + RsSize = 'Size'; + RsGroup = 'Group'; + RsPackage = 'Package'; RsFormCaption = 'Project Analyzer - %s'; RsStatusText = 'Units: %d, Forms: %d, Code: %d, ICode: %d, Data: %d, Bss: %d, Resources: %d'; RsCodeData = '(CODE+ICODE+DATA)'; //=== JclUsesWizard.pas ====================================================== resourcestring - RsJediOptionsCaption = 'JEDI Options'; RsEErrorReadingBuffer = 'Error reading from edit buffer'; RsUsesSheet = 'Uses wizard'; @@ -277,14 +285,11 @@ RsEMapConversion = 'Failed to convert MAP file "%s"'; RsENoActiveProject = 'No active project'; RsENoProjectMenuItem = 'Project menu item not found'; - RsENoBuildMenuItem = 'Build menu item not found'; - RsEBuildMenuItemNotInserted = 'Can''t insert the build menu item'; RsEInsertDataMenuItemNotInserted = 'Can''t insert the insert data menu item'; RsENoBuildAction = 'Build action not found'; RsENoBuildAllAction = 'Build All action not found'; - RsENoProjectGroup = 'No project group'; RsDebugConfigPageCaption = 'Debug info converter'; - RsEProjectPropertyFailed = 'Unable to save project properties, project file may be read-only'; + RsEProjectPropertyFailed = 'Unable to save project properties, project file may be read-only'; //=== JclDebugIdeConfigFrame.pas ============================================= resourcestring @@ -295,6 +300,49 @@ RsDeleteMapFile = 'Delete map files after conversion'; RsEInvalidDebugExpertState = '%d is not a valid debug expert state'; +//=== JclDebugIdeResult.pas ================================================== +resourcestring + RsProject = 'Project'; + RsMapFileSize = 'MAP file size'; + RsJCLDebugSize = 'JCLDebug size'; + RsRatio = 'Ratio'; + RsExecutableFileName = 'Executable file name'; + RsLinkerBug = 'Linker bug'; + RsLineErrors = 'Line errors'; + +//=== JclSIMDCpuInfo.pas ===================================================== +resourcestring + RsCpuInfoTitle = 'Local CPU Informations'; + RsVendor = 'Vendor'; + RsFrequency = 'Frequency'; + RsEnabledFPU = 'Enabled FPU'; + RsEnabledSSE = 'Enabled SSE'; + RsEnabledAVX = 'Enabled AVX'; + RsSSE1 = 'SSE Version 1'; + RsSSE2 = 'SSE Version 2'; + RsSSE3 = 'SSE Version 3'; + RsSSE3Ext = 'SSE Version 3 Ext.'; + RsSSE4A = 'SSE Version 4 A'; + RsSSE4B = 'SSE Version 4 B'; + RsSSE5 = 'SSE Version 5'; + RsAVX = 'AVX'; + +//=== JclSIMDModifyForm.pas ================================================== +resourcestring + RsDisplay = 'Display'; + RsFormat = 'Format'; + RsBinary = 'Binary'; + RsSignedDecimal = 'Signed Decimal'; + RsUnsignedDecimal = 'Unsigned Decimal'; + RsHexadecimal = 'Hexadecimal'; + RsKeepBlank = 'Keep blank for no change'; + RsSIMDModificationDescription = 'Tip: xmm0.byte0 will return the first byte of xmm0, ' + + 'valid fields are byteX, wordX, dwordX, qwordX, singleX, doubleX' + NativeLineBreak + + 'Valid registers are:' + NativeLineBreak + + ' - mm0..mm7 (all processors)' + NativeLineBreak + + ' - xmm0..xmm7 (32-bit processor with SSE) or xmm0..xmm15 (64-bit processor with SSE)' + NativeLineBreak + + ' - ymm0..ymm7 (32-bit processor with AVX) or ymm0..ymm15 (64-bit processor with AVX)' + NativeLineBreak; + //=== JclSIMDView.pas ======================================================== resourcestring RsENoViewMenuItem = 'View menu item not found'; @@ -304,59 +352,51 @@ resourcestring RsSIMD = 'SIMD'; RsMMX = 'MMX'; - RsExMMX = 'Ex MMX'; + RsMMXExt = 'MMX Ext.'; Rs3DNow = '3DNow!'; - RsEx3DNow = 'Ex 3DNow!'; + Rs3DNowExt = '3DNow! Ext.'; RsLong = '64-bit Core'; - RsTrademarks = - 'MMX is a trademark of Intel Corporation.' + NativeLineBreak + - '3DNow! is a registered trademark of Advanced Micro Devices.'; - - RsNoSIMD = 'No SIMD registers found'; RsNoSSE = 'SSE are not supported on this processor'; - RsNo128SIMD = 'No 128-bit-register SIMD'; - RsNo64SIMD = 'No 64-bit-register SIMD'; RsNotSupportedFormat = '<Unsupported format>'; RsNoPackedData = '<No packed data>'; - RsFormCreateError = 'An exception was triggered while creating the debug window : '; RsModifyMM = 'Modification of MM%d'; RsModifyXMM1 = 'Modification of XMM%d'; RsModifyXMM2 = 'Modification of XMM%.2d'; RsModifyYMM1 = 'Modification of YMM%d'; RsModifyYMM2 = 'Modification of YMM%.2d'; - RsVectorIE = 'IE '; - RsVectorDE = 'DE '; - RsVectorZE = 'ZE '; - RsVectorOE = 'OE '; - RsVectorUE = 'UE '; - RsVectorPE = 'PE '; + RsVectorIE = 'IE '; + RsVectorDE = 'DE '; + RsVectorZE = 'ZE '; + RsVectorOE = 'OE '; + RsVectorUE = 'UE '; + RsVectorPE = 'PE '; RsVectorDAZ = 'DAZ '; // (Only in Intel P4, Intel Xeon and AMD) - RsVectorIM = 'IM '; - RsVectorDM = 'DM '; - RsVectorZM = 'ZM '; - RsVectorOM = 'OM '; - RsVectorUM = 'UM '; - RsVectorPM = 'PM '; - RsVectorRC = 'RC '; - RsVectorFZ = 'FZ '; + RsVectorIM = 'IM '; + RsVectorDM = 'DM '; + RsVectorZM = 'ZM '; + RsVectorOM = 'OM '; + RsVectorUM = 'UM '; + RsVectorPM = 'PM '; + RsVectorRC = 'RC '; + RsVectorFZ = 'FZ '; - RsVectorIEText = 'Invalid-operation exception'; - RsVectorDEText = 'Denormal-operand exception'; - RsVectorZEText = 'Zero-divide exception'; - RsVectorOEText = 'Overflow exception'; - RsVectorUEText = 'Underflow exception'; - RsVectorPEText = 'Precision exception'; + RsVectorIEText = 'Invalid-operation exception'; + RsVectorDEText = 'Denormal-operand exception'; + RsVectorZEText = 'Zero-divide exception'; + RsVectorOEText = 'Overflow exception'; + RsVectorUEText = 'Underflow exception'; + RsVectorPEText = 'Precision exception'; RsVectorDAZText = 'Denormal are zeros'; // (Only in Intel P4, Intel Xeon and AMD) - RsVectorIMText = 'Invalid-operation mask'; - RsVectorDMText = 'Denormal-operand mask'; - RsVectorZMText = 'Zero-divide mask'; - RsVectorOMText = 'Overflow mask'; - RsVectorUMText = 'Underflow mask'; - RsVectorPMText = 'Precision mask'; - RsVectorRCText = 'Rounding control'; - RsVectorFZText = 'Flush to zero'; + RsVectorIMText = 'Invalid-operation mask'; + RsVectorDMText = 'Denormal-operand mask'; + RsVectorZMText = 'Zero-divide mask'; + RsVectorOMText = 'Overflow mask'; + RsVectorUMText = 'Underflow mask'; + RsVectorPMText = 'Precision mask'; + RsVectorRCText = 'Rounding control'; + RsVectorFZText = 'Flush to zero'; RsRoundToNearest = 'Round to nearest'; RsRoundDown = 'Round down'; @@ -367,6 +407,14 @@ //=== JclSIMDViewForm.pas ==================================================== resourcestring + RsStayOnTop = 'Stay on top'; + RsModify = 'Modify'; + RsComplementBit = 'Complement bit'; + RsEmptyMM = 'Empty MM register'; + RsEmptyAllMM = 'Empty all MM registers'; + RsViewYMM = 'View YMM registers'; + RsCPUInfo = 'CPU Informations...'; + RsECantUpdateThreadContext = 'Unable to update the thread context'; //=== JclOtaExcDlgRepository.pas ============================================= @@ -386,20 +434,81 @@ RsENoToolsMenuItem = 'Tools menu item not found'; RsVersionControlSheet = 'Version control'; RsActionCategory = 'JEDI Code Library'; - RsVersionCtrlSystemName = 'System'; +//=== JclStackTraceViewerConfigFrame.pas ===================================== +resourcestring + RsExpandTreeView = 'Expand TreeView'; + RsModuleVersionAsRevision = 'Module FileVersion as Revision'; + +//=== JclStackTraceViewerExceptInfoFrame.pas ================================= +resourcestring + RsExceptionClassName = 'ClassName:'; + RsExceptionMessage = 'Message:'; + //=== JclStackTraceViewerImpl.pas ============================================ resourcestring - rsStackTraceViewerCaption = 'Stack Traces'; - rsStackTraceViewerOptionsPageName = 'Stack Trace Viewer'; + RsStackTraceViewerCaption = 'Stack Traces'; + RsStackTraceViewerOptionsPageName = 'Stack Trace Viewer'; //=== JclStackTraceViewerMainFrame.pas ======================================= resourcestring - rsSTVFindFilesInProjectGroup = 'Find files in active project group'; - rsSTVFindFileInProjectGroup = 'Find %s in active project group'; - rsSTVFindFilesInBrowsingPath = 'Find files in browsing path'; + RsSTVFindFilesInProjectGroup = 'Find files in active project group'; + RsSTVFindFileInProjectGroup = 'Find %s in active project group'; + RsSTVFindFilesInBrowsingPath = 'Find files in browsing path'; +//=== JclStackTraceViewerMainFrame.pas ======================================= +resourcestring + RsJumpToCodeLine = 'Jump to code line'; + RsLoadStack = 'Load Stack'; + RsOptions = 'Options'; + RsUpdateLocalInfo = 'Update Local Info'; +//=== JclStackTraceViewerModuleFrame.pas ===================================== +resourcestring + RsStartAddr = 'Start address'; + RsEndAddr = 'End address'; + RsSystemModule = 'System module'; + RsBinFileName = 'Bin file name'; + RsBinFileVersion = 'Bin file version'; + RsFileVersion = 'File version'; + RsFileDescription = 'File description'; + +//=== JclStackTraceViewerStackFrame.pas ====================================== +resourcestring + RsStackModuleName = 'Module name'; + RsSourceUnitName = 'Source unit name'; + RsProcedureName = 'Procedure name'; + RsSourceName = 'Source name'; + RsLineNumber = 'Line number'; + RsLineNumberOffsetFromProcedureStart = 'Line number offset from procedure start'; + RsRevision = 'Revision'; + RsProjectFile = 'Project file'; + RsTranslatedLineNumber = 'Translated line number'; + +//=== JclVersionCtrlCommonOptions.pas ======================================== +resourcestring + RsEInvalidMenuCaption = 'Menu caption cannot contain \, _ and numbers'; + RsDisableActions = '&Enable/disable actions'; + RsHideUnsupportedActions = '&Hide unsupported actions'; + RsSaveConfirmation = '&Save confirmation'; + RsActOnTopSandBox = '&Act on top sandbox'; + RsIcons = '&Icons:'; + RsNewItem = 'New item'; + RsNewSeparator = 'New &separator'; + RsNewSubMenu = 'New s&ub menu'; + RsNewAction = 'New &action'; + RsDeleteItem = '&Delete'; + RsRenameItem = '&Rename'; + RsMoveItemUp = 'Move &up'; + RsMoveItemDown = 'Move &down'; + RsMenuOrganization = 'Menu &organization:'; + RsNoIcon = 'No icon'; + RsJCLIcons = 'JCL icons'; + +//=== JclVersionCtrlImpl.pas ================================================= +resourcestring + RsEInvalidAction = 'Internal error: invalid action'; + {$IFDEF UNITVERSIONING} const UnitVersioning: TUnitVersionInfo = ( Modified: trunk/jcl/experts/common/JclOtaUnitVersioningSheet.dfm =================================================================== --- trunk/jcl/experts/common/JclOtaUnitVersioningSheet.dfm 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaUnitVersioningSheet.dfm 2009-09-14 16:00:50 UTC (rev 3012) @@ -6,6 +6,9 @@ Anchors = [akLeft, akTop, akRight, akBottom] TabOrder = 0 TabStop = True + DesignSize = ( + 369 + 375) object MemoUnitVersioning: TMemo Left = 8 Top = 8 Modified: trunk/jcl/experts/common/JclOtaUnitVersioningSheet.pas =================================================================== --- trunk/jcl/experts/common/JclOtaUnitVersioningSheet.pas 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaUnitVersioningSheet.pas 2009-09-14 16:00:50 UTC (rev 3012) @@ -94,8 +94,8 @@ LongFileName: string; begin inherited Create(AOwner); - ButtonCopyToClipboard.Caption := RsCopyToClipboard; - ButtonSaveAsText.Caption := RsSaveAsText; + ButtonCopyToClipboard.Caption := LoadResString(@RsCopyToClipboard); + ButtonSaveAsText.Caption := LoadResString(@RsSaveAsText); UnitVersioning := GetUnitVersioning; UnitVersioning.RegisterProvider(TJclDefaultUnitVersioningProvider); Modified: trunk/jcl/experts/common/JclOtaUtils.pas =================================================================== --- trunk/jcl/experts/common/JclOtaUtils.pas 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaUtils.pas 2009-09-14 16:00:50 UTC (rev 3012) @@ -87,11 +87,9 @@ {$IFDEF MSWINDOWS} private FStackInfo: TJclStackInfoList; - {$ENDIF MSWINDOWS} public - constructor CreateTrace(const Msg: string); - {$IFDEF MSWINDOWS} destructor Destroy; override; + procedure AfterConstruction; override; property StackInfo: TJclStackInfoList read FStackInfo; {$ENDIF MSWINDOWS} end; @@ -663,15 +661,13 @@ //=== { EJclExpertException } ================================================ -constructor EJclExpertException.CreateTrace(const Msg: string); +{$IFDEF MSWINDOWS} +procedure EJclExpertException.AfterConstruction; begin - inherited Create(Msg); - {$IFDEF MSWINDOWS} + inherited AfterConstruction; FStackInfo := JclCreateStackList(False, 0, nil, False); - {$ENDIF MSWINDOWS} end; -{$IFDEF MSWINDOWS} destructor EJclExpertException.Destroy; begin FreeAndNil(FStackInfo); @@ -689,7 +685,7 @@ Supports(BorlandIDEServices,IOTAServices,OTAServices); if not Assigned(OTAServices) then - raise EJclExpertException.CreateTrace(RsENoOTAServices); + raise EJclExpertException.CreateRes(@RsENoOTAServices); FBaseKeyName := StrEnsureSuffix(NativeBackSlash, OTAServices.GetBaseRegistryKey); @@ -900,12 +896,12 @@ if not Assigned(ActionConfigureSheet) then begin ActionConfigureSheet := TJclOtaActionConfigureFrame.Create(Application); - AddPageFunc(ActionConfigureSheet, RsActionSheet, Self); + AddPageFunc(ActionConfigureSheet, LoadResString(@RsActionSheet), Self); end; if not Assigned(UnitVersioningSheet) then begin UnitVersioningSheet := TJclOtaUnitVersioningFrame.Create(Application); - AddPageFunc(UnitVersioningSheet, RsUnitVersioningSheet, Self); + AddPageFunc(UnitVersioningSheet, LoadResString(@RsUnitVersioningSheet), Self); end; // override to customize end; @@ -1016,7 +1012,7 @@ function TJclOTAExpertBase.GetDrcFileName(const Project: IOTAProject): TFileName; begin if not Assigned(Project) then - raise EJclExpertException.CreateTrace(RsENoActiveProject); + raise EJclExpertException.CreateRes(@RsENoActiveProject); Result := ChangeFileExt(Project.FileName, CompilerExtensionDRC); end; @@ -1027,12 +1023,12 @@ OutputDirectory, LibPrefix, LibSuffix: string; begin if not Assigned(Project) then - raise EJclExpertException.CreateTrace(RsENoActiveProject); + raise EJclExpertException.CreateRes(@RsENoActiveProject); ProjectFileName := Project.FileName; OutputDirectory := GetOutputDirectory(Project); if not Assigned(Project.ProjectOptions) then - raise EJclExpertException.CreateTrace(RsENoProjectOptions); + raise EJclExpertException.CreateRes(@RsENoProjectOptions); LibPrefix := Trim(VarToStr(Project.ProjectOptions.Values[LIBPREFIXOptionName])); LibSuffix := Trim(VarToStr(Project.ProjectOptions.Values[LIBSUFFIXOptionName])); {$IFDEF BDS} @@ -1051,14 +1047,14 @@ begin Result := FindClassHInstance(ClassType); if Result = 0 then - raise EJclExpertException.CreateTrace(RsBadModuleHInstance); + raise EJclExpertException.CreateRes(@RsBadModuleHInstance); end; class function TJclOTAExpertBase.GetNTAServices: INTAServices; begin Supports(BorlandIDEServices, INTAServices, Result); if not Assigned(Result) then - raise EJclExpertException.CreateTrace(RsENoNTAServices); + raise EJclExpertException.CreateRes(@RsENoNTAServices); end; {$IFDEF BDS} @@ -1066,7 +1062,7 @@ begin Supports(BorlandIDEServices, IOTAGalleryCategoryManager, Result); if not Assigned(Result) then - raise EJclExpertException.CreateTrace(RsENoOTAGalleryCategoryManager); + raise EJclExpertException.CreateRes(@RsENoOTAGalleryCategoryManager); end; {$ENDIF BDS} @@ -1074,28 +1070,28 @@ begin Supports(BorlandIDEServices, IOTADebuggerServices, Result); if not Assigned(Result) then - raise EJclExpertException.CreateTrace(RsENoDebuggerServices); + raise EJclExpertException.CreateRes(@RsENoDebuggerServices); end; class function TJclOTAExpertBase.GetOTAMessageServices: IOTAMessageServices; begin Supports(BorlandIDEServices, IOTAMessageServices, Result); if not Assigned(Result) then - raise EJclExpertException.CreateTrace(RsENoOTAMessageServices); + raise EJclExpertException.CreateRes(@RsENoOTAMessageServices); end; class function TJclOTAExpertBase.GetOTAModuleServices: IOTAModuleServices; begin Supports(BorlandIDEServices, IOTAModuleServices, Result); if not Assigned(Result) then - raise EJclExpertException.CreateTrace(RsENoOTAModuleServices); + raise EJclExpertException.CreateRes(@RsENoOTAModuleServices); end; class function TJclOTAExpertBase.GetOTAPackageServices: IOTAPackageServices; begin Supports(BorlandIDEServices, IOTAPackageServices, Result); if not Assigned(Result) then - raise EJclExpertException.CreateTrace(RsENoOTAPackageServices); + raise EJclExpertException.CreateRes(@RsENoOTAPackageServices); end; {$IFDEF BDS} @@ -1103,7 +1099,7 @@ begin Supports(BorlandIDEServices, IOTAPersonalityServices, Result); if not Assigned(Result) then - raise EJclExpertException.CreateTrace(RsENoOTAPersonalityServices); + raise EJclExpertException.CreateRes(@RsENoOTAPersonalityServices); end; {$ENDIF BDS} @@ -1120,14 +1116,14 @@ begin Supports(BorlandIDEServices, IOTAServices, Result); if not Assigned(Result) then - raise EJclExpertException.CreateTrace(RsENoOTAServices); + raise EJclExpertException.CreateRes(@RsENoOTAServices); end; class function TJclOTAExpertBase.GetOTAWizardServices: IOTAWizardServices; begin Supports(BorlandIDEServices, IOTAWizardServices, Result); if not Assigned(Result) then - raise EJclExpertException.CreateTrace(RsENoOTAWizardServices); + raise EJclExpertException.CreateRes(@RsENoOTAWizardServices); end; function TJclOTAExpertBase.GetOutputDirectory(const Project: IOTAProject): string; @@ -1136,9 +1132,9 @@ OptionValue: Variant; begin if not Assigned(Project) then - raise EJclExpertException.CreateTrace(RsENoActiveProject); + raise EJclExpertException.CreateRes(@RsENoActiveProject); if not Assigned(Project.ProjectOptions) then - raise EJclExpertException.CreateTrace(RsENoProjectOptions); + raise EJclExpertException.CreateRes(@RsENoProjectOptions); Result := ''; @@ -1158,7 +1154,7 @@ begin EnvironmentOptions := GetOTAServices.GetEnvironmentOptions; if not Assigned(EnvironmentOptions) then - raise EJclExpertException.CreateTrace(RsENoEnvironmentOptions); + raise EJclExpertException.CreateRes(@RsENoEnvironmentOptions); OptionValue := EnvironmentOptions.Values[BPLOutputDirOptionName]; if VarIsStr(OptionValue) then Result := VarToStr(OptionValue); @@ -1238,7 +1234,7 @@ begin AModule := OTAModuleServices.Modules[I]; if not Assigned(AModule) then - raise EJclExpertException.CreateTrace(RsENoModule); + raise EJclExpertException.CreateRes(@RsENoModule); if AModule.QueryInterface(IOTAProjectGroup, Result) = S_OK then Exit; end; @@ -1257,7 +1253,7 @@ FRootDir := RegReadStringDef(HKEY_CURRENT_USER, Settings.BaseKeyName, DelphiRootDirKeyValue, ''); {$ENDIF MSWINDOWS} if FRootDir = '' then - raise EJclExpertException.CreateTrace(RsENoRootDir); + raise EJclExpertException.CreateRes(@RsENoRootDir); end; Result := FRootDir; end; @@ -1269,7 +1265,7 @@ I: Integer; begin if not Assigned(Project) then - raise EJclExpertException.CreateTrace(RsENoActiveProject); + raise EJclExpertException.CreateRes(@RsENoActiveProject); Result := IsPackage(Project); if Result then @@ -1277,7 +1273,7 @@ Result := False; if not Assigned(Project.ProjectOptions) then - raise EJclExpertException.CreateTrace(RsENoProjectOptions); + raise EJclExpertException.CreateRes(@RsENoProjectOptions); if not Project.ProjectOptions.Values[RuntimeOnlyOptionName] then begin @@ -1308,7 +1304,7 @@ NameProp: TJclSimpleXMLProp; begin if not Assigned(Project) then - raise EJclExpertException.CreateTrace(RsENoActiveProject); + raise EJclExpertException.CreateRes(@RsENoActiveProject); FileName := Project.FileName; FileExtension := ExtractFileExt(FileName); @@ -1515,7 +1511,7 @@ finally JclIcon.Free; end; - ConfigurationAction.Caption := RsJCLOptions; + ConfigurationAction.Caption := LoadResString(@RsJCLOptions); ConfigurationAction.Name := JclConfigureActionName; ConfigurationAction.Category := Category; ConfigurationAction.Visible := True; @@ -1530,14 +1526,14 @@ begin IDEMenuItem := NTAServices.MainMenu.Items; if not Assigned(IDEMenuItem) then - raise EJclExpertException.CreateTrace(RsENoIDEMenu); + raise EJclExpertException.CreateRes(@RsENoIDEMenu); ToolsMenuItem := nil; for Index := 0 to IDEMenuItem.Count - 1 do if CompareText(IDEMenuItem.Items[Index].Name, 'ToolsMenu') = 0 then ToolsMenuItem := IDEMenuItem.Items[Index]; if not Assigned(ToolsMenuItem) then - raise EJclExpertException.CreateTrace(RsENoToolsMenu); + raise EJclExpertException.CreateRes(@RsENoToolsMenu); ConfigurationMenuItem := TMenuItem.Create(nil); ConfigurationMenuItem.Name := JclConfigureMenuName; @@ -1747,12 +1743,12 @@ begin Supports(BorlandIDEServices,IOTAAboutBoxServices, AboutBoxServices); if not Assigned(AboutBoxServices) then - raise EJclExpertException.CreateTrace(RsENoOTAAboutServices); + raise EJclExpertException.CreateRes(@RsENoOTAAboutServices); ProductImage := LoadBitmap(FindResourceHInstance(HInstance), 'JCLSPLASH'); if ProductImage = 0 then - raise EJclExpertException.CreateTrace(RsENoBitmapResources); - AboutBoxIndex := AboutBoxServices.AddPluginInfo(RsAboutTitle, RsAboutDescription, - ProductImage, False, RsAboutLicenceStatus); + raise EJclExpertException.CreateRes(@RsENoBitmapResources); + AboutBoxIndex := AboutBoxServices.AddPluginInfo(LoadResString(@RsAboutTitle), LoadResString(@RsAboutDescription), + ProductImage, False, LoadResString(@RsAboutLicenceStatus)); end; end; @@ -1774,12 +1770,9 @@ begin ProductImage := LoadBitmap(FindResourceHInstance(HInstance), 'JCLSPLASH'); if ProductImage = 0 then - raise EJclExpertException.CreateTrace(RsENoBitmapResources); - // C#Builder 1 doesn't display AddProductBitmap - //SplashScreenServices.AddProductBitmap(RsAboutDialogTitle, ProductImage, - // False, RsAboutLicenceStatus); - SplashScreenServices.AddPluginBitmap(RsAboutDialogTitle, ProductImage, - False, RsAboutLicenceStatus); + raise EJclExpertException.CreateRes(@RsENoBitmapResources); + SplashScreenServices.AddPluginBitmap(LoadResString(@RsAboutDialogTitle), ProductImage, + False, LoadResString(@RsAboutLicenceStatus)); SplashScreenInitialized := True; end; end; Modified: trunk/jcl/experts/common/JclOtaWizardForm.dfm =================================================================== --- trunk/jcl/experts/common/JclOtaWizardForm.dfm 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaWizardForm.dfm 2009-09-14 16:00:50 UTC (rev 3012) @@ -120,4 +120,4 @@ OnUpdate = ActionNextUpdate end end -end \ No newline at end of file +end Modified: trunk/jcl/experts/common/JclOtaWizardForm.pas =================================================================== --- trunk/jcl/experts/common/JclOtaWizardForm.pas 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/common/JclOtaWizardForm.pas 2009-09-14 16:00:50 UTC (rev 3012) @@ -180,11 +180,11 @@ PanelTitle.ParentBackground := False; {$ENDIF COMPILER7_UP} - ActionPrevious.Caption := RsPrevious; - ActionNext.Caption := RsNext; - ActionFinish.Caption := RsFinish; - ButtonCancel.Caption := RsCancel; - LabelJcl.Caption := RsAboutDialogTitle; + ActionPrevious.Caption := LoadResString(@RsPrevious); + ActionNext.Caption := LoadResString(@RsNext); + ActionFinish.Caption := LoadResString(@RsFinish); + ButtonCancel.Caption := LoadResString(@RsCancel); + LabelJcl.Caption := LoadResString(@RsAboutDialogTitle); try ImageJcl.Picture.Bitmap.TransparentMode := tmAuto; ImageJcl.Picture.Bitmap.Transparent := True; @@ -247,7 +247,7 @@ begin AFrame.PageActivated(Direction); AFrame.Visible := True; - LabelProgression.Caption := Format(RsWizardProgression, [PageIndex+1 {one based}, PageCount, AFrame.Caption]); + LabelProgression.Caption := Format(LoadResString(@RsWizardProgression), [PageIndex+1 {one based}, PageCount, AFrame.Caption]); end; end; Modified: trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.pas =================================================================== --- trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.pas 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.pas 2009-09-14 16:00:50 UTC (rev 3012) @@ -186,23 +186,23 @@ begin inherited Create(AOwner); - RadioGroupGenerateJdbg.Caption := RsDebugGenerateJdbg; - RadioGroupGenerateJdbg.Items.Strings[0] := RsAlwaysDisabled; - RadioGroupGenerateJdbg.Items.Strings[1] := RsDefaultDisabled; - RadioGroupGenerateJdbg.Items.Strings[2] := RsDefaultEnabled; - RadioGroupGenerateJdbg.Items.Strings[3] := RsAlwaysEnabled; + RadioGroupGenerateJdbg.Caption := LoadResString(@RsDebugGenerateJdbg); + RadioGroupGenerateJdbg.Items.Strings[0] := LoadResString(@RsAlwaysDisabled); + RadioGroupGenerateJdbg.Items.Strings[1] := LoadResString(@RsDefaultDisabled); + RadioGroupGenerateJdbg.Items.Strings[2] := LoadResString(@RsDefaultEnabled); + RadioGroupGenerateJdbg.Items.Strings[3] := LoadResString(@RsAlwaysEnabled); - RadioGroupInsertJdbg.Caption := RsDebugInsertJdbg; - RadioGroupInsertJdbg.Items.Strings[0] := RsAlwaysDisabled; - RadioGroupInsertJdbg.Items.Strings[1] := RsDefaultDisabled; - RadioGroupInsertJdbg.Items.Strings[2] := RsDefaultEnabled; - RadioGroupInsertJdbg.Items.Strings[3] := RsAlwaysEnabled; + RadioGroupInsertJdbg.Caption := LoadResString(@RsDebugInsertJdbg); + RadioGroupInsertJdbg.Items.Strings[0] := LoadResString(@RsAlwaysDisabled); + RadioGroupInsertJdbg.Items.Strings[1] := LoadResString(@RsDefaultDisabled); + RadioGroupInsertJdbg.Items.Strings[2] := LoadResString(@RsDefaultEnabled); + RadioGroupInsertJdbg.Items.Strings[3] := LoadResString(@RsAlwaysEnabled); - RadioGroupDeleteMapFile.Caption := RsDeleteMapFile; - RadioGroupDeleteMapFile.Items.Strings[0] := RsAlwaysDisabled; - RadioGroupDeleteMapFile.Items.Strings[1] := RsDefaultDisabled; - RadioGroupDeleteMapFile.Items.Strings[2] := RsDefaultEnabled; - RadioGroupDeleteMapFile.Items.Strings[3] := RsAlwaysEnabled; + RadioGroupDeleteMapFile.Caption := LoadResString(@RsDeleteMapFile); + RadioGroupDeleteMapFile.Items.Strings[0] := LoadResString(@RsAlwaysDisabled); + RadioGroupDeleteMapFile.Items.Strings[1] := LoadResString(@RsDefaultDisabled); + RadioGroupDeleteMapFile.Items.Strings[2] := LoadResString(@RsDefaultEnabled); + RadioGroupDeleteMapFile.Items.Strings[3] := LoadResString(@RsAlwaysEnabled); end; function TJclDebugIdeConfigFrame.GetGenerateJdbgState: TDebugExpertState; Modified: trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas =================================================================== --- trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas 2009-09-14 16:00:50 UTC (rev 3012) @@ -315,7 +315,7 @@ FConfigFrame.GenerateJdbgState := GlobalStates[deGenerateJdbg]; FConfigFrame.InsertJdbgState := GlobalStates[deInsertJdbg]; FConfigFrame.DeleteMapFileState := GlobalStates[deDeleteMapFile]; - AddPageFunc(FConfigFrame, RsDebugConfigPageCaption, Self); + AddPageFunc(FConfigFrame, LoadResString(@RsDebugConfigPageCaption), Self); end; procedure TJclDebugExtension.AfterCompile(Succeeded: Boolean); @@ -359,7 +359,7 @@ Succ := FileExists(MapFileName); if not Succ then - OutputToolMessage(Format(RsEMapFileNotFound, [MapFileName, ProjectFileName])); + OutputToolMessage(Format(LoadResString(@RsEMapFileNotFound), [MapFileName, ProjectFileName])); // creation of .jdbg if Succ and (deGenerateJdbg in EnabledActions) then @@ -367,9 +367,9 @@ Succ := ConvertMapFileToJdbgFile(MapFileName, LinkerBugUnit, LineNumberErrors, MapFileSize, JclDebugDataSize); if Succ then - OutputToolMessage(Format(RsConvertedMapToJdbg, [MapFileName, MapFileSize, JclDebugDataSize])) + OutputToolMessage(Format(LoadResString(@RsConvertedMapToJdbg), [MapFileName, MapFileSize, JclDebugDataSize])) else - OutputToolMessage(Format(RsEMapConversion, [MapFileName])); + OutputToolMessage(Format(LoadResString(@RsEMapConversion), [MapFileName])); end; // insertion of JEDI Debug Information into the binary @@ -381,12 +381,12 @@ Succ := InsertDebugDataIntoExecutableFile(ExecutableFileName, MapFileName, LinkerBugUnit, MapFileSize, JclDebugDataSize, LineNumberErrors); if Succ then - OutputToolMessage(Format(RsInsertedJdbg, [MapFileName, MapFileSize, JclDebugDataSize])) + OutputToolMessage(Format(LoadResString(@RsInsertedJdbg), [MapFileName, MapFileSize, JclDebugDataSize])) else - OutputToolMessage(Format(RsEMapConversion, [MapFileName])); + OutputToolMessage(Format(LoadResString(@RsEMapConversion), [MapFileName])); end else - OutputToolMessage(Format(RsEExecutableNotFound, [ProjectFileName])); + OutputToolMessage(Format(LoadResString(@RsEExecutableNotFound), [ProjectFileName])); end; // deletion of MAP files @@ -394,13 +394,13 @@ begin Succ := DeleteFile(MapFileName); if Succ then - OutputToolMessage(Format(RsDeletedMapFile, ['MAP', MapFileName])) + OutputToolMessage(Format(LoadResString(@RsDeletedMapFile), ['MAP', MapFileName])) else - OutputToolMessage(Format(RsEFailedToDeleteMapFile, ['MAP', MapFileName])); + OutputToolMessage(Format(LoadResString(@RsEFailedToDeleteMapFile), ['MAP', MapFileName])); if DeleteFile(DrcFileName) then - OutputToolMessage(Format(RsDeletedMapFile, ['DRC', DrcFileName])) + OutputToolMessage(Format(LoadResString(@RsDeletedMapFile), ['DRC', DrcFileName])) else - OutputToolMessage(Format(RsEFailedToDeleteMapFile, ['DRC', DrcFileName])); + OutputToolMessage(Format(LoadResString(@RsEFailedToDeleteMapFile), ['DRC', DrcFileName])); end; Screen.Cursor := crDefault; @@ -447,15 +447,15 @@ begin if IsInstalledPackage(Project) then begin - if MessageDlg(Format(RsCantInsertToInstalledPackage, [Project.FileName]), mtError, [mbYes, mbNo], 0) = mrYes then + if MessageDlg(Format(LoadResString(@RsCantInsertToInstalledPackage), [Project.FileName]), mtError, [mbYes, mbNo], 0) = mrYes then begin DisableExpert(Project); - MessageDlg(RsDisabledDebugExpert, mtInformation, [mbOK], 0); + MessageDlg(LoadResString(@RsDisabledDebugExpert), mtInformation, [mbOK], 0); end else begin Cancel := True; - MessageDlg(RsCompilationAborted, mtError, [mbOK], 0); + MessageDlg(LoadResString(@RsCompilationAborted), mtError, [mbOK], 0); end; end else @@ -463,12 +463,12 @@ FCurrentProject := Project; ProjOptions := Project.ProjectOptions; if not Assigned(ProjOptions) then - raise EJclExpertException.CreateTrace(RsENoProjectOptions); + raise EJclExpertException.CreateRes(@RsENoProjectOptions); {$IFDEF BDS6_UP} Supports(ProjOptions, IOTAProjectOptionsConfigurations, ProjOptionsConfigurations); if not Assigned(ProjOptionsConfigurations) then - raise EJclExpertException.CreateTrace(RsENoProjectOptionsConfigurations); + raise EJclExpertException.CreateRes(@RsENoProjectOptionsConfigurations); // get the current build configuration ActiveConfiguration := ProjOptionsConfigurations.ActiveConfiguration; @@ -504,7 +504,7 @@ if ChangeILinkMapFileTypeOption or ChangeDccMapFileOption or ChangeMapFileOption then begin - if MessageDlg(Format(RsChangeMapFileOption, [ExtractFileName(Project.FileName)]), mtConfirmation, [mbYes, mbNo], 0) = mrYes then + if MessageDlg(Format(LoadResString(@RsChangeMapFileOption), [ExtractFileName(Project.FileName)]), mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin {$IFDEF BDS6_UP} if ChangeILinkMapFileTypeOption then @@ -526,7 +526,7 @@ else begin DisableExpert(Project); - MessageDlg(RsDisabledDebugExpert, mtInformation, [mbOK], 0); + MessageDlg(LoadResString(@RsDisabledDebugExpert), mtInformation, [mbOK], 0); end; end; end; @@ -1257,7 +1257,7 @@ SetLength(PropValues, 1); PropValues[0] := DebugActionValues[False]; if SetProjectProperties(AProject, PropIDs, PropValues) <> 1 then - MessageDlg(RsEProjectPropertyFailed,mtError,[mbAbort],0); + MessageDlg(LoadResString(@RsEProjectPropertyFailed),mtError,[mbAbort],0); end; deProjectEnabled: begin @@ -1268,7 +1268,7 @@ SetLength(PropValues, 1); PropValues[0] := DebugActionValues[True]; if SetProjectProperties(AProject, PropIDs, PropValues) <> 1 then - MessageDlg(RsEProjectPropertyFailed,mtError,[mbAbort],0); + MessageDlg(LoadResString(@RsEProjectPropertyFailed),mtError,[mbAbort],0); end; deAlwaysEnabled: FGlobalStates[Index] := deAlwaysEnabled; @@ -1281,28 +1281,28 @@ BMenuItem: TMenuItem; begin BMenuItem := TMenuItem.Create(AMenuItem); - BMenuItem.Caption := RsAlwaysEnabled; + BMenuItem.Caption := LoadResString(@RsAlwaysEnabled); BMenuItem.RadioItem := True; BMenuItem.Tag := DebugExpertStateToInt(deAlwaysEnabled); BMenuItem.OnClick := AEvent; AMenuItem.Add(BMenuItem); BMenuItem := TMenuItem.Create(AMenuItem); - BMenuItem.Caption := RsProjectEnabled; + BMenuItem.Caption := LoadResString(@RsProjectEnabled); BMenuItem.RadioItem := True; BMenuItem.Tag := DebugExpertStateToInt(deProjectEnabled); BMenuItem.OnClick := AEvent; AMenuItem.Add(BMenuItem); BMenuItem := TMenuItem.Create(AMenuItem); - BMenuItem.Caption := RsProjectDisabled; + BMenuItem.Caption := LoadResString(@RsProjectDisabled); BMenuItem.RadioItem := True; BMenuItem.Tag := DebugExpertStateToInt(deProjectDisabled); BMenuItem.OnClick := AEvent; AMenuItem.Add(BMenuItem); BMenuItem := TMenuItem.Create(AMenuItem); - BMenuItem.Caption := RsAlwaysDisabled; + BMenuItem.Caption := LoadResString(@RsAlwaysDisabled); BMenuItem.RadioItem := True; BMenuItem.Tag := DebugExpertStateToInt(deAlwaysDisabled); BMenuItem.OnClick := AEvent; @@ -1349,7 +1349,7 @@ // create actions FDebugExpertAction := TDropDownAction.Create(nil); - FDebugExpertAction.Caption := RsDebugExpertCaption; + FDebugExpertAction.Caption := LoadResString(@RsDebugExpertCaption); FDebugExpertAction.Visible := True; FDebugExpertAction.ImageIndex := FDebugImageIndex; FDebugExpertAction.OnUpdate := DebugExpertActionUpdate; @@ -1363,7 +1363,7 @@ RegisterAction(FDebugExpertAction); FGenerateJdbgAction := TDropDownAction.Create(nil); - FGenerateJdbgAction.Caption := RsDebugGenerateJdbg; + FGenerateJdbgAction.Caption := LoadResString(@RsDebugGenerateJdbg); FGenerateJdbgAction.Visible := True; FGenerateJdbgAction.ImageIndex := FGenerateJdbgImageIndex; FGenerateJdbgAction.OnUpdate := GenerateJdbgActionUpdate; @@ -1377,7 +1377,7 @@ RegisterAction(FGenerateJdbgAction); FInsertJdbgAction := TDropDownAction.Create(nil); - FInsertJdbgAction.Caption := RsDebugInsertJdbg; + FInsertJdbgAction.Caption := LoadResString(@RsDebugInsertJdbg); FInsertJdbgAction.Visible := True; FInsertJdbgAction.ImageIndex := FInsertJdbgImageIndex; FInsertJdbgAction.OnUpdate := InsertJdbgActionUpdate; @@ -1391,7 +1391,7 @@ RegisterAction(FInsertJdbgAction); FDeleteMapFileAction := TDropDownAction.Create(nil); - FDeleteMapFileAction.Caption := RsDeleteMapFile; + FDeleteMapFileAction.Caption := LoadResString(@RsDeleteMapFile); FDeleteMapFileAction.Visible := True; FDeleteMapFileAction.ImageIndex := FDeleteMapFileImageIndex; FDeleteMapFileAction.OnUpdate := DeleteMapFileActionUpdate; @@ -1407,13 +1407,13 @@ // create menu items FDebugExpertItem := TMenuItem.Create(nil); FDebugExpertItem.Name := JclDebugExpertMenuName; - FDebugExpertItem.Caption := RsDebugExpertCaption; + FDebugExpertItem.Caption := LoadResString(@RsDebugExpertCaption); FDebugExpertItem.OnClick := DebugExpertMenuClick; FDebugExpertItem.ImageIndex := FDebugImageIndex; FGenerateJdbgItem := TMenuItem.Create(nil); FGenerateJdbgItem.Name := JclGenerateJdbgMenuName; - FGenerateJdbgItem.Caption := RsDebugGenerateJdbg; + FGenerateJdbgItem.Caption := LoadResString(@RsDebugGenerateJdbg); FGenerateJdbgItem.OnClick := GenerateJdbgMenuClick; FGenerateJdbgItem.ImageIndex := FGenerateJdbgImageIndex; FillMenu(FGenerateJdbgItem, GenerateJdbgSubMenuClick); @@ -1421,7 +1421,7 @@ FInsertJdbgItem := TMenuItem.Create(nil); FInsertJdbgItem.Name := JclInsertJdbgMenuName; - FInsertJdbgItem.Caption := RsDebugInsertJdbg; + FInsertJdbgItem.Caption := LoadResString(@RsDebugInsertJdbg); FInsertJdbgItem.OnClick := InsertJdbgMenuClick; FInsertJdbgItem.ImageIndex := FInsertJdbgImageIndex; FillMenu(FInsertJdbgItem, InsertJdbgSubMenuClick); @@ -1429,7 +1429,7 @@ FDeleteMapFileItem := TMenuItem.Create(nil); FDeleteMapFileItem.Name := JclDeleteMapFileMenuName; - FDeleteMapFileItem.Caption := RsDeleteMapFile; + FDeleteMapFileItem.Caption := LoadResString(@RsDeleteMapFile); FDeleteMapFileItem.OnClick := DeleteMapFileMenuClick; FDeleteMapFileItem.ImageIndex := FDeleteMapFileImageIndex; FillMenu(FDeleteMapFileItem, DeleteMapFileSubMenuClick); @@ -1463,7 +1463,7 @@ Break; end; if not Assigned(IDEProjectItem) then - raise EJclExpertException.CreateTrace(RsENoProjectMenuItem); + raise EJclExpertException.CreateRes(@RsENoProjectMenuItem); with IDEProjectItem do for I := 0 to Count - 1 do @@ -1480,7 +1480,7 @@ System.Break; end; if not Assigned(FDebugExpertItem.Parent) then - raise EJclExpertException.CreateTrace(RsEInsertDataMenuItemNotInserted); + raise EJclExpertException.CreateRes(@RsEInsertDataMenuItemNotInserted); // hook actions FSaveBuildProjectAction := nil; @@ -1494,7 +1494,7 @@ Break; end; if not Assigned(FSaveBuildProjectAction) then - raise EJclExpertException.CreateTrace(RsENoBuildAction); + raise EJclExpertException.CreateRes(@RsENoBuildAction); FSaveBuildAllProjectsAction := nil; with IDEActionList do @@ -1507,7 +1507,7 @@ Break; end; if not Assigned(FSaveBuildAllProjectsAction) then - raise EJclExpertException.CreateTrace(RsENoBuildAllAction); + raise EJclExpertException.CreateRes(@RsENoBuildAllAction); end; procedure TJclDebugExtension.UnregisterCommands; @@ -1628,7 +1628,7 @@ BMenu := TJclOTAProjectManagerMenu.Create; BMenu.Enabled := True; BMenu.Checked := State = deAlwaysEnabled; - BMenu.Caption := RsAlwaysEnabled; + BMenu.Caption := LoadResString(@RsAlwaysEnabled); BMenu.Verb := ProjectManagerSubMenuNames[Action, deAlwaysEnabled]; BMenu.Parent := ParentVerb; BMenu.OnExecute := MenuExecute; @@ -1638,7 +1638,7 @@ BMenu := TJclOTAProjectManagerMenu.Create; BMenu.Enabled := True; BMenu.Checked := State = deProjectEnabled; - BMenu.Caption := RsProjectEnabled; + BMenu.Caption := LoadResString(@RsProjectEnabled); BMenu.Verb := ProjectManagerSubMenuNames[Action, deProjectEnabled]; BMenu.Parent := ParentVerb; BMenu.OnExecute := MenuExecute; @@ -1648,7 +1648,7 @@ BMenu := TJclOTAProjectManagerMenu.Create; BMenu.Enabled := True; BMenu.Checked := State = deProjectDisabled; - BMenu.Caption := RsProjectDisabled; + BMenu.Caption := LoadResString(@RsProjectDisabled); BMenu.Verb := ProjectManagerSubMenuNames[Action, deProjectDisabled]; BMenu.Parent := ParentVerb; BMenu.OnExecute := MenuExecute; @@ -1658,7 +1658,7 @@ BMenu := TJclOTAProjectManagerMenu.Create; BMenu.Enabled := True; BMenu.Checked := State = deAlwaysDisabled; - BMenu.Caption := RsAlwaysDisabled; + BMenu.Caption := LoadResString(@RsAlwaysDisabled); BMenu.Verb := ProjectManagerSubMenuNames[Action, deAlwaysDisabled]; BMenu.Parent := ParentVerb; BMenu.OnExecute := MenuExecute; @@ -1678,14 +1678,14 @@ AMenu := TJclOTAProjectManagerMenu.Create; AMenu.Enabled := True; AMenu.Checked := Actions <> []; - AMenu.Caption := RsDebugExpertCaption; + AMenu.Caption := LoadResString(@RsDebugExpertCaption); AMenu.Verb := JclDebugExpertProjMenuName; AMenu.Position := pmmpUserOptions; ProjectManagerMenuList.Add(AMenu); AMenu := TJclOTAProjectManagerMenu.Create; AMenu.Enabled := True; - AMenu.Caption := RsDebugGenerateJdbg; + AMenu.Caption := LoadResString(@RsDebugGenerateJdbg); AMenu.Parent := JclDebugExpertProjMenuName; AMenu.Verb := JclGenerateJdbgProjMenuName; AMenu.Position := pmmpUserOptions + 1; @@ -1694,7 +1694,7 @@ AMenu := TJclOTAProjectManagerMenu.Create; AMenu.Enabled := True; - AMenu.Caption := RsDebugInsertJdbg; + AMenu.Caption := LoadResString(@RsDebugInsertJdbg); AMenu.Parent := JclDebugExpertProjMenuName; AMenu.Verb := JclInsertJdbgProjMenuName; AMenu.Position := pmmpUserOptions + 2; @@ -1703,7 +1703,7 @@ AMenu := TJclOTAProjectManagerMenu.Create; AMenu.Enabled := True; - AMenu.Caption := RsDeleteMapFile; + AMenu.Caption := LoadResString(@RsDeleteMapFile); AMenu.IsMultiSelectable := True; AMenu.Parent := JclDebugExpertProjMenuName; AMenu.Verb := JclDeleteMapFileProjMenuName; @@ -1743,7 +1743,7 @@ FDebugExtension.ProjectStates[Action, Project] := State; end else - raise EJclExpertException.CreateTrace(RsENoActiveProject); + raise EJclExpertException.CreateRes(@RsENoActiveProject); end; except on ExceptionObj: TObject do @@ -1776,7 +1776,7 @@ begin SubMenuItem := TMenuItem.Create(AMenuItem); SubMenuItem.Visible := True; - SubMenuItem.Caption := RsAlwaysEnabled; + SubMenuItem.Caption := LoadResString(@RsAlwaysEnabled); SubMenuItem.RadioItem := True; SubMenuItem.Checked := AState = deAlwaysEnabled; SubMenuItem.Tag := DebugExpertStateToInt(deAlwaysEnabled); @@ -1785,7 +1785,7 @@ SubMenuItem := TMenuItem.Create(AMenuItem); SubMenuItem.Visible := True; - SubMenuItem.Caption := RsProjectEnabled; + SubMenuItem.Caption := LoadResString(@RsProjectEnabled); SubMenuItem.RadioItem := True; SubMenuItem.Checked := AState = deProjectEnabled; SubMenuItem.Tag := DebugExpertStateToInt(deProjectEnabled); @@ -1794,7 +1794,7 @@ SubMenuItem := TMenuItem.Create(AMenuItem); SubMenuItem.Visible := True; - SubMenuItem.Caption := RsProjectDisabled; + SubMenuItem.Caption := LoadResString(@RsProjectDisabled); SubMenuItem.RadioItem := True; SubMenuItem.Checked := AState = deProjectDisabled; SubMenuItem.Tag := DebugExpertStateToInt(deProjectDisabled); @@ -1803,7 +1803,7 @@ SubMenuItem := TMenuItem.Create(AMenuItem); SubMenuItem.Visible := True; - SubMenuItem.Caption := RsAlwaysDisabled; + SubMenuItem.Caption := LoadResString(@RsAlwaysDisabled); SubMenuItem.RadioItem := True; SubMenuItem.Checked := AState = deAlwaysDisabled; SubMenuItem.Tag := DebugExpertStateToInt(deAlwaysDisabled); @@ -1828,7 +1828,7 @@ // root item Result := TMenuItem.Create(nil); Result.Visible := True; - Result.Caption := RsDebugExpertCaption; + Result.Caption := LoadResString(@RsDebugExpertCaption); if (ADeleteMapFileState in [deAlwaysEnabled, deProjectEnabled]) or (AGenerateJdbgState in [deAlwaysEnabled, deProjectEnabled]) or (AInsertJdbgState in [deAlwaysEnabled, deProjectEnabled]) then @@ -1843,7 +1843,7 @@ // actions items ActionMenuItem := TMenuItem.Create(Result); ActionMenuItem.Visible := True; - ActionMenuItem.Caption := RsDebugGenerateJdbg; + ActionMenuItem.Caption := LoadResString(@RsDebugGenerateJdbg); if AGenerateJdbgState in [deAlwaysEnabled, deProjectEnabled] then begin ActionMenuItem.Checked := True; @@ -1856,7 +1856,7 @@ ActionMenuItem := TMenuItem.Create(Result); ActionMenuItem.Visible := True; - ActionMenuItem.Caption := RsDebugInsertJdbg; + ActionMenuItem.Caption := LoadResString(@RsDebugInsertJdbg); if AInsertJdbgState in [deAlwaysEnabled, deProjectEnabled] then begin ActionMenuItem.Checked := True; @@ -1869,7 +1869,7 @@ ActionMenuItem := TMenuItem.Create(Result); ActionMenuItem.Visible := True; - ActionMenuItem.Caption := RsDeleteMapFile; + ActionMenuItem.Caption := LoadResString(@RsDeleteMapFile); if ADeleteMapFileState in [deAlwaysEnabled, deProjectEnabled] then begin ActionMenuItem.Checked := True; Modified: trunk/jcl/experts/debug/converter/JclDebugIdeResult.dfm =================================================================== --- trunk/jcl/experts/debug/converter/JclDebugIdeResult.dfm 2009-09-14 15:53:23 UTC (rev 3011) +++ trunk/jcl/experts/debug/converter/JclDebugIdeResult.dfm 2009-09-14 16:00:50 UTC (rev 3012) @@ -32,7 +32,7 @@ Width = 75 Height = 25 Anchors = [akLeft, akBottom] - Caption = '&OK' + Caption = 'RsOk' Default = True ModalResult = 1 TabOrder = 0 @@ -87,7 +87,7 @@ Top = 264 Bitmap = { 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000003600000028000000400000001000000001001000000... [truncated message content] |
From: <ou...@us...> - 2009-09-14 15:53:30
|
Revision: 3011 http://jcl.svn.sourceforge.net/jcl/?rev=3011&view=rev Author: outchy Date: 2009-09-14 15:53:23 +0000 (Mon, 14 Sep 2009) Log Message: ----------- fixed possible issue when the variant does not denote an ordinal value. Modified Paths: -------------- trunk/jcl/experts/projectanalyzer/ProjAnalyzerImpl.pas Modified: trunk/jcl/experts/projectanalyzer/ProjAnalyzerImpl.pas =================================================================== --- trunk/jcl/experts/projectanalyzer/ProjAnalyzerImpl.pas 2009-09-13 18:48:11 UTC (rev 3010) +++ trunk/jcl/experts/projectanalyzer/ProjAnalyzerImpl.pas 2009-09-14 15:53:23 UTC (rev 3011) @@ -108,6 +108,7 @@ {$R ProjAnalyzerIcon.res} uses + Variants, JclDebug, JclFileUtils, JclOtaConsts, JclOtaResources; @@ -299,7 +300,7 @@ ProjectAnalyzerForm.SetFileName(ExecutableFileName, MapFileName, ProjectName); ProjectAnalyzerForm.Show; end; - if Integer(SaveMapFile) <> MapFileOptionDetailed then + if (not VarIsOrdinal(SaveMapFile)) or (Integer(SaveMapFile) <> MapFileOptionDetailed) then begin // delete MAP and DRC file DeleteFile(MapFileName); DeleteFile(ChangeFileExt(MapFileName, DrcFileExtension)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-13 18:48:19
|
Revision: 3010 http://jcl.svn.sourceforge.net/jcl/?rev=3010&view=rev Author: outchy Date: 2009-09-13 18:48:11 +0000 (Sun, 13 Sep 2009) Log Message: ----------- The GifImage and GifConsts units are in Delphi 2007's vclimg package. Modified Paths: -------------- trunk/jcl/devtools/pgEdit.xml trunk/jcl/packages/d11/JclVcl.dpk trunk/jcl/packages/d11/JclVcl.dproj trunk/jcl/packages/xml/JclVcl-R.xml Modified: trunk/jcl/devtools/pgEdit.xml =================================================================== --- trunk/jcl/devtools/pgEdit.xml 2009-09-13 09:57:20 UTC (rev 3009) +++ trunk/jcl/devtools/pgEdit.xml 2009-09-13 18:48:11 UTC (rev 3010) @@ -83,7 +83,7 @@ <alias name="Linux" value="fpc"/> <!-- package aliases --> <alias name="allLibSuffix" value="c6,d6,d7,d8,d9,d10,cs1,d11,d12,d14"/> - <alias name="allv12up" value="d12,d14"/> + <alias name="allv11up" value="d11,d12,d14"/> <!-- GUI aliases --> <alias name="Clx" value="c6,d6,d7"/> <alias name="Vcl" value="c6,d6,d7,d9,d10,d11,d12,d14"/> Modified: trunk/jcl/packages/d11/JclVcl.dpk =================================================================== --- trunk/jcl/packages/d11/JclVcl.dpk 2009-09-13 09:57:20 UTC (rev 3009) +++ trunk/jcl/packages/d11/JclVcl.dpk 2009-09-13 18:48:11 UTC (rev 3010) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 12-09-2009 20:46:34 UTC + Last generated: 13-09-2009 18:42:22 UTC ----------------------------------------------------------------------------- } @@ -42,6 +42,7 @@ rtl, vcl, vcljpg, + vclimg, Jcl ; Modified: trunk/jcl/packages/d11/JclVcl.dproj =================================================================== --- trunk/jcl/packages/d11/JclVcl.dproj 2009-09-13 09:57:20 UTC (rev 3009) +++ trunk/jcl/packages/d11/JclVcl.dproj 2009-09-13 18:48:11 UTC (rev 3010) @@ -5,7 +5,7 @@ <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_UsePackage>rtl;vcl;vcljpg;Jcl</DCC_UsePackage> + <DCC_UsePackage>rtl;vcl;vcljpg;vclimg;Jcl</DCC_UsePackage> <DCC_Define>BCB;RELEASE</DCC_Define> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> @@ -88,6 +88,7 @@ <DCCReference Include="rtl.dcp" /> <DCCReference Include="vcl.dcp" /> <DCCReference Include="vcljpg.dcp" /> + <DCCReference Include="vclimg.dcp" /> <DCCReference Include="Jcl.dcp" /> <DCCReference Include="..\..\source\vcl\JclPrint.pas" /> <DCCReference Include="..\..\source\vcl\JclGraphUtils.pas" /> Modified: trunk/jcl/packages/xml/JclVcl-R.xml =================================================================== --- trunk/jcl/packages/xml/JclVcl-R.xml 2009-09-13 09:57:20 UTC (rev 3009) +++ trunk/jcl/packages/xml/JclVcl-R.xml 2009-09-13 18:48:11 UTC (rev 3010) @@ -12,7 +12,7 @@ <Package Name="rtl" Targets="allLibSuffix" Condition=""/> <Package Name="vcl" Targets="allLibSuffix" Condition=""/> <Package Name="vcljpg" Targets="c6,d6,d7,d8,d9,d10,cs1,d11" Condition=""/> - <Package Name="vclimg" Targets="allv12up" Condition=""/> + <Package Name="vclimg" Targets="allv11up" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> </Requires> <Contains> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-13 09:57:28
|
Revision: 3009 http://jcl.svn.sourceforge.net/jcl/?rev=3009&view=rev Author: outchy Date: 2009-09-13 09:57:20 +0000 (Sun, 13 Sep 2009) Log Message: ----------- run-time resources shall be in JclResources.pas. Modified Paths: -------------- trunk/jcl/source/common/JclResources.pas trunk/jcl/source/windows/JclTimeZones.pas Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2009-09-12 22:02:32 UTC (rev 3008) +++ trunk/jcl/source/common/JclResources.pas 2009-09-13 09:57:20 UTC (rev 3009) @@ -2156,6 +2156,12 @@ resourcestring RsHasNotTD32Info = 'File [%s] has not TD32 debug information!'; +//=== JclTimeZones =========================================================== +resourcestring + RsEDaylightSavingsNotSupported = 'Daylight Savings not supported by this timezone'; + RsEAutoAdjustNotEnabled = 'Auto adjust for Daylight Savings is not enabled. Date is not available'; + RsENoCallbackFunc = 'No callback function assigned'; + //=== JclUnicode ============================================================= resourcestring RsUREErrorFmt = '%s%s%s'; Modified: trunk/jcl/source/windows/JclTimeZones.pas =================================================================== --- trunk/jcl/source/windows/JclTimeZones.pas 2009-09-12 22:02:32 UTC (rev 3008) +++ trunk/jcl/source/windows/JclTimeZones.pas 2009-09-13 09:57:20 UTC (rev 3009) @@ -183,13 +183,9 @@ uses Messages, + JclResources, JclDateTime, JclRegistry; -resourcestring - RsEDaylightSavingsNotSupported = 'Daylight Savings not supported by this timezone'; - RsEAutoAdjustNotEnabled = 'Auto adjust for Daylight Savings is not enabled. Date is not available'; - RsENoCallbackFunc = 'No callback function assigned'; - const cAutoAdjustKey = '\System\CurrentControlSet\Control\TimeZoneInformation'; cAutoAdjustValue = 'DisableAutoDaylightTimeSet'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 22:02:40
|
Revision: 3008 http://jcl.svn.sourceforge.net/jcl/?rev=3008&view=rev Author: outchy Date: 2009-09-12 22:02:32 +0000 (Sat, 12 Sep 2009) Log Message: ----------- New one-liner conversion functions from Bitmap to Gif/Png and from Gif/Png to Bitmap. Added HAS_UNIT_GIFIMG compiler defines for D11 and newer. Modified Paths: -------------- trunk/jcl/source/include/jedi.inc trunk/jcl/source/prototypes/_Graphics.pas trunk/jcl/source/vcl/JclGraphics.pas trunk/jcl/source/vcl/JclVclResources.pas Modified: trunk/jcl/source/include/jedi.inc =================================================================== --- trunk/jcl/source/include/jedi.inc 2009-09-12 20:52:07 UTC (rev 3007) +++ trunk/jcl/source/include/jedi.inc 2009-09-12 22:02:32 UTC (rev 3008) @@ -417,6 +417,7 @@ HAS_UNIT_DATEUTILS Unit DateUtils exists (D6+/BCB6+/FPC) HAS_UNIT_CONTNRS Unit contnrs exists (D6+/BCB6+/FPC) HAS_UNIT_HTTPPROD Unit HTTPProd exists (D9+) + HAS_UNIT_GIFIMG Unit GifImg exists (D11+) HAS_UNIT_ANSISTRINGS Unit AnsiStrings exists (D12+) HAS_UNIT_PNGIMAGE Unit PngImage exists (D12+) XPLATFORM_RTL The RTL supports crossplatform function names (e.g. RaiseLastOSError) (D6+/BCB6+/FPC) @@ -1172,6 +1173,10 @@ {$DEFINE HAS_UNIT_HTTPPROD} {$ENDIF RTL170_UP} +{$IFDEF RTL185_UP} + {$DEFINE HAS_UNIT_GIFIMG} +{$ENDIF RTL185_UP} + {$IFDEF RTL200_UP} {$DEFINE HAS_UNIT_ANSISTRINGS} {$DEFINE HAS_UNIT_PNGIMAGE} Modified: trunk/jcl/source/prototypes/_Graphics.pas =================================================================== --- trunk/jcl/source/prototypes/_Graphics.pas 2009-09-12 20:52:07 UTC (rev 3007) +++ trunk/jcl/source/prototypes/_Graphics.pas 2009-09-12 22:02:32 UTC (rev 3008) @@ -491,6 +491,16 @@ procedure BitmapToJPeg(const FileName: string); procedure JPegToBitmap(const FileName: string); +{$IFDEF HAS_UNIT_GIFIMG} +procedure BitmapToGif(const FileName: string); +procedure GifToBitmap(const FileName: string); +{$ENDIF HAS_UNIT_GIFIMG} + +{$IFDEF HAS_UNIT_PNGIMAGE} +procedure BitmapToPng(const FileName: string); +procedure PngToBitmap(const FileName: string); +{$ENDIF HAS_UNIT_PNGIMAGE} + procedure SaveIconToFile(Icon: HICON; const FileName: string); procedure WriteIcon(Stream: TStream; ColorBitmap, MaskBitmap: HBITMAP; WriteLength: Boolean = False); overload; @@ -570,6 +580,12 @@ {$IFDEF MSWINDOWS} CommCtrl, ShellApi, {$IFDEF VCL} + {$IFDEF HAS_UNIT_GIFIMG} + GifImg, + {$ENDIF HAS_UNIT_GIFIMG} + {$IFDEF HAS_UNIT_PNGIMAGE} + PngImage, + {$ENDIF HAS_UNIT_PNGIMAGE} ClipBrd, JPeg, TypInfo, JclVclResources, {$ENDIF VCL} @@ -1634,43 +1650,77 @@ Result := Antialias; end; -procedure JPegToBitmap(const FileName: string); +procedure ImgToBitmap(const FileName: string; GraphicClass: TGraphicClass); var Bitmap: TBitmap; - JPeg: TJPegImage; + Img: TGraphic; begin Bitmap := nil; - JPeg := nil; + Img := nil; try - JPeg := TJPegImage.Create; - JPeg.LoadFromFile(FileName); + Img := GraphicClass.Create; + Img.LoadFromFile(FileName); Bitmap := TBitmap.Create; - Bitmap.Assign(JPeg); + Bitmap.Assign(Img); Bitmap.SaveToFile(ChangeFileExt(FileName, LoadResString(@RsBitmapExtension))); finally - FreeAndNil(Bitmap); - FreeAndNil(JPeg); + Bitmap.Free; + Img.Free; end; end; -procedure BitmapToJPeg(const FileName: string); +procedure BitmapToImg(const FileName, FileExtension: string; GraphicClass: TGraphicClass); var Bitmap: TBitmap; - JPeg: TJPegImage; + Img: TGraphic; begin Bitmap := nil; - JPeg := nil; + Img := nil; try Bitmap := TBitmap.Create; Bitmap.LoadFromFile(FileName); - JPeg := TJPegImage.Create; - JPeg.Assign(Bitmap); - JPeg.SaveToFile(ChangeFileExt(FileName, LoadResString(@RsJpegExtension))); + Img := GraphicClass.Create; + Img.Assign(Bitmap); + Img.SaveToFile(ChangeFileExt(FileName, FileExtension)); finally - FreeAndNil(Bitmap); - FreeAndNil(JPeg); + Bitmap.Free; + Img.Free; end; end; + +procedure JPegToBitmap(const FileName: string); +begin + ImgToBitmap(FileName, TJPegImage); +end; + +procedure BitmapToJPeg(const FileName: string); +begin + BitmapToImg(FileName, LoadResString(@RsJpegExtension), TJPEGImage); +end; + +{$IFDEF HAS_UNIT_GIFIMG} +procedure GifToBitmap(const FileName: string); +begin + ImgToBitmap(FileName, TGifImage); +end; + +procedure BitmapToGif(const FileName: string); +begin + BitmapToImg(FileName, LoadResString(@RsGifExtension), TGifImage); +end; +{$ENDIF HAS_UNIT_GIFIMG} + +{$IFDEF HAS_UNIT_PNGIMAGE} +procedure PngToBitmap(const FileName: string); +begin + ImgToBitmap(FileName, TPngImage); +end; + +procedure BitmapToPng(const FileName: string); +begin + BitmapToImg(FileName, LoadResString(@RsPngExtension), TPngImage); +end; +{$ENDIF HAS_UNIT_PNGIMAGE} {$ENDIF VCL} {$IFDEF MSWINDOWS} Modified: trunk/jcl/source/vcl/JclGraphics.pas =================================================================== --- trunk/jcl/source/vcl/JclGraphics.pas 2009-09-12 20:52:07 UTC (rev 3007) +++ trunk/jcl/source/vcl/JclGraphics.pas 2009-09-12 22:02:32 UTC (rev 3008) @@ -493,6 +493,16 @@ procedure BitmapToJPeg(const FileName: string); procedure JPegToBitmap(const FileName: string); +{$IFDEF HAS_UNIT_GIFIMG} +procedure BitmapToGif(const FileName: string); +procedure GifToBitmap(const FileName: string); +{$ENDIF HAS_UNIT_GIFIMG} + +{$IFDEF HAS_UNIT_PNGIMAGE} +procedure BitmapToPng(const FileName: string); +procedure PngToBitmap(const FileName: string); +{$ENDIF HAS_UNIT_PNGIMAGE} + procedure SaveIconToFile(Icon: HICON; const FileName: string); procedure WriteIcon(Stream: TStream; ColorBitmap, MaskBitmap: HBITMAP; WriteLength: Boolean = False); overload; @@ -572,6 +582,12 @@ CommCtrl, ShellApi, + {$IFDEF HAS_UNIT_GIFIMG} + GifImg, + {$ENDIF HAS_UNIT_GIFIMG} + {$IFDEF HAS_UNIT_PNGIMAGE} + PngImage, + {$ENDIF HAS_UNIT_PNGIMAGE} ClipBrd, JPeg, TypInfo, JclVclResources, @@ -1636,46 +1652,80 @@ Result := Antialias; end; -procedure JPegToBitmap(const FileName: string); +procedure ImgToBitmap(const FileName: string; GraphicClass: TGraphicClass); var Bitmap: TBitmap; - JPeg: TJPegImage; + Img: TGraphic; begin Bitmap := nil; - JPeg := nil; + Img := nil; try - JPeg := TJPegImage.Create; - JPeg.LoadFromFile(FileName); + Img := GraphicClass.Create; + Img.LoadFromFile(FileName); Bitmap := TBitmap.Create; - Bitmap.Assign(JPeg); + Bitmap.Assign(Img); Bitmap.SaveToFile(ChangeFileExt(FileName, LoadResString(@RsBitmapExtension))); finally - FreeAndNil(Bitmap); - FreeAndNil(JPeg); + Bitmap.Free; + Img.Free; end; end; -procedure BitmapToJPeg(const FileName: string); +procedure BitmapToImg(const FileName, FileExtension: string; GraphicClass: TGraphicClass); var Bitmap: TBitmap; - JPeg: TJPegImage; + Img: TGraphic; begin Bitmap := nil; - JPeg := nil; + Img := nil; try Bitmap := TBitmap.Create; Bitmap.LoadFromFile(FileName); - JPeg := TJPegImage.Create; - JPeg.Assign(Bitmap); - JPeg.SaveToFile(ChangeFileExt(FileName, LoadResString(@RsJpegExtension))); + Img := GraphicClass.Create; + Img.Assign(Bitmap); + Img.SaveToFile(ChangeFileExt(FileName, FileExtension)); finally - FreeAndNil(Bitmap); - FreeAndNil(JPeg); + Bitmap.Free; + Img.Free; end; end; +procedure JPegToBitmap(const FileName: string); +begin + ImgToBitmap(FileName, TJPegImage); +end; +procedure BitmapToJPeg(const FileName: string); +begin + BitmapToImg(FileName, LoadResString(@RsJpegExtension), TJPEGImage); +end; +{$IFDEF HAS_UNIT_GIFIMG} +procedure GifToBitmap(const FileName: string); +begin + ImgToBitmap(FileName, TGifImage); +end; + +procedure BitmapToGif(const FileName: string); +begin + BitmapToImg(FileName, LoadResString(@RsGifExtension), TGifImage); +end; +{$ENDIF HAS_UNIT_GIFIMG} + +{$IFDEF HAS_UNIT_PNGIMAGE} +procedure PngToBitmap(const FileName: string); +begin + ImgToBitmap(FileName, TPngImage); +end; + +procedure BitmapToPng(const FileName: string); +begin + BitmapToImg(FileName, LoadResString(@RsPngExtension), TPngImage); +end; +{$ENDIF HAS_UNIT_PNGIMAGE} + + + function ExtractIconCount(const FileName: string): Integer; begin Result := ExtractIcon(HInstance, PChar(FileName), $FFFFFFFF); Modified: trunk/jcl/source/vcl/JclVclResources.pas =================================================================== --- trunk/jcl/source/vcl/JclVclResources.pas 2009-09-12 20:52:07 UTC (rev 3007) +++ trunk/jcl/source/vcl/JclVclResources.pas 2009-09-12 22:02:32 UTC (rev 3008) @@ -75,6 +75,8 @@ RsBitmapExtension = '.bmp'; RsJpegExtension = '.jpg'; + RsGifExtension = '.gif'; + RsPngExtension = '.png'; //=== JclGraphUtils ========================================================== resourcestring This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 20:52:17
|
Revision: 3007 http://jcl.svn.sourceforge.net/jcl/?rev=3007&view=rev Author: outchy Date: 2009-09-12 20:52:07 +0000 (Sat, 12 Sep 2009) Log Message: ----------- Resources cleanup: all resource strings have to be loaded using LoadResString. New unit JclVclResources.pas to hold resources for the JclVcl packages. Modified Paths: -------------- trunk/jcl/experts/versioncontrol/JclVersionControlImpl.pas trunk/jcl/install/HeaderTest/jcl_a2z.cpp trunk/jcl/install/HeaderTest/jcl_z2a.cpp trunk/jcl/packages/c6/JclVcl.bpk trunk/jcl/packages/c6/JclVcl.dpk trunk/jcl/packages/d10/JclVcl.dpk trunk/jcl/packages/d11/JclVcl.dpk trunk/jcl/packages/d11/JclVcl.dproj trunk/jcl/packages/d12/JclVcl.dpk trunk/jcl/packages/d12/JclVcl.dproj trunk/jcl/packages/d12/JclVcl.res trunk/jcl/packages/d14/JclVcl.dpk trunk/jcl/packages/d14/JclVcl.dproj trunk/jcl/packages/d6/JclVcl.dpk trunk/jcl/packages/d7/JclVcl.dpk trunk/jcl/packages/d9/JclVcl.dpk trunk/jcl/packages/xml/JclVcl-R.xml trunk/jcl/source/common/JclBorlandTools.pas trunk/jcl/source/common/JclCompression.pas trunk/jcl/source/common/JclEDI.pas trunk/jcl/source/common/JclEDISEF.pas trunk/jcl/source/common/JclEDIXML.pas trunk/jcl/source/common/JclFileUtils.pas trunk/jcl/source/common/JclMIDI.pas trunk/jcl/source/common/JclRTTI.pas trunk/jcl/source/common/JclResources.pas trunk/jcl/source/common/JclSimpleXml.pas trunk/jcl/source/common/JclSysInfo.pas trunk/jcl/source/common/JclSysUtils.pas trunk/jcl/source/prototypes/JclWin32.pas trunk/jcl/source/prototypes/_GraphUtils.pas trunk/jcl/source/prototypes/_Graphics.pas trunk/jcl/source/vcl/JclGraphUtils.pas trunk/jcl/source/vcl/JclGraphics.pas trunk/jcl/source/vcl/JclPrint.pas trunk/jcl/source/vcl/JclVersionControl.pas trunk/jcl/source/vcl/JclVersionCtrlCVSImpl.pas trunk/jcl/source/vcl/JclVersionCtrlSVNImpl.pas trunk/jcl/source/windows/JclCIL.pas trunk/jcl/source/windows/JclCLR.pas trunk/jcl/source/windows/JclDebug.pas trunk/jcl/source/windows/JclMapi.pas trunk/jcl/source/windows/JclMultimedia.pas trunk/jcl/source/windows/JclPeImage.pas trunk/jcl/source/windows/JclRegistry.pas trunk/jcl/source/windows/JclWin32.pas Added Paths: ----------- trunk/jcl/source/vcl/JclVclResources.pas Modified: trunk/jcl/experts/versioncontrol/JclVersionControlImpl.pas =================================================================== --- trunk/jcl/experts/versioncontrol/JclVersionControlImpl.pas 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/experts/versioncontrol/JclVersionControlImpl.pas 2009-09-12 20:52:07 UTC (rev 3007) @@ -21,7 +21,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -1047,7 +1047,7 @@ AAction := AStandardAction; end; - AAction.Caption := ControlActionInfo.Caption; + AAction.Caption := LoadResString(ControlActionInfo.Caption); AAction.Name := ControlActionInfo.ActionName; AAction.Visible := True; AAction.ActionList := IDEActionList; Modified: trunk/jcl/install/HeaderTest/jcl_a2z.cpp =================================================================== --- trunk/jcl/install/HeaderTest/jcl_a2z.cpp 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/install/HeaderTest/jcl_a2z.cpp 2009-09-12 20:52:07 UTC (rev 3007) @@ -275,6 +275,9 @@ #ifdef TEST_COMMON #include <JclValidation.hpp> #endif TEST_COMMON +#ifdef TEST_VCL +#include <JclVclResources.hpp> +#endif TEST_VCL #ifdef TEST_COMMON #include <JclVectors.hpp> #endif TEST_COMMON Modified: trunk/jcl/install/HeaderTest/jcl_z2a.cpp =================================================================== --- trunk/jcl/install/HeaderTest/jcl_z2a.cpp 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/install/HeaderTest/jcl_z2a.cpp 2009-09-12 20:52:07 UTC (rev 3007) @@ -56,6 +56,9 @@ #ifdef TEST_COMMON #include <JclVectors.hpp> #endif TEST_COMMON +#ifdef TEST_VCL +#include <JclVclResources.hpp> +#endif TEST_VCL #ifdef TEST_COMMON #include <JclValidation.hpp> #endif TEST_COMMON Modified: trunk/jcl/packages/c6/JclVcl.bpk =================================================================== --- trunk/jcl/packages/c6/JclVcl.bpk 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/c6/JclVcl.bpk 2009-09-12 20:52:07 UTC (rev 3007) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 28-06-2009 20:45:12 UTC + Last generated: 12-09-2009 20:46:31 UTC ***************************************************************************** --> <PROJECT> @@ -18,6 +18,7 @@ ..\..\lib\c6\JclGraphUtils.obj ..\..\lib\c6\JclGraphics.obj ..\..\lib\c6\JclFont.obj + ..\..\lib\c6\JclVclResources.obj ..\..\lib\c6\JclVersionControl.obj ..\..\lib\c6\JclVersionCtrlCVSImpl.obj ..\..\lib\c6\JclVersionCtrlSVNImpl.obj @@ -81,6 +82,7 @@ <FILE FILENAME="..\..\source\vcl\JclGraphUtils.pas" FORMNAME="" UNITNAME="JclGraphUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\vcl\JclGraphics.pas" FORMNAME="" UNITNAME="JclGraphics" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\vcl\JclFont.pas" FORMNAME="" UNITNAME="JclFont" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\source\vcl\JclVclResources.pas" FORMNAME="" UNITNAME="JclVclResources" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\vcl\JclVersionControl.pas" FORMNAME="" UNITNAME="JclVersionControl" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\vcl\JclVersionCtrlCVSImpl.pas" FORMNAME="" UNITNAME="JclVersionCtrlCVSImpl" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\vcl\JclVersionCtrlSVNImpl.pas" FORMNAME="" UNITNAME="JclVersionCtrlSVNImpl" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jcl/packages/c6/JclVcl.dpk =================================================================== --- trunk/jcl/packages/c6/JclVcl.dpk 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/c6/JclVcl.dpk 2009-09-12 20:52:07 UTC (rev 3007) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 14-03-2009 14:35:13 UTC + Last generated: 12-09-2009 20:46:31 UTC ----------------------------------------------------------------------------- } @@ -49,6 +49,7 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , JclVersionCtrlSVNImpl in '..\..\source\vcl\JclVersionCtrlSVNImpl.pas' Modified: trunk/jcl/packages/d10/JclVcl.dpk =================================================================== --- trunk/jcl/packages/d10/JclVcl.dpk 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/d10/JclVcl.dpk 2009-09-12 20:52:07 UTC (rev 3007) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 14-03-2009 14:35:14 UTC + Last generated: 12-09-2009 20:46:33 UTC ----------------------------------------------------------------------------- } @@ -50,6 +50,7 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , JclVersionCtrlSVNImpl in '..\..\source\vcl\JclVersionCtrlSVNImpl.pas' Modified: trunk/jcl/packages/d11/JclVcl.dpk =================================================================== --- trunk/jcl/packages/d11/JclVcl.dpk 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/d11/JclVcl.dpk 2009-09-12 20:52:07 UTC (rev 3007) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 14-03-2009 14:35:14 UTC + Last generated: 12-09-2009 20:46:34 UTC ----------------------------------------------------------------------------- } @@ -50,6 +50,7 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , JclVersionCtrlSVNImpl in '..\..\source\vcl\JclVersionCtrlSVNImpl.pas' Modified: trunk/jcl/packages/d11/JclVcl.dproj =================================================================== --- trunk/jcl/packages/d11/JclVcl.dproj 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/d11/JclVcl.dproj 2009-09-12 20:52:07 UTC (rev 3007) @@ -93,6 +93,7 @@ <DCCReference Include="..\..\source\vcl\JclGraphUtils.pas" /> <DCCReference Include="..\..\source\vcl\JclGraphics.pas" /> <DCCReference Include="..\..\source\vcl\JclFont.pas" /> + <DCCReference Include="..\..\source\vcl\JclVclResources.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionControl.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionCtrlCVSImpl.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionCtrlSVNImpl.pas" /> Modified: trunk/jcl/packages/d12/JclVcl.dpk =================================================================== --- trunk/jcl/packages/d12/JclVcl.dpk 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/d12/JclVcl.dpk 2009-09-12 20:52:07 UTC (rev 3007) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 24-07-2009 09:49:30 UTC + Last generated: 12-09-2009 20:46:34 UTC ----------------------------------------------------------------------------- } @@ -50,6 +50,7 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , JclVersionCtrlSVNImpl in '..\..\source\vcl\JclVersionCtrlSVNImpl.pas' Modified: trunk/jcl/packages/d12/JclVcl.dproj =================================================================== --- trunk/jcl/packages/d12/JclVcl.dproj 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/d12/JclVcl.dproj 2009-09-12 20:52:07 UTC (rev 3007) @@ -68,6 +68,7 @@ <DCCReference Include="..\..\source\vcl\JclGraphUtils.pas" /> <DCCReference Include="..\..\source\vcl\JclGraphics.pas" /> <DCCReference Include="..\..\source\vcl\JclFont.pas" /> + <DCCReference Include="..\..\source\vcl\JclVclResources.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionControl.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionCtrlCVSImpl.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionCtrlSVNImpl.pas" /> Modified: trunk/jcl/packages/d12/JclVcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclVcl.dpk =================================================================== --- trunk/jcl/packages/d14/JclVcl.dpk 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/d14/JclVcl.dpk 2009-09-12 20:52:07 UTC (rev 3007) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 24-07-2009 13:43:27 UTC + Last generated: 12-09-2009 20:46:34 UTC ----------------------------------------------------------------------------- } @@ -50,6 +50,7 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , JclVersionCtrlSVNImpl in '..\..\source\vcl\JclVersionCtrlSVNImpl.pas' Modified: trunk/jcl/packages/d14/JclVcl.dproj =================================================================== --- trunk/jcl/packages/d14/JclVcl.dproj 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/d14/JclVcl.dproj 2009-09-12 20:52:07 UTC (rev 3007) @@ -70,6 +70,7 @@ <DCCReference Include="..\..\source\vcl\JclGraphUtils.pas" /> <DCCReference Include="..\..\source\vcl\JclGraphics.pas" /> <DCCReference Include="..\..\source\vcl\JclFont.pas" /> + <DCCReference Include="..\..\source\vcl\JclVclResources.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionControl.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionCtrlCVSImpl.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionCtrlSVNImpl.pas" /> Modified: trunk/jcl/packages/d6/JclVcl.dpk =================================================================== --- trunk/jcl/packages/d6/JclVcl.dpk 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/d6/JclVcl.dpk 2009-09-12 20:52:07 UTC (rev 3007) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 14-03-2009 14:35:13 UTC + Last generated: 12-09-2009 20:46:32 UTC ----------------------------------------------------------------------------- } @@ -49,6 +49,7 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , JclVersionCtrlSVNImpl in '..\..\source\vcl\JclVersionCtrlSVNImpl.pas' Modified: trunk/jcl/packages/d7/JclVcl.dpk =================================================================== --- trunk/jcl/packages/d7/JclVcl.dpk 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/d7/JclVcl.dpk 2009-09-12 20:52:07 UTC (rev 3007) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 14-03-2009 14:35:14 UTC + Last generated: 12-09-2009 20:46:32 UTC ----------------------------------------------------------------------------- } @@ -49,6 +49,7 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , JclVersionCtrlSVNImpl in '..\..\source\vcl\JclVersionCtrlSVNImpl.pas' Modified: trunk/jcl/packages/d9/JclVcl.dpk =================================================================== --- trunk/jcl/packages/d9/JclVcl.dpk 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/d9/JclVcl.dpk 2009-09-12 20:52:07 UTC (rev 3007) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 14-03-2009 14:35:14 UTC + Last generated: 12-09-2009 20:46:33 UTC ----------------------------------------------------------------------------- } @@ -49,6 +49,7 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , JclVersionCtrlSVNImpl in '..\..\source\vcl\JclVersionCtrlSVNImpl.pas' Modified: trunk/jcl/packages/xml/JclVcl-R.xml =================================================================== --- trunk/jcl/packages/xml/JclVcl-R.xml 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/packages/xml/JclVcl-R.xml 2009-09-12 20:52:07 UTC (rev 3007) @@ -20,6 +20,7 @@ <File Name="..\..\source\vcl\JclGraphUtils.pas" Targets="Vcl" Formname="" Condition=""/> <File Name="..\..\source\vcl\JclGraphics.pas" Targets="Vcl" Formname="" Condition=""/> <File Name="..\..\source\vcl\JclFont.pas" Targets="Vcl" Formname="" Condition=""/> + <File Name="..\..\source\vcl\JclVclResources.pas" Targets="Vcl" Formname="" Condition=""/> <File Name="..\..\source\vcl\JclVersionControl.pas" Targets="Vcl" Formname="" Condition=""/> <File Name="..\..\source\vcl\JclVersionCtrlCVSImpl.pas" Targets="Vcl" Formname="" Condition=""/> <File Name="..\..\source\vcl\JclVersionCtrlSVNImpl.pas" Targets="Vcl" Formname="" Condition=""/> Modified: trunk/jcl/source/common/JclBorlandTools.pas =================================================================== --- trunk/jcl/source/common/JclBorlandTools.pas 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/source/common/JclBorlandTools.pas 2009-09-12 20:52:07 UTC (rev 3007) @@ -904,7 +904,7 @@ {$IFDEF MSWINDOWS} type TBDSVersionInfo = record - Name: string; + Name: PResStringRec; VersionStr: string; Version: Integer; CoreIdeVersion: string; @@ -925,43 +925,43 @@ BDSVersions: array [1..7] of TBDSVersionInfo = ( ( - Name: RsCSharpName; + Name: @RsCSharpName; VersionStr: '1.0'; Version: 1; CoreIdeVersion: '71'; Supported: True), ( - Name: RsDelphiName; + Name: @RsDelphiName; VersionStr: '8'; Version: 8; CoreIdeVersion: '71'; Supported: True), ( - Name: RsDelphiName; + Name: @RsDelphiName; VersionStr: '2005'; Version: 9; CoreIdeVersion: '90'; Supported: True), ( - Name: RsBDSName; + Name: @RsBDSName; VersionStr: '2006'; Version: 10; CoreIdeVersion: '100'; Supported: True), ( - Name: RsRSName; + Name: @RsRSName; VersionStr: '2007'; Version: 11; CoreIdeVersion: '100'; Supported: True), ( - Name: RsRSName; + Name: @RsRSName; VersionStr: '2009'; Version: 12; CoreIdeVersion: '120'; Supported: True), ( - Name: RsRSName; + Name: @RsRSName; VersionStr: '2010'; Version: 14; CoreIdeVersion: '140'; @@ -1015,6 +1015,7 @@ ConfigurationExtension = '.cfg'; {$IFDEF MSWINDOWS} + VclIncludeDirName = '%s\Include\Vcl\'; AsmExeName = 'tasm32.exe'; BCC32ExeName = 'bcc32.exe'; DCC32ExeName = 'dcc32.exe'; @@ -3331,7 +3332,7 @@ var SaveDir, PackagePath, MakeFileName: string; begin - OutputString(Format(RsCompilingPackage, [PackageName])); + OutputString(Format(LoadResString(@RsCompilingPackage), [PackageName])); if not IsBCBPackage(PackageName) then raise EJclBorRADException.CreateResFmt(@RsENotABCBPackage, [PackageName]); @@ -3358,16 +3359,16 @@ end; if Result then - OutputString(RsCompilationOk) + OutputString(LoadResString(@RsCompilationOk)) else - OutputString(RsCompilationFailed); + OutputString(LoadResString(@RsCompilationFailed)); end; function TJclBorRADToolInstallation.CompileBCBProject(const ProjectName, OutputDir, DcpSearchPath: string): Boolean; var SaveDir, PackagePath, MakeFileName: string; begin - OutputString(Format(RsCompilingProject, [ProjectName])); + OutputString(Format(LoadResString(@RsCompilingProject), [ProjectName])); if not IsBCBProject(ProjectName) then raise EJclBorRADException.CreateResFmt(@RsENotADelphiProject, [ProjectName]); @@ -3394,9 +3395,9 @@ end; if Result then - OutputString(RsCompilationOk) + OutputString(LoadResString(@RsCompilationOk)) else - OutputString(RsCompilationFailed); + OutputString(LoadResString(@RsCompilationFailed)); end; function TJclBorRADToolInstallation.CompileDelphiPackage(const PackageName, @@ -3410,7 +3411,7 @@ var NewOptions: string; begin - OutputString(Format(RsCompilingPackage, [PackageName])); + OutputString(Format(LoadResString(@RsCompilingPackage), [PackageName])); if not IsDelphiPackage(PackageName) then raise EJclBorRADException.CreateResFmt(@RsENotADelphiPackage, [PackageName]); @@ -3424,9 +3425,9 @@ ProcessMapFile(BinaryFileName(BPLPath, PackageName)); if Result then - OutputString(RsCompilationOk) + OutputString(LoadResString(@RsCompilationOk)) else - OutputString(RsCompilationFailed); + OutputString(LoadResString(@RsCompilationFailed)); end; function TJclBorRADToolInstallation.CompileDelphiProject(const ProjectName, @@ -3434,7 +3435,7 @@ var ExtraOptions: string; begin - OutputString(Format(RsCompilingProject, [ProjectName])); + OutputString(Format(LoadResString(@RsCompilingProject), [ProjectName])); if not IsDelphiProject(ProjectName) then raise EJclBorRADException.CreateResFmt(@RsENotADelphiProject, [ProjectName]); @@ -3448,9 +3449,9 @@ ProcessMapFile(BinaryFileName(OutputDir, ProjectName)); if Result then - OutputString(RsCompilationOk) + OutputString(LoadResString(@RsCompilationOk)) else - OutputString(RsCompilationFailed); + OutputString(LoadResString(@RsCompilationFailed)); end; function TJclBorRADToolInstallation.CompilePackage(const PackageName, BPLPath, @@ -3561,7 +3562,7 @@ begin Result := Format('%s %s', [Name, EditionAsText]); if InstalledUpdatePack > 0 then - Result := Result + ' ' + Format(RsUpdatePackName, [InstalledUpdatePack]); + Result := Result + ' ' + Format(LoadResString(@RsUpdatePackName), [InstalledUpdatePack]); end; function TJclBorRADToolInstallation.GetEditionAsText: string; @@ -3571,18 +3572,18 @@ case Edition of deSTD: if (VersionNumber >= 6) or (RadToolKind = brBorlandDevStudio) then - Result := RsPersonal + Result := LoadResString(@RsPersonal) else - Result := RsStandard; + Result := LoadResString(@RsStandard); dePRO: - Result := RsProfessional; + Result := LoadResString(@RsProfessional); deCSS: if (VersionNumber >= 5) or (RadToolKind = brBorlandDevStudio) then - Result := RsEnterprise + Result := LoadResString(@RsEnterprise) else - Result := RsClientServer; + Result := LoadResString(@RsClientServer); deARC: - Result := RsArchitect; + Result := LoadResString(@RsArchitect); end; end; @@ -3743,7 +3744,7 @@ function TJclBorRADToolInstallation.GetVclIncludeDir: string; begin - Result := RootDir + RsVclIncludeDir; + Result := Format(VclIncludeDirName, [RootDir]); if not DirectoryExists(Result) then Result := ''; end; @@ -3752,14 +3753,14 @@ var Unused, Description: string; begin - OutputString(Format(RsExpertInstallationStarted, [ProjectName])); + OutputString(Format(LoadResString(@RsExpertInstallationStarted), [ProjectName])); GetBPRFileInfo(ProjectName, Unused, @Description); Result := CompileBCBProject(ProjectName, OutputDir, DcpSearchPath) and RegisterExpert(BinaryFileName(OutputDir, ProjectName), Description); - OutputString(RsExpertInstallationFinished); + OutputString(LoadResString(@RsExpertInstallationFinished)); end; function TJclBorRADToolInstallation.InstallBCBIdePackage(const PackageName, BPLPath, DCPPath: string): Boolean; @@ -3767,7 +3768,7 @@ RunOnly: Boolean; Unused, Description: string; begin - OutputString(Format(RsIdePackageInstallationStarted, [PackageName])); + OutputString(Format(LoadResString(@RsIdePackageInstallationStarted), [PackageName])); GetBPKFileInfo(PackageName, RunOnly, @Unused, @Description); if RunOnly then @@ -3776,7 +3777,7 @@ Result := CompileBCBPackage(PackageName, BPLPath, DCPPath) and RegisterIdePackage(BinaryFileName(BPLPath, PackageName), Description); - OutputString(RsIdePackageInstallationFinished); + OutputString(LoadResString(@RsIdePackageInstallationFinished)); end; function TJclBorRADToolInstallation.InstallBCBPackage(const PackageName, BPLPath, DCPPath: string): Boolean; @@ -3784,7 +3785,7 @@ RunOnly: Boolean; Unused, Description: string; begin - OutputString(Format(RsPackageInstallationStarted, [PackageName])); + OutputString(Format(LoadResString(@RsPackageInstallationStarted), [PackageName])); GetBPKFileInfo(PackageName, RunOnly, @Unused, @Description); if RunOnly then @@ -3793,21 +3794,21 @@ Result := CompileBCBPackage(PackageName, BPLPath, DCPPath) and RegisterPackage(BinaryFileName(BPLPath, PackageName), Description); - OutputString(RsPackageInstallationFinished); + OutputString(LoadResString(@RsPackageInstallationFinished)); end; function TJclBorRADToolInstallation.InstallDelphiExpert(const ProjectName, OutputDir, DcpSearchPath: string): Boolean; var BaseName: string; begin - OutputString(Format(RsExpertInstallationStarted, [ProjectName])); + OutputString(Format(LoadResString(@RsExpertInstallationStarted), [ProjectName])); BaseName := PathExtractFileNameNoExt(ProjectName); Result := CompileDelphiProject(ProjectName, OutputDir, DcpSearchPath) and RegisterExpert(BinaryFileName(OutputDir, ProjectName), BaseName); - OutputString(RsExpertInstallationFinished); + OutputString(LoadResString(@RsExpertInstallationFinished)); end; function TJclBorRADToolInstallation.InstallDelphiIdePackage(const PackageName, BPLPath, DCPPath: string): Boolean; @@ -3815,7 +3816,7 @@ RunOnly: Boolean; Unused, Description: string; begin - OutputString(Format(RsIdePackageInstallationStarted, [PackageName])); + OutputString(Format(LoadResString(@RsIdePackageInstallationStarted), [PackageName])); GetDPKFileInfo(PackageName, RunOnly, @Unused, @Description); if RunOnly then @@ -3824,7 +3825,7 @@ Result := CompileDelphiPackage(PackageName, BPLPath, DCPPath) and RegisterIdePackage(BinaryFileName(BPLPath, PackageName), Description); - OutputString(RsIdePackageInstallationFinished); + OutputString(LoadResString(@RsIdePackageInstallationFinished)); end; function TJclBorRADToolInstallation.InstallDelphiPackage(const PackageName, BPLPath, DCPPath: string): Boolean; @@ -3832,7 +3833,7 @@ RunOnly: Boolean; Unused, Description: string; begin - OutputString(Format(RsPackageInstallationStarted, [PackageName])); + OutputString(Format(LoadResString(@RsPackageInstallationStarted), [PackageName])); GetDPKFileInfo(PackageName, RunOnly, @Unused, @Description); if RunOnly then @@ -3841,7 +3842,7 @@ Result := CompileDelphiPackage(PackageName, BPLPath, DCPPath) and RegisterPackage(BinaryFileName(BPLPath, PackageName), Description); - OutputString(RsPackageInstallationFinished); + OutputString(LoadResString(@RsPackageInstallationFinished)); end; function TJclBorRADToolInstallation.InstallExpert(const ProjectName, OutputDir, DcpSearchPath: string): Boolean; @@ -3926,24 +3927,24 @@ if JdbgInsert then begin - OutputString(Format(RsInsertingJdbg, [BinaryFileName])); + OutputString(Format(LoadResString(@RsInsertingJdbg), [BinaryFileName])); Result := InsertDebugDataIntoExecutableFile(BinaryFileName, MAPFileName, LinkerBugUnit, MAPFileSize, JclDebugDataSize); - OutputString(Format(RsJdbgInfo, [LinkerBugUnit, MAPFileSize, JclDebugDataSize])); + OutputString(Format(LoadResString(@RsJdbgInfo), [LinkerBugUnit, MAPFileSize, JclDebugDataSize])); end else begin - OutputString(Format(RsCreatingJdbg, [BinaryFileName])); + OutputString(Format(LoadResString(@RsCreatingJdbg), [BinaryFileName])); Result := ConvertMapFileToJdbgFile(MAPFileName); end; if Result then begin - OutputString(RsJdbgInfoOk); + OutputString(LoadResString(@RsJdbgInfoOk)); if MapDelete then OutputFileDelete(MAPFileName); end else - OutputString(RsJdbgInfoFailed); + OutputString(LoadResString(@RsJdbgInfoFailed)); end else Result := True; @@ -3954,12 +3955,12 @@ function TJclBorRADToolInstallation.OutputFileDelete(const FileName: string): Boolean; begin - OutputString(Format(RsDeletingFile, [FileName])); + OutputString(Format(LoadResString(@RsDeletingFile), [FileName])); Result := FileDelete(FileName); if Result then - OutputString(RsFileDeletionOk) + OutputString(LoadResString(@RsFileDeletionOk)) else - OutputString(RsFileDeletionFailed); + OutputString(LoadResString(@RsFileDeletionFailed)); end; procedure TJclBorRADToolInstallation.OutputString(const AText: string); @@ -4107,7 +4108,7 @@ var InternalDescription: string; begin - OutputString(Format(RsRegisteringExpert, [BinaryFileName])); + OutputString(Format(LoadResString(@RsRegisteringExpert), [BinaryFileName])); if Description = '' then InternalDescription := PathExtractFileNameNoExt(BinaryFileName) @@ -4116,9 +4117,9 @@ Result := IdePackages.AddExpert(BinaryFileName, InternalDescription); if Result then - OutputString(RsRegistrationOk) + OutputString(LoadResString(@RsRegistrationOk)) else - OutputString(RsRegistrationFailed); + OutputString(LoadResString(@RsRegistrationFailed)); end; function TJclBorRADToolInstallation.RegisterIDEPackage(const PackageName, BPLPath, Description: string): Boolean; @@ -4130,7 +4131,7 @@ var InternalDescription: string; begin - OutputString(Format(RsRegisteringIdePackage, [BinaryFileName])); + OutputString(Format(LoadResString(@RsRegisteringIdePackage), [BinaryFileName])); if Description = '' then InternalDescription := PathExtractFileNameNoExt(BinaryFileName) @@ -4139,9 +4140,9 @@ Result := IdePackages.AddIDEPackage(BinaryFileName, InternalDescription); if Result then - OutputString(RsRegistrationOk) + OutputString(LoadResString(@RsRegistrationOk)) else - OutputString(RsRegistrationFailed); + OutputString(LoadResString(@RsRegistrationFailed)); end; function TJclBorRADToolInstallation.RegisterPackage(const PackageName, BPLPath, Description: string): Boolean; @@ -4153,7 +4154,7 @@ var InternalDescription: string; begin - OutputString(Format(RsRegisteringPackage, [BinaryFileName])); + OutputString(Format(LoadResString(@RsRegisteringPackage), [BinaryFileName])); if Description = '' then InternalDescription := PathExtractFileNameNoExt(BinaryFileName) @@ -4162,9 +4163,9 @@ Result := IdePackages.AddPackage(BinaryFileName, InternalDescription); if Result then - OutputString(RsRegistrationOk) + OutputString(LoadResString(@RsRegistrationOk)) else - OutputString(RsRegistrationFailed); + OutputString(LoadResString(@RsRegistrationFailed)); end; function TJclBorRADToolInstallation.RemoveFromDebugDCUPath(const Path: string): Boolean; @@ -4301,7 +4302,7 @@ var DllFileName: string; begin - OutputString(Format(RsExpertUninstallationStarted, [ProjectName])); + OutputString(Format(LoadResString(@RsExpertUninstallationStarted), [ProjectName])); if not IsBCBProject(ProjectName) then raise EJclBorRADException.CreateResFmt(@RsENotABCBProject, [ProjectName]); @@ -4314,7 +4315,7 @@ if Result then OutputFileDelete(DllFileName); - OutputString(RsExpertUninstallationFinished); + OutputString(LoadResString(@RsExpertUninstallationFinished)); end; function TJclBorRADToolInstallation.UninstallBCBIdePackage(const PackageName, BPLPath, DCPPath: string): Boolean; @@ -4323,7 +4324,7 @@ BPIFileName, LIBFileName, BPLFileName: string; RunOnly: Boolean; begin - OutputString(Format(RsIdePackageUninstallationStarted, [PackageName])); + OutputString(Format(LoadResString(@RsIdePackageUninstallationStarted), [PackageName])); if not IsBCBPackage(PackageName) then raise EJclBorRADException.CreateResFmt(@RsENotABCBPackage, [PackageName]); @@ -4354,7 +4355,7 @@ OutputFileDelete(TDSFileName); end; - OutputString(RsIdePackageUninstallationFinished); + OutputString(LoadResString(@RsIdePackageUninstallationFinished)); end; function TJclBorRADToolInstallation.UninstallBCBPackage(const PackageName, BPLPath, DCPPath: string): Boolean; @@ -4363,7 +4364,7 @@ BPIFileName, LIBFileName, BPLFileName: string; RunOnly: Boolean; begin - OutputString(Format(RsPackageUninstallationStarted, [PackageName])); + OutputString(Format(LoadResString(@RsPackageUninstallationStarted), [PackageName])); if not IsBCBPackage(PackageName) then raise EJclBorRADException.CreateResFmt(@RsENotABCBPackage, [PackageName]); @@ -4394,14 +4395,14 @@ OutputFileDelete(TDSFileName); end; - OutputString(RsPackageUninstallationFinished); + OutputString(LoadResString(@RsPackageUninstallationFinished)); end; function TJclBorRADToolInstallation.UninstallDelphiExpert(const ProjectName, OutputDir: string): Boolean; var DllFileName: string; begin - OutputString(Format(RsExpertUninstallationStarted, [ProjectName])); + OutputString(Format(LoadResString(@RsExpertUninstallationStarted), [ProjectName])); if not IsDelphiProject(ProjectName) then raise EJclBorRADException.CreateResFmt(@RsENotADelphiProject, [ProjectName]); @@ -4414,7 +4415,7 @@ if Result then OutputFileDelete(DllFileName); - OutputString(RsExpertUninstallationFinished); + OutputString(LoadResString(@RsExpertUninstallationFinished)); end; function TJclBorRADToolInstallation.UninstallDelphiIdePackage(const PackageName, BPLPath, DCPPath: string): Boolean; @@ -4424,7 +4425,7 @@ BaseName: string; RunOnly: Boolean; begin - OutputString(Format(RsIdePackageUninstallationStarted, [PackageName])); + OutputString(Format(LoadResString(@RsIdePackageUninstallationStarted), [PackageName])); if not IsDelphiPackage(PackageName) then raise EJclBorRADException.CreateResFmt(@RsENotADelphiPackage, [PackageName]); @@ -4450,7 +4451,7 @@ OutputFileDelete(MAPFileName); end; - OutputString(RsIdePackageUninstallationFinished); + OutputString(LoadResString(@RsIdePackageUninstallationFinished)); end; function TJclBorRADToolInstallation.UninstallDelphiPackage(const PackageName, BPLPath, DCPPath: string): Boolean; @@ -4459,7 +4460,7 @@ BaseName: string; RunOnly: Boolean; begin - OutputString(Format(RsPackageUninstallationStarted, [PackageName])); + OutputString(Format(LoadResString(@RsPackageUninstallationStarted), [PackageName])); if not IsDelphiPackage(PackageName) then raise EJclBorRADException.CreateResFmt(@RsENotADelphiPackage, [PackageName]); @@ -4485,7 +4486,7 @@ OutputFileDelete(MAPFileName); end; - OutputString(RsPackageUninstallationFinished); + OutputString(LoadResString(@RsPackageUninstallationFinished)); end; function TJclBorRADToolInstallation.UninstallExpert(const ProjectName, OutputDir: string): Boolean; @@ -4537,13 +4538,13 @@ function TJclBorRADToolInstallation.UnregisterExpert(const BinaryFileName: string): Boolean; begin - OutputString(Format(RsUnregisteringExpert, [BinaryFileName])); + OutputString(Format(LoadResString(@RsUnregisteringExpert), [BinaryFileName])); Result := IdePackages.RemoveExpert(BinaryFileName); if Result then - OutputString(RsUnregistrationOk) + OutputString(LoadResString(@RsUnregistrationOk)) else - OutputString(RsUnregistrationFailed); + OutputString(LoadResString(@RsUnregistrationFailed)); end; function TJclBorRADToolInstallation.UnregisterIDEPackage(const PackageName, BPLPath: string): Boolean; @@ -4553,13 +4554,13 @@ function TJclBorRADToolInstallation.UnregisterIDEPackage(const BinaryFileName: string): Boolean; begin - OutputString(Format(RsUnregisteringIDEPackage, [BinaryFileName])); + OutputString(Format(LoadResString(@RsUnregisteringIDEPackage), [BinaryFileName])); Result := IdePackages.RemoveIDEPackage(BinaryFileName); if Result then - OutputString(RsUnregistrationOk) + OutputString(LoadResString(@RsUnregistrationOk)) else - OutputString(RsUnregistrationFailed); + OutputString(LoadResString(@RsUnregistrationFailed)); end; function TJclBorRADToolInstallation.UnregisterPackage(const PackageName, BPLPath: string): Boolean; @@ -4569,13 +4570,13 @@ function TJclBorRADToolInstallation.UnregisterPackage(const BinaryFileName: string): Boolean; begin - OutputString(Format(RsUnregisteringPackage, [BinaryFileName])); + OutputString(Format(LoadResString(@RsUnregisteringPackage), [BinaryFileName])); Result := IdePackages.RemovePackage(BinaryFileName); if Result then - OutputString(RsUnregistrationOk) + OutputString(LoadResString(@RsUnregistrationOk)) else - OutputString(RsUnregistrationFailed); + OutputString(LoadResString(@RsUnregistrationFailed)); end; //=== { TJclBCBInstallation } ================================================ @@ -4631,7 +4632,7 @@ function TJclBCBInstallation.RADToolName: string; begin - Result := RsBCBName; + Result := LoadResString(@RsBCBName); end; //=== { TJclDelphiInstallation } ============================================= @@ -4690,7 +4691,7 @@ function TJclDelphiInstallation.RADToolName: string; begin - Result := RsDelphiName; + Result := LoadResString(@RsDelphiName); end; //=== { TJclBDSInstallation } ================================================== @@ -4800,16 +4801,16 @@ FileName := ExtractFileName(BinaryFileName); try - OutputString(Format(RsCleaningPackageCache, [FileName])); + OutputString(Format(LoadResString(@RsCleaningPackageCache), [FileName])); KeyName := PathAddSeparator(ConfigDataLocation) + PackageCacheKeyName + '\' + FileName; if RegKeyExists(RootKey, KeyName) then Result := RegDeleteKeyTree(RootKey, KeyName); if Result then - OutputString(RsCleaningOk) + OutputString(LoadResString(@RsCleaningOk)) else - OutputString(RsCleaningFailed); + OutputString(LoadResString(@RsCleaningFailed)); except // trap possible exceptions end; @@ -4824,10 +4825,10 @@ if VersionNumber >= 2 then // C#Builder 1 doesn't have any Delphi.net compiler begin if IsDelphiProject(ProjectName) then - OutputString(Format(RsCompilingProject, [ProjectName])) + OutputString(Format(LoadResString(@RsCompilingProject), [ProjectName])) else if IsDelphiPackage(ProjectName) then - OutputString(Format(RsCompilingPackage, [ProjectName])) + OutputString(Format(LoadResString(@RsCompilingPackage), [ProjectName])) else raise EJclBorRADException.CreateResFmt(@RsENotADelphiProject, [ProjectName]); @@ -4853,9 +4854,9 @@ Result := DCCIL.MakeProject(ProjectName, OutputDir, DCCILOptions); if Result then - OutputString(RsCompilationOk) + OutputString(LoadResString(@RsCompilationOk)) else - OutputString(RsCompilationFailed); + OutputString(LoadResString(@RsCompilationFailed)); end else raise EJclBorRADException.CreateRes(@RsENoSupportedPersonality); @@ -4886,7 +4887,7 @@ begin if VersionNumber <= 2 then begin - OutputString(Format(RsCompilingProject, [ProjectName])); + OutputString(Format(LoadResString(@RsCompilingProject), [ProjectName])); if not IsDelphiProject(ProjectName) then raise EJclBorRADException.CreateResFmt(@RsENotADelphiProject, [ProjectName]); @@ -4900,9 +4901,9 @@ ProcessMapFile(BinaryFileName(OutputDir, ProjectName)); if Result then - OutputString(RsCompilationOk) + OutputString(LoadResString(@RsCompilationOk)) else - OutputString(RsCompilationFailed); + OutputString(LoadResString(@RsCompilationFailed)); end else Result := inherited CompileDelphiProject(ProjectName, DcpSearchPath, OutputDir); @@ -5193,19 +5194,19 @@ // The name comes from IDEVersionNumber if IDEVersionNumber in [Low(BDSVersions)..High(BDSVersions)] then begin - Result := BDSVersions[IDEVersionNumber].Name; + Result := LoadResString(BDSVersions[IDEVersionNumber].Name); // IDE Version 5 comes in three flavors: // - Delphi only (Spacely) // - C++Builder only (Cogswell) // - Delphi and C++Builder if (IDEVersionNumber = 5) and (Personalities = [bpDelphi32]) then - Result := RsDelphiName + Result := LoadResString(@RsDelphiName) else if (IDEVersionNumber = 5) and (Personalities = [bpBCBuilder32]) then - Result := RsBCBName; + Result := LoadResString(@RsBCBName); end else - Result := RsBDSName; + Result := LoadResString(@RsBDSName); end; function TJclBDSInstallation.RegisterPackage(const BinaryFileName, Description: string): Boolean; @@ -5426,7 +5427,7 @@ if Installations[I].UpdateNeeded then begin Result := True; - Text := Format(RsNeedUpdate, [Installations[I].LatestUpdatePack, Installations[I].Name]); + Text := Format(LoadResString(@RsNeedUpdate), [Installations[I].LatestUpdatePack, Installations[I].Name]); Break; end; end; Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/source/common/JclCompression.pas 2009-09-12 20:52:07 UTC (rev 3007) @@ -2818,9 +2818,9 @@ begin if not FDataEnded then // the decompressed stream is stopping before the compressed stream - raise EJclCompressionError(RsCompressionGZipInternalError); + raise EJclCompressionError.CreateRes(@RsCompressionGZipInternalError); if AutoCheckDataCRC32 and (FComputedDataCRC32 <> FFooter.DataCRC32) then - raise EJclCompressionError(RsCompressionGZipDataCRCFailed); + raise EJclCompressionError.CreateRes(@RsCompressionGZipDataCRCFailed); end; end; @@ -3660,10 +3660,10 @@ LastWriteTime := AFindData.ftLastWriteTime; // TODO: user name and group (using file handle and GetSecurityInfo) {$IFDEF MSWINDOWS} - HostOS := RsCompression7zWindows; + HostOS := LoadResString(@RsCompression7zWindows); {$ENDIF MSWINDOWS} {$IFDEF UNIX} - HostOS := RsCompression7zUnix; + HostOS := LoadResString(@RsCompression7zUnix); {$ENDIF UNIX} end; end; @@ -3753,7 +3753,7 @@ try FPackedNames.Add(Value); except - raise EJclCompressionError(Format(RsCompressionDuplicate, [Value])); + raise EJclCompressionError(Format(LoadResString(@RsCompressionDuplicate), [Value])); end; end; end; @@ -4484,10 +4484,10 @@ AItem.LastAccessTime := NowFileTime; AItem.LastWriteTime := NowFileTime; {$IFDEF MSWINDOWS} - AItem.HostOS := RsCompression7zWindows; + AItem.HostOS := LoadResString(@RsCompression7zWindows); {$ENDIF MSWINDOWS} {$IFDEF UNIX} - AItem.HostOS := RsCompression7zUnix; + AItem.HostOS := LoadResString(@RsCompression7zUnix); {$ENDIF UNIX} except AItem.Destroy; @@ -4551,7 +4551,7 @@ end; daError: begin - S := Format(RsCompressionDuplicate, [NewItem.PackedName]); + S := Format(LoadResString(@RsCompressionDuplicate), [NewItem.PackedName]); NewItem.Free; raise EJclCompressionError.Create(S); end; Modified: trunk/jcl/source/common/JclEDI.pas =================================================================== --- trunk/jcl/source/common/JclEDI.pas 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/source/common/JclEDI.pas 2009-09-12 20:52:07 UTC (rev 3007) @@ -61,7 +61,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} {$ENDIF ~EDI_WEAK_PACKAGE_UNITS} - JclBase; + JclBase, JclResources; const NA_LoopId = 'N/A'; // Constant used for loop id comparison @@ -384,6 +384,18 @@ function StringRemove(const S, Pattern: string; Flags: TReplaceFlags): string; function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; +const + EDIErrors: array [1..58] of PResStringRec = + ( @RsEDIError001, @RsEDIError002, @RsEDIError003, @RsEDIError004, @RsEDIError005, @RsEDIError006, @RsEDIError007, + @RsEDIError008, @RsEDIError009, @RsEDIError010, @RsEDIError011, @RsEDIError012, @RsEDIError013, @RsEDIError014, + @RsEDIError015, @RsEDIError016, @RsEDIError017, @RsEDIError018, @RsEDIError019, @RsEDIError020, @RsEDIError021, + @RsEDIError022, @RsEDIError023, @RsEDIError024, @RsEDIError025, @RsEDIError026, @RsEDIError027, @RsEDIError028, + @RsEDIError029, @RsEDIError030, @RsEDIError031, @RsEDIError032, @RsEDIError033, @RsEDIError034, @RsEDIError035, + @RsEDIError036, @RsEDIError037, @RsEDIError038, @RsEDIError039, @RsEDIError040, @RsEDIError041, @RsEDIError042, + @RsEDIError043, @RsEDIError044, @RsEDIError045, @RsEDIError046, @RsEDIError047, @RsEDIError048, @RsEDIError049, + @RsEDIError050, @RsEDIError051, @RsEDIError052, @RsEDIError053, @RsEDIError054, @RsEDIError055, @RsEDIError056, + @RsEDIError057, @RsEDIError058 ); + {$IFNDEF EDI_WEAK_PACKAGE_UNITS} {$IFDEF UNITVERSIONING} const @@ -401,7 +413,7 @@ implementation uses - JclResources, JclStrings; + JclStrings; // Other function StringRemove(const S, Pattern: string; Flags: TReplaceFlags): string; @@ -541,12 +553,12 @@ constructor EJclEDIError.CreateID(ID: Cardinal); begin - CreateRes(RsEDIErrors[ID]); + CreateRes(EDIErrors[ID]); end; constructor EJclEDIError.CreateIDFmt(ID: Cardinal; const Args: array of const); begin - CreateResFmt(RsEDIErrors[ID], Args); + CreateResFmt(EDIErrors[ID], Args); end; //=== { TEDIDelimiters } ===================================================== Modified: trunk/jcl/source/common/JclEDISEF.pas =================================================================== --- trunk/jcl/source/common/JclEDISEF.pas 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/source/common/JclEDISEF.pas 2009-09-12 20:52:07 UTC (rev 3007) @@ -883,7 +883,7 @@ caAmpersand: Result := EDISEFUserAttributeAmpersandDesc; else - Result := RsUnknownAttribute; + Result := LoadResString(@RsUnknownAttribute); end; end; @@ -903,7 +903,7 @@ EDISEFUserAttributeAmpersand: Result := EDISEFUserAttributeAmpersandDesc; else - Result := RsUnknownAttribute; + Result := LoadResString(@RsUnknownAttribute); end; end; @@ -4578,30 +4578,30 @@ case FEDISEFWhereType of twSet: case FWhat[1] of - SEFTextSetsCode_Set0: Result := SEFTextSetsCode_Set0_Desc; - SEFTextSetsCode_Set1: Result := SEFTextSetsCode_Set1_Desc; - SEFTextSetsCode_Set2: Result := SEFTextSetsCode_Set2_Desc; - SEFTextSetsCode_Set3: Result := SEFTextSetsCode_Set3_Desc; - SEFTextSetsCode_Set4: Result := SEFTextSetsCode_Set4_Desc; - SEFTextSetsCode_Set5: Result := SEFTextSetsCode_Set5_Desc; + SEFTextSetsCode_Set0: Result := LoadResString(@SEFTextSetsCode_Set0_Desc); + SEFTextSetsCode_Set1: Result := LoadResString(@SEFTextSetsCode_Set1_Desc); + SEFTextSetsCode_Set2: Result := LoadResString(@SEFTextSetsCode_Set2_Desc); + SEFTextSetsCode_Set3: Result := LoadResString(@SEFTextSetsCode_Set3_Desc); + SEFTextSetsCode_Set4: Result := LoadResString(@SEFTextSetsCode_Set4_Desc); + SEFTextSetsCode_Set5: Result := LoadResString(@SEFTextSetsCode_Set5_Desc); end; twSegment: case FWhat[1] of - SEFTextSetsCode_Seg0: Result := SEFTextSetsCode_Seg0_Desc; - SEFTextSetsCode_Seg1: Result := SEFTextSetsCode_Seg1_Desc; - SEFTextSetsCode_Seg2: Result := SEFTextSetsCode_Seg2_Desc; - SEFTextSetsCode_Seg3: Result := SEFTextSetsCode_Seg3_Desc; - SEFTextSetsCode_Seg4: Result := SEFTextSetsCode_Seg4_Desc; - SEFTextSetsCode_Seg5: Result := SEFTextSetsCode_Seg5_Desc; - SEFTextSetsCode_Seg6: Result := SEFTextSetsCode_Seg6_Desc; - SEFTextSetsCode_Seg7: Result := SEFTextSetsCode_Seg7_Desc; + SEFTextSetsCode_Seg0: Result := LoadResString(@SEFTextSetsCode_Seg0_Desc); + SEFTextSetsCode_Seg1: Result := LoadResString(@SEFTextSetsCode_Seg1_Desc); + SEFTextSetsCode_Seg2: Result := LoadResString(@SEFTextSetsCode_Seg2_Desc); + SEFTextSetsCode_Seg3: Result := LoadResString(@SEFTextSetsCode_Seg3_Desc); + SEFTextSetsCode_Seg4: Result := LoadResString(@SEFTextSetsCode_Seg4_Desc); + SEFTextSetsCode_Seg5: Result := LoadResString(@SEFTextSetsCode_Seg5_Desc); + SEFTextSetsCode_Seg6: Result := LoadResString(@SEFTextSetsCode_Seg6_Desc); + SEFTextSetsCode_Seg7: Result := LoadResString(@SEFTextSetsCode_Seg7_Desc); end; twElementOrCompositeElement, twSubElement: case FWhat[1] of - SEFTextSetsCode_Elm0: Result := SEFTextSetsCode_Elm0_Desc; - SEFTextSetsCode_Elm1: Result := SEFTextSetsCode_Elm1_Desc; - SEFTextSetsCode_Elm2: Result := SEFTextSetsCode_Elm2_Desc; - SEFTextSetsCode_Elm4: Result := SEFTextSetsCode_Elm4_Desc; + SEFTextSetsCode_Elm0: Result := LoadResString(@SEFTextSetsCode_Elm0_Desc); + SEFTextSetsCode_Elm1: Result := LoadResString(@SEFTextSetsCode_Elm1_Desc); + SEFTextSetsCode_Elm2: Result := LoadResString(@SEFTextSetsCode_Elm2_Desc); + SEFTextSetsCode_Elm4: Result := LoadResString(@SEFTextSetsCode_Elm4_Desc); end; end; end; Modified: trunk/jcl/source/common/JclEDIXML.pas =================================================================== --- trunk/jcl/source/common/JclEDIXML.pas 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/source/common/JclEDIXML.pas 2009-09-12 20:52:07 UTC (rev 3007) @@ -62,7 +62,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} {$ENDIF ~EDI_WEAK_PACKAGE_UNITS} - JclBase, JclEDI, JclEDI_ANSIX12; + JclBase, JclResources, JclEDI, JclEDI_ANSIX12; const XMLTag_Element = 'Element'; @@ -455,6 +455,24 @@ XMLTransactionSet: TEDIXMLTransactionSet): TEDITransactionSet; end; + EJclEDIXMLError = class(EJclEDIError) + public + constructor CreateID(ID: Cardinal); + constructor CreateIDFmt(ID: Cardinal; const Args: array of const); + end; + +const + EDIXMLErrors: array [1..62] of PResStringRec = + ( @EDIXMLError001, @EDIXMLError002, @EDIXMLError003, @EDIXMLError004, @EDIXMLError005, @EDIXMLError006, @EDIXMLError007, + @EDIXMLError008, @EDIXMLError009, @EDIXMLError010, @EDIXMLError011, @EDIXMLError012, @EDIXMLError013, @EDIXMLError014, + @EDIXMLError015, @EDIXMLError016, @EDIXMLError017, @EDIXMLError018, @EDIXMLError019, @EDIXMLError020, @EDIXMLError021, + @EDIXMLError022, @EDIXMLError023, @EDIXMLError024, @EDIXMLError025, @EDIXMLError026, @EDIXMLError027, @EDIXMLError028, + @EDIXMLError029, @EDIXMLError030, @EDIXMLError031, @EDIXMLError032, @EDIXMLError033, @EDIXMLError034, @EDIXMLError035, + @EDIXMLError036, @EDIXMLError037, @EDIXMLError038, @EDIXMLError039, @EDIXMLError040, @EDIXMLError041, @EDIXMLError042, + @EDIXMLError043, @EDIXMLError044, @EDIXMLError045, @EDIXMLError046, @EDIXMLError047, @EDIXMLError048, @EDIXMLError049, + @EDIXMLError050, @EDIXMLError051, @EDIXMLError052, @EDIXMLError053, @EDIXMLError054, @EDIXMLError055, @EDIXMLError056, + @EDIXMLError057, @EDIXMLError058, @EDIXMLError059, @EDIXMLError060, @EDIXMLError061, @EDIXMLError062 ); + {$IFNDEF EDI_WEAK_PACKAGE_UNITS} {$IFDEF UNITVERSIONING} const @@ -472,7 +490,7 @@ implementation uses - JclResources, JclStrings; + JclStrings; const EDIXML_Ampersand = '&'; @@ -2703,6 +2721,18 @@ end; end; +//=== { EJclEDIXMLError } ==================================================== + +constructor EJclEDIXMLError.CreateID(ID: Cardinal); +begin + CreateRes(EDIXMLErrors[ID]); +end; + +constructor EJclEDIXMLError.CreateIDFmt(ID: Cardinal; const Args: array of const); +begin + CreateResFmt(EDIXMLErrors[ID], Args); +end; + {$IFNDEF EDI_WEAK_PACKAGE_UNITS} {$IFDEF UNITVERSIONING} initialization Modified: trunk/jcl/source/common/JclFileUtils.pas =================================================================== --- trunk/jcl/source/common/JclFileUtils.pas 2009-09-12 20:39:24 UTC (rev 3006) +++ trunk/jcl/source/common/JclFileUtils.pas 2009-09-12 20:52:07 UTC (rev 3007) @@ -3720,7 +3720,7 @@ // Lookup failed so mimic explorer behaviour by returning "XYZ File" Result := ExtractFileExt(FileName); Delete(Result, 1, 1); - Result := TrimLeft(UpperCase(Result) + RsDefaultFileTypeName); + Result := TrimLeft(UpperCase(Result) + LoadResString(@RsDefaultFileTypeName)); end; end; {$ENDIF MSWINDOWS} @@ -3834,17 +3834,17 @@ DriveType := GetDriveType(PChar(DriveStr)); case DriveType of DRIVE_REMOVABLE: - Result := RsRemovableDrive; + Result := LoadResString(@RsRemovableDrive); DRIVE_FIXED: - Result := RsHardDisk; + Result := LoadResString(@RsHardDisk); DRIVE_REMOTE: - Result := RsRemoteDrive; + Result := LoadResString(@RsRemoteDrive); DRIVE_CDROM: - Result := RsCDRomDrive; + Result := LoadResString(@RsCDRomDrive); DRIVE_RAMDISK: - Result := RsRamDisk; + Result := LoadResString(@RsRamDisk); else - Result := RsUnknownDrive; + Result := LoadResString(@RsUnknownDrive); end; end; @@ -3873,17 +3873,17 @@ try { TODO : differentiate Windows/UNIX idents } if Attr and faDirectory = faDirectory then - Items.Add(RsAttrDirectory); + Items.Add(LoadResString(@RsAttrDirectory)); if Attr and faReadOnly = faReadOnly then - Items.Add(RsAttrReadOnly); + Items.Add(LoadResString(@RsAttrReadOnly)); if Attr and faSysFile = faSysFile then - Items.Add(RsAttrSystemFile); + Items.Add(LoadResString(@RsAttrSystemFile)); if Attr and faArchive = faArchive then - Items.Add(RsAttrArchive); + Items.Add(LoadResString(@RsAttrArchive)); if Attr and faAnyFile = faAnyFile then - Items.Add(RsAttrAnyFile); + Items.Add(LoadResString(@RsAttrAnyFile)); if Attr and faHidden = faHidden then - Items.Add(RsAttrHidden); + Items.Add(LoadResString(@RsAttrHidden)); finally Items.EndUpdate; end; @@ -3901,29 +3901,29 @@ Items.BeginUpdate; try if Attr and FILE_ATTRIBUTE_READONLY = FILE_ATTRIBUTE_READONLY then - Items.Add(RsAttrReadOnly); + Items.Add(LoadResString(@RsAttrReadOnly)); if Attr and FILE_ATTRIBUTE_HIDDEN = FILE_ATTRIBUTE_HIDDEN then - Items.Add(RsAttrHidden); + Items.Add(LoadResString(@RsAttrHidden)); if Attr and FILE_ATTRIBUTE_SYSTEM = FILE_ATTRIBUTE_SYSTEM then - Items.Add(RsAttrSystemFile); + Items.Add(LoadResString(@RsAttrSystemFile)); if Attr and FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY then - Items.Add(RsAttrDirectory); + Items.Add(LoadResString(@RsAttrDirectory)); if Attr and FILE_ATTRIBUTE_ARCHIVE = FILE_ATTRIBUTE_ARCHIVE then - Items.Add(RsAttrArchive); + Items.Add(LoadResString(@RsAttrArchive)); if Attr and FILE_ATTRIBUTE_NORMAL = FILE_ATTRIBUTE_NORMAL then - Items.Add(RsAttrNormal); + Items.Add(LoadResString(@RsAttrNormal)); if Attr and FILE_ATTRIBUTE_TEMPORARY = FILE_ATTRIBUTE_TEMPORARY then - Items.Add(RsAttrTemporary); + Items.Add(LoadResString(@RsAttrTemporary)); if Attr and FILE_ATTRIBUTE_COMPRESSED = FILE_ATTRIBUTE_COMPRESSED then - Items.Add(RsAttrCompressed); + Items.Add(LoadResString(@RsAttrCompressed)); if Attr and FILE_ATTRIBUTE_OFFLINE = FILE_ATTRIBUTE_OFFLINE then - Items.Add(RsAttrOffline); + Items.Add(LoadResString(@RsAttrOffline)); if Attr and FILE_ATTRIBUTE_ENCRYPTED = FILE_ATTRIBUTE_ENCRYPTED then - Items.Add(RsAttrEncrypted); + Items.Add(LoadResString(@RsAttrEncrypted)); if Attr and FILE_ATTRIBUTE_REPARSE_POINT = FILE_ATTRIBUTE_REPARSE_POINT then - Items.Add(RsAttrReparsePoint); + Items.Add(LoadResString(@RsAttrReparsePoint)); if Attr and FILE_ATTRIBUTE_SPARSE_FILE = FILE_ATTRIBUTE_SPARSE_FILE then - Items.Add(RsAttrSparseFile); + Items.Add(LoadResString(@RsAttrSparseFile)); finally Items.EndUpdate; end; @@ -4585,95 +4585,97 @@ begin case OSIdent of VOS_UNKNOWN: - Result := RsVosUnknown; + Result := LoadResString(@RsVosUnknown); VOS_DOS: - Result := RsVosDos; + Result := LoadResString(@RsVosDos); VOS_OS216: - Result := RsVosOS216; + Result := LoadResString(@RsVosOS216); VOS_OS232: - Result := RsVosOS232; + Result := LoadResString(@RsVosOS232); VOS_NT: - Result := RsVosNT; + Result := LoadResString(@RsVosNT); VOS__WINDOWS16: - Result := RsVosWindows16; + Result := LoadResString(@RsVosWindows16); VOS__PM16: - Result := RsVosPM16; + Result := LoadResString(@RsVosPM16); VOS__PM32: - Result := RsVosPM32; + Result := LoadResString(@RsVosPM32); VOS__WINDOWS32: - Result := RsVosWindows32; + Result := LoadResString(@RsVosWindows32); VOS_DOS_WINDOWS16: - Result := RsVosDosWindows16; + Result := LoadResString(@RsVosDosWindows16); VOS_DOS_WINDOWS32: - Result := RsVosDosWindows32; + Result := LoadResString(@RsVosDosWindows32); VOS_OS216_PM16: - Result := RsVosOS216PM16; + Result := LoadResString(@RsVosOS216PM16); VOS_OS232_PM32: - Result := RsVosOS232PM32; + Result := LoadResString(@RsVosOS232PM32); VOS_NT_WINDOWS32: - Result := RsVosNTWindows32; + Result := LoadResString(@RsVosNTWindows32); else - Result := RsVosUnknown; + Result := ''; end; - if Result <> RsVosUnknown then - Result := RsVosDesignedFor + Result; + if Result = '' then + Result := LoadResString(@RsVosUnknown) + else + Result := Format(LoadResString(@RsVosDesignedFor), [Result]); end; function OSFileTypeToString(const OSFileType: DWORD; const OSFileSubType: DWORD): string; begin case OSFileType of VFT_UNKNOWN: - Result := RsVftUnknown; + Result := LoadResString(@RsVftUnknown); VFT_APP: - Result := RsVftApp; + Result := LoadResString(@RsVftApp); VFT_DLL: - Result := RsVftDll; + Result := LoadResString(@RsVftDll); VFT_DRV: begin case OSFileSubType of VFT2_DRV_PRINTER: - Result := RsVft2DrvPRINTER; + Result := LoadResString(@RsVft2DrvPRINTER); VFT2_DRV_KEYBOARD: - Result := RsVft2DrvKEYBOARD; + Result := LoadResString(@RsVft2DrvKEYBOARD); VFT2_DRV_LANGUAGE: - Result := RsVft2DrvLANGUAGE; + Result := LoadResString(@RsVft2DrvLANGUAGE); VFT2_DRV_DISPLAY: - Result := RsVft2DrvDISPLAY; + Result :... [truncated message content] |
From: <ou...@us...> - 2009-09-12 20:39:31
|
Revision: 3006 http://jcl.svn.sourceforge.net/jcl/?rev=3006&view=rev Author: outchy Date: 2009-09-12 20:39:24 +0000 (Sat, 12 Sep 2009) Log Message: ----------- JCL Lazarus packages to be rebuilt when the IDE is rebuilt. Modified Paths: -------------- trunk/jcl/packages/fpc/Jcl.lpk trunk/jcl/packages/fpc/JclContainers.lpk trunk/jcl/packages/fpc/template.lpk Modified: trunk/jcl/packages/fpc/Jcl.lpk =================================================================== --- trunk/jcl/packages/fpc/Jcl.lpk 2009-09-12 20:15:47 UTC (rev 3005) +++ trunk/jcl/packages/fpc/Jcl.lpk 2009-09-12 20:39:24 UTC (rev 3006) @@ -5,6 +5,7 @@ <Name Value="Jcl"/> <AddToProjectUsesSection Value="False"/> <Author Value="Project JEDI"/> + <AutoUpdate Value="OnRebuildingAll"/> <CompilerOptions> <Version Value="8"/> <PathDelim Value="\"/> Modified: trunk/jcl/packages/fpc/JclContainers.lpk =================================================================== --- trunk/jcl/packages/fpc/JclContainers.lpk 2009-09-12 20:15:47 UTC (rev 3005) +++ trunk/jcl/packages/fpc/JclContainers.lpk 2009-09-12 20:39:24 UTC (rev 3006) @@ -5,6 +5,7 @@ <Name Value="JclContainers"/> <AddToProjectUsesSection Value="False"/> <Author Value="Project JEDI"/> + <AutoUpdate Value="OnRebuildingAll"/> <CompilerOptions> <Version Value="8"/> <PathDelim Value="\"/> Modified: trunk/jcl/packages/fpc/template.lpk =================================================================== --- trunk/jcl/packages/fpc/template.lpk 2009-09-12 20:15:47 UTC (rev 3005) +++ trunk/jcl/packages/fpc/template.lpk 2009-09-12 20:39:24 UTC (rev 3006) @@ -5,6 +5,7 @@ <Name Value="%NAME%"/> <AddToProjectUsesSection Value="False"/> <Author Value="Project JEDI"/> + <AutoUpdate Value="OnRebuildingAll"/> <CompilerOptions> <Version Value="8"/> <PathDelim Value="\"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 20:15:54
|
Revision: 3005 http://jcl.svn.sourceforge.net/jcl/?rev=3005&view=rev Author: outchy Date: 2009-09-12 20:15:47 +0000 (Sat, 12 Sep 2009) Log Message: ----------- added LOCALSYMBOLS_ON as alias to LOCALSYMBOLS. Modified Paths: -------------- trunk/jcl/source/include/jedi.inc Modified: trunk/jcl/source/include/jedi.inc =================================================================== --- trunk/jcl/source/include/jedi.inc 2009-09-12 20:04:37 UTC (rev 3004) +++ trunk/jcl/source/include/jedi.inc 2009-09-12 20:15:47 UTC (rev 3005) @@ -39,7 +39,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -441,6 +441,7 @@ IOCHECKS_ON Compiling in the I+ state (I/O checking enabled) WRITEABLECONST_ON Compiling in the J+ state (typed constants can be modified) LOCALSYMBOLS Compiling in the L+ state (local symbol generation) + LOCALSYMBOLS_ON Alias of LOCALSYMBOLS TYPEINFO_ON Compiling in the M+ state (RTTI generation on) OPTIMIZATION_ON Compiling in the O+ state (code optimization on) OPENSTRINGS_ON Compiling in the P+ state (variable string parameters are openstrings) @@ -1224,7 +1225,7 @@ {$IFDEF COMPILER2_UP} {$IFOPT J+} {$DEFINE WRITEABLECONST_ON} {$ENDIF} {$ENDIF} -{$IFOPT L+} {$DEFINE LOCALSYMBOLS} {$ENDIF} +{$IFOPT L+} {$DEFINE LOCALSYMBOLS} {$DEFINE LOCALSYMBOLS_ON} {$ENDIF} {$IFOPT M+} {$DEFINE TYPEINFO_ON} {$ENDIF} {$IFOPT O+} {$DEFINE OPTIMIZATION_ON} {$ENDIF} {$IFOPT P+} {$DEFINE OPENSTRINGS_ON} {$ENDIF} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 20:04:46
|
Revision: 3004 http://jcl.svn.sourceforge.net/jcl/?rev=3004&view=rev Author: outchy Date: 2009-09-12 20:04:37 +0000 (Sat, 12 Sep 2009) Log Message: ----------- missing inclusion of jcl.inc. Modified Paths: -------------- trunk/jcl/source/vcl/JclFont.pas Modified: trunk/jcl/source/vcl/JclFont.pas =================================================================== --- trunk/jcl/source/vcl/JclFont.pas 2009-09-12 16:06:20 UTC (rev 3003) +++ trunk/jcl/source/vcl/JclFont.pas 2009-09-12 20:04:37 UTC (rev 3004) @@ -30,6 +30,8 @@ unit JclFont; +{$I jcl.inc} + interface type This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 16:06:28
|
Revision: 3003 http://jcl.svn.sourceforge.net/jcl/?rev=3003&view=rev Author: outchy Date: 2009-09-12 16:06:20 +0000 (Sat, 12 Sep 2009) Log Message: ----------- Makes errorinsight happy. Modified Paths: -------------- trunk/jcl/source/windows/JclDebug.pas trunk/jcl/source/windows/JclLocales.pas Modified: trunk/jcl/source/windows/JclDebug.pas =================================================================== --- trunk/jcl/source/windows/JclDebug.pas 2009-09-12 15:48:07 UTC (rev 3002) +++ trunk/jcl/source/windows/JclDebug.pas 2009-09-12 16:06:20 UTC (rev 3003) @@ -5497,12 +5497,16 @@ Result := RegisteredThreadList; end; +type + TKernel32_CreateThread = function(SecurityAttributes: Pointer; StackSize: LongWord; + ThreadFunc: TThreadFunc; Parameter: Pointer; + CreationFlags: LongWord; var ThreadId: LongWord): Integer; stdcall; + TKernel32_ExitThread = procedure(ExitCode: Integer); stdcall; + var ThreadsHooked: Boolean; - Kernel32_CreateThread: function(SecurityAttributes: Pointer; StackSize: LongWord; - ThreadFunc: TThreadFunc; Parameter: Pointer; - CreationFlags: LongWord; var ThreadId: LongWord): Integer; stdcall = nil; - Kernel32_ExitThread: procedure(ExitCode: Integer); stdcall = nil; + Kernel32_CreateThread: TKernel32_CreateThread = nil; + Kernel32_ExitThread: TKernel32_ExitThread = nil; function HookedCreateThread(SecurityAttributes: Pointer; StackSize: LongWord; ThreadFunc: TThreadFunc; Parameter: Pointer; Modified: trunk/jcl/source/windows/JclLocales.pas =================================================================== --- trunk/jcl/source/windows/JclLocales.pas 2009-09-12 15:48:07 UTC (rev 3002) +++ trunk/jcl/source/windows/JclLocales.pas 2009-09-12 16:06:20 UTC (rev 3003) @@ -213,7 +213,7 @@ public constructor Create(AKind: TJclLocalesKind = lkInstalled); destructor Destroy; override; - procedure FillStrings(Strings: TStrings; InfoType: Integer); + procedure FillStrings(AStrings: TStrings; InfoType: Integer); property CodePages: TStrings read GetCodePages; property ItemFromLangID[LangID: LANGID]: TJclLocaleInfo read GetItemFromLangID; property ItemFromLangIDPrimary[LangIDPrimary: Word]: TJclLocaleInfo read GetItemFromLangIDPrimary; @@ -699,17 +699,17 @@ end; end; -procedure TJclLocalesList.FillStrings(Strings: TStrings; InfoType: Integer); +procedure TJclLocalesList.FillStrings(AStrings: TStrings; InfoType: Integer); var I: Integer; begin - Strings.BeginUpdate; + AStrings.BeginUpdate; try for I := 0 to Count - 1 do with Items[I] do - Strings.AddObject(StringInfo[InfoType], Pointer(LocaleId)); + AStrings.AddObject(StringInfo[InfoType], Pointer(LocaleId)); finally - Strings.EndUpdate; + AStrings.EndUpdate; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 15:48:14
|
Revision: 3002 http://jcl.svn.sourceforge.net/jcl/?rev=3002&view=rev Author: outchy Date: 2009-09-12 15:48:07 +0000 (Sat, 12 Sep 2009) Log Message: ----------- make C++Builder happy: change constructor signature. Modified Paths: -------------- trunk/jcl/source/common/JclFileUtils.pas Modified: trunk/jcl/source/common/JclFileUtils.pas =================================================================== --- trunk/jcl/source/common/JclFileUtils.pas 2009-09-12 15:35:40 UTC (rev 3001) +++ trunk/jcl/source/common/JclFileUtils.pas 2009-09-12 15:48:07 UTC (rev 3002) @@ -640,7 +640,7 @@ constructor Attach(VersionInfoData: Pointer; Size: Integer); constructor Create(const FileName: string); overload; {$IFDEF MSWINDOWS} - constructor Create(const Window: HWND; Dummy: Integer = 0); overload; + constructor Create(const Window: HWND; Dummy: Pointer = nil); overload; constructor Create(const Module: HMODULE); overload; {$ENDIF MSWINDOWS} destructor Destroy; override; @@ -4802,7 +4802,7 @@ end; {$IFDEF MSWINDOWS} -constructor TJclFileVersionInfo.Create(const Window: HWND; Dummy: Integer = 0); +constructor TJclFileVersionInfo.Create(const Window: HWND; Dummy: Pointer); type {$IFDEF SUPPORTS_UNICODE} TGetModuleFileNameEx =function(hProcess: THandle; hModule: HMODULE; FileName: PWideChar; nSize: DWORD): DWORD; stdcall; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 15:35:46
|
Revision: 3001 http://jcl.svn.sourceforge.net/jcl/?rev=3001&view=rev Author: outchy Date: 2009-09-12 15:35:40 +0000 (Sat, 12 Sep 2009) Log Message: ----------- TJclMapScanner.SourceNameFromAddr does not work with MAP files generated by C++Builder. Modified Paths: -------------- trunk/jcl/source/windows/JclDebug.pas Modified: trunk/jcl/source/windows/JclDebug.pas =================================================================== --- trunk/jcl/source/windows/JclDebug.pas 2009-09-12 14:57:46 UTC (rev 3000) +++ trunk/jcl/source/windows/JclDebug.pas 2009-09-12 15:35:40 UTC (rev 3001) @@ -142,8 +142,9 @@ constructor Create(const MapFileName: TFileName); overload; destructor Destroy; override; procedure Parse; + class function MapStringToFileName(MapString: PJclMapString): string; + class function MapStringToModuleName(MapString: PJclMapString): string; class function MapStringToStr(MapString: PJclMapString; IgnoreSpaces: Boolean = False): string; - class function MapStringToModuleName(MapString: PJclMapString): string; property LinkerBug: Boolean read FLinkerBug; property LinkerBugUnitName: string read GetLinkerBugUnitName; property Stream: TJclFileMappingStream read FStream; @@ -1267,6 +1268,28 @@ Result := MapStringToStr(FLinkerBugUnitName); end; +class function TJclAbstractMapParser.MapStringToFileName(MapString: PJclMapString): string; +var + PEnd: PJclMapString; +begin + if MapString = nil then + begin + Result := ''; + Exit; + end; + PEnd := MapString; + while (PEnd^ <> '=') and not CharIsReturn(Char(PEnd^)) do + Inc(PEnd); + if (PEnd^ = '=') then + begin + while (PEnd >= MapString) and not (PEnd^ = NativeSpace) do + Dec(PEnd); + while (PEnd >= MapString) and ((PEnd-1)^ = NativeSpace) do + Dec(PEnd); + end; + SetString(Result, MapString, PEnd - MapString); +end; + class function TJclAbstractMapParser.MapStringToModuleName(MapString: PJclMapString): string; var PStart, PEnd, PExtension: PJclMapString; @@ -1896,11 +1919,22 @@ I: Integer; ModuleStartVA: DWORD; begin + // try with line numbers first (Delphi compliance) ModuleStartVA := ModuleStartFromAddr(Addr); Result := ''; I := SearchDynArray(FSourceNames, SizeOf(FSourceNames[0]), Search_MapProcName, @Addr, True); if (I <> -1) and (FSourceNames[I].VA >= ModuleStartVA) then Result := MapStringToStr(FSourceNames[I].ProcName); + if Result = '' then + begin + // try with module names (C++Builder compliance) + for I := Length(FSegments) - 1 downto 0 do + if (FSegments[I].StartVA <= Addr) and (Addr < FSegments[I].EndVA) then + begin + Result := MapStringToFileName(FSegments[I].UnitName); + Break; + end; + end; end; // JCL binary debug format string encoding/decoding routines This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 14:57:53
|
Revision: 3000 http://jcl.svn.sourceforge.net/jcl/?rev=3000&view=rev Author: outchy Date: 2009-09-12 14:57:46 +0000 (Sat, 12 Sep 2009) Log Message: ----------- renamed MapStringToFileName to MapStringToModuleName since this function extracts the module name. hardened the implementation of MapStringToModuleName. Modified Paths: -------------- trunk/jcl/source/windows/JclDebug.pas Modified: trunk/jcl/source/windows/JclDebug.pas =================================================================== --- trunk/jcl/source/windows/JclDebug.pas 2009-09-12 13:29:35 UTC (rev 2999) +++ trunk/jcl/source/windows/JclDebug.pas 2009-09-12 14:57:46 UTC (rev 3000) @@ -143,7 +143,7 @@ destructor Destroy; override; procedure Parse; class function MapStringToStr(MapString: PJclMapString; IgnoreSpaces: Boolean = False): string; - class function MapStringToFileName(MapString: PJclMapString): string; + class function MapStringToModuleName(MapString: PJclMapString): string; property LinkerBug: Boolean read FLinkerBug; property LinkerBugUnitName: string read GetLinkerBugUnitName; property Stream: TJclFileMappingStream read FStream; @@ -1267,7 +1267,7 @@ Result := MapStringToStr(FLinkerBugUnitName); end; -class function TJclAbstractMapParser.MapStringToFileName(MapString: PJclMapString): string; +class function TJclAbstractMapParser.MapStringToModuleName(MapString: PJclMapString): string; var PStart, PEnd, PExtension: PJclMapString; begin @@ -1281,22 +1281,23 @@ Inc(PEnd); if (PEnd^ = '=') then begin - while not (PEnd^ = NativeSpace) do + while (PEnd >= MapString) and not (PEnd^ = NativeSpace) do Dec(PEnd); - while ((PEnd-1)^ = NativeSpace) do + while (PEnd >= MapString) and ((PEnd-1)^ = NativeSpace) do Dec(PEnd); end; PExtension := PEnd; - while (PExtension^ <> '.') and (PExtension^ <> '|') and (PExtension >= MapString) do + while (PExtension >= MapString) and (PExtension^ <> '.') and (PExtension^ <> '|') do Dec(PExtension); if (PExtension^ = '.') then PEnd := PExtension; PExtension := PEnd; - while (PExtension^ <> '|') and (PExtension^ <> '\') and (PExtension >= MapString) do + while (PExtension >= MapString) and (PExtension^ <> '|') and (PExtension^ <> '\') do Dec(PExtension); - if (PExtension^ = '|') or (PExtension^ = '\') then + if PExtension >= MapString then PStart := PExtension + 1 - else PStart := MapString; + else + PStart := MapString; SetString(Result, PStart, PEnd - PStart); end; @@ -1629,7 +1630,7 @@ Len: Integer; GroupName, UnitName: PJclMapString); begin if Assigned(FOnSegmentItem) then - FOnSegmentItem(Self, Address, Len, MapStringToStr(GroupName), MapStringToFileName(UnitName)); + FOnSegmentItem(Self, Address, Len, MapStringToStr(GroupName), MapStringToModuleName(UnitName)); end; //=== { TJclMapScanner } ===================================================== @@ -1769,7 +1770,7 @@ for I := Length(FSegments) - 1 downto 0 do if (FSegments[I].StartVA <= Addr) and (Addr < FSegments[I].EndVA) then begin - Result := MapStringToStr(FSegments[I].UnitName); + Result := MapStringToModuleName(FSegments[I].UnitName); Break; end; end; @@ -2392,7 +2393,7 @@ if IsSegmentStored(FSegments[I].Segment) then begin WriteValueOfs(FSegments[I].StartVA, L1); - WriteValueOfs(AddWord(MapStringToStr(FSegments[I].UnitName)), L2); + WriteValueOfs(AddWord(MapStringToModuleName(FSegments[I].UnitName)), L2); end; WriteValue(MaxInt); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 13:29:43
|
Revision: 2999 http://jcl.svn.sourceforge.net/jcl/?rev=2999&view=rev Author: outchy Date: 2009-09-12 13:29:35 +0000 (Sat, 12 Sep 2009) Log Message: ----------- 4858: Expert which adds debug data into binary fails to create correct path for map file. Modified Paths: -------------- trunk/jcl/experts/common/JclOtaUtils.pas Modified: trunk/jcl/experts/common/JclOtaUtils.pas =================================================================== --- trunk/jcl/experts/common/JclOtaUtils.pas 2009-09-12 13:18:12 UTC (rev 2998) +++ trunk/jcl/experts/common/JclOtaUtils.pas 2009-09-12 13:29:35 UTC (rev 2999) @@ -1133,45 +1133,67 @@ function TJclOTAExpertBase.GetOutputDirectory(const Project: IOTAProject): string; var EnvironmentOptions: IOTAEnvironmentOptions; + OptionValue: Variant; begin if not Assigned(Project) then raise EJclExpertException.CreateTrace(RsENoActiveProject); if not Assigned(Project.ProjectOptions) then raise EJclExpertException.CreateTrace(RsENoProjectOptions); + Result := ''; + if IsPackage(Project) then begin - Result := VarToStr(Project.ProjectOptions.Values[PkgDllDirOptionName]); + OptionValue := Project.ProjectOptions.Values[PkgDllDirOptionName]; - if Result = 'false' then + if VarIsStr(OptionValue) then + Result := VarToStr(OptionValue); + + {$IFDEF BDS5} + if (Project.Personality = JclCBuilderPersonality) and (Result = 'false') then Result := ''; + {$ENDIF BDS5} if Result = '' then begin EnvironmentOptions := GetOTAServices.GetEnvironmentOptions; if not Assigned(EnvironmentOptions) then raise EJclExpertException.CreateTrace(RsENoEnvironmentOptions); - Result := EnvironmentOptions.Values[BPLOutputDirOptionName]; + OptionValue := EnvironmentOptions.Values[BPLOutputDirOptionName]; + if VarIsStr(OptionValue) then + Result := VarToStr(OptionValue); end; end else begin - Result := VarToStr(Project.ProjectOptions.Values[OutputDirOptionName]); + OptionValue := Project.ProjectOptions.Values[OutputDirOptionName]; - if Result = 'false' then + if VarIsStr(OptionValue) then + Result := VarToStr(OptionValue); + + {$IFDEF BDS5} + if (Project.Personality = JclCBuilderPersonality) and (Result = 'false') then Result := ''; + {$ENDIF BDS5} if Result = '' then - Result := VarToStr(Project.ProjectOptions.Values[FinalOutputDirOptionName]); + begin + OptionValue := Project.ProjectOptions.Values[FinalOutputDirOptionName]; + if VarIsStr(OptionValue) then + Result := VarToStr(OptionValue); + end; end; - if Result = 'false' then + {$IFDEF BDS5} + if (Project.Personality = JclCBuilderPersonality) and (Result = 'false') then Result := ''; + {$ENDIF BDS5} Result := SubstitutePath(Trim(Result)); if Result = '' then Result := ExtractFilePath(Project.FileName) - else if not PathIsAbsolute(Result) then + else + if not PathIsAbsolute(Result) then Result := PathGetRelativePath(ExtractFilePath(Project.FileName), Result); end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 13:18:18
|
Revision: 2998 http://jcl.svn.sourceforge.net/jcl/?rev=2998&view=rev Author: outchy Date: 2009-09-12 13:18:12 +0000 (Sat, 12 Sep 2009) Log Message: ----------- Revision 2995 breaks the JVCL: ESchedule reintroduced as an alias to EJclScheduleError. Revision Links: -------------- http://jcl.svn.sourceforge.net/jcl/?rev=2995&view=rev Modified Paths: -------------- trunk/jcl/source/common/JclSchedule.pas Modified: trunk/jcl/source/common/JclSchedule.pas =================================================================== --- trunk/jcl/source/common/JclSchedule.pas 2009-09-12 12:21:23 UTC (rev 2997) +++ trunk/jcl/source/common/JclSchedule.pas 2009-09-12 13:18:12 UTC (rev 2998) @@ -70,6 +70,7 @@ IJclYearlySchedule = interface; EJclScheduleError = class(EJclError); + ESchedule = EJclScheduleError; IJclSchedule = interface(IUnknown) ['{1CC54450-7F84-4F27-B1C1-418C451DAD80}'] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 12:21:30
|
Revision: 2997 http://jcl.svn.sourceforge.net/jcl/?rev=2997&view=rev Author: outchy Date: 2009-09-12 12:21:23 +0000 (Sat, 12 Sep 2009) Log Message: ----------- when a class implements some interface, all the interface members (functions, procedures and properties) should be public. Modified Paths: -------------- trunk/jcl/source/common/JclArrayLists.pas trunk/jcl/source/common/JclArraySets.pas trunk/jcl/source/common/JclBinaryTrees.pas trunk/jcl/source/common/JclHashMaps.pas trunk/jcl/source/common/JclHashSets.pas trunk/jcl/source/common/JclLinkedLists.pas trunk/jcl/source/common/JclQueues.pas trunk/jcl/source/common/JclSortedMaps.pas trunk/jcl/source/common/JclStacks.pas trunk/jcl/source/common/JclTrees.pas trunk/jcl/source/common/JclVectors.pas trunk/jcl/source/prototypes/JclArrayLists.pas trunk/jcl/source/prototypes/JclArraySets.pas trunk/jcl/source/prototypes/JclBinaryTrees.pas trunk/jcl/source/prototypes/JclHashMaps.pas trunk/jcl/source/prototypes/JclHashSets.pas trunk/jcl/source/prototypes/JclLinkedLists.pas trunk/jcl/source/prototypes/JclQueues.pas trunk/jcl/source/prototypes/JclSortedMaps.pas trunk/jcl/source/prototypes/JclStacks.pas trunk/jcl/source/prototypes/JclTrees.pas trunk/jcl/source/prototypes/JclVectors.pas Modified: trunk/jcl/source/common/JclArrayLists.pas =================================================================== --- trunk/jcl/source/common/JclArrayLists.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/common/JclArrayLists.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -1144,12 +1144,12 @@ FEqualityComparer: IJclEqualityComparer<T>; protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; - function ItemsEqual(const A, B: T): Boolean; override; function CreateEmptyContainer: TJclAbstractContainerBase; override; public constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; ACapacity: Integer; AOwnsItems: Boolean); overload; constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; const ACollection: IJclCollection<T>; AOwnsItems: Boolean); overload; - + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property EqualityComparer: IJclEqualityComparer<T> read FEqualityComparer write FEqualityComparer; end; @@ -1169,8 +1169,10 @@ IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable, IJclContainer, IJclItemOwner<T>, IJclEqualityComparer<T>, IJclCollection<T>, IJclList<T>, IJclArray<T>) protected + function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; - function CreateEmptyContainer: TJclAbstractContainerBase; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/common/JclArraySets.pas =================================================================== --- trunk/jcl/source/common/JclArraySets.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/common/JclArraySets.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -341,13 +341,14 @@ FComparer: IJclComparer<T>; protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; - function ItemsCompare(const A, B: T): Integer; override; - function ItemsEqual(const A, B: T): Boolean; override; function CreateEmptyContainer: TJclAbstractContainerBase; override; public constructor Create(const AComparer: IJclComparer<T>; ACapacity: Integer; AOwnsItems: Boolean); overload; constructor Create(const AComparer: IJclComparer<T>; const ACollection: IJclCollection<T>; AOwnsItems: Boolean); overload; - + { IJclEqualityComparer<T> } + function ItemsCompare(const A, B: T): Integer; override; + { IJclComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property Comparer: IJclComparer<T> read FComparer write FComparer; end; @@ -367,9 +368,12 @@ IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable, IJclContainer, IJclItemOwner<T>, IJclEqualityComparer<T>, IJclComparer<T>, IJclCollection<T>, IJclList<T>, IJclArray<T>, IJclSet<T>) protected + function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + { IJclEqualityComparer<T> } function ItemsCompare(const A, B: T): Integer; override; + { IJclComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; - function CreateEmptyContainer: TJclAbstractContainerBase; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/common/JclBinaryTrees.pas =================================================================== --- trunk/jcl/source/common/JclBinaryTrees.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/common/JclBinaryTrees.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -1811,12 +1811,12 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + constructor Create(const AComparer: IJclComparer<T>; AOwnsItems: Boolean); { IJclComparer<T> } function ItemsCompare(const A, B: T): Integer; override; { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; - public - constructor Create(const AComparer: IJclComparer<T>; AOwnsItems: Boolean); property Comparer: IJclComparer<T> read FComparer write FComparer; end; @@ -1836,6 +1836,7 @@ IJclCollection<T>, IJclTree<T>) protected function CreateEmptyContainer: TJclAbstractContainerBase; override; + public { IJclComparer<T> } function ItemsCompare(const A, B: T): Integer; override; { IJclEqualityComparer<T> } Modified: trunk/jcl/source/common/JclHashMaps.pas =================================================================== --- trunk/jcl/source/common/JclHashMaps.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/common/JclHashMaps.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -1701,15 +1701,15 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: IInterface): IInterface; function Hash(const AInterface: IInterface): Integer; reintroduce; function KeysEqual(const A, B: IInterface): Boolean; function ValuesEqual(A, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclIntfBucket; @@ -1759,14 +1759,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: AnsiString): AnsiString; function KeysEqual(const A, B: AnsiString): Boolean; function ValuesEqual(A, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclAnsiStrBucket; @@ -1816,14 +1816,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: WideString): WideString; function KeysEqual(const A, B: WideString): Boolean; function ValuesEqual(A, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclWideStrBucket; @@ -1874,14 +1874,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: UnicodeString): UnicodeString; function KeysEqual(const A, B: UnicodeString): Boolean; function ValuesEqual(A, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclUnicodeStrBucket; @@ -1942,14 +1942,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Single): Single; function KeysEqual(const A, B: Single): Boolean; function ValuesEqual(A, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclSingleBucket; @@ -1999,14 +1999,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Double): Double; function KeysEqual(const A, B: Double): Boolean; function ValuesEqual(A, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclDoubleBucket; @@ -2056,14 +2056,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Extended): Extended; function KeysEqual(const A, B: Extended): Boolean; function ValuesEqual(A, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclExtendedBucket; @@ -2123,14 +2123,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Integer): Integer; function KeysEqual(A, B: Integer): Boolean; function ValuesEqual(A, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclIntegerBucket; @@ -2180,14 +2180,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Cardinal): Cardinal; function KeysEqual(A, B: Cardinal): Boolean; function ValuesEqual(A, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclCardinalBucket; @@ -2237,14 +2237,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Int64): Int64; function KeysEqual(const A, B: Int64): Boolean; function ValuesEqual(A, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclInt64Bucket; @@ -2294,14 +2294,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Pointer): Pointer; function KeysEqual(A, B: Pointer): Boolean; function ValuesEqual(A, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclPtrBucket; @@ -2352,18 +2352,18 @@ FOwnsKeys: Boolean; FOwnsValues: Boolean; protected + function CreateEmptyContainer: TJclAbstractContainerBase; override; + function Hash(AObject: TObject): Integer; + function KeysEqual(A, B: TObject): Boolean; + function ValuesEqual(A, B: TObject): Boolean; + public { IJclKeyOwner } function FreeKey(var Key: TObject): TObject; function GetOwnsKeys: Boolean; + property OwnsKeys: Boolean read FOwnsKeys; { IJclValueOwner } function FreeValue(var Value: TObject): TObject; function GetOwnsValues: Boolean; - function CreateEmptyContainer: TJclAbstractContainerBase; override; - function Hash(AObject: TObject): Integer; - function KeysEqual(A, B: TObject): Boolean; - function ValuesEqual(A, B: TObject): Boolean; - public - property OwnsKeys: Boolean read FOwnsKeys; property OwnsValues: Boolean read FOwnsValues; private FBuckets: array of TJclBucket; @@ -2418,17 +2418,17 @@ FOwnsKeys: Boolean; FOwnsValues: Boolean; protected - { IJclPairOwner } - function FreeKey(var Key: TKey): TKey; - function FreeValue(var Value: TValue): TValue; - function GetOwnsKeys: Boolean; - function GetOwnsValues: Boolean; function Hash(const AKey: TKey): Integer; virtual; abstract; function KeysEqual(const A, B: TKey): Boolean; virtual; abstract; function ValuesEqual(const A, B: TValue): Boolean; virtual; abstract; function CreateEmptyArrayList(ACapacity: Integer; AOwnsObjects: Boolean): IJclCollection<TValue>; virtual; abstract; function CreateEmptyArraySet(ACapacity: Integer; AOwnsObjects: Boolean): IJclSet<TKey>; virtual; abstract; public + { IJclPairOwner } + function FreeKey(var Key: TKey): TKey; + function FreeValue(var Value: TValue): TValue; + function GetOwnsKeys: Boolean; + function GetOwnsValues: Boolean; property OwnsKeys: Boolean read FOwnsKeys; property OwnsValues: Boolean read FOwnsValues; private Modified: trunk/jcl/source/common/JclHashSets.pas =================================================================== --- trunk/jcl/source/common/JclHashSets.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/common/JclHashSets.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -843,7 +843,7 @@ TJclHashSet<T> = class(TJclAbstractContainer<T>, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} IJclIntfCloneable, IJclCloneable, IJclPackable, IJclContainer, IJclItemOwner<T>, IJclEqualityComparer<T>, IJclCollection<T>, IJclSet<T>) - protected + public { IJclItemOwner<T> } function FreeItem(var AItem: T): T; override; function GetOwnsItems: Boolean; override; @@ -910,13 +910,13 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function CreateEmptyContainer: TJclAbstractContainerBase; override; - function ItemsEqual(const A, B: T): Boolean; override; public constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; const AHashConverter: IJclHashConverter<T>; const AMap: IJclMap<T, TRefUnique>); overload; constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; const AHashConverter: IJclHashConverter<T>; const AComparer: IJclComparer<T>; ACapacity: Integer; AOwnsItems: Boolean); overload; - + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property EqualityComparer: IJclEqualityComparer<T> read FEqualityComparer write FEqualityComparer; property HashConverter: IJclHashConverter<T> read FHashConverter write FHashConverter; end; @@ -939,10 +939,11 @@ IJclContainer, IJclCollection<T>, IJclSet<T>, IJclItemOwner<T>, IJclEqualityComparer<T>) protected function CreateEmptyContainer: TJclAbstractContainerBase; override; - function ItemsEqual(const A, B: T): Boolean; override; public constructor Create(const AMap: IJclMap<T, TRefUnique>); overload; constructor Create(ACapacity: Integer; AOwnsItems: Boolean); overload; + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/common/JclLinkedLists.pas =================================================================== --- trunk/jcl/source/common/JclLinkedLists.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/common/JclLinkedLists.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -1182,11 +1182,12 @@ FEqualityComparer: IJclEqualityComparer<T>; protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; - function ItemsEqual(const A, B: T): Boolean; override; function CreateEmptyContainer: TJclAbstractContainerBase; override; public constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; const ACollection: IJclCollection<T>; AOwnsItems: Boolean); + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property EqualityComparer: IJclEqualityComparer<T> read FEqualityComparer write FEqualityComparer; end; @@ -1206,8 +1207,10 @@ IJclIntfCloneable, IJclCloneable, IJclContainer, IJclCollection<T>, IJclList<T>, IJclEqualityComparer<T>, IJclItemOwner<T>) protected + function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; - function CreateEmptyContainer: TJclAbstractContainerBase; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/common/JclQueues.pas =================================================================== --- trunk/jcl/source/common/JclQueues.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/common/JclQueues.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -437,10 +437,10 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function CreateEmptyContainer: TJclAbstractContainerBase; override; - function ItemsEqual(const A, B: T): Boolean; override; public constructor Create(const AEqualityComparer: IEqualityComparer<T>; ACapacity: Integer; AOwnsItems: Boolean); - + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property EqualityComparer: IEqualityComparer<T> read FEqualityComparer write FEqualityComparer; end; @@ -458,6 +458,8 @@ IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable, IJclContainer, IJclQueue<T>, IJclItemOwner<T>) protected function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/common/JclSortedMaps.pas =================================================================== --- trunk/jcl/source/common/JclSortedMaps.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/common/JclSortedMaps.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -1585,14 +1585,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: IInterface): IInterface; function KeysCompare(const A, B: IInterface): Integer; function ValuesCompare(A, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclIntfSortedEntry; @@ -1639,14 +1639,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: AnsiString): AnsiString; function KeysCompare(const A, B: AnsiString): Integer; function ValuesCompare(A, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclAnsiStrSortedEntry; @@ -1693,14 +1693,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: WideString): WideString; function KeysCompare(const A, B: WideString): Integer; function ValuesCompare(A, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclWideStrSortedEntry; @@ -1748,14 +1748,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: UnicodeString): UnicodeString; function KeysCompare(const A, B: UnicodeString): Integer; function ValuesCompare(A, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclUnicodeStrSortedEntry; @@ -1813,14 +1813,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Single): Single; function KeysCompare(const A, B: Single): Integer; function ValuesCompare(A, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclSingleSortedEntry; @@ -1867,14 +1867,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Double): Double; function KeysCompare(const A, B: Double): Integer; function ValuesCompare(A, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclDoubleSortedEntry; @@ -1921,14 +1921,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Extended): Extended; function KeysCompare(const A, B: Extended): Integer; function ValuesCompare(A, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclExtendedSortedEntry; @@ -1985,14 +1985,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Integer): Integer; function KeysCompare(A, B: Integer): Integer; function ValuesCompare(A, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclIntegerSortedEntry; @@ -2039,14 +2039,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Cardinal): Cardinal; function KeysCompare(A, B: Cardinal): Integer; function ValuesCompare(A, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclCardinalSortedEntry; @@ -2093,14 +2093,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Int64): Int64; function KeysCompare(const A, B: Int64): Integer; function ValuesCompare(A, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclInt64SortedEntry; @@ -2147,14 +2147,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Pointer): Pointer; function KeysCompare(A, B: Pointer): Integer; function ValuesCompare(A, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclPtrSortedEntry; @@ -2202,17 +2202,17 @@ FOwnsKeys: Boolean; FOwnsValues: Boolean; protected + function CreateEmptyContainer: TJclAbstractContainerBase; override; + function KeysCompare(A, B: TObject): Integer; + function ValuesCompare(A, B: TObject): Integer; + public { IJclKeyOwner } function FreeKey(var Key: TObject): TObject; function GetOwnsKeys: Boolean; + property OwnsKeys: Boolean read FOwnsKeys; { IJclValueOwner } function FreeValue(var Value: TObject): TObject; function GetOwnsValues: Boolean; - function CreateEmptyContainer: TJclAbstractContainerBase; override; - function KeysCompare(A, B: TObject): Integer; - function ValuesCompare(A, B: TObject): Integer; - public - property OwnsKeys: Boolean read FOwnsKeys; property OwnsValues: Boolean read FOwnsValues; private FEntries: array of TJclSortedEntry; @@ -2264,16 +2264,16 @@ FOwnsKeys: Boolean; FOwnsValues: Boolean; protected + function KeysCompare(const A, B: TKey): Integer; virtual; abstract; + function ValuesCompare(const A, B: TValue): Integer; virtual; abstract; + function CreateEmptyArrayList(ACapacity: Integer; AOwnsObjects: Boolean): IJclCollection<TValue>; virtual; abstract; + function CreateEmptyArraySet(ACapacity: Integer; AOwnsObjects: Boolean): IJclSet<TKey>; virtual; abstract; + public { IJclPairOwner } function FreeKey(var Key: TKey): TKey; function FreeValue(var Value: TValue): TValue; function GetOwnsKeys: Boolean; function GetOwnsValues: Boolean; - function KeysCompare(const A, B: TKey): Integer; virtual; abstract; - function ValuesCompare(const A, B: TValue): Integer; virtual; abstract; - function CreateEmptyArrayList(ACapacity: Integer; AOwnsObjects: Boolean): IJclCollection<TValue>; virtual; abstract; - function CreateEmptyArraySet(ACapacity: Integer; AOwnsObjects: Boolean): IJclSet<TKey>; virtual; abstract; - public property OwnsKeys: Boolean read FOwnsKeys; property OwnsValues: Boolean read FOwnsValues; private Modified: trunk/jcl/source/common/JclStacks.pas =================================================================== --- trunk/jcl/source/common/JclStacks.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/common/JclStacks.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -398,10 +398,10 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function CreateEmptyContainer: TJclAbstractContainerBase; override; - function ItemsEqual(const A, B: T): Boolean; override; public constructor Create(const AEqualityComparer: IEqualityComparer<T>; ACapacity: Integer; AOwnsItems: Boolean); - + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property EqualityComparer: IEqualityComparer<T> read FEqualityComparer write FEqualityComparer; end; @@ -421,6 +421,8 @@ IJclStack<T>, IJclItemOwner<T>) protected function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/common/JclTrees.pas =================================================================== --- trunk/jcl/source/common/JclTrees.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/common/JclTrees.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -1769,10 +1769,10 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; AOwnsItems: Boolean); { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; - public - constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; AOwnsItems: Boolean); property EqualityComparer: IJclEqualityComparer<T> read FEqualityComparer write FEqualityComparer; end; @@ -1792,6 +1792,7 @@ IJclCollection<T>, IJclTree<T>) protected function CreateEmptyContainer: TJclAbstractContainerBase; override; + public { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; end; Modified: trunk/jcl/source/common/JclVectors.pas =================================================================== --- trunk/jcl/source/common/JclVectors.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/common/JclVectors.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -1160,9 +1160,10 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function CreateEmptyContainer: TJclAbstractContainerBase; override; - function ItemsEqual(const A, B: T): Boolean; override; public constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; ACapacity: Integer; AOwnsItems: Boolean); + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property EqualityComparer: IJclEqualityComparer<T> read FEqualityComparer write FEqualityComparer; end; @@ -1182,6 +1183,8 @@ IJclCollection<T>, IJclList<T>, IJclArray<T>, IJclItemOwner<T>) protected function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/prototypes/JclArrayLists.pas =================================================================== --- trunk/jcl/source/prototypes/JclArrayLists.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/prototypes/JclArrayLists.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -167,12 +167,12 @@ FEqualityComparer: IJclEqualityComparer<T>; protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; - function ItemsEqual(const A, B: T): Boolean; override; function CreateEmptyContainer: TJclAbstractContainerBase; override; public constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; ACapacity: Integer; AOwnsItems: Boolean); overload; constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; const ACollection: IJclCollection<T>; AOwnsItems: Boolean); overload; - + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property EqualityComparer: IJclEqualityComparer<T> read FEqualityComparer write FEqualityComparer; end; @@ -192,8 +192,10 @@ IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable, IJclContainer, IJclItemOwner<T>, IJclEqualityComparer<T>, IJclCollection<T>, IJclList<T>, IJclArray<T>) protected + function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; - function CreateEmptyContainer: TJclAbstractContainerBase; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/prototypes/JclArraySets.pas =================================================================== --- trunk/jcl/source/prototypes/JclArraySets.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/prototypes/JclArraySets.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -131,13 +131,14 @@ FComparer: IJclComparer<T>; protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; - function ItemsCompare(const A, B: T): Integer; override; - function ItemsEqual(const A, B: T): Boolean; override; function CreateEmptyContainer: TJclAbstractContainerBase; override; public constructor Create(const AComparer: IJclComparer<T>; ACapacity: Integer; AOwnsItems: Boolean); overload; constructor Create(const AComparer: IJclComparer<T>; const ACollection: IJclCollection<T>; AOwnsItems: Boolean); overload; - + { IJclEqualityComparer<T> } + function ItemsCompare(const A, B: T): Integer; override; + { IJclComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property Comparer: IJclComparer<T> read FComparer write FComparer; end; @@ -157,9 +158,12 @@ IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable, IJclContainer, IJclItemOwner<T>, IJclEqualityComparer<T>, IJclComparer<T>, IJclCollection<T>, IJclList<T>, IJclArray<T>, IJclSet<T>) protected + function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + { IJclEqualityComparer<T> } function ItemsCompare(const A, B: T): Integer; override; + { IJclComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; - function CreateEmptyContainer: TJclAbstractContainerBase; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/prototypes/JclBinaryTrees.pas =================================================================== --- trunk/jcl/source/prototypes/JclBinaryTrees.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/prototypes/JclBinaryTrees.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -197,12 +197,12 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + constructor Create(const AComparer: IJclComparer<T>; AOwnsItems: Boolean); { IJclComparer<T> } function ItemsCompare(const A, B: T): Integer; override; { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; - public - constructor Create(const AComparer: IJclComparer<T>; AOwnsItems: Boolean); property Comparer: IJclComparer<T> read FComparer write FComparer; end; @@ -222,6 +222,7 @@ IJclCollection<T>, IJclTree<T>) protected function CreateEmptyContainer: TJclAbstractContainerBase; override; + public { IJclComparer<T> } function ItemsCompare(const A, B: T): Integer; override; { IJclEqualityComparer<T> } Modified: trunk/jcl/source/prototypes/JclHashMaps.pas =================================================================== --- trunk/jcl/source/prototypes/JclHashMaps.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/prototypes/JclHashMaps.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -415,15 +415,15 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: IInterface): IInterface; function Hash(const AInterface: IInterface): Integer; reintroduce; function KeysEqual(const A\, B: IInterface): Boolean; function ValuesEqual(A\, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,IInterface,,TObject)*) (*$JPPEXPANDMACRO JCLHASHMAPTYPESINT(TJclAnsiStrHashEntry,TJclAnsiStrBucket,AnsiString,TObject)*) @@ -432,14 +432,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: AnsiString): AnsiString; function KeysEqual(const A\, B: AnsiString): Boolean; function ValuesEqual(A\, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,AnsiString,,TObject)*) (*$JPPEXPANDMACRO JCLHASHMAPTYPESINT(TJclWideStrHashEntry,TJclWideStrBucket,WideString,TObject)*) @@ -448,14 +448,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: WideString): WideString; function KeysEqual(const A\, B: WideString): Boolean; function ValuesEqual(A\, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,WideString,,TObject)*) {$IFDEF SUPPORTS_UNICODE_STRING} @@ -465,14 +465,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: UnicodeString): UnicodeString; function KeysEqual(const A\, B: UnicodeString): Boolean; function ValuesEqual(A\, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,UnicodeString,,TObject)*) {$ENDIF SUPPORTS_UNICODE_STRING} @@ -492,14 +492,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Single): Single; function KeysEqual(const A\, B: Single): Boolean; function ValuesEqual(A\, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,Single,,TObject)*) (*$JPPEXPANDMACRO JCLHASHMAPTYPESINT(TJclDoubleHashEntry,TJclDoubleBucket,Double,TObject)*) @@ -508,14 +508,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Double): Double; function KeysEqual(const A\, B: Double): Boolean; function ValuesEqual(A\, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,Double,,TObject)*) (*$JPPEXPANDMACRO JCLHASHMAPTYPESINT(TJclExtendedHashEntry,TJclExtendedBucket,Extended,TObject)*) @@ -524,14 +524,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Extended): Extended; function KeysEqual(const A\, B: Extended): Boolean; function ValuesEqual(A\, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,Extended,,TObject)*) {$IFDEF MATH_EXTENDED_PRECISION} @@ -550,14 +550,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Integer): Integer; function KeysEqual(A\, B: Integer): Boolean; function ValuesEqual(A\, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,,Integer,,TObject)*) (*$JPPEXPANDMACRO JCLHASHMAPTYPESINT(TJclCardinalHashEntry,TJclCardinalBucket,Cardinal,TObject)*) @@ -566,14 +566,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Cardinal): Cardinal; function KeysEqual(A\, B: Cardinal): Boolean; function ValuesEqual(A\, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,,Cardinal,,TObject)*) (*$JPPEXPANDMACRO JCLHASHMAPTYPESINT(TJclInt64HashEntry,TJclInt64Bucket,Int64,TObject)*) @@ -582,14 +582,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Int64): Int64; function KeysEqual(const A\, B: Int64): Boolean; function ValuesEqual(A\, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,Int64,,TObject)*) (*$JPPEXPANDMACRO JCLHASHMAPTYPESINT(TJclPtrHashEntry,TJclPtrBucket,Pointer,TObject)*) @@ -598,14 +598,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Pointer): Pointer; function KeysEqual(A\, B: Pointer): Boolean; function ValuesEqual(A\, B: TObject): Boolean; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,,Pointer,,TObject)*) (*$JPPEXPANDMACRO JCLHASHMAPTYPESINT(TJclHashEntry,TJclBucket,TObject,TObject)*) @@ -615,18 +615,18 @@ FOwnsKeys: Boolean; FOwnsValues: Boolean; protected + function CreateEmptyContainer: TJclAbstractContainerBase; override; + function Hash(AObject: TObject): Integer; + function KeysEqual(A\, B: TObject): Boolean; + function ValuesEqual(A\, B: TObject): Boolean; + public { IJclKeyOwner } function FreeKey(var Key: TObject): TObject; function GetOwnsKeys: Boolean; + property OwnsKeys: Boolean read FOwnsKeys; { IJclValueOwner } function FreeValue(var Value: TObject): TObject; function GetOwnsValues: Boolean; - function CreateEmptyContainer: TJclAbstractContainerBase; override; - function Hash(AObject: TObject): Integer; - function KeysEqual(A\, B: TObject): Boolean; - function ValuesEqual(A\, B: TObject): Boolean; - public - property OwnsKeys: Boolean read FOwnsKeys; property OwnsValues: Boolean read FOwnsValues;,; AOwnsKeys: Boolean,; AOwnsValues: Boolean,,TObject,,TObject)*) {$IFDEF SUPPORTS_GENERICS} @@ -640,17 +640,17 @@ FOwnsKeys: Boolean; FOwnsValues: Boolean; protected - { IJclPairOwner } - function FreeKey(var Key: TKey): TKey; - function FreeValue(var Value: TValue): TValue; - function GetOwnsKeys: Boolean; - function GetOwnsValues: Boolean; function Hash(const AKey: TKey): Integer; virtual; abstract; function KeysEqual(const A\, B: TKey): Boolean; virtual; abstract; function ValuesEqual(const A\, B: TValue): Boolean; virtual; abstract; function CreateEmptyArrayList(ACapacity: Integer; AOwnsObjects: Boolean): IJclCollection<TValue>; virtual; abstract; function CreateEmptyArraySet(ACapacity: Integer; AOwnsObjects: Boolean): IJclSet<TKey>; virtual; abstract; public + { IJclPairOwner } + function FreeKey(var Key: TKey): TKey; + function FreeValue(var Value: TValue): TValue; + function GetOwnsKeys: Boolean; + function GetOwnsValues: Boolean; property OwnsKeys: Boolean read FOwnsKeys; property OwnsValues: Boolean read FOwnsValues;,; AOwnsKeys: Boolean,; AOwnsValues: Boolean,const ,TKey,const ,TValue)*) Modified: trunk/jcl/source/prototypes/JclHashSets.pas =================================================================== --- trunk/jcl/source/prototypes/JclHashSets.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/prototypes/JclHashSets.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -191,7 +191,7 @@ {$IFDEF SUPPORTS_GENERICS} (*$JPPEXPANDMACRO JCLHASHSETINT(TJclHashSet<T>,TJclAbstractContainer<T>,IJclCollection<T>,IJclSet<T>,IJclMap<T\, TRefUnique>,IJclIterator<T>, IJclItemOwner<T>\, IJclEqualityComparer<T>\,, - protected + public { IJclItemOwner<T> } function FreeItem(var AItem: T): T; override; function GetOwnsItems: Boolean; override;,,const ,AItem,T)*) @@ -206,13 +206,13 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function CreateEmptyContainer: TJclAbstractContainerBase; override; - function ItemsEqual(const A, B: T): Boolean; override; public constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; const AHashConverter: IJclHashConverter<T>; const AMap: IJclMap<T, TRefUnique>); overload; constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; const AHashConverter: IJclHashConverter<T>; const AComparer: IJclComparer<T>; ACapacity: Integer; AOwnsItems: Boolean); overload; - + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property EqualityComparer: IJclEqualityComparer<T> read FEqualityComparer write FEqualityComparer; property HashConverter: IJclHashConverter<T> read FHashConverter write FHashConverter; end; @@ -235,10 +235,11 @@ IJclContainer, IJclCollection<T>, IJclSet<T>, IJclItemOwner<T>, IJclEqualityComparer<T>) protected function CreateEmptyContainer: TJclAbstractContainerBase; override; - function ItemsEqual(const A, B: T): Boolean; override; public constructor Create(const AMap: IJclMap<T, TRefUnique>); overload; constructor Create(ACapacity: Integer; AOwnsItems: Boolean); overload; + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/prototypes/JclLinkedLists.pas =================================================================== --- trunk/jcl/source/prototypes/JclLinkedLists.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/prototypes/JclLinkedLists.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -192,11 +192,12 @@ FEqualityComparer: IJclEqualityComparer<T>; protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; - function ItemsEqual(const A, B: T): Boolean; override; function CreateEmptyContainer: TJclAbstractContainerBase; override; public constructor Create(const AEqualityComparer: IJclEqualityComparer<T>; const ACollection: IJclCollection<T>; AOwnsItems: Boolean); + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property EqualityComparer: IJclEqualityComparer<T> read FEqualityComparer write FEqualityComparer; end; @@ -216,8 +217,10 @@ IJclIntfCloneable, IJclCloneable, IJclContainer, IJclCollection<T>, IJclList<T>, IJclEqualityComparer<T>, IJclItemOwner<T>) protected + function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; - function CreateEmptyContainer: TJclAbstractContainerBase; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/prototypes/JclQueues.pas =================================================================== --- trunk/jcl/source/prototypes/JclQueues.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/prototypes/JclQueues.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -135,10 +135,10 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function CreateEmptyContainer: TJclAbstractContainerBase; override; - function ItemsEqual(const A, B: T): Boolean; override; public constructor Create(const AEqualityComparer: IEqualityComparer<T>; ACapacity: Integer; AOwnsItems: Boolean); - + { IJclEqualityComparer<T> } + function ItemsEqual(const A, B: T): Boolean; override; property EqualityComparer: IEqualityComparer<T> read FEqualityComparer write FEqualityComparer; end; @@ -156,6 +156,8 @@ IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable, IJclContainer, IJclQueue<T>, IJclItemOwner<T>) protected function CreateEmptyContainer: TJclAbstractContainerBase; override; + public + { IJclEqualityComparer<T> } function ItemsEqual(const A, B: T): Boolean; override; end; {$ENDIF SUPPORTS_GENERICS} Modified: trunk/jcl/source/prototypes/JclSortedMaps.pas =================================================================== --- trunk/jcl/source/prototypes/JclSortedMaps.pas 2009-09-12 11:59:48 UTC (rev 2996) +++ trunk/jcl/source/prototypes/JclSortedMaps.pas 2009-09-12 12:21:23 UTC (rev 2997) @@ -400,14 +400,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: IInterface): IInterface; function KeysCompare(const A\, B: IInterface): Integer; function ValuesCompare(A\, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,IInterface,,TObject)*) (*$JPPEXPANDMACRO JCLSORTEDMAPTYPESINT(TJclAnsiStrSortedEntry,AnsiString,TObject)*) @@ -416,14 +416,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: AnsiString): AnsiString; function KeysCompare(const A\, B: AnsiString): Integer; function ValuesCompare(A\, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,AnsiString,,TObject)*) (*$JPPEXPANDMACRO JCLSORTEDMAPTYPESINT(TJclWideStrSortedEntry,WideString,TObject)*) @@ -432,14 +432,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: WideString): WideString; function KeysCompare(const A\, B: WideString): Integer; function ValuesCompare(A\, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,WideString,,TObject)*) {$IFDEF SUPPORTS_UNICODE_STRING} @@ -449,14 +449,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: UnicodeString): UnicodeString; function KeysCompare(const A\, B: UnicodeString): Integer; function ValuesCompare(A\, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,UnicodeString,,TObject)*) {$ENDIF SUPPORTS_UNICODE_STRING} @@ -476,14 +476,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Single): Single; function KeysCompare(const A\, B: Single): Integer; function ValuesCompare(A\, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,Single,,TObject)*) (*$JPPEXPANDMACRO JCLSORTEDMAPTYPESINT(TJclDoubleSortedEntry,Double,TObject)*) @@ -492,14 +492,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Double): Double; function KeysCompare(const A\, B: Double): Integer; function ValuesCompare(A\, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,Double,,TObject)*) (*$JPPEXPANDMACRO JCLSORTEDMAPTYPESINT(TJclExtendedSortedEntry,Extended,TObject)*) @@ -508,14 +508,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Extended): Extended; function KeysCompare(const A\, B: Extended): Integer; function ValuesCompare(A\, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,Extended,,TObject)*) {$IFDEF MATH_EXTENDED_PRECISION} @@ -534,14 +534,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Integer): Integer; function KeysCompare(A\, B: Integer): Integer; function ValuesCompare(A\, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,,Integer,,TObject)*) (*$JPPEXPANDMACRO JCLSORTEDMAPTYPESINT(TJclCardinalSortedEntry,Cardinal,TObject)*) @@ -550,14 +550,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Cardinal): Cardinal; function KeysCompare(A\, B: Cardinal): Integer; function ValuesCompare(A\, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,,Cardinal,,TObject)*) (*$JPPEXPANDMACRO JCLSORTEDMAPTYPESINT(TJclInt64SortedEntry,Int64,TObject)*) @@ -566,14 +566,14 @@ private FOwnsValues: Boolean; protected - { IJclValueOwner } - function FreeValue(var Value: TObject): TObject; - function GetOwnsValues: Boolean; function CreateEmptyContainer: TJclAbstractContainerBase; override; function FreeKey(var Key: Int64): Int64; function KeysCompare(const A\, B: Int64): Integer; function ValuesCompare(A\, B: TObject): Integer; public + { IJclValueOwner } + function FreeValue(var Value: TObject): TObject; + function GetOwnsValues: Boolean; property OwnsValues: Boolean read FOwnsValues;,,; AOwnsValues: Boolean,const ,Int64,,TObject)*) (*$JPPEXPANDMACRO JCLSORTEDMAPTYPESINT(TJclPtrSortedEntry,Pointer,TObject)*) @@ -582,14 +582,14 @@ private ... [truncated message content] |
From: <ou...@us...> - 2009-09-12 11:59:56
|
Revision: 2996 http://jcl.svn.sourceforge.net/jcl/?rev=2996&view=rev Author: outchy Date: 2009-09-12 11:59:48 +0000 (Sat, 12 Sep 2009) Log Message: ----------- C++Builder 2007 does not support lib prefix and lib suffix. Modified Paths: -------------- trunk/jcl/experts/common/JclOtaUtils.pas Modified: trunk/jcl/experts/common/JclOtaUtils.pas =================================================================== --- trunk/jcl/experts/common/JclOtaUtils.pas 2009-09-12 11:58:10 UTC (rev 2995) +++ trunk/jcl/experts/common/JclOtaUtils.pas 2009-09-12 11:59:48 UTC (rev 2996) @@ -1035,10 +1035,14 @@ raise EJclExpertException.CreateTrace(RsENoProjectOptions); LibPrefix := Trim(VarToStr(Project.ProjectOptions.Values[LIBPREFIXOptionName])); LibSuffix := Trim(VarToStr(Project.ProjectOptions.Values[LIBSUFFIXOptionName])); - if LibPrefix = 'false' then + {$IFDEF BDS} + if Project.Personality = JclCBuilderPersonality then + begin + // C++Builder 2007 does not support lib prefix and lib suffix LibPrefix := ''; - if LibSuffix = 'false' then LibSuffix := ''; + end; + {$ENDIF BDS} Result := PathAddSeparator(OutputDirectory) + LibPrefix + PathExtractFileNameNoExt(ProjectFileName) + LibSuffix + CompilerExtensionMAP; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 11:58:26
|
Revision: 2995 http://jcl.svn.sourceforge.net/jcl/?rev=2995&view=rev Author: outchy Date: 2009-09-12 11:58:10 +0000 (Sat, 12 Sep 2009) Log Message: ----------- renamed ESchedule to EJclScheduleError. Modified Paths: -------------- trunk/jcl/source/common/JclSchedule.pas Modified: trunk/jcl/source/common/JclSchedule.pas =================================================================== --- trunk/jcl/source/common/JclSchedule.pas 2009-09-12 11:56:34 UTC (rev 2994) +++ trunk/jcl/source/common/JclSchedule.pas 2009-09-12 11:58:10 UTC (rev 2995) @@ -69,7 +69,7 @@ IJclMonthlySchedule = interface; IJclYearlySchedule = interface; - ESchedule = class(EJclError); + EJclScheduleError = class(EJclError); IJclSchedule = interface(IUnknown) ['{1CC54450-7F84-4F27-B1C1-418C451DAD80}'] @@ -304,7 +304,7 @@ if Value <> FStartTime then begin if Value >= Cardinal(HoursToMSecs(24)) then - raise ESchedule.CreateRes(@RsScheduleInvalidTime); + raise EJclScheduleError.CreateRes(@RsScheduleInvalidTime); FStartTime := Value; if EndTime < StartTime then FEndTime := Value; @@ -316,9 +316,9 @@ if Value <> FEndTime then begin if Value < FStartTime then - raise ESchedule.CreateRes(@RsScheduleEndBeforeStart); + raise EJclScheduleError.CreateRes(@RsScheduleEndBeforeStart); if Value >= Cardinal(HoursToMSecs(24)) then - raise ESchedule.CreateRes(@RsScheduleInvalidTime); + raise EJclScheduleError.CreateRes(@RsScheduleInvalidTime); FEndTime := Value; end; end; @@ -328,7 +328,7 @@ if Value <> FInterval then begin if Value >= Cardinal(HoursToMSecs(24)) then - raise ESchedule.CreateRes(@RsScheduleInvalidTime); + raise EJclScheduleError.CreateRes(@RsScheduleInvalidTime); if Value = 0 then begin FEndTime := FStartTime; @@ -433,7 +433,7 @@ begin CheckInterfaceAllowed; if Value = 0 then - raise ESchedule.CreateRes(@RsScheduleIntervalZero); + raise EJclScheduleError.CreateRes(@RsScheduleIntervalZero); if FEveryWeekDay then FEveryWeekDay := False; if Value <> FInterval then @@ -523,7 +523,7 @@ begin CheckInterfaceAllowed; if Value = [] then - raise ESchedule.CreateRes(@RsScheduleNoDaySpecified); + raise EJclScheduleError.CreateRes(@RsScheduleNoDaySpecified); FDaysOfWeek := Value; end; @@ -531,7 +531,7 @@ begin CheckInterfaceAllowed; if Value = 0 then - raise ESchedule.CreateRes(@RsScheduleIntervalZero); + raise EJclScheduleError.CreateRes(@RsScheduleIntervalZero); FInterval := Value; end; @@ -834,7 +834,7 @@ begin CheckInterfaceAllowed; if not (FIndexKind in [sikDay .. sikSunday]) then - raise ESchedule.CreateRes(@RsScheduleIndexValueSup); + raise EJclScheduleError.CreateRes(@RsScheduleIndexValueSup); Result := FIndexValue; end; @@ -860,9 +860,9 @@ begin CheckInterfaceAllowed; if not (FIndexKind in [sikDay .. sikSunday]) then - raise ESchedule.CreateRes(@RsScheduleIndexValueSup); + raise EJclScheduleError.CreateRes(@RsScheduleIndexValueSup); if Value = 0 then - raise ESchedule.CreateRes(@RsScheduleIndexValueZero); + raise EJclScheduleError.CreateRes(@RsScheduleIndexValueZero); FIndexValue := Value; end; @@ -870,9 +870,9 @@ begin CheckInterfaceAllowed; if not (FIndexKind in [sikNone]) then - raise ESchedule.CreateRes(@RsScheduleDayNotSupported); + raise EJclScheduleError.CreateRes(@RsScheduleDayNotSupported); if (Value = 0) or (Value > 31) then - raise ESchedule.CreateRes(@RsScheduleDayInRange); + raise EJclScheduleError.CreateRes(@RsScheduleDayInRange); FDay := Value; end; @@ -880,7 +880,7 @@ begin CheckInterfaceAllowed; if Value = 0 then - raise ESchedule.CreateRes(@RsScheduleIntervalZero); + raise EJclScheduleError.CreateRes(@RsScheduleIntervalZero); FInterval := Value; end; @@ -975,7 +975,7 @@ begin CheckInterfaceAllowed; if (Value < 1) or (Value > 12) then - raise ESchedule.CreateRes(@RsScheduleMonthInRange); + raise EJclScheduleError.CreateRes(@RsScheduleMonthInRange); FMonth := Value; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-12 11:56:42
|
Revision: 2994 http://jcl.svn.sourceforge.net/jcl/?rev=2994&view=rev Author: outchy Date: 2009-09-12 11:56:34 +0000 (Sat, 12 Sep 2009) Log Message: ----------- Classes that implement interfaces shall be declared in the unit interface section. Modified Paths: -------------- trunk/jcl/source/common/JclRTTI.pas trunk/jcl/source/common/JclSchedule.pas trunk/jcl/source/common/JclStringLists.pas trunk/jcl/source/common/JclSysUtils.pas trunk/jcl/source/windows/JclMsdosSys.pas trunk/jcl/source/windows/JclWinMIDI.pas Modified: trunk/jcl/source/common/JclRTTI.pas =================================================================== --- trunk/jcl/source/common/JclRTTI.pas 2009-09-12 10:57:33 UTC (rev 2993) +++ trunk/jcl/source/common/JclRTTI.pas 2009-09-12 11:56:34 UTC (rev 2994) @@ -126,6 +126,26 @@ property TypeKind: TTypeKind read GetTypeKind; end; + TJclTypeInfo = class(TInterfacedObject, IJclTypeInfo) + private + FTypeData: PTypeData; + FTypeInfo: PTypeInfo; + protected + procedure WriteTo(const Dest: IJclInfoWriter); virtual; + procedure DeclarationTo(const Dest: IJclInfoWriter); virtual; + public + constructor Create(ATypeInfo: PTypeInfo); + { IJclTypeInfo } + function GetName: string; + function GetTypeData: PTypeData; + function GetTypeInfo: PTypeInfo; + function GetTypeKind: TTypeKind; + property Name: string read GetName; + property TypeData: PTypeData read GetTypeData; + property TypeInfo: PTypeInfo read GetTypeInfo; + property TypeKind: TTypeKind read GetTypeKind; + end; + // Ordinal types IJclOrdinalTypeInfo = interface(IJclTypeInfo) ['{7DAD5221-46EA-11D5-B0C0-4854E825F345}'] @@ -134,6 +154,15 @@ property OrdinalType: TOrdType read GetOrdinalType; end; + TJclOrdinalTypeInfo = class(TJclTypeInfo, IJclOrdinalTypeInfo) + protected + procedure WriteTo(const Dest: IJclInfoWriter); override; + public + { IJclOrdinalTypeInfo } + function GetOrdinalType: TOrdType; + property OrdinalType: TOrdType read GetOrdinalType; + end; + IJclOrdinalRangeTypeInfo = interface(IJclOrdinalTypeInfo) ['{7DAD5222-46EA-11D5-B0C0-4854E825F345}'] function GetMinValue: Int64; @@ -143,6 +172,18 @@ property MaxValue: Int64 read GetMaxValue; end; + TJclOrdinalRangeTypeInfo = class(TJclOrdinalTypeInfo, IJclOrdinalRangeTypeInfo) + protected + procedure WriteTo(const Dest: IJclInfoWriter); override; + procedure DeclarationTo(const Dest: IJclInfoWriter); override; + public + { IJclOrdinalRangeTypeInfo } + function GetMinValue: Int64; + function GetMaxValue: Int64; + property MinValue: Int64 read GetMinValue; + property MaxValue: Int64 read GetMaxValue; + end; + IJclEnumerationTypeInfo = interface(IJclOrdinalRangeTypeInfo) ['{7DAD5223-46EA-11D5-B0C0-4854E825F345}'] function GetBaseType: IJclEnumerationTypeInfo; @@ -156,6 +197,20 @@ property UnitName: string read GetUnitName; end; + TJclEnumerationTypeInfo = class(TJclOrdinalRangeTypeInfo, IJclEnumerationTypeInfo) + protected + procedure WriteTo(const Dest: IJclInfoWriter); override; + procedure DeclarationTo(const Dest: IJclInfoWriter); override; + public + { IJclEnumerationTypeInfo } + function GetBaseType: IJclEnumerationTypeInfo; + function GetNames(const I: Integer): string; + function GetUnitName: string; + function IndexOfName(const Name: string): Integer; + property BaseType: IJclEnumerationTypeInfo read GetBaseType; + property Names[const I: Integer]: string read GetNames; default; + end; + IJclSetTypeInfo = interface(IJclOrdinalTypeInfo) ['{7DAD5224-46EA-11D5-B0C0-4854E825F345}'] function GetBaseType: IJclOrdinalTypeInfo; @@ -167,6 +222,19 @@ property BaseType: IJclOrdinalTypeInfo read GetBaseType; end; + TJclSetTypeInfo = class(TJclOrdinalTypeInfo, IJclSetTypeInfo) + protected + procedure WriteTo(const Dest: IJclInfoWriter); override; + procedure DeclarationTo(const Dest: IJclInfoWriter); override; + public + { IJclSetTypeInfo } + function GetBaseType: IJclOrdinalTypeInfo; + procedure GetAsList(const Value; const WantRanges: Boolean; + const Strings: TStrings); + procedure SetAsList(out Value; const Strings: TStrings); + property BaseType: IJclOrdinalTypeInfo read GetBaseType; + end; + // Float types IJclFloatTypeInfo = interface(IJclTypeInfo) ['{7DAD5225-46EA-11D5-B0C0-4854E825F345}'] @@ -175,6 +243,16 @@ property FloatType: TFloatType read GetFloatType; end; + TJclFloatTypeInfo = class(TJclTypeInfo, IJclFloatTypeInfo) + protected + procedure WriteTo(const Dest: IJclInfoWriter); override; + procedure DeclarationTo(const Dest: IJclInfoWriter); override; + public + { IJclFloatTypeInfo } + function GetFloatType: TFloatType; + property FloatType: TFloatType read GetFloatType; + end; + // Short string types IJclStringTypeInfo = interface(IJclTypeInfo) ['{7DAD5226-46EA-11D5-B0C0-4854E825F345}'] @@ -183,6 +261,16 @@ property MaxLength: Integer read GetMaxLength; end; + TJclStringTypeInfo = class(TJclTypeInfo, IJclStringTypeInfo) + protected + procedure WriteTo(const Dest: IJclInfoWriter); override; + procedure DeclarationTo(const Dest: IJclInfoWriter); override; + public + { IJclStringTypeInfo } + function GetMaxLength: Integer; + property MaxLength: Integer read GetMaxLength; + end; + // Class types TJclPropSpecKind = (pskNone, pskStaticMethod, pskVirtualMethod, pskField, pskConstant); @@ -224,6 +312,51 @@ property Name: string read GetName; end; + TJclPropInfo = class(TInterfacedObject, IJclPropInfo) + private + FPropInfo: PPropInfo; + public + constructor Create(const APropInfo: PPropInfo); + { IJclPropInfo } + function GetPropInfo: PPropInfo; + function GetPropType: IJclTypeInfo; + function GetReader: Pointer; + function GetWriter: Pointer; + function GetStoredProc: Pointer; + function GetIndex: Integer; + function GetDefault: Longint; + function GetNameIndex: Smallint; + function GetName: string; + function GetSpecKind(const Value: TJclAddr): TJclPropSpecKind; + function GetSpecValue(const Value: TJclAddr): TJclAddr; + function GetReaderType: TJclPropSpecKind; + function GetWriterType: TJclPropSpecKind; + function GetStoredType: TJclPropSpecKind; + function GetReaderValue: TJclAddr; + function GetWriterValue: TJclAddr; + function GetStoredValue: TJclAddr; + + function IsStored(const AInstance: TObject): Boolean; + function HasDefault: Boolean; + function HasIndex: Boolean; + + property PropInfo: PPropInfo read GetPropInfo; + property PropType: IJclTypeInfo read GetPropType; + property Reader: Pointer read GetReader; + property Writer: Pointer read GetWriter; + property StoredProc: Pointer read GetStoredProc; + property ReaderType: TJclPropSpecKind read GetReaderType; + property WriterType: TJclPropSpecKind read GetWriterType; + property StoredType: TJclPropSpecKind read GetStoredType; + property ReaderValue: TJclAddr read GetReaderValue; + property WriterValue: TJclAddr read GetWriterValue; + property StoredValue: TJclAddr read GetStoredValue; + property Index: Integer read GetIndex; + property Default: Longint read GetDefault; + property NameIndex: Smallint read GetNameIndex; + property Name: string read GetName; + end; + IJclClassTypeInfo = interface(IJclTypeInfo) ['{7DAD5228-46EA-11D5-B0C0-4854E825F345}'] function GetClassRef: TClass; @@ -243,6 +376,27 @@ property UnitName: string read GetUnitName; end; + TJclClassTypeInfo = class(TJclTypeInfo, IJclClassTypeInfo) + protected + procedure WriteTo(const Dest: IJclInfoWriter); override; + procedure DeclarationTo(const Dest: IJclInfoWriter); override; + public + { IJclClassTypeInfo } + function GetClassRef: TClass; + function GetParent: IJclClassTypeInfo; + function GetTotalPropertyCount: Integer; + function GetPropertyCount: Integer; + function GetProperties(const PropIdx: Integer): IJclPropInfo; + function GetPropNames(const Name: string): IJclPropInfo; + function GetUnitName: string; + property ClassRef: TClass read GetClassRef; + property Parent: IJclClassTypeInfo read GetParent; + property TotalPropertyCount: Integer read GetTotalPropertyCount; + property PropertyCount: Integer read GetPropertyCount; + property Properties[const PropIdx: Integer]: IJclPropInfo read GetProperties; + property PropNames[const Name: string]: IJclPropInfo read GetPropNames; + end; + // Event types IJclEventParamInfo = interface ['{7DAD5229-46EA-11D5-B0C0-4854E825F345}'] @@ -259,6 +413,24 @@ property Param: Pointer read GetParam; end; + TJclEventParamInfo = class(TInterfacedObject, IJclEventParamInfo) + private + FParam: Pointer; + public + constructor Create(const AParam: Pointer); + { IJclEventParamInfo } + function GetFlags: TParamFlags; + function GetName: string; + function GetRecSize: Integer; + function GetTypeName: string; + function GetParam: Pointer; + property Flags: TParamFlags read GetFlags; + property Name: string read GetName; + property RecSize: Integer read GetRecSize; + property TypeName: string read GetTypeName; + property Param: Pointer read GetParam; + end; + IJclEventTypeInfo = interface(IJclTypeInfo) ['{7DAD522A-46EA-11D5-B0C0-4854E825F345}'] function GetMethodKind: TMethodKind; @@ -273,6 +445,23 @@ property ResultTypeName: string read GetResultTypeName; end; + TJclEventTypeInfo = class(TJclTypeInfo, IJclEventTypeInfo) + protected + procedure WriteTo(const Dest: IJclInfoWriter); override; + procedure DeclarationTo(const Dest: IJclInfoWriter); override; + public + { IJclEventTypeInfo } + function GetMethodKind: TMethodKind; + function GetParameterCount: Integer; + function GetParameters(const ParamIdx: Integer): IJclEventParamInfo; + function GetResultTypeName: string; + property MethodKind: TMethodKind read GetMethodKind; + property ParameterCount: Integer read GetParameterCount; + property Parameters[const ParamIdx: Integer]: IJclEventParamInfo + read GetParameters; + property ResultTypeName: string read GetResultTypeName; + end; + // Interface types IJclInterfaceTypeInfo = interface(IJclTypeInfo) ['{7DAD522B-46EA-11D5-B0C0-4854E825F345}'] @@ -289,6 +478,23 @@ property UnitName: string read GetUnitName; end; + TJclInterfaceTypeInfo = class(TJclTypeInfo, IJclInterfaceTypeInfo) + protected + procedure WriteTo(const Dest: IJclInfoWriter); override; + procedure DeclarationTo(const Dest: IJclInfoWriter); override; + public + { IJclInterfaceTypeInfo } + function GetParent: IJclInterfaceTypeInfo; + function GetFlags: TIntfFlagsBase; + function GetGUID: TGUID; + function GetPropertyCount: Integer; + function GetUnitName: string; + property Parent: IJclInterfaceTypeInfo read GetParent; + property Flags: TIntfFlagsBase read GetFlags; + property GUID: TGUID read GetGUID; + property PropertyCount: Integer read GetPropertyCount; + end; + // Int64 types IJclInt64TypeInfo = interface(IJclTypeInfo) ['{7DAD522C-46EA-11D5-B0C0-4854E825F345}'] @@ -299,6 +505,18 @@ property MaxValue: Int64 read GetMaxValue; end; + TJclInt64TypeInfo = class(TJclTypeInfo, IJclInt64TypeInfo) + protected + procedure WriteTo(const Dest: IJclInfoWriter); override; + procedure DeclarationTo(const Dest: IJclInfoWriter); override; + public + { IJclInt64TypeInfo } + function GetMinValue: Int64; + function GetMaxValue: Int64; + property MinValue: Int64 read GetMinValue; + property MaxValue: Int64 read GetMaxValue; + end; + // Dynamic array types IJclDynArrayTypeInfo = interface(IJclTypeInfo) ['{7DAD522E-46EA-11D5-B0C0-4854E825F345}'] @@ -315,6 +533,23 @@ property UnitName: string read GetUnitName; end; + TJclDynArrayTypeInfo = class(TJclTypeInfo, IJclDynArrayTypeInfo) + protected + procedure WriteTo(const Dest: IJclInfoWriter); override; + procedure DeclarationTo(const Dest: IJclInfoWriter); override; + public + { IJclDynArrayTypeInfo } + function GetElementSize: Longint; + function GetElementType: IJclTypeInfo; + function GetElementsNeedCleanup: Boolean; + function GetVarType: Integer; + function GetUnitName: string; + property ElementSize: Longint read GetElementSize; + property ElementType: IJclTypeInfo read GetElementType; + property ElementsNeedCleanup: Boolean read GetElementsNeedCleanup; + property VarType: Integer read GetVarType; + end; + EJclRTTIError = class(EJclError); function JclTypeInfo(ATypeInfo: PTypeInfo): IJclTypeInfo; @@ -497,27 +732,6 @@ //=== { TJclTypeInfo } ======================================================= -type - TJclTypeInfo = class(TInterfacedObject, IJclTypeInfo) - private - FTypeData: PTypeData; - FTypeInfo: PTypeInfo; - protected - procedure WriteTo(const Dest: IJclInfoWriter); virtual; - procedure DeclarationTo(const Dest: IJclInfoWriter); virtual; - public - constructor Create(ATypeInfo: PTypeInfo); - { IJclTypeInfo } - function GetName: string; - function GetTypeData: PTypeData; - function GetTypeInfo: PTypeInfo; - function GetTypeKind: TTypeKind; - property Name: string read GetName; - property TypeData: PTypeData read GetTypeData; - property TypeInfo: PTypeInfo read GetTypeInfo; - property TypeKind: TTypeKind read GetTypeKind; - end; - constructor TJclTypeInfo.Create(ATypeInfo: PTypeInfo); begin inherited Create; @@ -560,16 +774,6 @@ //=== { TJclOrdinalTypeInfo } ================================================ -type - TJclOrdinalTypeInfo = class(TJclTypeInfo, IJclOrdinalTypeInfo) - protected - procedure WriteTo(const Dest: IJclInfoWriter); override; - public - { IJclOrdinalTypeInfo } - function GetOrdinalType: TOrdType; - property OrdinalType: TOrdType read GetOrdinalType; - end; - function TJclOrdinalTypeInfo.GetOrdinalType: TOrdType; begin Result := TypeData.OrdType; @@ -584,19 +788,6 @@ //=== { TJclOrdinalRangeTypeInfo } =========================================== -type - TJclOrdinalRangeTypeInfo = class(TJclOrdinalTypeInfo, IJclOrdinalRangeTypeInfo) - protected - procedure WriteTo(const Dest: IJclInfoWriter); override; - procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public - { IJclOrdinalRangeTypeInfo } - function GetMinValue: Int64; - function GetMaxValue: Int64; - property MinValue: Int64 read GetMinValue; - property MaxValue: Int64 read GetMaxValue; - end; - function TJclOrdinalRangeTypeInfo.GetMinValue: Int64; begin if OrdinalType = otULong then @@ -643,21 +834,6 @@ //=== { TJclEnumerationTypeInfo } ============================================ -type - TJclEnumerationTypeInfo = class(TJclOrdinalRangeTypeInfo, IJclEnumerationTypeInfo) - protected - procedure WriteTo(const Dest: IJclInfoWriter); override; - procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public - { IJclEnumerationTypeInfo } - function GetBaseType: IJclEnumerationTypeInfo; - function GetNames(const I: Integer): string; - function GetUnitName: string; - function IndexOfName(const Name: string): Integer; - property BaseType: IJclEnumerationTypeInfo read GetBaseType; - property Names[const I: Integer]: string read GetNames; default; - end; - function TJclEnumerationTypeInfo.GetBaseType: IJclEnumerationTypeInfo; begin if TypeData.BaseType{$IFDEF BORLAND}^{$ENDIF} = TypeInfo then @@ -759,20 +935,6 @@ //=== { TJclSetTypeInfo } ==================================================== -type - TJclSetTypeInfo = class(TJclOrdinalTypeInfo, IJclSetTypeInfo) - protected - procedure WriteTo(const Dest: IJclInfoWriter); override; - procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public - { IJclSetTypeInfo } - function GetBaseType: IJclOrdinalTypeInfo; - procedure GetAsList(const Value; const WantRanges: Boolean; - const Strings: TStrings); - procedure SetAsList(out Value; const Strings: TStrings); - property BaseType: IJclOrdinalTypeInfo read GetBaseType; - end; - function TJclSetTypeInfo.GetBaseType: IJclOrdinalTypeInfo; begin Result := JclTypeInfo(TypeData.CompType{$IFDEF BORLAND}^{$ENDIF}) as IJclOrdinalTypeInfo; @@ -956,17 +1118,6 @@ //=== { TJclFloatTypeInfo } ================================================== -type - TJclFloatTypeInfo = class(TJclTypeInfo, IJclFloatTypeInfo) - protected - procedure WriteTo(const Dest: IJclInfoWriter); override; - procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public - { IJclFloatTypeInfo } - function GetFloatType: TFloatType; - property FloatType: TFloatType read GetFloatType; - end; - function TJclFloatTypeInfo.GetFloatType: TFloatType; begin Result := TypeData.FloatType; @@ -991,17 +1142,6 @@ //=== { TJclStringTypeInfo } ================================================= -type - TJclStringTypeInfo = class(TJclTypeInfo, IJclStringTypeInfo) - protected - procedure WriteTo(const Dest: IJclInfoWriter); override; - procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public - { IJclStringTypeInfo } - function GetMaxLength: Integer; - property MaxLength: Integer read GetMaxLength; - end; - function TJclStringTypeInfo.GetMaxLength: Integer; begin Result := TypeData.MaxLength; @@ -1024,52 +1164,6 @@ //=== { TJclPropInfo } ======================================================= -type - TJclPropInfo = class(TInterfacedObject, IJclPropInfo) - private - FPropInfo: PPropInfo; - public - constructor Create(const APropInfo: PPropInfo); - { IJclPropInfo } - function GetPropInfo: PPropInfo; - function GetPropType: IJclTypeInfo; - function GetReader: Pointer; - function GetWriter: Pointer; - function GetStoredProc: Pointer; - function GetIndex: Integer; - function GetDefault: Longint; - function GetNameIndex: Smallint; - function GetName: string; - function GetSpecKind(const Value: TJclAddr): TJclPropSpecKind; - function GetSpecValue(const Value: TJclAddr): TJclAddr; - function GetReaderType: TJclPropSpecKind; - function GetWriterType: TJclPropSpecKind; - function GetStoredType: TJclPropSpecKind; - function GetReaderValue: TJclAddr; - function GetWriterValue: TJclAddr; - function GetStoredValue: TJclAddr; - - function IsStored(const AInstance: TObject): Boolean; - function HasDefault: Boolean; - function HasIndex: Boolean; - - property PropInfo: PPropInfo read GetPropInfo; - property PropType: IJclTypeInfo read GetPropType; - property Reader: Pointer read GetReader; - property Writer: Pointer read GetWriter; - property StoredProc: Pointer read GetStoredProc; - property ReaderType: TJclPropSpecKind read GetReaderType; - property WriterType: TJclPropSpecKind read GetWriterType; - property StoredType: TJclPropSpecKind read GetStoredType; - property ReaderValue: TJclAddr read GetReaderValue; - property WriterValue: TJclAddr read GetWriterValue; - property StoredValue: TJclAddr read GetStoredValue; - property Index: Integer read GetIndex; - property Default: Longint read GetDefault; - property NameIndex: Smallint read GetNameIndex; - property Name: string read GetName; - end; - constructor TJclPropInfo.Create(const APropInfo: PPropInfo); begin inherited Create; @@ -1217,28 +1311,6 @@ //=== { TJclClassTypeInfo } ================================================== -type - TJclClassTypeInfo = class(TJclTypeInfo, IJclClassTypeInfo) - protected - procedure WriteTo(const Dest: IJclInfoWriter); override; - procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public - { IJclClassTypeInfo } - function GetClassRef: TClass; - function GetParent: IJclClassTypeInfo; - function GetTotalPropertyCount: Integer; - function GetPropertyCount: Integer; - function GetProperties(const PropIdx: Integer): IJclPropInfo; - function GetPropNames(const Name: string): IJclPropInfo; - function GetUnitName: string; - property ClassRef: TClass read GetClassRef; - property Parent: IJclClassTypeInfo read GetParent; - property TotalPropertyCount: Integer read GetTotalPropertyCount; - property PropertyCount: Integer read GetPropertyCount; - property Properties[const PropIdx: Integer]: IJclPropInfo read GetProperties; - property PropNames[const Name: string]: IJclPropInfo read GetPropNames; - end; - function TJclClassTypeInfo.GetClassRef: TClass; begin Result := TypeData.ClassType; @@ -1462,25 +1534,6 @@ //=== { TJclEventParamInfo } ================================================= -type - TJclEventParamInfo = class(TInterfacedObject, IJclEventParamInfo) - private - FParam: Pointer; - public - constructor Create(const AParam: Pointer); - { IJclEventParamInfo } - function GetFlags: TParamFlags; - function GetName: string; - function GetRecSize: Integer; - function GetTypeName: string; - function GetParam: Pointer; - property Flags: TParamFlags read GetFlags; - property Name: string read GetName; - property RecSize: Integer read GetRecSize; - property TypeName: string read GetTypeName; - property Param: Pointer read GetParam; - end; - constructor TJclEventParamInfo.Create(const AParam: Pointer); begin inherited Create; @@ -1525,24 +1578,6 @@ //=== { TJclEventTypeInfo } ================================================== -type - TJclEventTypeInfo = class(TJclTypeInfo, IJclEventTypeInfo) - protected - procedure WriteTo(const Dest: IJclInfoWriter); override; - procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public - { IJclEventTypeInfo } - function GetMethodKind: TMethodKind; - function GetParameterCount: Integer; - function GetParameters(const ParamIdx: Integer): IJclEventParamInfo; - function GetResultTypeName: string; - property MethodKind: TMethodKind read GetMethodKind; - property ParameterCount: Integer read GetParameterCount; - property Parameters[const ParamIdx: Integer]: IJclEventParamInfo - read GetParameters; - property ResultTypeName: string read GetResultTypeName; - end; - function TJclEventTypeInfo.GetMethodKind: TMethodKind; begin Result := TypeData.MethodKind; @@ -1665,24 +1700,6 @@ //=== { TJclInterfaceTypeInfo } ============================================== -type - TJclInterfaceTypeInfo = class(TJclTypeInfo, IJclInterfaceTypeInfo) - protected - procedure WriteTo(const Dest: IJclInfoWriter); override; - procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public - { IJclInterfaceTypeInfo } - function GetParent: IJclInterfaceTypeInfo; - function GetFlags: TIntfFlagsBase; - function GetGUID: TGUID; - function GetPropertyCount: Integer; - function GetUnitName: string; - property Parent: IJclInterfaceTypeInfo read GetParent; - property Flags: TIntfFlagsBase read GetFlags; - property GUID: TGUID read GetGUID; - property PropertyCount: Integer read GetPropertyCount; - end; - function TJclInterfaceTypeInfo.GetParent: IJclInterfaceTypeInfo; begin if (TypeData.IntfParent <> nil) {$IFDEF BORLAND}and (TypeData.IntfParent^ <> nil){$ENDIF BORLAND} then @@ -1760,19 +1777,6 @@ //=== { TJclInt64TypeInfo } ================================================== -type - TJclInt64TypeInfo = class(TJclTypeInfo, IJclInt64TypeInfo) - protected - procedure WriteTo(const Dest: IJclInfoWriter); override; - procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public - { IJclInt64TypeInfo } - function GetMinValue: Int64; - function GetMaxValue: Int64; - property MinValue: Int64 read GetMinValue; - property MaxValue: Int64 read GetMaxValue; - end; - function TJclInt64TypeInfo.GetMinValue: Int64; begin Result := TypeData.MinInt64Value; @@ -1797,24 +1801,6 @@ //=== { TJclDynArrayTypeInfo } =============================================== -type - TJclDynArrayTypeInfo = class(TJclTypeInfo, IJclDynArrayTypeInfo) - protected - procedure WriteTo(const Dest: IJclInfoWriter); override; - procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public - { IJclDynArrayTypeInfo } - function GetElementSize: Longint; - function GetElementType: IJclTypeInfo; - function GetElementsNeedCleanup: Boolean; - function GetVarType: Integer; - function GetUnitName: string; - property ElementSize: Longint read GetElementSize; - property ElementType: IJclTypeInfo read GetElementType; - property ElementsNeedCleanup: Boolean read GetElementsNeedCleanup; - property VarType: Integer read GetVarType; - end; - function TJclDynArrayTypeInfo.GetElementSize: Longint; begin Result := TypeData.elSize; Modified: trunk/jcl/source/common/JclSchedule.pas =================================================================== --- trunk/jcl/source/common/JclSchedule.pas 2009-09-12 10:57:33 UTC (rev 2993) +++ trunk/jcl/source/common/JclSchedule.pas 2009-09-12 11:56:34 UTC (rev 2994) @@ -192,12 +192,12 @@ implementation uses - JclDateTime, JclResources; + JclDateTime, JclResources; -//=== { TScheduleAggregate } ================================================= +//=== { TJclScheduleAggregate } ============================================== type - TScheduleAggregate = class(TAggregatedObject) + TJclScheduleAggregate = class(TAggregatedObject) protected procedure CheckInterfaceAllowed; function InterfaceAllowed: Boolean; @@ -209,31 +209,31 @@ function NextValidStamp(const Stamp: TTimeStamp): TTimeStamp; virtual; abstract; end; -procedure TScheduleAggregate.CheckInterfaceAllowed; +procedure TJclScheduleAggregate.CheckInterfaceAllowed; begin if not InterfaceAllowed then RunError(23); // reIntfCastError end; -function TScheduleAggregate.InterfaceAllowed: Boolean; +function TJclScheduleAggregate.InterfaceAllowed: Boolean; begin Result := Schedule.RecurringType = RecurringType; end; -function TScheduleAggregate.Schedule: IJclSchedule; +function TJclScheduleAggregate.Schedule: IJclSchedule; begin Result := Controller as IJclSchedule; end; -class function TScheduleAggregate.RecurringType: TScheduleRecurringKind; +class function TJclScheduleAggregate.RecurringType: TScheduleRecurringKind; begin Result := srkOneShot; end; -//=== { TDailyFreq } ========================================================= +//=== { TJclDayFrequency } =================================================== type - TDailyFreq = class(TAggregatedObject, IJclScheduleDayFrequency, IInterface) + TJclDayFrequency = class(TAggregatedObject, IJclScheduleDayFrequency, IInterface) private FStartTime: Cardinal; FEndTime: Cardinal; @@ -256,7 +256,7 @@ property Interval: Cardinal read GetInterval write SetInterval; end; -constructor TDailyFreq.Create(const Controller: IUnknown); +constructor TJclDayFrequency.Create(const Controller: IUnknown); begin inherited Create(Controller); FStartTime := 0; @@ -264,13 +264,13 @@ FInterval := 500; end; -function TDailyFreq.ValidStamp(const Stamp: TTimeStamp): Boolean; +function TJclDayFrequency.ValidStamp(const Stamp: TTimeStamp): Boolean; begin Result := (Cardinal(Stamp.Time) >= FStartTime) and (Cardinal(Stamp.Time) <= FEndTime) and ((Cardinal(Stamp.Time) - FStartTime) mod FInterval = 0); end; -function TDailyFreq.NextValidStamp(const Stamp: TTimeStamp): TTimeStamp; +function TJclDayFrequency.NextValidStamp(const Stamp: TTimeStamp): TTimeStamp; begin Result := Stamp; if Stamp.Time < Integer(FStartTime) then @@ -284,22 +284,22 @@ Result := NullStamp; end; -function TDailyFreq.GetStartTime: Cardinal; +function TJclDayFrequency.GetStartTime: Cardinal; begin Result := FStartTime; end; -function TDailyFreq.GetEndTime: Cardinal; +function TJclDayFrequency.GetEndTime: Cardinal; begin Result := FEndTime; end; -function TDailyFreq.GetInterval: Cardinal; +function TJclDayFrequency.GetInterval: Cardinal; begin Result := FInterval; end; -procedure TDailyFreq.SetStartTime(Value: Cardinal); +procedure TJclDayFrequency.SetStartTime(Value: Cardinal); begin if Value <> FStartTime then begin @@ -311,7 +311,7 @@ end; end; -procedure TDailyFreq.SetEndTime(Value: Cardinal); +procedure TJclDayFrequency.SetEndTime(Value: Cardinal); begin if Value <> FEndTime then begin @@ -323,7 +323,7 @@ end; end; -procedure TDailyFreq.SetInterval(Value: Cardinal); +procedure TJclDayFrequency.SetInterval(Value: Cardinal); begin if Value <> FInterval then begin @@ -339,10 +339,10 @@ end; end; -//=== { TDailySchedule } ===================================================== +//=== { TJclDailySchedule } ================================================== type - TDailySchedule = class(TScheduleAggregate, IJclDailySchedule, IInterface) + TJclDailySchedule = class(TJclScheduleAggregate, IJclDailySchedule, IInterface) private FEveryWeekDay: Boolean; FInterval: Cardinal; @@ -364,25 +364,25 @@ property Interval: Cardinal read GetInterval write SetInterval; end; -constructor TDailySchedule.Create(const Controller: IUnknown); +constructor TJclDailySchedule.Create(const Controller: IUnknown); begin inherited Create(Controller); FEveryWeekDay := True; FInterval := 1; end; -class function TDailySchedule.RecurringType: TScheduleRecurringKind; +class function TJclDailySchedule.RecurringType: TScheduleRecurringKind; begin Result := srkDaily; end; -function TDailySchedule.ValidStamp(const Stamp: TTimeStamp): Boolean; +function TJclDailySchedule.ValidStamp(const Stamp: TTimeStamp): Boolean; begin Result := (FEveryWeekDay and (TimeStampDOW(Stamp) < 6)) or (not FEveryWeekDay and (Cardinal(Stamp.Date - Schedule.StartDate.Date) mod Interval = 0)); end; -procedure TDailySchedule.MakeValidStamp(var Stamp: TTimeStamp); +procedure TJclDailySchedule.MakeValidStamp(var Stamp: TTimeStamp); begin if FEveryWeekDay and (TimeStampDOW(Stamp) >= 6) then Inc(Stamp.Date, 2 - (TimeStampDOW(Stamp) - 6)) @@ -391,7 +391,7 @@ Inc(Stamp.Date, Interval - Cardinal(Stamp.Date - Schedule.StartDate.Date) mod Interval); end; -function TDailySchedule.NextValidStamp(const Stamp: TTimeStamp): TTimeStamp; +function TJclDailySchedule.NextValidStamp(const Stamp: TTimeStamp): TTimeStamp; begin Result := Stamp; MakeValidStamp(Result); @@ -408,13 +408,13 @@ end; end; -function TDailySchedule.GetEveryWeekDay: Boolean; +function TJclDailySchedule.GetEveryWeekDay: Boolean; begin CheckInterfaceAllowed; Result := FEveryWeekDay; end; -function TDailySchedule.GetInterval: Cardinal; +function TJclDailySchedule.GetInterval: Cardinal; begin CheckInterfaceAllowed; if EveryWeekDay then @@ -423,13 +423,13 @@ Result := FInterval; end; -procedure TDailySchedule.SetEveryWeekDay(Value: Boolean); +procedure TJclDailySchedule.SetEveryWeekDay(Value: Boolean); begin CheckInterfaceAllowed; FEveryWeekDay := Value; end; -procedure TDailySchedule.SetInterval(Value: Cardinal); +procedure TJclDailySchedule.SetInterval(Value: Cardinal); begin CheckInterfaceAllowed; if Value = 0 then @@ -440,10 +440,10 @@ FInterval := Value; end; -//=== { TWeeklySchedule } ==================================================== +//=== { TJclWeeklySchedule } ================================================= type - TWeeklySchedule = class(TScheduleAggregate, IJclWeeklySchedule, IInterface) + TJclWeeklySchedule = class(TJclScheduleAggregate, IJclWeeklySchedule, IInterface) private FDaysOfWeek: TScheduleWeekDays; FInterval: Cardinal; @@ -465,25 +465,25 @@ property Interval: Cardinal read GetInterval write SetInterval; end; -constructor TWeeklySchedule.Create(const Controller: IUnknown); +constructor TJclWeeklySchedule.Create(const Controller: IUnknown); begin inherited Create(Controller); FDaysOfWeek := [swdMonday]; FInterval := 1; end; -class function TWeeklySchedule.RecurringType: TScheduleRecurringKind; +class function TJclWeeklySchedule.RecurringType: TScheduleRecurringKind; begin Result := srkWeekly; end; -function TWeeklySchedule.ValidStamp(const Stamp: TTimeStamp): Boolean; +function TJclWeeklySchedule.ValidStamp(const Stamp: TTimeStamp): Boolean; begin Result := (TScheduleWeekDay(TimeStampDOW(Stamp)) in DaysOfWeek) and (Cardinal((Stamp.Date - Schedule.StartDate.Date) div 7) mod Interval = 0); end; -procedure TWeeklySchedule.MakeValidStamp(var Stamp: TTimeStamp); +procedure TJclWeeklySchedule.MakeValidStamp(var Stamp: TTimeStamp); begin while not (TScheduleWeekDay(TimeStampDOW(Stamp) - 1) in DaysOfWeek) do Inc(Stamp.Date); @@ -495,7 +495,7 @@ end; end; -function TWeeklySchedule.NextValidStamp(const Stamp: TTimeStamp): TTimeStamp; +function TJclWeeklySchedule.NextValidStamp(const Stamp: TTimeStamp): TTimeStamp; begin Result := Stamp; MakeValidStamp(Result); @@ -507,19 +507,19 @@ end; end; -function TWeeklySchedule.GetDaysOfWeek: TScheduleWeekDays; +function TJclWeeklySchedule.GetDaysOfWeek: TScheduleWeekDays; begin CheckInterfaceAllowed; Result := FDaysOfWeek; end; -function TWeeklySchedule.GetInterval: Cardinal; +function TJclWeeklySchedule.GetInterval: Cardinal; begin CheckInterfaceAllowed; Result := FInterval; end; -procedure TWeeklySchedule.SetDaysOfWeek(Value: TScheduleWeekDays); +procedure TJclWeeklySchedule.SetDaysOfWeek(Value: TScheduleWeekDays); begin CheckInterfaceAllowed; if Value = [] then @@ -527,7 +527,7 @@ FDaysOfWeek := Value; end; -procedure TWeeklySchedule.SetInterval(Value: Cardinal); +procedure TJclWeeklySchedule.SetInterval(Value: Cardinal); begin CheckInterfaceAllowed; if Value = 0 then @@ -535,10 +535,10 @@ FInterval := Value; end; -//=== { TMonthlySchedule } =================================================== +//=== { TJclMonthlySchedule } ================================================ type - TMonthlySchedule = class(TScheduleAggregate, IJclMonthlySchedule, IInterface) + TJclMonthlySchedule = class(TJclScheduleAggregate, IJclMonthlySchedule, IInterface) private FIndexKind: TScheduleIndexKind; FIndexValue: Integer; @@ -571,7 +571,7 @@ property Interval: Cardinal read GetInterval write SetInterval; end; -constructor TMonthlySchedule.Create(const Controller: IUnknown); +constructor TJclMonthlySchedule.Create(const Controller: IUnknown); begin inherited Create(Controller); FIndexKind := sikNone; @@ -580,12 +580,12 @@ FInterval := 1; end; -class function TMonthlySchedule.RecurringType: TScheduleRecurringKind; +class function TJclMonthlySchedule.RecurringType: TScheduleRecurringKind; begin Result := srkMonthly; end; -function TMonthlySchedule.ValidStamp(const Stamp: TTimeStamp): Boolean; +function TJclMonthlySchedule.ValidStamp(const Stamp: TTimeStamp): Boolean; var SYear, SMonth, SDay: Word; TYear, TMonth, TDay: Word; @@ -596,7 +596,7 @@ ValidStampMonthIndex(TYear, TMonth, TDay); end; -procedure TMonthlySchedule.MakeValidStamp(var Stamp: TTimeStamp); +procedure TJclMonthlySchedule.MakeValidStamp(var Stamp: TTimeStamp); var SYear, SMonth, SDay: Word; TYear, TMonth, TDay: Word; @@ -629,7 +629,7 @@ Stamp.Date := DateTimeToTimeStamp(JclDateTime.EncodeDate(TYear, TMonth, TDay)).Date; end; -function TMonthlySchedule.NextValidStamp(const Stamp: TTimeStamp): TTimeStamp; +function TJclMonthlySchedule.NextValidStamp(const Stamp: TTimeStamp): TTimeStamp; begin Result := Stamp; MakeValidStamp(Result); @@ -641,7 +641,7 @@ end; end; -function TMonthlySchedule.ValidStampMonthIndex(const TYear, TMonth, TDay: Word): Boolean; +function TJclMonthlySchedule.ValidStampMonthIndex(const TYear, TMonth, TDay: Word): Boolean; var DIM: Integer; TempDay: Integer; @@ -732,7 +732,7 @@ end; end; -procedure TMonthlySchedule.MakeValidStampMonthIndex(var TYear, TMonth, TDay: Word); +procedure TJclMonthlySchedule.MakeValidStampMonthIndex(var TYear, TMonth, TDay: Word); var DIM: Integer; begin @@ -824,13 +824,13 @@ end; end; -function TMonthlySchedule.GetIndexKind: TScheduleIndexKind; +function TJclMonthlySchedule.GetIndexKind: TScheduleIndexKind; begin CheckInterfaceAllowed; Result := FIndexKind; end; -function TMonthlySchedule.GetIndexValue: Integer; +function TJclMonthlySchedule.GetIndexValue: Integer; begin CheckInterfaceAllowed; if not (FIndexKind in [sikDay .. sikSunday]) then @@ -838,25 +838,25 @@ Result := FIndexValue; end; -function TMonthlySchedule.GetDay: Cardinal; +function TJclMonthlySchedule.GetDay: Cardinal; begin CheckInterfaceAllowed; Result := FDay; end; -function TMonthlySchedule.GetInterval: Cardinal; +function TJclMonthlySchedule.GetInterval: Cardinal; begin CheckInterfaceAllowed; Result := FInterval; end; -procedure TMonthlySchedule.SetIndexKind(Value: TScheduleIndexKind); +procedure TJclMonthlySchedule.SetIndexKind(Value: TScheduleIndexKind); begin CheckInterfaceAllowed; FIndexKind := Value; end; -procedure TMonthlySchedule.SetIndexValue(Value: Integer); +procedure TJclMonthlySchedule.SetIndexValue(Value: Integer); begin CheckInterfaceAllowed; if not (FIndexKind in [sikDay .. sikSunday]) then @@ -866,7 +866,7 @@ FIndexValue := Value; end; -procedure TMonthlySchedule.SetDay(Value: Cardinal); +procedure TJclMonthlySchedule.SetDay(Value: Cardinal); begin CheckInterfaceAllowed; if not (FIndexKind in [sikNone]) then @@ -876,7 +876,7 @@ FDay := Value; end; -procedure TMonthlySchedule.SetInterval(Value: Cardinal); +procedure TJclMonthlySchedule.SetInterval(Value: Cardinal); begin CheckInterfaceAllowed; if Value = 0 then @@ -884,10 +884,10 @@ FInterval := Value; end; -//=== { TYearlySchedule } ==================================================== +//=== { TJclYearlySchedule } ================================================= type - TYearlySchedule = class(TMonthlySchedule, IJclYearlySchedule, IInterface) + TJclYearlySchedule = class(TJclMonthlySchedule, IJclYearlySchedule, IInterface) private FMonth: Cardinal; protected @@ -905,18 +905,18 @@ property Month: Cardinal read GetMonth write SetMonth; end; -constructor TYearlySchedule.Create(const Controller: IUnknown); +constructor TJclYearlySchedule.Create(const Controller: IUnknown); begin inherited Create(Controller); FMonth := 1; end; -class function TYearlySchedule.RecurringType: TScheduleRecurringKind; +class function TJclYearlySchedule.RecurringType: TScheduleRecurringKind; begin Result := srkYearly; end; -function TYearlySchedule.ValidStamp(const Stamp: TTimeStamp): Boolean; +function TJclYearlySchedule.ValidStamp(const Stamp: TTimeStamp): Boolean; var SYear, SMonth, SDay: Word; TYear, TMonth, TDay: Word; @@ -927,7 +927,7 @@ ValidStampMonthIndex(TYear, TMonth, TDay); end; -procedure TYearlySchedule.MakeValidStamp(var Stamp: TTimeStamp); +procedure TJclYearlySchedule.MakeValidStamp(var Stamp: TTimeStamp); var SYear, SMonth, SDay: Word; TYear, TMonth, TDay: Word; @@ -953,7 +953,7 @@ Stamp.Date := DateTimeToTimeStamp(JclDateTime.EncodeDate(TYear, TMonth, TDay)).Date; end; -function TYearlySchedule.NextValidStamp(const Stamp: TTimeStamp): TTimeStamp; +function TJclYearlySchedule.NextValidStamp(const Stamp: TTimeStamp): TTimeStamp; begin Result := Stamp; MakeValidStamp(Result); @@ -965,13 +965,13 @@ end; end; -function TYearlySchedule.GetMonth: Cardinal; +function TJclYearlySchedule.GetMonth: Cardinal; begin CheckInterfaceAllowed; Result := FMonth; end; -procedure TYearlySchedule.SetMonth(Value: Cardinal); +procedure TJclYearlySchedule.SetMonth(Value: Cardinal); begin CheckInterfaceAllowed; if (Value < 1) or (Value > 12) then @@ -979,13 +979,10 @@ FMonth := Value; end; -//=== { TSchedule } ========================================================== +//=== { TJclSchedule } ======================================================= type - - { TSchedule } - - TSchedule = class(TInterfacedObject, IJclSchedule, IJclScheduleDayFrequency, IJclDailySchedule, + TJclSchedule = class(TInterfacedObject, IJclSchedule, IJclScheduleDayFrequency, IJclDailySchedule, IJclWeeklySchedule, IJclMonthlySchedule, IJclYearlySchedule) private FStartDate: TTimeStamp; @@ -993,11 +990,11 @@ FEndType: TScheduleEndKind; FEndDate: TTimeStamp; FEndCount: Cardinal; - FDailyFreq: TDailyFreq; - FDailySchedule: TDailySchedule; - FWeeklySchedule: TWeeklySchedule; - FMonthlySchedule: TMonthlySchedule; - FYearlySchedule: TYearlySchedule; + FDayFrequency: TJclDayFrequency; + FDailySchedule: TJclDailySchedule; + FWeeklySchedule: TJclWeeklySchedule; + FMonthlySchedule: TJclMonthlySchedule; + FYearlySchedule: TJclYearlySchedule; protected FTriggerCount: Cardinal; FDayCount: Cardinal; @@ -1038,8 +1035,8 @@ property EndCount: Cardinal read GetEndCount write SetEndCount; { IJclScheduleDayFrequency } - function GetDailyFreq: IJclScheduleDayFrequency; - property DailyFreq: IJclScheduleDayFrequency read GetDailyFreq implements IJclScheduleDayFrequency; + function GetDayFrequency: IJclScheduleDayFrequency; + property DayFrequency: IJclScheduleDayFrequency read GetDayFrequency implements IJclScheduleDayFrequency; { IJclDailySchedule } function GetDailySchedule: IJclDailySchedule; property DailySchedule: IJclDailySchedule read GetDailySchedule implements IJclDailySchedule; @@ -1054,16 +1051,16 @@ property YearlySchedule: IJclYearlySchedule read GetYearlySchedule implements IJclYearlySchedule; end; -constructor TSchedule.Create; +constructor TJclSchedule.Create; var InitialStamp: TTimeStamp; begin inherited Create; - FDailyFreq := TDailyFreq.Create(Self); - FDailySchedule := TDailySchedule.Create(Self); - FWeeklySchedule := TWeeklySchedule.Create(Self); - FMonthlySchedule := TMonthlySchedule.Create(Self); - FYearlySchedule := TYearlySchedule.Create(Self); + FDayFrequency := TJclDayFrequency.Create(Self); + FDailySchedule := TJclDailySchedule.Create(Self); + FWeeklySchedule := TJclWeeklySchedule.Create(Self); + FMonthlySchedule := TJclMonthlySchedule.Create(Self); + FYearlySchedule := TJclYearlySchedule.Create(Self); InitialStamp := DateTimeToTimeStamp(Now); InitialStamp.Time := 1000 * (InitialStamp.Time div 1000); // strip of milliseconds StartDate := InitialStamp; @@ -1071,42 +1068,42 @@ RecurringType := srkOneShot; end; -destructor TSchedule.Destroy; +destructor TJclSchedule.Destroy; begin FreeAndNil(FYearlySchedule); FreeAndNil(FMonthlySchedule); FreeAndNil(FWeeklySchedule); FreeAndNil(FDailySchedule); - FreeAndNil(FDailyFreq); + FreeAndNil(FDayFrequency); inherited Destroy; end; -function TSchedule.GetDailyFreq: IJclScheduleDayFrequency; +function TJclSchedule.GetDayFrequency: IJclScheduleDayFrequency; begin - Result := FDailyFreq; + Result := FDayFrequency; end; -function TSchedule.GetDailySchedule: IJclDailySchedule; +function TJclSchedule.GetDailySchedule: IJclDailySchedule; begin Result := FDailySchedule; end; -function TSchedule.GetWeeklySchedule: IJclWeeklySchedule; +function TJclSchedule.GetWeeklySchedule: IJclWeeklySchedule; begin Result := FWeeklySchedule; end; -function TSchedule.GetMonthlySchedule: IJclMonthlySchedule; +function TJclSchedule.GetMonthlySchedule: IJclMonthlySchedule; begin Result := FMonthlySchedule; end; -function TSchedule.GetYearlySchedule: IJclYearlySchedule; +function TJclSchedule.GetYearlySchedule: IJclYearlySchedule; begin Result := FYearlySchedule; end; -function TSchedule.GetNextEventStamp(const From: TTimeStamp): TTimeStamp; +function TJclSchedule.GetNextEventStamp(const From: TTimeStamp): TTimeStamp; var UseFrom: TTimeStamp; begin @@ -1123,11 +1120,11 @@ Result := StartDate; srkDaily: begin - Result := FDailyFreq.NextValidStamp(UseFrom); + Result := FDayFrequency.NextValidStamp(UseFrom); if IsNullTimeStamp(Result) then begin Result.Date := UseFrom.Date; - Result.Time := DailyFreq.StartTime; + Result.Time := FDayFrequency.StartTime; Result := FDailySchedule.NextValidStamp(Result); end else @@ -1135,11 +1132,11 @@ end; srkWeekly: begin - Result := FDailyFreq.NextValidStamp(UseFrom); + Result := FDayFrequency.NextValidStamp(UseFrom); if IsNullTimeStamp(Result) then begin Result.Date := UseFrom.Date; - Result.Time := DailyFreq.StartTime; + Result.Time := FDayFrequency.StartTime; Result := FWeeklySchedule.NextValidStamp(Result); end else @@ -1147,11 +1144,11 @@ end; srkMonthly: begin - Result := FDailyFreq.NextValidStamp(UseFrom); + Result := FDayFrequency.NextValidStamp(UseFrom); if IsNullTimeStamp(Result) then begin Result.Date := UseFrom.Date; - Result.Time := DailyFreq.StartTime; + Result.Time := FDayFrequency.StartTime; Result := FMonthlySchedule.NextValidStamp(Result); end else @@ -1159,11 +1156,11 @@ end; srkYearly: begin - Result := FDailyFreq.NextValidStamp(UseFrom); + Result := FDayFrequency.NextValidStamp(UseFrom); if IsNullTimeStamp(Result) then begin Result.Date := UseFrom.Date; - Result.Time := DailyFreq.StartTime; + Result.Time := FDayFrequency.StartTime; Result := FYearlySchedule.NextValidStamp(Result); end else @@ -1188,72 +1185,72 @@ end; end; -function TSchedule.GetStartDate: TTimeStamp; +function TJclSchedule.GetStartDate: TTimeStamp; begin Result := FStartDate; end; -function TSchedule.GetRecurringType: TScheduleRecurringKind; +function TJclSchedule.GetRecurringType: TScheduleRecurringKind; begin Result := FRecurringType; end; -function TSchedule.GetEndType: TScheduleEndKind; +function TJclSchedule.GetEndType: TScheduleEndKind; begin Result := FEndType; end; -function TSchedule.GetEndDate: TTimeStamp; +function TJclSchedule.GetEndDate: TTimeStamp; begin Result := FEndDate; end; -function TSchedule.GetEndCount: Cardinal; +function TJclSchedule.GetEndCount: Cardinal; begin Result := FEndCount; end; -procedure TSchedule.SetStartDate(const Value: TTimeStamp); +procedure TJclSchedule.SetStartDate(const Value: TTimeStamp); begin FStartDate := Value; end; -procedure TSchedule.SetRecurringType(Value: TScheduleRecurringKind); +procedure TJclSchedule.SetRecurringType(Value: TScheduleRecurringKind); begin FRecurringType := Value; end; -procedure TSchedule.SetEndType(Value: TScheduleEndKind); +procedure TJclSchedule.SetEndType(Value: TScheduleEndKind); begin FEndType := Value; end; -procedure TSchedule.SetEndDate(const Value: TTimeStamp); +procedure TJclSchedule.SetEndDate(const Value: TTimeStamp); begin FEndDate := Value; end; -procedure TSchedule.SetEndCount(Value: Cardinal); +procedure TJclSchedule.SetEndCount(Value: Cardinal); begin FEndCount := Value; end; -function TSchedule.TriggerCount: Cardinal; +function TJclSchedule.TriggerCount: Cardinal; begin Result := FTriggerCount; end; -function TSchedule.DayCount: Cardinal; +function TJclSchedule.DayCount: Cardinal; begin Result := FDayCount; end; -function TSchedule.LastTriggered: TTimeStamp; +function TJclSchedule.LastTriggered: TTimeStamp; begin Result := FLastEvent; end; -procedure TSchedule.InitToSavedState(const LastTriggerStamp: TTimeStamp; const LastTriggerCount, +procedure TJclSchedule.InitToSavedState(const LastTriggerStamp: TTimeStamp; const LastTriggerCount, LastDayCount: Cardinal); begin FLastEvent := LastTriggerStamp; @@ -1261,19 +1258,19 @@ FDayCount := LastDayCount; end; -procedure TSchedule.Reset; +procedure TJclSchedule.Reset; begin FLastEvent := NullStamp; FTriggerCount := 0; FDayCount := 0; end; -function TSchedule.NextEvent(CountMissedEvents: Boolean = False): TTimeStamp; +function TJclSchedule.NextEvent(CountMissedEvents: Boolean = False): TTimeStamp; begin Result := NextEventFrom(FLastEvent, CountMissedEvents); end; -function TSchedule.NextEventFrom(const FromEvent: TTimeStamp; +function TJclSchedule.NextEventFrom(const FromEvent: TTimeStamp; CountMissedEvent: Boolean = False): TTimeStamp; begin if CountMissedEvent then @@ -1287,14 +1284,14 @@ Result := GetNextEventStamp(FromEvent); end; -function TSchedule.NextEventFromNow(CountMissedEvents: Boolean = False): TTimeStamp; +function TJclSchedule.NextEventFromNow(CountMissedEvents: Boolean = False): TTimeStamp; begin Result := NextEventFrom(DateTimeToTimeStamp(Now), CountMissedEvents); end; function CreateSchedule: IJclSchedule; begin - Result := TSchedule.Create; + Result := TJclSchedule.Create; end; {$IFDEF UNITVERSIONING} Modified: trunk/jcl/source/common/JclStringLists.pas =================================================================== --- trunk/jcl/source/common/JclStringLists.pas 2009-09-12 10:57:33 UTC (rev 2993) +++ trunk/jcl/source/common/JclStringLists.pas 2009-09-12 11:56:34 UTC (rev 2994) @@ -48,7 +48,8 @@ Variants, {$ENDIF HAS_UNIT_VARIANTS} Classes, SysUtils, - JclBase; + JclBase, + JclPCRE; {$DEFINE HAS_TSTRINGS_COMPARESTRINGS} {$IFDEF FPC} @@ -198,34 +199,8 @@ property ObjectsMode: TJclStringListObjectsMode read GetObjectsMode; end; -function JclStringList: IJclStringList; overload; -function JclStringListStrings(AStrings: TStrings): IJclStringList; overload; -function JclStringListStrings(const A: array of string): IJclStringList; overload; -function JclStringList(const A: array of const): IJclStringList; overload; -function JclStringList(const AText: string): IJclStringList; overload; - -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL$'; - Revision: '$Revision$'; - Date: '$Date$'; - LogPath: 'JCL\source\common'; - Extra: ''; - Data: nil - ); -{$ENDIF UNITVERSIONING} - -implementation - -uses - TypInfo, - JclFileUtils, - JclPCRE, - JclStrings; - type - TUpdateControl = class(TObject, IInterface) + TJclUpdateControl = class(TObject, IInterface) private FStrings: TStrings; public @@ -236,23 +211,13 @@ function _Release: Integer; stdcall; end; - TVariantWrapper = class(TObject) + TJclStringList = class(TStringList, IJclStringList) private - FValue: Variant; - end; - - TInterfaceWrapper = class(TObject) - private - FValue: IInterface; - end; - - TJclStringListImpl = class(TStringList, IJclStringList) - private FObjectsMode: TJclStringListObjectsMode; FSelfAsInterface: IJclStringList; FLastRegExPattern: string; FRegEx: TJclAnsiRegEx; - FUpdateControl: TUpdateControl; + FUpdateControl: TJclUpdateControl; FCompareFunction: TJclStringListSortCompare; function AutoUpdateControl: IInterface; function CanFreeObjects: Boolean; @@ -404,9 +369,45 @@ property ObjectsMode: TJclStringListObjectsMode read GetObjectsMode; end; +function JclStringList: IJclStringList; overload; +function JclStringListStrings(AStrings: TStrings): IJclStringList; overload; +function JclStringListStrings(const A: array of string): IJclStringList; overload; +function JclStringList(const A: array of const): IJclStringList; overload; +function JclStringList(const AText: string): IJclStringList; overload; + +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL$'; + Revision: '$Revision$'; + Date: '$Date$'; + LogPath: 'JCL\source\common'; + Extra: ''; + Data: nil + ); +{$ENDIF UNITVERSIONING} + +implementation + +uses + TypInfo, + JclFileUtils, + JclStrings; + +type + TVariantWrapper = class(TObject) + private + FValue: Variant; + end; + + TInterfaceWrapper = class(TObject) + private + FValue: IInterface; + end; + function JclStringList: IJclStringList; begin - Result := TJclStringListImpl.Create; + Result := TJclStringList.Create; end; function JclStringList(const AText: string): IJclStringList; overload; @@ -431,9 +432,9 @@ Result := JclStringList.Add(A); end; -//=== { TJclStringListImpl } ================================================= +//=== { TJclStringList } ===================================================== -function TJclStringListImpl.Add(const A: array of const): IJclStringList; +function TJclStringList.Add(const A: array of const): IJclStringList; const BoolToStr: array [Boolean] of string[5] = ('false', 'true'); var @@ -478,7 +479,7 @@ Result := FSelfAsInterface; end; -function TJclStringListImpl.AddStrings(const A: array of string): IJclStringList; +function TJclStringList.AddStrings(const A: array of string): IJclStringList; var I: Integer; begin @@ -488,18 +489,18 @@ Result := FSelfAsInterface; end; -function TJclStringListImpl.BeginUpdate: IJclStringList; +function TJclStringList.BeginUpdate: IJclStringList; begin inherited BeginUpdate; Result := FSelfAsInterface; end; -function TJclStringListImpl.AutoUpdateControl: IInterface; +function TJclStringList.AutoUpdateControl: IInterface; begin Result := FUpdateControl as IInterface; end; -function TJclStringListImpl.Clear: IJclStringList; +function TJclStringList.Clear: IJclStringList; begin if CanFreeObjects then FreeObjects(False); @@ -507,13 +508,13 @@ Result := FSelfAsInterface; end; -function TJclStringListImpl.EndUpdate: IJclStringList; +function TJclStringList.EndUpdate: IJclStringList; begin inherited EndUpdate; Result := FSelfAsInterface; end; -function TJclStringListImpl.ExtractWords(const AText: string; const ADelims: TSetOfAnsiChar; +function TJclStringList.ExtractWords(const AText: string; const ADelims: TSetOfAnsiChar; AClearBeforeAdd: Boolean): IJclStringList; var L, I, X: Integer; @@ -536,12 +537,12 @@ Result := FSelfAsInterface; end; -function TJclStringListImpl.First: string; +function TJclStringList.First: string; begin Result := Strings[0]; end; -function TJclStringListImpl.Join(const ASeparator: string): string; +function TJclStringList.Join(const ASeparator: string): string; var I: Integer; begin @@ -552,12 +553,12 @@ Result := Result + Last; end; -function TJclStringListImpl.Last: string; +function TJclStringList.Last: string; begin Result := Strings[LastIndex]; end; -function TJclStringListImpl.Split(const AText, ASeparator: string; +function TJclStringList.Split(const AText, ASeparator: string; AClearBeforeAdd: Boolean = True): IJclStringList; var LStartIndex, LEndIndex: Integer; @@ -582,7 +583,7 @@ Result := FSelfAsInterface; end; -function TJclStringListImpl.Trim: IJclStringList; +function TJclStringList.Trim: IJclStringList; var I: Integer; begin @@ -592,7 +593,7 @@ Result := FSelfAsInterface; end; -function TJclStringListImpl.QueryInterface(const IID: TGUID; out Obj): HRESULT; +function TJclStringList.QueryInterface(const IID: TGUID; out Obj): HRESULT; begin if GetInterface(IID, Obj) then Result := 0 @@ -600,12 +601,12 @@ Result := E_NOINTERFACE; end; -function TJclStringListImpl._AddRef: Integer; +function TJclStringList._AddRef: Integer; begin Result := InterlockedIncrement(FRefCount); end; -function TJclStringListImpl._Release: Integer; +function TJclStringList._Release: Integer; begin Result := InterlockedDecrement(FRefCount); if Result = 1 then @@ -620,7 +621,7 @@ Destroy; end; -function TJclStringListImpl.DeleteRegEx(const APattern: string): IJclStringList; +function TJclStringList.DeleteRegEx(const APattern: string): IJclStringList; var I: Integer; begin @@ -631,7 +632,7 @@ Result := FSelfAsInterface; end; -function TJclStringListImpl.KeepRegEx(const APattern: string): IJclStringList; +function TJclStringList.KeepRegEx(const APattern: string): IJclStringList; var I: Integer; begin @@ -642,7 +643,7 @@ Result := FSelfAsInterface; end; -function TJclStringListImpl.MatchRegEx(const S, APattern: string): Boolean; +function TJclStringList.MatchRegEx(const S, APattern: string): Boolean; begin if FRegEx = nil then FRegEx := TJclAnsiRegEx.Create; @@ -658,7 +659,7 @@ Result := FRegEx.Match(S); end; -destructor TJclStringListImpl.Destroy; +destructor TJclStringList.Destroy; begin if CanFreeObjects then FreeObjects(False); @@ -667,7 +668,7 @@ inherited Destroy; end; -function TJclStringListImpl.Directories(const APattern: string = '*'; +function TJclStringList.Directories(const APattern: string = '*'; ARecursive: Boolean = False; const ARegExPattern: string = ''): IJclStringList; procedure DoDirectories(const APattern: string); @@ -703,7 +704,7 @@ Result := FSelfAsInterface; end; -function TJclStringListImpl.Files(const APattern: string = '*'; +function TJclStringList.Files(const APattern: string = '*'; ARecursive: Boolean = False; const ARegExPattern: string = ''): IJclStringList; procedure DoFiles(const APattern: string); @@ -747,22 +748,22 @@ Result := FSelfAsInterface; end; -function TJclStringListImpl.LastIndex: Integer; +function TJclStringList.LastIndex: Integer; begin { The code bellow is more optimized than "Result := Count - 1". } Result := Count; Dec(Result); end; -constructor TJclStringListImpl.Create; +constructor TJclStringList.Create; begin inherited Create; - FUpdateControl := TUpdateControl.Create(Self); + FUpdateControl := TJclUpdateControl.Create(Self); if QueryInterface(IJclStringList, FSelfAsInterface) <> 0 then System.Error(reIntfCastError); end; -function TJclStringListImpl.GetLists(Index: Integer): IJclStringList; +function TJclStringList.GetLists(Index: Integer): IJclStringList; begin Result := Interfaces[Index] as IJclStringList; if Result = nil then @@ -772,17 +773,17 @@ end; end; -procedure TJclStringListImpl.SetLists(Index: Integer; const Value: IJclStringList); +procedure TJclStringList.SetLists(Index: Integer; const Value: IJclStringList); begin Interfaces[Index] := Value; end; -function TJclStringListImpl.GetStringsRef: TStrings; +function TJclStringList.GetStringsRef: TStrings; begin Result := Self; end; -function TJclStringListImpl.GetKeyInterface(const AKey: string): IInterface; +function TJclStringList.GetKeyInterface(const AKey: string): IInterface; var I: Integer; begin @@ -793,7 +794,7 @@ Result := nil; end; -function TJclStringListImpl.GetKeyObject(const AKey: string): TObject; +function TJclStringList.GetKeyObject(const AKey: string): TObject; var I: Integer; begin @@ -804,7 +805,7 @@ Result := nil; end; -procedure TJclStringListImpl.SetKeyInterface(const AKey: string; const Value: IInterface); +procedure TJclStringList.SetKeyInterface(const AKey: string; const Value: IInterface); var I: Integer; begin @@ -814,7 +815,7 @@ Interfaces[I] := Value end; -procedure TJclStringListImpl.SetKeyObject(const AKey: string; const Value: TObject); +procedure TJclStringList.SetKeyObject(const AKey: string; const Value: TObject); var I: Integer; begin @@ -825,14 +826,14 @@ Objects[I] := Value; end; -function TJclStringListImpl.ConfigAsSet: IJclStringList; +function TJclStringList.ConfigAsSet: IJclStringList; begin Sorted := True; Duplicates := dupIgnore; Result := FSelfAsInterface; end; -function TJclStringListImpl.GetKeyVariant(const AKey: string): Variant; +function TJclStringList.GetKeyVariant(const AKey: string): Variant; var I: Integer; begin @@ -843,7 +844,7 @@ Result := Unassigned; end; -procedure TJclStringListImpl.SetKeyVariant(const AKey: string; const Value: Variant); +procedure TJclStringList.SetKeyVariant(const AKey: string; const Value: Variant); var I: Integer; begin @@ -853,17 +854,17 @@ Variants[I] := Value end; -function TJclStringListImpl.GetValue(const Name: string): string; +function TJclSt... [truncated message content] |
From: <ou...@us...> - 2009-09-12 10:57:42
|
Revision: 2993 http://jcl.svn.sourceforge.net/jcl/?rev=2993&view=rev Author: outchy Date: 2009-09-12 10:57:33 +0000 (Sat, 12 Sep 2009) Log Message: ----------- when a class implements some interface, all the interface members (functions, procedures and properties) should be public. Modified Paths: -------------- trunk/jcl/experts/common/JclOtaUtils.pas trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas trunk/jcl/experts/projectanalyzer/ProjAnalyzerImpl.pas trunk/jcl/experts/repository/JclOtaRepositoryUtils.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerClasses.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerMainFrame.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerStackFrame.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerStackUtils.pas trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerThreadFrame.pas trunk/jcl/source/common/JclAbstractContainers.pas trunk/jcl/source/common/JclAlgorithms.pas trunk/jcl/source/common/JclArrayLists.pas trunk/jcl/source/common/JclArraySets.pas trunk/jcl/source/common/JclBinaryTrees.pas trunk/jcl/source/common/JclBorlandTools.pas trunk/jcl/source/common/JclFileUtils.pas trunk/jcl/source/common/JclHashMaps.pas trunk/jcl/source/common/JclHashSets.pas trunk/jcl/source/common/JclLinkedLists.pas trunk/jcl/source/common/JclMIDI.pas trunk/jcl/source/common/JclNotify.pas trunk/jcl/source/common/JclQueues.pas trunk/jcl/source/common/JclRTTI.pas trunk/jcl/source/common/JclSchedule.pas trunk/jcl/source/common/JclSortedMaps.pas trunk/jcl/source/common/JclStacks.pas trunk/jcl/source/common/JclStringLists.pas trunk/jcl/source/common/JclStrings.pas trunk/jcl/source/common/JclSysUtils.pas trunk/jcl/source/common/JclTrees.pas trunk/jcl/source/common/JclVectors.pas trunk/jcl/source/prototypes/JclHashSets.pas trunk/jcl/source/prototypes/containers/JclArrayLists.int trunk/jcl/source/prototypes/containers/JclArraySets.int trunk/jcl/source/prototypes/containers/JclBinaryTrees.int trunk/jcl/source/prototypes/containers/JclHashMaps.int trunk/jcl/source/prototypes/containers/JclHashSets.int trunk/jcl/source/prototypes/containers/JclLinkedLists.int trunk/jcl/source/prototypes/containers/JclQueues.int trunk/jcl/source/prototypes/containers/JclSortedMaps.int trunk/jcl/source/prototypes/containers/JclStacks.int trunk/jcl/source/prototypes/containers/JclTrees.int trunk/jcl/source/prototypes/containers/JclVectors.int trunk/jcl/source/windows/JclConsole.pas trunk/jcl/source/windows/JclDotNet.pas trunk/jcl/source/windows/JclMsdosSys.pas trunk/jcl/source/windows/JclWinMIDI.pas Modified: trunk/jcl/experts/common/JclOtaUtils.pas =================================================================== --- trunk/jcl/experts/common/JclOtaUtils.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/experts/common/JclOtaUtils.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -183,6 +183,7 @@ function IsPackage(const Project: IOTAProject): Boolean; function SubstitutePath(const Path: string): string; + { IJclOTAOptionsCallback } procedure AddConfigurationPages(AddPageFunc: TJclOTAAddPageFunc); virtual; procedure ConfigurationClosed(AControl: TControl; SaveChanges: Boolean); virtual; @@ -200,7 +201,7 @@ end; TJclOTAExpert = class(TJclOTAExpertBase, IOTAWizard, IOTANotifier) - protected + public { IOTANotifier } procedure AfterSave; virtual; procedure BeforeSave; virtual; @@ -224,13 +225,13 @@ FParent: string; FPosition: Integer; FVerb: string; - protected + public { IOTANotifier } procedure AfterSave; procedure BeforeSave; procedure Destroyed; procedure Modified; - protected + public { IOTALocalMenu } function GetCaption: string; function GetChecked: Boolean; @@ -248,7 +249,6 @@ procedure SetParent(const Value: string); procedure SetPosition(Value: Integer); procedure SetVerb(const Value: string); - public property Caption: string read GetCaption write SetCaption; property Checked: Boolean read GetChecked write SetChecked; property Enabled: Boolean read GetEnabled write SetEnabled; @@ -265,13 +265,13 @@ private FIsMultiSelectable: Boolean; FOnExecute: TJclProjectManagerMenuExecuteEvent; - protected + public + { IOTAProjectManagerMenu } function GetIsMultiSelectable: Boolean; procedure SetIsMultiSelectable(Value: Boolean); procedure Execute(const MenuContextList: IInterfaceList); overload; function PreExecute(const MenuContextList: IInterfaceList): Boolean; function PostExecute(const MenuContextList: IInterfaceList): Boolean; - public property IsMultiSelectable: Boolean read GetIsMultiSelectable write SetIsMultiSelectable; property OnExecute: TJclProjectManagerMenuExecuteEvent read FOnExecute write FOnExecute; end; Modified: trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas =================================================================== --- trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -133,7 +133,8 @@ TIdeNotifier = class(TNotifierObject, IOTANotifier, IOTAIDENotifier, IOTAIDENotifier50) private FDebugExtension: TJclDebugExtension; - protected + public + constructor Create(ADebugExtension: TJclDebugExtension); { IOTAIDENotifier } procedure FileNotification(NotifyCode: TOTAFileNotification; const FileName: string; var Cancel: Boolean); procedure BeforeCompile(const Project: IOTAProject; var Cancel: Boolean); overload; @@ -141,8 +142,6 @@ { IOTAIDENotifier50 } procedure BeforeCompile(const Project: IOTAProject; IsCodeInsight: Boolean; var Cancel: Boolean); overload; procedure AfterCompile(Succeeded: Boolean; IsCodeInsight: Boolean); overload; - public - constructor Create(ADebugExtension: TJclDebugExtension); end; {$IFDEF BDS7_UP} @@ -150,13 +149,12 @@ TProjectManagerMultipleNotifier = class(TNotifierObject, IOTANotifier, IOTAProjectMenuItemCreatorNotifier) private FDebugExtension: TJclDebugExtension; - protected + public + constructor Create(ADebugExtension: TJclDebugExtension); procedure MenuExecute(const MenuContextList: IInterfaceList); { IOTAProjectMenuItemCreatorNotifier } procedure AddMenu(const Project: IOTAProject; const Ident: TStrings; const ProjectManagerMenuList: IInterfaceList; IsMultiSelect: Boolean); - public - constructor Create(ADebugExtension: TJclDebugExtension); end; {$ELSE ~BDS7_UP} {$IFDEF BDS4_UP} @@ -166,16 +164,15 @@ FDebugExtension: TJclDebugExtension; FOTAProjectManager: IOTAProjectManager; FNTAServices: INTAServices; + public + constructor Create(ADebugExtension: TJclDebugExtension; const ANTAServices: INTAServices; + const AOTAProjectManager: IOTAProjectManager); procedure GenerateJdbgSubMenuClick(Sender: TObject); procedure InsertJdbgSubMenuClick(Sender: TObject); procedure DeleteMapFileSubMenuClick(Sender: TObject); - protected { INTAProjectMenuCreatorNotifier } function AddMenu(const Ident: string): TMenuItem; function CanHandle(const Ident: string): Boolean; - public - constructor Create(ADebugExtension: TJclDebugExtension; const ANTAServices: INTAServices; - const AOTAProjectManager: IOTAProjectManager); end; {$ENDIF BDS4_UP} {$ENDIF ~BDS7_UP} Modified: trunk/jcl/experts/projectanalyzer/ProjAnalyzerImpl.pas =================================================================== --- trunk/jcl/experts/projectanalyzer/ProjAnalyzerImpl.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/experts/projectanalyzer/ProjAnalyzerImpl.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -59,13 +59,12 @@ TProjectManagerMultipleNotifier = class(TNotifierObject, IOTANotifier, IOTAProjectMenuItemCreatorNotifier) private FProjectAnalyser: TJclProjectAnalyzerExpert; - protected + public + constructor Create(AProjectAnalyzer: TJclProjectAnalyzerExpert); procedure MenuExecute(const MenuContextList: IInterfaceList); { IOTAProjectMenuItemCreatorNotifier } procedure AddMenu(const Project: IOTAProject; const Ident: TStrings; const ProjectManagerMenuList: IInterfaceList; IsMultiSelect: Boolean); - public - constructor Create(AProjectAnalyzer: TJclProjectAnalyzerExpert); end; {$ELSE ~BDS7_UP} {$IFDEF BDS4_UP} @@ -74,13 +73,12 @@ private FProjectAnalyser: TJclProjectAnalyzerExpert; FOTAProjectManager: IOTAProjectManager; + public + constructor Create(AProjectAnalyzer: TJclProjectAnalyzerExpert; const AOTAProjectManager: IOTAProjectManager); procedure AnalyzeProjectMenuClick(Sender: TObject); - protected { INTAProjectMenuCreatorNotifier } function AddMenu(const Ident: string): TMenuItem; function CanHandle(const Ident: string): Boolean; - public - constructor Create(AProjectAnalyzer: TJclProjectAnalyzerExpert; const AOTAProjectManager: IOTAProjectManager); end; {$ENDIF BDS4_UP} {$ENDIF ~BDS7_UP} Modified: trunk/jcl/experts/repository/JclOtaRepositoryUtils.pas =================================================================== --- trunk/jcl/experts/repository/JclOtaRepositoryUtils.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/experts/repository/JclOtaRepositoryUtils.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -46,7 +46,7 @@ TJclRepositoryItemType = (ritForm, ritProject); // abstraction layer for all versions of Delphi from 5 to 2006 - TJclOTARepositoryExpert = class(TJclOTAExpert, IInterface, IOTARepositoryWizard60, + TJclOTARepositoryExpert = class(TJclOTAExpert, IInterface, IOTAWizard, IOTARepositoryWizard60, {$IFDEF COMPILER8_UP} IOTARepositoryWizard80, {$ENDIF COMPILER8_UP} IOTARepositoryWizard, {$IFDEF COMPILER10_UP} IOTAProjectWizard100, {$ENDIF COMPILER10_UP} @@ -63,11 +63,6 @@ FItemType: TJclRepositoryItemType; FDesigner: string; FPersonality: string; - protected - procedure Execute; override; - function GetName: string; override; - function GetState: TWizardState; override; - function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; public constructor Create(AName, ADescription, AAuthor, APage, AGalleryCategory, ADesigner, APersonality: string; AGlyph: Cardinal; @@ -78,33 +73,39 @@ procedure DoExecute(const Personality: TJclBorPersonality); virtual; function IsVisible(const Personality: TJclBorPersonality): Boolean; virtual; public - // IOTARepositoryWizard + { IInterface } + function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; + { IOTAWizard } + procedure Execute; override; + function GetName: string; override; + function GetState: TWizardState; override; + { IOTARepositoryWizard } function GetAuthor: string; function GetComment: string; function GetPage: string; function GetGlyph: Cardinal; - // IOTARepositoryWizard60 + { IOTARepositoryWizard60 } function GetDesigner: string; {$IFDEF COMPILER8_UP} - // IOTARepositoryWizard80 + { IOTARepositoryWizard80 } function GetGalleryCategory: IOTAGalleryCategory; function GetPersonality: string; {$ENDIF COMPILER8_UP} - // IOTAProjectWizard - + { IOTAProjectWizard } + {$IFDEF COMPILER10_UP} - // IOTAProjectWizard100 + { IOTAProjectWizard100 } function IsProjectWizardVisible(Project: IOTAProject): Boolean; function IOTAProjectWizard100.IsVisible = IsProjectWizardVisible; {$ENDIF COMPILER10_UP} - // IOTAFormWizard + { IOTAFormWizard } {$IFDEF COMPILER10_UP} - // IOTAFormWizard100 + { IOTAFormWizard100 } function IsFormWizardVisible(Project: IOTAProject): Boolean; function IOTAFormWizard100.IsVisible = IsFormWizardVisible; {$ENDIF COMPILER10_UP} @@ -136,14 +137,14 @@ const SourceFileName: TFileName; const SourceContent: string; const HeaderFileName: TFileName; const HeaderContent: string); reintroduce; destructor Destroy; override; - // IOTACreator + { IOTACreator } function GetCreatorType: string; function GetExisting: Boolean; function GetFileSystem: string; function GetOwner: IOTAModule; function GetUnnamed: Boolean; - // IOTAModuleCreator + { IOTAModuleCreator } function GetAncestorName: string; function GetImplFileName: string; function GetIntfFileName: string; @@ -163,6 +164,7 @@ FContent: string; public constructor Create(const AFileName, AContent: string); reintroduce; + { IOTAFile } function GetSource: string; function GetAge: TDateTime; end; Modified: trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerClasses.pas =================================================================== --- trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerClasses.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerClasses.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -72,6 +72,23 @@ function GetUnitVersionRevision: string; function GetVAddress: Pointer; function GetValues: Integer; + property Address: Pointer read GetAddress; + property BinaryFileName: string read GetBinaryFileName; + property LineNumber: Integer read GetLineNumber; + property LineNumberOffsetFromProcedureStart: Integer read GetLineNumberOffsetFromProcedureStart; + property ModuleName: string read GetModuleName; + property OffsetFromLineNumber: Integer read GetOffsetFromLineNumber; + property OffsetFromProcName: Integer read GetOffsetFromProcName; + property ProcedureName: string read GetProcedureName; + property SourceName: string read GetSourceName; + property SourceUnitName: string read GetSourceUnitName; + property UnitVersionDateTime: TDateTime read GetUnitVersionDateTime; + property UnitVersionExtra: string read GetUnitVersionExtra; + property UnitVersionLogPath: string read GetUnitVersionLogPath; + property UnitVersionRCSfile: string read GetUnitVersionRCSfile; + property UnitVersionRevision: string read GetUnitVersionRevision; + property VAddress: Pointer read GetVAddress; + property Values: Integer read GetValues; { IJclPreparedLocationInfo } function GetFileName: string; function GetFoundFile: Boolean; @@ -83,7 +100,6 @@ procedure SetProjectName(AValue: string); procedure SetRevision(AValue: string); procedure SetTranslatedLineNumber(AValue: Integer); - property FileName: string read FFileName write FFileName; property FoundFile: Boolean read FFoundFile write FFoundFile; property ProjectName: string read FProjectName write FProjectName; @@ -99,6 +115,8 @@ function GetItems(AIndex: Integer): TJclStackTraceViewerLocationInfo; public constructor Create; override; + function Add(Addr: Pointer): TJclStackTraceViewerLocationInfo; + property Items[AIndex: Integer]: TJclStackTraceViewerLocationInfo read GetItems; default; { IInterface } function QueryInterface(const IID: TGUID; out Obj): HRESULT; stdcall; @@ -107,13 +125,12 @@ { IJclLocationInfoList } function GetCount: Integer; function GetLocationItems(AIndex: Integer): IJclLocationInfo; + property Count: Integer read GetCount; + property Items[AIndex: Integer]: IJclLocationInfo read GetLocationItems; default; + { IJclPreparedLocationInfoList } function GetPrepared: Boolean; procedure SetPrepared(AValue: Boolean); - { IJclPreparedLocationInfoList } function GetModuleInfoList: IJclModuleInfoList; - - function Add(Addr: Pointer): TJclStackTraceViewerLocationInfo; - property Items[AIndex: Integer]: TJclStackTraceViewerLocationInfo read GetItems; default; property ModuleInfoList: IJclModuleInfoList read FModuleInfoList write FModuleInfoList; property Prepared: Boolean read FPrepared write FPrepared; end; @@ -150,6 +167,8 @@ { IJclModuleInfo } function GetBinFileVersion: string; function GetModuleName: string; + property BinFileVersion: string read GetBinFileVersion; + property ModuleName: string read GetModuleName; end; TJclStackTraceViewerModuleInfoList = class(TObject, IJclModuleInfoList) @@ -158,6 +177,9 @@ public constructor Create; destructor Destroy; override; + function Add: TJclStackTraceViewerModuleModuleInfo; + procedure Clear; + { IInterface } function QueryInterface(const IID: TGUID; out Obj): HRESULT; stdcall; function _AddRef: Integer; stdcall; @@ -165,9 +187,8 @@ { IJclModuleInfoList } function GetModuleCount: Integer; function GetModuleInfo(AIndex: Integer): IJclModuleInfo; - - function Add: TJclStackTraceViewerModuleModuleInfo; - procedure Clear; + property Count: Integer read GetModuleCount; + property Items[AIndex: Integer]: IJclModuleInfo read GetModuleInfo; default; end; TJclStackTraceViewerExceptionInfo = class(TObject) @@ -497,11 +518,11 @@ function TJclStackTraceViewerLocationInfo.GetValues: Integer; begin Result := 0; - if lievLocationInfo in Values then + if lievLocationInfo in (inherited Values) then Inc(Result, livLocationInfo); - if lievProcedureStartLocationInfo in Values then + if lievProcedureStartLocationInfo in (inherited Values) then Inc(Result, livProcedureStartLocationInfo); - if lievUnitVersionInfo in Values then + if lievUnitVersionInfo in (inherited Values) then Inc(Result, livUnitVersionInfo); end; @@ -622,4 +643,4 @@ UnregisterUnitVersion(HInstance); {$ENDIF UNITVERSIONING} -end. \ No newline at end of file +end. Modified: trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerMainFrame.pas =================================================================== --- trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerMainFrame.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerMainFrame.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -90,11 +90,12 @@ destructor Destroy; override; procedure LoadWindowState(ADesktop: TCustomIniFile); procedure SaveWindowState(ADesktop: TCustomIniFile; AIsProject: Boolean); + property Options: TExceptionViewerOption read FOptions write SetOptions; + property RootDir: string read FRootDir write FRootDir; + { IJclStackTraceViewerStackServices } function GetDefaultFrameClass(const AFrameClassID: Integer): TCustomFrameClass; procedure ShowTree(ARootLink: IJclStackTraceViewerTreeViewLink); procedure UnregisterFrameClass(AFrameClass: TCustomFrameClass); - property Options: TExceptionViewerOption read FOptions write SetOptions; - property RootDir: string read FRootDir write FRootDir; end; {$IFDEF UNITVERSIONING} @@ -120,32 +121,32 @@ type TCustomTreeViewLink = class(TObject, IJclStackTraceViewerTreeViewLink) private - function GetCount: Integer; function GetInternalItems(AIndex: Integer): TCustomTreeViewLink; protected FData: TObject; FItems: TObjectList; FOwnsData: Boolean; FParent: TCustomTreeViewLink; - procedure DoShow(AFrame: TCustomFrame); virtual; - function GetFrameClass: TCustomFrameClass; virtual; - function GetItems(AIndex: Integer): IJclStackTraceViewerTreeViewLink; - function GetText: string; virtual; public constructor Create(AParent: TCustomTreeViewLink); destructor Destroy; override; + procedure Show(AFrame: TCustomFrame); + property Data: TObject read FData write FData; + property OwnsData: Boolean read FOwnsData write FOwnsData; + property Parent: TCustomTreeViewLink read FParent; { IInterface } function QueryInterface(const IID: TGUID; out Obj): HRESULT; stdcall; function _AddRef: Integer; stdcall; function _Release: Integer; stdcall; - - procedure Show(AFrame: TCustomFrame); + { IJclStackTraceViewerTreeViewLink } + procedure DoShow(AFrame: TCustomFrame); virtual; + function GetCount: Integer; + function GetFrameClass: TCustomFrameClass; virtual; + function GetItems(AIndex: Integer): IJclStackTraceViewerTreeViewLink; + function GetText: string; virtual; property Count: Integer read GetCount; - property Data: TObject read FData write FData; property FrameClass: TCustomFrameClass read GetFrameClass; property Items[AIndex: Integer]: TCustomTreeViewLink read GetInternalItems; default; - property OwnsData: Boolean read FOwnsData write FOwnsData; - property Parent: TCustomTreeViewLink read FParent; property Text: string read GetText; end; @@ -750,4 +751,4 @@ UnregisterUnitVersion(HInstance); {$ENDIF UNITVERSIONING} -end. \ No newline at end of file +end. Modified: trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerStackFrame.pas =================================================================== --- trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerStackFrame.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerStackFrame.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -51,20 +51,23 @@ FStackList: IJclLocationInfoList; FOnSelectStackLine: TNotifyEvent; procedure DoSelectStackLine; + procedure UpdateListView; + public + procedure LoadState(AIni: TCustomIniFile; const ASection, APrefix: string); + procedure SaveState(AIni: TCustomIniFile; const ASection, APrefix: string); + { IJclStackTraceViewerStackFrame } function GetStackList: IJclLocationInfoList; procedure SetStackList(const Value: IJclLocationInfoList); procedure UpdateView; + { IJclStackTraceViewerPreparableStackFrame } function GetPreparableLocationInfoListCount: Integer; function GetPreparableLocationInfoList(AIndex: Integer): IJclPreparedLocationInfoList; procedure UpdateViews; - function GetSelected: IJclLocationInfo; - procedure UpdateListView; - public - { Public declarations } - procedure LoadState(AIni: TCustomIniFile; const ASection, APrefix: string); - procedure SaveState(AIni: TCustomIniFile; const ASection, APrefix: string); property StackList: IJclLocationInfoList read FStackList write SetStackList; property OnSelectStackLine: TNotifyEvent read FOnSelectStackLine write FOnSelectStackLine; + { IJclStackTraceViewerStackSelection } + function GetSelected: IJclLocationInfo; + property Selected: IJclLocationInfo read GetSelected; end; {$IFDEF UNITVERSIONING} @@ -248,4 +251,4 @@ UnregisterUnitVersion(HInstance); {$ENDIF UNITVERSIONING} -end. \ No newline at end of file +end. Modified: trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerStackUtils.pas =================================================================== --- trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerStackUtils.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerStackUtils.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -56,6 +56,10 @@ FRootDir: string; procedure DoProgress(AStatus: TLocationInfoProcessorProgressStatus; APos, AMax: Integer; const AText: string); public + property OnProgress: TJclLocationInfoProgressEvent read FOnProgress write FOnProgress; + property Options: TExceptionViewerOption read FOptions write FOptions; + property RootDir: string read FRootDir write FRootDir; + { IInterface } function QueryInterface(const IID: TGUID; out Obj): HRESULT; stdcall; function _AddRef: Integer; stdcall; @@ -64,9 +68,7 @@ function GetModuleInfoList: IJclModuleInfoList; procedure PrepareLocationInfoList(AStack: IJclPreparedLocationInfoList; AForce: Boolean = False); procedure SetModuleInfoList(AValue: IJclModuleInfoList); - property OnProgress: TJclLocationInfoProgressEvent read FOnProgress write FOnProgress; - property Options: TExceptionViewerOption read FOptions write FOptions; - property RootDir: string read FRootDir write FRootDir; + property ModuleList: IJclModuleInfoList read GetModuleInfoList write SetModuleInfoList; end; {$IFDEF UNITVERSIONING} @@ -585,4 +587,4 @@ UnregisterUnitVersion(HInstance); {$ENDIF UNITVERSIONING} -end. \ No newline at end of file +end. Modified: trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerThreadFrame.pas =================================================================== --- trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerThreadFrame.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/experts/stacktraceviewer/JclStackTraceViewerThreadFrame.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -60,16 +60,10 @@ procedure SetCreationStackList(const Value: TJclStackTraceViewerLocationInfoList); procedure SetException(const Value: TJclSerializableException); procedure SetStackList(const Value: TJclStackTraceViewerLocationInfoList); - function GetSelected: IJclLocationInfo; procedure HandleStackSelection(ASender: TObject); procedure UpdateSplitterState; - function GetPreparableLocationInfoListCount: Integer; - function GetPreparableLocationInfoList(AIndex: Integer): IJclPreparedLocationInfoList; - procedure UpdateViews; procedure UpdatePreparableLocationInfoLists; - { Private declarations } public - { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure LoadState(AIni: TCustomIniFile; const ASection: string); @@ -77,6 +71,16 @@ property CreationStackList: TJclStackTraceViewerLocationInfoList read FCreationStackList write SetCreationStackList; property Exception: TJclSerializableException read FException write SetException; property StackList: TJclStackTraceViewerLocationInfoList read FStackList write SetStackList; + + { IJclStackTraceViewerPreparableStackFrame } + function GetPreparableLocationInfoListCount: Integer; + function GetPreparableLocationInfoList(AIndex: Integer): IJclPreparedLocationInfoList; + procedure UpdateViews; + property PreparableLocationInfoListCount: Integer read GetPreparableLocationInfoListCount; + property PreparableLocationInfoList[AIndex: Integer]: IJclPreparedLocationInfoList read GetPreparableLocationInfoList; + { IJclStackTraceViewerStackSelection } + function GetSelected: IJclLocationInfo; + property Selected: IJclLocationInfo read GetSelected; end; {$IFDEF UNITVERSIONING} @@ -249,4 +253,4 @@ UnregisterUnitVersion(HInstance); {$ENDIF UNITVERSIONING} -end. \ No newline at end of file +end. Modified: trunk/jcl/source/common/JclAbstractContainers.pas =================================================================== --- trunk/jcl/source/common/JclAbstractContainers.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/source/common/JclAbstractContainers.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -61,15 +61,15 @@ protected FThreadSafe: Boolean; FSyncReaderWriter: TJclMultiReadExclusiveWrite; + public + constructor Create; + destructor Destroy; override; + property SyncReaderWriter: TJclMultiReadExclusiveWrite read FSyncReaderWriter; + { IJclLockable } procedure ReadLock; procedure ReadUnlock; procedure WriteLock; procedure WriteUnlock; - public - constructor Create; - destructor Destroy; override; - - property SyncReaderWriter: TJclMultiReadExclusiveWrite read FSyncReaderWriter; {$ENDIF THREADSAFE} end; @@ -93,6 +93,8 @@ function CreateEmptyContainer: TJclAbstractContainerBase; virtual; abstract; procedure AssignDataTo(Dest: TJclAbstractContainerBase); virtual; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); virtual; + public + constructor Create; { IJclContainer } procedure Assign(const Source: IJclContainer); procedure AssignTo(const Dest: IJclContainer); @@ -109,6 +111,12 @@ procedure SetRemoveSingleElement(Value: Boolean); virtual; procedure SetReturnDefaultElements(Value: Boolean); virtual; procedure SetThreadSafe(Value: Boolean); virtual; + property AllowDefaultElements: Boolean read GetAllowDefaultElements write SetAllowDefaultElements; + property Duplicates: TDuplicates read GetDuplicates write SetDuplicates; + property ReadOnly: Boolean read GetReadOnly write SetReadOnly; + property RemoveSingleElement: Boolean read GetRemoveSingleElement write SetRemoveSingleElement; + property ReturnDefaultElements: Boolean read GetReturnDefaultElements write SetReturnDefaultElements; + property ThreadSafe: Boolean read GetThreadSafe write SetThreadSafe; { IJclCloneable } function ObjectClone: TObject; { IJclIntfCloneable } @@ -121,6 +129,8 @@ procedure Grow; virtual; procedure SetAutoGrowParameter(Value: Integer); virtual; procedure SetAutoGrowStrategy(Value: TJclAutoGrowStrategy); virtual; + property AutoGrowParameter: Integer read GetAutoGrowParameter write SetAutoGrowParameter; + property AutoGrowStrategy: TJclAutoGrowStrategy read GetAutoGrowStrategy write SetAutoGrowStrategy; // IJclPackable is not in interface list because some descendants won't use this code { IJclPackable } function CalcPackCapacity(ACapacity, ASize: Integer): Integer; virtual; @@ -131,16 +141,6 @@ procedure SetAutoPackParameter(Value: Integer); virtual; procedure SetAutoPackStrategy(Value: TJclAutoPackStrategy); virtual; procedure SetCapacity(Value: Integer); virtual; - public - constructor Create; - property AllowDefaultElements: Boolean read GetAllowDefaultElements write SetAllowDefaultElements; - property Duplicates: TDuplicates read GetDuplicates write SetDuplicates; - property ReadOnly: Boolean read GetReadOnly write SetReadOnly; - property RemoveSingleElement: Boolean read GetRemoveSingleElement write SetRemoveSingleElement; - property ReturnDefaultElements: Boolean read GetReturnDefaultElements write SetReturnDefaultElements; - property ThreadSafe: Boolean read GetThreadSafe write SetThreadSafe; - property AutoGrowParameter: Integer read GetAutoGrowParameter write SetAutoGrowParameter; - property AutoGrowStrategy: TJclAutoGrowStrategy read GetAutoGrowStrategy write SetAutoGrowStrategy; property AutoPackParameter: Integer read GetAutoPackParameter write SetAutoPackParameter; property AutoPackStrategy: TJclAutoPackStrategy read GetAutoPackStrategy write SetAutoPackStrategy; end; @@ -153,6 +153,9 @@ procedure CheckValid; function CreateEmptyIterator: TJclAbstractIterator; virtual; abstract; procedure AssignPropertiesTo(Dest: TJclAbstractIterator); virtual; + public + constructor Create(AValid: Boolean); + property Valid: Boolean read FValid write FValid; { IJclAbstractIterator } procedure Assign(const Source: IJclAbstractIterator); procedure AssignTo(const Dest: IJclAbstractIterator); @@ -161,9 +164,6 @@ function ObjectClone: TObject; { IJclIntfCloneable } function IntfClone: IInterface; - public - constructor Create(AValid: Boolean); - property Valid: Boolean read FValid write FValid; end; TJclIntfAbstractContainer = class(TJclAbstractContainerBase, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} @@ -174,21 +174,21 @@ FHashConvert: TIntfHashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function FreeObject(var AInterface: IInterface): IInterface; + public { IJclIntfEqualityComparer } function GetEqualityCompare: TIntfEqualityCompare; virtual; procedure SetEqualityCompare(Value: TIntfEqualityCompare); virtual; function ItemsEqual(const A, B: IInterface): Boolean; virtual; + property EqualityCompare: TIntfEqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclIntfComparer } function GetCompare: TIntfCompare; virtual; procedure SetCompare(Value: TIntfCompare); virtual; function ItemsCompare(const A, B: IInterface): Integer; virtual; + property Compare: TIntfCompare read GetCompare write SetCompare; { IJclIntfHashConverter } function GetHashConvert: TIntfHashConvert; virtual; procedure SetHashConvert(Value: TIntfHashConvert); virtual; function Hash(const AInterface: IInterface): Integer; virtual; - public - property EqualityCompare: TIntfEqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TIntfCompare read GetCompare write SetCompare; property HashConvert: TIntfHashConvert read GetHashConvert write SetHashConvert; end; @@ -197,10 +197,10 @@ protected FCaseSensitive: Boolean; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; + public { IJclStrContainer } function GetCaseSensitive: Boolean; virtual; procedure SetCaseSensitive(Value: Boolean); virtual; - public property CaseSensitive: Boolean read GetCaseSensitive write SetCaseSensitive; end; @@ -214,25 +214,25 @@ FHashConvert: TAnsiStrHashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function FreeString(var AString: AnsiString): AnsiString; + public { IJclAnsiStrContainer } function GetEncoding: TJclAnsiStrEncoding; virtual; procedure SetEncoding(Value: TJclAnsiStrEncoding); virtual; + property Encoding: TJclAnsiStrEncoding read GetEncoding write SetEncoding; { IJclAnsiStrEqualityComparer } function GetEqualityCompare: TAnsiStrEqualityCompare; virtual; procedure SetEqualityCompare(Value: TAnsiStrEqualityCompare); virtual; function ItemsEqual(const A, B: AnsiString): Boolean; virtual; + property EqualityCompare: TAnsiStrEqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclAnsiStrComparer } function GetCompare: TAnsiStrCompare; virtual; procedure SetCompare(Value: TAnsiStrCompare); virtual; function ItemsCompare(const A, B: AnsiString): Integer; virtual; + property Compare: TAnsiStrCompare read GetCompare write SetCompare; { IJclAnsiStrHashConverter } function GetHashConvert: TAnsiStrHashConvert; virtual; procedure SetHashConvert(Value: TAnsiStrHashConvert); virtual; function Hash(const AString: AnsiString): Integer; virtual; - public - property Encoding: TJclAnsiStrEncoding read GetEncoding write SetEncoding; - property EqualityCompare: TAnsiStrEqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TAnsiStrCompare read GetCompare write SetCompare; property HashConvert: TAnsiStrHashConvert read GetHashConvert write SetHashConvert; end; @@ -246,25 +246,25 @@ FHashConvert: TWideStrHashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function FreeString(var AString: WideString): WideString; + public { IJclWideStrContainer } function GetEncoding: TJclWideStrEncoding; virtual; procedure SetEncoding(Value: TJclWideStrEncoding); virtual; + property Encoding: TJclWideStrEncoding read GetEncoding write SetEncoding; { IJclWideStrEqualityComparer } function GetEqualityCompare: TWideStrEqualityCompare; virtual; procedure SetEqualityCompare(Value: TWideStrEqualityCompare); virtual; function ItemsEqual(const A, B: WideString): Boolean; virtual; + property EqualityCompare: TWideStrEqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclWideStrComparer } function GetCompare: TWideStrCompare; virtual; procedure SetCompare(Value: TWideStrCompare); virtual; function ItemsCompare(const A, B: WideString): Integer; virtual; + property Compare: TWideStrCompare read GetCompare write SetCompare; { IJclWideStrHashConverter } function GetHashConvert: TWideStrHashConvert; virtual; procedure SetHashConvert(Value: TWideStrHashConvert); virtual; function Hash(const AString: WideString): Integer; virtual; - public - property Encoding: TJclWideStrEncoding read GetEncoding write SetEncoding; - property EqualityCompare: TWideStrEqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TWideStrCompare read GetCompare write SetCompare; property HashConvert: TWideStrHashConvert read GetHashConvert write SetHashConvert; end; @@ -278,21 +278,21 @@ FHashConvert: TUnicodeStrHashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function FreeString(var AString: UnicodeString): UnicodeString; + public { IJclUnicodeStrEqualityComparer } function GetEqualityCompare: TUnicodeStrEqualityCompare; virtual; procedure SetEqualityCompare(Value: TUnicodeStrEqualityCompare); virtual; function ItemsEqual(const A, B: UnicodeString): Boolean; virtual; + property EqualityCompare: TUnicodeStrEqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclUnicodeStrComparer } function GetCompare: TUnicodeStrCompare; virtual; procedure SetCompare(Value: TUnicodeStrCompare); virtual; function ItemsCompare(const A, B: UnicodeString): Integer; virtual; + property Compare: TUnicodeStrCompare read GetCompare write SetCompare; { IJclUnicodeStrHashConverter } function GetHashConvert: TUnicodeStrHashConvert; virtual; procedure SetHashConvert(Value: TUnicodeStrHashConvert); virtual; function Hash(const AString: UnicodeString): Integer; virtual; - public - property EqualityCompare: TUnicodeStrEqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TUnicodeStrCompare read GetCompare write SetCompare; property HashConvert: TUnicodeStrHashConvert read GetHashConvert write SetHashConvert; end; {$ENDIF SUPPORTS_UNICODE_STRING} @@ -307,25 +307,25 @@ FHashConvert: TSingleHashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function FreeSingle(var AValue: Single): Single; + public + { IJclSingleContainer } + function GetPrecision: Single; virtual; + procedure SetPrecision(const Value: Single); virtual; + property Precision: Single read GetPrecision write SetPrecision; { IJclSingleEqualityComparer } function GetEqualityCompare: TSingleEqualityCompare; virtual; procedure SetEqualityCompare(Value: TSingleEqualityCompare); virtual; function ItemsEqual(const A, B: Single): Boolean; virtual; + property EqualityCompare: TSingleEqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclSingleComparer } function GetCompare: TSingleCompare; virtual; procedure SetCompare(Value: TSingleCompare); virtual; function ItemsCompare(const A, B: Single): Integer; virtual; - { IJclSingleContainer } - function GetPrecision: Single; virtual; - procedure SetPrecision(const Value: Single); virtual; + property Compare: TSingleCompare read GetCompare write SetCompare; { IJclSingleHashConverter } function GetHashConvert: TSingleHashConvert; virtual; procedure SetHashConvert(Value: TSingleHashConvert); virtual; function Hash(const AValue: Single): Integer; virtual; - public - property Precision: Single read GetPrecision write SetPrecision; - property EqualityCompare: TSingleEqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TSingleCompare read GetCompare write SetCompare; property HashConvert: TSingleHashConvert read GetHashConvert write SetHashConvert; end; @@ -339,25 +339,25 @@ FHashConvert: TDoubleHashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function FreeDouble(var AValue: Double): Double; + public + { IJclDoubleContainer } + function GetPrecision: Double; virtual; + procedure SetPrecision(const Value: Double); virtual; + property Precision: Double read GetPrecision write SetPrecision; { IJclDoubleEqualityComparer } function GetEqualityCompare: TDoubleEqualityCompare; virtual; procedure SetEqualityCompare(Value: TDoubleEqualityCompare); virtual; function ItemsEqual(const A, B: Double): Boolean; virtual; + property EqualityCompare: TDoubleEqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclDoubleComparer } function GetCompare: TDoubleCompare; virtual; procedure SetCompare(Value: TDoubleCompare); virtual; function ItemsCompare(const A, B: Double): Integer; virtual; - { IJclDoubleContainer } - function GetPrecision: Double; virtual; - procedure SetPrecision(const Value: Double); virtual; + property Compare: TDoubleCompare read GetCompare write SetCompare; { IJclDoubleHashConverter } function GetHashConvert: TDoubleHashConvert; virtual; procedure SetHashConvert(Value: TDoubleHashConvert); virtual; function Hash(const AValue: Double): Integer; virtual; - public - property Precision: Double read GetPrecision write SetPrecision; - property EqualityCompare: TDoubleEqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TDoubleCompare read GetCompare write SetCompare; property HashConvert: TDoubleHashConvert read GetHashConvert write SetHashConvert; end; @@ -371,25 +371,25 @@ FHashConvert: TExtendedHashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function FreeExtended(var AValue: Extended): Extended; + public + { IJclExtendedContainer } + function GetPrecision: Extended; virtual; + procedure SetPrecision(const Value: Extended); virtual; + property Precision: Extended read GetPrecision write SetPrecision; { IJclExtendedEqualityComparer } function GetEqualityCompare: TExtendedEqualityCompare; virtual; procedure SetEqualityCompare(Value: TExtendedEqualityCompare); virtual; function ItemsEqual(const A, B: Extended): Boolean; virtual; + property EqualityCompare: TExtendedEqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclExtendedComparer } function GetCompare: TExtendedCompare; virtual; procedure SetCompare(Value: TExtendedCompare); virtual; function ItemsCompare(const A, B: Extended): Integer; virtual; - { IJclExtendedContainer } - function GetPrecision: Extended; virtual; - procedure SetPrecision(const Value: Extended); virtual; + property Compare: TExtendedCompare read GetCompare write SetCompare; { IJclExtendedHashConverter } function GetHashConvert: TExtendedHashConvert; virtual; procedure SetHashConvert(Value: TExtendedHashConvert); virtual; function Hash(const AValue: Extended): Integer; virtual; - public - property Precision: Extended read GetPrecision write SetPrecision; - property EqualityCompare: TExtendedEqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TExtendedCompare read GetCompare write SetCompare; property HashConvert: TExtendedHashConvert read GetHashConvert write SetHashConvert; end; @@ -402,21 +402,21 @@ FHashConvert: TIntegerHashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function FreeInteger(var AValue: Integer): Integer; + public { IJclIntegerEqualityComparer } function GetEqualityCompare: TIntegerEqualityCompare; virtual; procedure SetEqualityCompare(Value: TIntegerEqualityCompare); virtual; function ItemsEqual(A, B: Integer): Boolean; virtual; + property EqualityCompare: TIntegerEqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclIntegerComparer } function GetCompare: TIntegerCompare; virtual; procedure SetCompare(Value: TIntegerCompare); virtual; function ItemsCompare(A, B: Integer): Integer; virtual; + property Compare: TIntegerCompare read GetCompare write SetCompare; { IJclIntegerHashConverter } function GetHashConvert: TIntegerHashConvert; virtual; procedure SetHashConvert(Value: TIntegerHashConvert); virtual; function Hash(AValue: Integer): Integer; virtual; - public - property EqualityCompare: TIntegerEqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TIntegerCompare read GetCompare write SetCompare; property HashConvert: TIntegerHashConvert read GetHashConvert write SetHashConvert; end; @@ -429,21 +429,21 @@ FHashConvert: TCardinalHashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function FreeCardinal(var AValue: Cardinal): Cardinal; + public { IJclIntegerEqualityComparer } function GetEqualityCompare: TCardinalEqualityCompare; virtual; procedure SetEqualityCompare(Value: TCardinalEqualityCompare); virtual; function ItemsEqual(A, B: Cardinal): Boolean; virtual; + property EqualityCompare: TCardinalEqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclIntegerComparer } function GetCompare: TCardinalCompare; virtual; procedure SetCompare(Value: TCardinalCompare); virtual; function ItemsCompare(A, B: Cardinal): Integer; virtual; + property Compare: TCardinalCompare read GetCompare write SetCompare; { IJclIntegerHashConverter } function GetHashConvert: TCardinalHashConvert; virtual; procedure SetHashConvert(Value: TCardinalHashConvert); virtual; function Hash(AValue: Cardinal): Integer; virtual; - public - property EqualityCompare: TCardinalEqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TCardinalCompare read GetCompare write SetCompare; property HashConvert: TCardinalHashConvert read GetHashConvert write SetHashConvert; end; @@ -456,21 +456,21 @@ FHashConvert: TInt64HashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function FreeInt64(var AValue: Int64): Int64; + public { IJclInt64EqualityComparer } function GetEqualityCompare: TInt64EqualityCompare; virtual; procedure SetEqualityCompare(Value: TInt64EqualityCompare); virtual; function ItemsEqual(const A, B: Int64): Boolean; virtual; + property EqualityCompare: TInt64EqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclInt64Comparer } function GetCompare: TInt64Compare; virtual; procedure SetCompare(Value: TInt64Compare); virtual; function ItemsCompare(const A, B: Int64): Integer; virtual; + property Compare: TInt64Compare read GetCompare write SetCompare; { IJclInt64HashConverter } function GetHashConvert: TInt64HashConvert; virtual; procedure SetHashConvert(Value: TInt64HashConvert); virtual; function Hash(const AValue: Int64): Integer; virtual; - public - property EqualityCompare: TInt64EqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TInt64Compare read GetCompare write SetCompare; property HashConvert: TInt64HashConvert read GetHashConvert write SetHashConvert; end; @@ -482,21 +482,21 @@ FHashConvert: TPtrHashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; function FreePointer(var APtr: Pointer): Pointer; + public { IJclPtrEqualityComparer } function GetEqualityCompare: TPtrEqualityCompare; virtual; procedure SetEqualityCompare(Value: TPtrEqualityCompare); virtual; function ItemsEqual(A, B: Pointer): Boolean; virtual; + property EqualityCompare: TPtrEqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclPtrComparer } function GetCompare: TPtrCompare; virtual; procedure SetCompare(Value: TPtrCompare); virtual; function ItemsCompare(A, B: Pointer): Integer; virtual; + property Compare: TPtrCompare read GetCompare write SetCompare; { IJclPtrHashConverter } function GetHashConvert: TPtrHashConvert; virtual; procedure SetHashConvert(Value: TPtrHashConvert); virtual; function Hash(APtr: Pointer): Integer; virtual; - public - property EqualityCompare: TPtrEqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TPtrCompare read GetCompare write SetCompare; property HashConvert: TPtrHashConvert read GetHashConvert write SetHashConvert; end; @@ -509,26 +509,26 @@ FCompare: TCompare; FHashConvert: THashConvert; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; + public + constructor Create(AOwnsObjects: Boolean); + { IJclObjectOwner } + function FreeObject(var AObject: TObject): TObject; virtual; + function GetOwnsObjects: Boolean; virtual; + property OwnsObjects: Boolean read FOwnsObjects; { IJclEqualityComparer } function GetEqualityCompare: TEqualityCompare; virtual; procedure SetEqualityCompare(Value: TEqualityCompare); virtual; function ItemsEqual(A, B: TObject): Boolean; virtual; + property EqualityCompare: TEqualityCompare read GetEqualityCompare write SetEqualityCompare; { IJclComparer } function GetCompare: TCompare; virtual; procedure SetCompare(Value: TCompare); virtual; function ItemsCompare(A, B: TObject): Integer; virtual; - { IJclObjectOwner } - function FreeObject(var AObject: TObject): TObject; virtual; - function GetOwnsObjects: Boolean; virtual; + property Compare: TCompare read GetCompare write SetCompare; { IJclHashConverter } function GetHashConvert: THashConvert; virtual; procedure SetHashConvert(Value: THashConvert); virtual; function Hash(AObject: TObject): Integer; virtual; - public - constructor Create(AOwnsObjects: Boolean); - property OwnsObjects: Boolean read FOwnsObjects; - property EqualityCompare: TEqualityCompare read GetEqualityCompare write SetEqualityCompare; - property Compare: TCompare read GetCompare write SetCompare; property HashConvert: THashConvert read GetHashConvert write SetHashConvert; end; @@ -542,26 +542,26 @@ FCompare: TCompare<T>; FHashConvert: THashConvert<T>; procedure AssignPropertiesTo(Dest: TJclAbstractContainerBase); override; + public + constructor Create(AOwnsItems: Boolean); + { IJclItemOwner<T> } + function FreeItem(var AItem: T): T; virtual; + function GetOwnsItems: Boolean; virtual; + property OwnsItems: Boolean read FOwnsItems; { IJclEqualityComparer<T> } function GetEqualityCompare: TEqualityCompare<T>; virtual; procedure SetEqualityCompare(Value: TEqualityCompare<T>); virtual; function ItemsEqual(const A, B: T): Boolean; virtual; + property EqualityCompare: TEqualityCompare<T> read GetEqualityCompare write SetEqualityCompare; { IJclComparer<T> } function GetCompare: TCompare<T>; virtual; procedure SetCompare(Value: TCompare<T>); virtual; function ItemsCompare(const A, B: T): Integer; virtual; - { IJclItemOwner<T> } - function FreeItem(var AItem: T): T; virtual; - function GetOwnsItems: Boolean; virtual; + property Compare: TCompare<T> read GetCompare write SetCompare; { IJclHashConverter<T> } function GetHashConvert: THashConvert<T>; virtual; procedure SetHashConvert(Value: THashConvert<T>); virtual; function Hash(const AItem: T): Integer; virtual; - public - constructor Create(AOwnsItems: Boolean); - property OwnsItems: Boolean read FOwnsItems; - property EqualityCompare: TEqualityCompare<T> read GetEqualityCompare write SetEqualityCompare; - property Compare: TCompare<T> read GetCompare write SetCompare; property HashConvert: THashConvert<T> read GetHashConvert write SetHashConvert; end; {$ENDIF SUPPORTS_GENERICS} @@ -570,7 +570,7 @@ {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} IJclCloneable, IJclIntfCloneable, IJclContainer, IJclStrContainer, IJclAnsiStrContainer, IJclAnsiStrFlatContainer, IJclAnsiStrCollection, IJclAnsiStrEqualityComparer, IJclAnsiStrComparer) - protected + public { IJclAnsiStrCollection } function Add(const AString: AnsiString): Boolean; virtual; abstract; function AddAll(const ACollection: IJclAnsiStrCollection): Boolean; virtual; abstract; @@ -605,7 +605,7 @@ {$IFDEF THREADSAFE}IJclLockable,{$ENDIF THREADSAFE} IJclCloneable, IJclIntfCloneable, IJclContainer, IJclStrContainer, IJclWideStrContainer, IJclWideStrFlatContainer, IJclWideStrCollection, IJclWideStrEqualityComparer, IJclWideStrComparer) - protected + public { IJclWideStrCollection } function Add(const AString: WideString): Boolean; virtual; abstract; function AddAll(const ACollection: IJclWideStrCollection): Boolean; virtual; abstract; @@ -641,7 +641,7 @@ {$IFDEF THREADSAFE}IJclLockable,{$ENDIF THREADSAFE} IJclCloneable, IJclIntfCloneable, IJclContainer, IJclStrContainer, IJclUnicodeStrContainer, IJclUnicodeStrFlatContainer, IJclUnicodeStrCollection, IJclUnicodeStrEqualityComparer, IJclUnicodeStrComparer) - protected + public { IJclUnicodeStrCollection } function Add(const AString: UnicodeString): Boolean; virtual; abstract; function AddAll(const ACollection: IJclUnicodeStrCollection): Boolean; virtual; abstract; Modified: trunk/jcl/source/common/JclAlgorithms.pas =================================================================== --- trunk/jcl/source/common/JclAlgorithms.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/source/common/JclAlgorithms.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -2891,4 +2891,4 @@ UnregisterUnitVersion(HInstance); {$ENDIF UNITVERSIONING} -end. +end. \ No newline at end of file Modified: trunk/jcl/source/common/JclArrayLists.pas =================================================================== --- trunk/jcl/source/common/JclArrayLists.pas 2009-09-11 21:36:32 UTC (rev 2992) +++ trunk/jcl/source/common/JclArrayLists.pas 2009-09-12 10:57:33 UTC (rev 2993) @@ -66,6 +66,10 @@ function RaiseOutOfBoundsError: IInterface; protected procedure AssignDataTo(Dest: TJclAbstractContainerBase); override; + public + constructor Create(ACapacity: Integer); overload; + constructor Create(const ACollection: IJclIntfCollection); overload; + destructor Destroy; override; { IJclPackable } procedure SetCapacity(Value: Integer); override; { IJclIntfCollection } @@ -97,10 +101,6 @@ function LastIndexOf(const AInterface: IInterface): Integer; procedure SetObject(Index: Integer; const AInterface: IInterface); function SubList(First, Count: Integer): IJclIntfList; - public - constructor Create(ACapacity: Integer); overload; - constructor Create(const ACollection: IJclIntfCollection); overload; - destructor Destroy; override; end; TJclIntfArrayIterator = class(TJclAbstractIterator, IJclIntfIterator, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} @@ -112,6 +112,8 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractIterator); override; function CreateEmptyIterator: TJclAbstractIterator; override; + public + constructor Create(const AOwnList: IJclIntfList; ACursor: Integer; AValid: Boolean; AStart: TItrStart); { IJclIntfIterator } function Add(const AInterface: IInterface): Boolean; procedure Extract; @@ -131,8 +133,6 @@ function MoveNext: Boolean; property Current: IInterface read GetObject; {$ENDIF SUPPORTS_FOR_IN} - public - constructor Create(const AOwnList: IJclIntfList; ACursor: Integer; AValid: Boolean; AStart: TItrStart); end; TJclAnsiStrArrayList = class(TJclAnsiStrAbstractCollection, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} @@ -147,6 +147,10 @@ function RaiseOutOfBoundsError: AnsiString; protected procedure AssignDataTo(Dest: TJclAbstractContainerBase); override; + public + constructor Create(ACapacity: Integer); overload; + constructor Create(const ACollection: IJclAnsiStrCollection); overload; + destructor Destroy; override; { IJclPackable } procedure SetCapacity(Value: Integer); override; { IJclAnsiStrCollection } @@ -178,10 +182,6 @@ function LastIndexOf(const AString: AnsiString): Integer; procedure SetString(Index: Integer; const AString: AnsiString); function SubList(First, Count: Integer): IJclAnsiStrList; - public - constructor Create(ACapacity: Integer); overload; - constructor Create(const ACollection: IJclAnsiStrCollection); overload; - destructor Destroy; override; end; TJclAnsiStrArrayIterator = class(TJclAbstractIterator, IJclAnsiStrIterator, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} @@ -193,6 +193,8 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractIterator); override; function CreateEmptyIterator: TJclAbstractIterator; override; + public + constructor Create(const AOwnList: IJclAnsiStrList; ACursor: Integer; AValid: Boolean; AStart: TItrStart); { IJclAnsiStrIterator } function Add(const AString: AnsiString): Boolean; procedure Extract; @@ -212,8 +214,6 @@ function MoveNext: Boolean; property Current: AnsiString read GetString; {$ENDIF SUPPORTS_FOR_IN} - public - constructor Create(const AOwnList: IJclAnsiStrList; ACursor: Integer; AValid: Boolean; AStart: TItrStart); end; TJclWideStrArrayList = class(TJclWideStrAbstractCollection, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} @@ -228,6 +228,10 @@ function RaiseOutOfBoundsError: WideString; protected procedure AssignDataTo(Dest: TJclAbstractContainerBase); override; + public + constructor Create(ACapacity: Integer); overload; + constructor Create(const ACollection: IJclWideStrCollection); overload; + destructor Destroy; override; { IJclPackable } procedure SetCapacity(Value: Integer); override; { IJclWideStrCollection } @@ -259,10 +263,6 @@ function LastIndexOf(const AString: WideString): Integer; procedure SetString(Index: Integer; const AString: WideString); function SubList(First, Count: Integer): IJclWideStrList; - public - constructor Create(ACapacity: Integer); overload; - constructor Create(const ACollection: IJclWideStrCollection); overload; - destructor Destroy; override; end; TJclWideStrArrayIterator = class(TJclAbstractIterator, IJclWideStrIterator, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} @@ -274,6 +274,8 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractIterator); override; function CreateEmptyIterator: TJclAbstractIterator; override; + public + constructor Create(const AOwnList: IJclWideStrList; ACursor: Integer; AValid: Boolean; AStart: TItrStart); { IJclWideStrIterator } function Add(const AString: WideString): Boolean; procedure Extract; @@ -293,8 +295,6 @@ function MoveNext: Boolean; property Current: WideString read GetString; {$ENDIF SUPPORTS_FOR_IN} - public - constructor Create(const AOwnList: IJclWideStrList; ACursor: Integer; AValid: Boolean; AStart: TItrStart); end; {$IFDEF SUPPORTS_UNICODE_STRING} @@ -310,6 +310,10 @@ function RaiseOutOfBoundsError: UnicodeString; protected procedure AssignDataTo(Dest: TJclAbstractContainerBase); override; + public + constructor Create(ACapacity: Integer); overload; + constructor Create(const ACollection: IJclUnicodeStrCollection); overload; + destructor Destroy; override; { IJclPackable } procedure SetCapacity(Value: Integer); override; { IJclUnicodeStrCollection } @@ -341,10 +345,6 @@ function LastIndexOf(const AString: UnicodeString): Integer; procedure SetString(Index: Integer; const AString: UnicodeString); function SubList(First, Count: Integer): IJclUnicodeStrList; - public - constructor Create(ACapacity: Integer); overload; - constructor Create(const ACollection: IJclUnicodeStrCollection); overload; - destructor Destroy; override; end; TJclUnicodeStrArrayIterator = class(TJclAbstractIterator, IJclUnicodeStrIterator, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} @@ -356,6 +356,8 @@ protected procedure AssignPropertiesTo(Dest: TJclAbstractIterator); override; function CreateEmptyIterator: TJclAbstractIterator; override; + public + constructor Create(const AOwnList: IJclUnicodeStrList; ACursor: Integer; AValid: Boolean; AStart: TItrStart); { IJclUnicodeStrIterator } function Add(const AString: UnicodeString): Boolean; procedure Extract; @@ -375,8 +37... [truncated message content] |