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...> - 2006-09-05 15:20:06
|
Revision: 1758
http://svn.sourceforge.net/jcl/?rev=1758&view=rev
Author: outchy
Date: 2006-09-05 08:19:54 -0700 (Tue, 05 Sep 2006)
Log Message:
-----------
Fixed uninstallation error when trying to remove help files from OpenHelp.
Fixed alignment of edits in the installation frames.
Modified Paths:
--------------
trunk/jcl/install/JclInstall.pas
trunk/jcl/install/prototypes/JediGUIInstall.pas
Modified: trunk/jcl/install/JclInstall.pas
===================================================================
--- trunk/jcl/install/JclInstall.pas 2006-09-05 13:03:25 UTC (rev 1757)
+++ trunk/jcl/install/JclInstall.pas 2006-09-05 15:19:54 UTC (rev 1758)
@@ -1887,7 +1887,7 @@
UninstallPackage(FullPackageFileName(Target, JclDpk));
if Target.SupportsVisualCLX then
UninstallPackage(FullPackageFileName(Target, JclVClxDpk));
- if Target.VersionNumber >= 6 then
+ if (Target.VersionNumber >= 6) or (Target.RadToolKind = brBorlandDevStudio) then
UninstallPackage(FullPackageFileName(Target, JclVclDpk));
{$IFDEF MSWINDOWS}
RemoveJediRegInformation(Target.ConfigDataLocation, 'JCL');
@@ -1990,9 +1990,13 @@
begin
if CLRVersion = '' then
begin
- RemoveHelpFromOpenHelp;
- RemoveHelpFromIdeTools;
- UnregisterHelp2Files;
+ if Target.RadToolKind <> brBorlandDevStudio then
+ begin
+ RemoveHelpFromOpenHelp;
+ RemoveHelpFromIdeTools;
+ end
+ else
+ UnregisterHelp2Files;
end;
end;
{$ENDIF MSWINDOWS}
@@ -2003,7 +2007,7 @@
WriteLog(Format('Removed %s.', [DialogName]));
end;
begin
- if CLRVersion = '' then
+ if (CLRVersion = '') and (Target.RadToolKind <> brBorlandDevStudio) then
begin
{$IFDEF MSWINDOWS}
// ioJclExcDialog
Modified: trunk/jcl/install/prototypes/JediGUIInstall.pas
===================================================================
--- trunk/jcl/install/prototypes/JediGUIInstall.pas 2006-09-05 13:03:25 UTC (rev 1757)
+++ trunk/jcl/install/prototypes/JediGUIInstall.pas 2006-09-05 15:19:54 UTC (rev 1758)
@@ -605,7 +605,7 @@
var
ADirectoryRec: PDirectoryRec;
ALabel: TLabel;
- ControlTop, ButtonWidth: Integer;
+ ControlTop, ButtonWidth, LabelRight: Integer;
begin
if FDirectories.Count > 0 then
begin
@@ -629,9 +629,10 @@
ADirectoryRec^.Button.Anchors := [akTop, akRight];
ButtonWidth := 2 * ALabel.Height;
+ LabelRight := (ALabel.Width div 16) * 16 + 32 + ALabel.Left; // make edits aligned when label widths are nearly equals
- ADirectoryRec^.Edit.SetBounds(4 * ALabel.Height + 8, ControlTop,
- OptionsGroupBox.ClientWidth - 4 * ALabel.Height - ButtonWidth - 32,
+ ADirectoryRec^.Edit.SetBounds(LabelRight, ControlTop,
+ OptionsGroupBox.ClientWidth - LabelRight - ButtonWidth - 16,
ADirectoryRec^.Edit.Height);
ADirectoryRec^.Button.SetBounds(OptionsGroupBox.ClientWidth - ButtonWidth - 8,
ControlTop, ButtonWidth, ADirectoryRec^.Edit.Height);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2006-09-05 13:03:32
|
Revision: 1757
http://svn.sourceforge.net/jcl/?rev=1757&view=rev
Author: outchy
Date: 2006-09-05 06:03:25 -0700 (Tue, 05 Sep 2006)
Log Message:
-----------
ignore on the help directory
Property Changed:
----------------
trunk/jcl/
Property changes on: trunk/jcl
___________________________________________________________________
Name: svn:ignore
+ help
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2006-09-05 12:50:38
|
Revision: 1756
http://svn.sourceforge.net/jcl/?rev=1756&view=rev
Author: outchy
Date: 2006-09-05 05:50:33 -0700 (Tue, 05 Sep 2006)
Log Message:
-----------
Added ignores on doc-o-matic files (.bak and .doxdb)
Property Changed:
----------------
trunk/help/
Property changes on: trunk/help
___________________________________________________________________
Name: svn:ignore
- *.ldb
DOM-ReadMe.txt
Templates.txt
test.txt
programs
winhlp32
+ *.ldb
DOM-ReadMe.txt
Templates.txt
test.txt
programs
winhlp32
*.bak
*.doxdb
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2006-09-05 12:47:27
|
Revision: 1755
http://svn.sourceforge.net/jcl/?rev=1755&view=rev
Author: outchy
Date: 2006-09-05 05:47:08 -0700 (Tue, 05 Sep 2006)
Log Message:
-----------
progress dialog no opened anymore for text messages
Modified Paths:
--------------
trunk/jcl/install/prototypes/JediGUIInstall.pas
Modified: trunk/jcl/install/prototypes/JediGUIInstall.pas
===================================================================
--- trunk/jcl/install/prototypes/JediGUIInstall.pas 2006-09-04 19:46:30 UTC (rev 1754)
+++ trunk/jcl/install/prototypes/JediGUIInstall.pas 2006-09-05 12:47:08 UTC (rev 1755)
@@ -801,9 +801,9 @@
procedure TInstallFrame.AddText(const Line: string);
begin
- {$IFDEF VCL}
- GetFormCompile.AddText(Line);
- {$ENDIF VCL}
+ //{$IFDEF VCL}
+ //GetFormCompile.AddText(Line);
+ //{$ENDIF VCL}
AddLogLine(Line);
end;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2006-09-04 19:46:43
|
Revision: 1754
http://svn.sourceforge.net/jcl/?rev=1754&view=rev
Author: outchy
Date: 2006-09-04 12:46:30 -0700 (Mon, 04 Sep 2006)
Log Message:
-----------
Mantis 3881 fixed issue in JclSysInfo.GetVolumeFileSystemFlags
Modified Paths:
--------------
trunk/jcl/source/common/JclSysInfo.pas
Modified: trunk/jcl/source/common/JclSysInfo.pas
===================================================================
--- trunk/jcl/source/common/JclSysInfo.pas 2006-09-04 10:41:27 UTC (rev 1753)
+++ trunk/jcl/source/common/JclSysInfo.pas 2006-09-04 19:46:30 UTC (rev 1754)
@@ -1881,6 +1881,23 @@
{ TODO -cHelp : Donator (incl. TFileSystemFlag[s]): Robert Rossmair }
function GetVolumeFileSystemFlags(const Volume: string): TFileSystemFlags;
+const
+ FileSystemFlags: array [TFileSystemFlag] of DWORD =
+ ( FILE_CASE_SENSITIVE_SEARCH, // fsCaseSensitive
+ FILE_CASE_PRESERVED_NAMES, // fsCasePreservedNames
+ FILE_UNICODE_ON_DISK, // fsSupportsUnicodeOnDisk
+ FILE_PERSISTENT_ACLS, // fsPersistentACLs
+ FILE_FILE_COMPRESSION, // fsSupportsFileCompression
+ FILE_VOLUME_QUOTAS, // fsSupportsVolumeQuotas
+ FILE_SUPPORTS_SPARSE_FILES, // fsSupportsSparseFiles
+ FILE_SUPPORTS_REPARSE_POINTS, // fsSupportsReparsePoints
+ FILE_SUPPORTS_REMOTE_STORAGE, // fsSupportsRemoteStorage
+ FILE_VOLUME_IS_COMPRESSED, // fsVolumeIsCompressed
+ FILE_SUPPORTS_OBJECT_IDS, // fsSupportsObjectIds
+ FILE_SUPPORTS_ENCRYPTION, // fsSupportsEncryption
+ FILE_NAMED_STREAMS, // fsSupportsNamedStreams
+ FILE_READ_ONLY_VOLUME // fsVolumeIsReadOnly
+ );
var
MaximumComponentLength, Flags: Cardinal;
Flag: TFileSystemFlag;
@@ -1890,7 +1907,7 @@
RaiseLastOSError;
Result := [];
for Flag := Low(TFileSystemFlag) to High(TFileSystemFlag) do
- if (Flags and Ord(Flag)) <> 0 then
+ if (Flags and FileSystemFlags[Flag]) <> 0 then
Include(Result, Flag);
end;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2006-09-04 10:41:37
|
Revision: 1753
http://svn.sourceforge.net/jcl/?rev=1753&view=rev
Author: outchy
Date: 2006-09-04 03:41:27 -0700 (Mon, 04 Sep 2006)
Log Message:
-----------
Fixed invalid source directory (jcl\source)
Restored check of running IDE instances
Modified Paths:
--------------
trunk/jcl/install/JclInstall.pas
Modified: trunk/jcl/install/JclInstall.pas
===================================================================
--- trunk/jcl/install/JclInstall.pas 2006-09-04 10:03:26 UTC (rev 1752)
+++ trunk/jcl/install/JclInstall.pas 2006-09-04 10:41:27 UTC (rev 1753)
@@ -278,16 +278,11 @@
uses
TypInfo,
- {$IFDEF VCL}
-// Dialogs, Controls,
- {$ELSE VCL}
-// QDialogs, QControls,
- {$ENDIF VCL}
JclBase, JclResources, JclSysInfo,
{$IFDEF MSWINDOWS}
JclPeImage,
JclRegistry,
-// MSHelpServices_TLB,
+ JclDebug,
JclDotNet,
{$ENDIF MSWINDOWS}
JclFileUtils, JclStrings,
@@ -1311,7 +1306,7 @@
if OptionChecked[joEnvLibPath] then
begin
MarkOptionBegin(joEnvLibPath);
- Result := Target.AddToLibrarySearchPath(FLibDir) and Target.AddToLibrarySearchPath(Distribution.JclPath);
+ Result := Target.AddToLibrarySearchPath(FLibDir) and Target.AddToLibrarySearchPath(Distribution.JclSourceDir);
if Result then
begin
WriteLog(Format('Added "%s;%s" to library search path.', [FLibDir, Distribution.JclSourceDir]));
@@ -3002,6 +2997,13 @@
begin
KeepSettings := True;
try
+ if RadToolInstallations.AnyInstanceRunning {$IFDEF MSWINDOWS} and not IsDebuggerAttached {$ENDIF} then
+ begin
+ if Assigned(GUI) then
+ GUI.Dialog(RsCloseRADTool, dtError, [drCancel]);
+ Exit;
+ end;
+
if Assigned(GUI) then
begin
GUI.Status := 'Initializing JCL installation process';
@@ -3061,6 +3063,13 @@
AInstallation: TJclInstallation;
begin
try
+ if RadToolInstallations.AnyInstanceRunning {$IFDEF MSWINDOWS} and not IsDebuggerAttached {$ENDIF} then
+ begin
+ if Assigned(GUI) then
+ GUI.Dialog(RsCloseRADTool, dtError, [drCancel]);
+ Exit;
+ end;
+
if Assigned(GUI) then
GUI.Status := 'Initializing JCL uninstallation process';
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2006-09-04 10:03:32
|
Revision: 1752
http://svn.sourceforge.net/jcl/?rev=1752&view=rev
Author: outchy
Date: 2006-09-04 03:03:26 -0700 (Mon, 04 Sep 2006)
Log Message:
-----------
Fixed compilation form that did not properly close
Modified Paths:
--------------
trunk/jcl/install/JclInstall.pas
Modified: trunk/jcl/install/JclInstall.pas
===================================================================
--- trunk/jcl/install/JclInstall.pas 2006-09-04 08:47:58 UTC (rev 1751)
+++ trunk/jcl/install/JclInstall.pas 2006-09-04 10:03:26 UTC (rev 1752)
@@ -693,7 +693,6 @@
FDistribution := JclDistribution;
FCLRVersion := ACLRVersion;
FTargetPlatform := ATargetPlatform;
- InstallTarget.OutputCallback := WriteLog;
FTargetName := Target.Name;
if CLRVersion <> '' then
FTargetName := Format('%s CLR %s', [FTargetName, CLRVersion]);
@@ -1751,10 +1750,12 @@
end;
begin
- if Assigned(GUI) then
- GUI.Status := Format(RsInstallMessage, [TargetName]);
+ try
+ Target.OutputCallback := WriteLog;
- try
+ if Assigned(GUI) then
+ GUI.Status := Format(RsInstallMessage, [TargetName]);
+
if Assigned(GUIPage) then
begin
GUIPage.Show;
@@ -1768,6 +1769,7 @@
if not Result then
Uninstall;
finally
+ Target.OutputCallback := nil;
WriteLog('');
if Assigned(GUIPage) then
GUIPage.EndInstall;
@@ -2021,23 +2023,28 @@
end;
begin
- if Assigned(GUI) then
- GUI.Status := Format(RsUninstallMessage, [TargetName]);
- if Assigned(GUIPage) then
- GUIPage.Show;
+ try
+ Target.OutputCallback := WriteLog;
+ if Assigned(GUI) then
+ GUI.Status := Format(RsUninstallMessage, [TargetName]);
+ if Assigned(GUIPage) then
+ GUIPage.Show;
- WriteLog(StrPadRight('Starting Uninstall process', 44, '.'));
+ WriteLog(StrPadRight('Starting Uninstall process', 44, '.'));
- RemoveEnvironment;
- RemoveMake;
- UninstallPackages;
- {$IFDEF MSWINDOWS}
- UninstallExperts;
- UninstallHelp;
- {$ENDIF MSWINDOWS}
- // TODO: ioJclCopyPackagesHppFiles
- UninstallRepository;
- // TODO: ioJclMakeDemos:
+ RemoveEnvironment;
+ RemoveMake;
+ UninstallPackages;
+ {$IFDEF MSWINDOWS}
+ UninstallExperts;
+ UninstallHelp;
+ {$ENDIF MSWINDOWS}
+ // TODO: ioJclCopyPackagesHppFiles
+ UninstallRepository;
+ // TODO: ioJclMakeDemos:
+ finally
+ Target.OutputCallback := nil;
+ end;
Result := True;
end;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2006-09-04 08:48:06
|
Revision: 1751
http://svn.sourceforge.net/jcl/?rev=1751&view=rev
Author: outchy
Date: 2006-09-04 01:47:58 -0700 (Mon, 04 Sep 2006)
Log Message:
-----------
fixed version written to the repository to be readable by the JVCL installer
Modified Paths:
--------------
trunk/jcl/install/JclInstall.pas
Modified: trunk/jcl/install/JclInstall.pas
===================================================================
--- trunk/jcl/install/JclInstall.pas 2006-09-03 20:59:07 UTC (rev 1750)
+++ trunk/jcl/install/JclInstall.pas 2006-09-04 08:47:58 UTC (rev 1751)
@@ -20,7 +20,7 @@
{ - Robert Rossmair - crossplatform & BCB support, refactoring }
{ - Florent Ouchet (outchy) - New installer core for .net compilation }
{ }
-{ Last modified: $Date$ }
+{ Last modified: $Date$ }
{ }
{**************************************************************************************************}
@@ -1460,7 +1460,8 @@
if CLRVersion = '' then
begin
{$IFDEF MSWINDOWS}
- InstallJediRegInformation(Target.ConfigDataLocation, 'JCL', Distribution.Version,
+ InstallJediRegInformation(Target.ConfigDataLocation, 'JCL',
+ Format('%d.%d.%d.%d', [JclVersionMajor, JclVersionMinor, JclVersionRelease, JclVersionBuild]),
GetDcpPath, GetBplPath, Distribution.FJclPath);
{$ENDIF MSWINDOWS}
Result := CompilePackage(FullPackageFileName(Target, JclDpk), False);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2006-09-03 20:59:43
|
Revision: 1750
http://svn.sourceforge.net/jcl/?rev=1750&view=rev
Author: outchy
Date: 2006-09-03 13:59:07 -0700 (Sun, 03 Sep 2006)
Log Message:
-----------
reworked lib directories for .net units
Added Paths:
-----------
trunk/jcl/lib/d10.net/common.exc
trunk/jcl/lib/d10.net/debug/
trunk/jcl/lib/d10.net/debug/dirinfo.txt
trunk/jcl/lib/d10.net/vcl.exc
trunk/jcl/lib/d10.net/windows.exc
trunk/jcl/lib/d9.net/common.exc
trunk/jcl/lib/d9.net/debug/
trunk/jcl/lib/d9.net/debug/dirinfo.txt
trunk/jcl/lib/d9.net/vcl.exc
trunk/jcl/lib/d9.net/windows.exc
Property Changed:
----------------
trunk/jcl/lib/d10.net/
trunk/jcl/lib/d9.net/
Property changes on: trunk/jcl/lib/d10.net
___________________________________________________________________
Name: svn:ignore
- *.dcuil
*.dcu
*.ddp
*.bpl
*.dcp
*.res
+ *.dcuil
*.dcu
*.ddp
*.bpl
*.dcp
*.res
Added: trunk/jcl/lib/d10.net/common.exc
===================================================================
--- trunk/jcl/lib/d10.net/common.exc (rev 0)
+++ trunk/jcl/lib/d10.net/common.exc 2006-09-03 20:59:07 UTC (rev 1750)
@@ -0,0 +1,23 @@
+Jcl8087.pas
+JclBorlandTools.pas
+JclCompression.pas
+JclCounter.pas
+JclEDI.pas
+JclEDISEF.pas
+JclEDITranslators.pas
+JclEDIXML.pas
+JclEDI_ANSIX12.pas
+JclEDI_ANSIX12_Ext.pas
+JclEDI_UNEDIFACT.pas
+JclEDI_UNEDIFACT_Ext.pas
+JclExprEval.pas
+JclMIDI.pas
+JclPCRE.pas
+JclSchedule.pas
+JclStreams.pas
+JclStrHashMap.pas
+JclUnitVersioning.pas
+JclUnitVersioningProviders.pas
+JclValidation.pas
+JclWideStrings.pas
+pcre.pas
\ No newline at end of file
Property changes on: trunk/jcl/lib/d10.net/common.exc
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/jcl/lib/d10.net/debug
___________________________________________________________________
Name: svn:ignore
+ *.dcuil
*.dcu
*.ddp
*.bpl
*.dcp
*.res
Added: trunk/jcl/lib/d10.net/debug/dirinfo.txt
===================================================================
--- trunk/jcl/lib/d10.net/debug/dirinfo.txt (rev 0)
+++ trunk/jcl/lib/d10.net/debug/dirinfo.txt 2006-09-03 20:59:07 UTC (rev 1750)
@@ -0,0 +1 @@
+This directory is intended a common place for .dcuil files of Delphi 2006 .NET packages with debug information.
\ No newline at end of file
Property changes on: trunk/jcl/lib/d10.net/debug/dirinfo.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: trunk/jcl/lib/d10.net/vcl.exc
===================================================================
--- trunk/jcl/lib/d10.net/vcl.exc (rev 0)
+++ trunk/jcl/lib/d10.net/vcl.exc 2006-09-03 20:59:07 UTC (rev 1750)
@@ -0,0 +1,3 @@
+JclGraphics.pas
+JclGraphUtils.pas
+JclPrint.pas
\ No newline at end of file
Property changes on: trunk/jcl/lib/d10.net/vcl.exc
___________________________________________________________________
Name: svn:eol-style
+ native
Added: trunk/jcl/lib/d10.net/windows.exc
===================================================================
--- trunk/jcl/lib/d10.net/windows.exc (rev 0)
+++ trunk/jcl/lib/d10.net/windows.exc 2006-09-03 20:59:07 UTC (rev 1750)
@@ -0,0 +1,37 @@
+Hardlinks.pas
+JclAppInst.pas
+JclCIL.pas
+JclCLR.pas
+JclCOM.pas
+JclConsole.pas
+JclDebug.pas
+JclDotNet.pas
+JclHookExcept.pas
+JclLANMan.pas
+JclLocales.pas
+JclMapi.pas
+JclMetadata.pas
+JclMiscel.pas
+JclMsdosSys.pas
+JclMultimedia.pas
+JclNTFS.pas
+JclPeImage.pas
+JclRegistry.pas
+JclSecurity.pas
+JclShell.pas
+JclStructStorage.pas
+JclSvcCtrl.pas
+JclSynch.pas
+JclTask.pas
+JclTD32.pas
+JclUnicode.pas
+JclWideFormat.pas
+JclWin32.pas
+JclWin32Ex.pas
+JclWinMIDI.pas
+mscoree_TLB.pas
+mscorlib_TLB.pas
+MSHelpServices_TLB.pas
+MSTask.pas
+Snmp.pas
+zlibh.pas
\ No newline at end of file
Property changes on: trunk/jcl/lib/d10.net/windows.exc
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/jcl/lib/d9.net
___________________________________________________________________
Name: svn:ignore
- *.dcuil
*.dcu
*.ddp
*.bpl
*.dcp
*.res
+ *.dcuil
*.dcu
*.ddp
*.bpl
*.dcp
*.res
Added: trunk/jcl/lib/d9.net/common.exc
===================================================================
--- trunk/jcl/lib/d9.net/common.exc (rev 0)
+++ trunk/jcl/lib/d9.net/common.exc 2006-09-03 20:59:07 UTC (rev 1750)
@@ -0,0 +1,23 @@
+Jcl8087.pas
+JclBorlandTools.pas
+JclCompression.pas
+JclCounter.pas
+JclEDI.pas
+JclEDISEF.pas
+JclEDITranslators.pas
+JclEDIXML.pas
+JclEDI_ANSIX12.pas
+JclEDI_ANSIX12_Ext.pas
+JclEDI_UNEDIFACT.pas
+JclEDI_UNEDIFACT_Ext.pas
+JclExprEval.pas
+JclMIDI.pas
+JclPCRE.pas
+JclSchedule.pas
+JclStreams.pas
+JclStrHashMap.pas
+JclUnitVersioning.pas
+JclUnitVersioningProviders.pas
+JclValidation.pas
+JclWideStrings.pas
+pcre.pas
Property changes on: trunk/jcl/lib/d9.net/common.exc
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/jcl/lib/d9.net/debug
___________________________________________________________________
Name: svn:ignore
+ *.dcuil
*.dcu
*.ddp
*.bpl
*.dcp
*.res
Added: trunk/jcl/lib/d9.net/debug/dirinfo.txt
===================================================================
--- trunk/jcl/lib/d9.net/debug/dirinfo.txt (rev 0)
+++ trunk/jcl/lib/d9.net/debug/dirinfo.txt 2006-09-03 20:59:07 UTC (rev 1750)
@@ -0,0 +1 @@
+This directory is intended a common place for .dcuil files of Delphi 2005 .NET packages with debug information.
\ No newline at end of file
Property changes on: trunk/jcl/lib/d9.net/debug/dirinfo.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: trunk/jcl/lib/d9.net/vcl.exc
===================================================================
--- trunk/jcl/lib/d9.net/vcl.exc (rev 0)
+++ trunk/jcl/lib/d9.net/vcl.exc 2006-09-03 20:59:07 UTC (rev 1750)
@@ -0,0 +1,3 @@
+JclGraphics.pas
+JclGraphUtils.pas
+JclPrint.pas
\ No newline at end of file
Property changes on: trunk/jcl/lib/d9.net/vcl.exc
___________________________________________________________________
Name: svn:eol-style
+ native
Added: trunk/jcl/lib/d9.net/windows.exc
===================================================================
--- trunk/jcl/lib/d9.net/windows.exc (rev 0)
+++ trunk/jcl/lib/d9.net/windows.exc 2006-09-03 20:59:07 UTC (rev 1750)
@@ -0,0 +1,37 @@
+Hardlinks.pas
+JclAppInst.pas
+JclCIL.pas
+JclCLR.pas
+JclCOM.pas
+JclConsole.pas
+JclDebug.pas
+JclDotNet.pas
+JclHookExcept.pas
+JclLANMan.pas
+JclLocales.pas
+JclMapi.pas
+JclMetadata.pas
+JclMiscel.pas
+JclMsdosSys.pas
+JclMultimedia.pas
+JclNTFS.pas
+JclPeImage.pas
+JclRegistry.pas
+JclSecurity.pas
+JclShell.pas
+JclStructStorage.pas
+JclSvcCtrl.pas
+JclSynch.pas
+JclTask.pas
+JclTD32.pas
+JclUnicode.pas
+JclWideFormat.pas
+JclWin32.pas
+JclWin32Ex.pas
+JclWinMIDI.pas
+mscoree_TLB.pas
+mscorlib_TLB.pas
+MSHelpServices_TLB.pas
+MSTask.pas
+Snmp.pas
+zlibh.pas
\ No newline at end of file
Property changes on: trunk/jcl/lib/d9.net/windows.exc
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2006-09-03 20:55:54
|
Revision: 1749
http://svn.sourceforge.net/jcl/?rev=1749&view=rev
Author: outchy
Date: 2006-09-03 13:53:59 -0700 (Sun, 03 Sep 2006)
Log Message:
-----------
added ignore on .drc files
Property Changed:
----------------
trunk/jcl/examples/
trunk/jcl/examples/common/
trunk/jcl/examples/common/containers/
trunk/jcl/examples/common/containers/algorithms/
trunk/jcl/examples/common/containers/hashing/
trunk/jcl/examples/common/containers/lists/
trunk/jcl/examples/common/containers/performance/
trunk/jcl/examples/common/containers/trees/
trunk/jcl/examples/common/expreval/
trunk/jcl/examples/common/filesearch/
trunk/jcl/examples/common/graphics/
trunk/jcl/examples/common/multimedia/
trunk/jcl/examples/common/numformat/
trunk/jcl/examples/common/pcre/
trunk/jcl/examples/common/rtti/
trunk/jcl/examples/common/sysinfo/
trunk/jcl/examples/common/textreader/
trunk/jcl/examples/common/unitversioning/
trunk/jcl/examples/dotnet/
trunk/jcl/examples/dotnet/JCLNetDemo/
trunk/jcl/examples/windows/
trunk/jcl/examples/windows/appinst/
trunk/jcl/examples/windows/asuser/
trunk/jcl/examples/windows/clr/
trunk/jcl/examples/windows/debug/
trunk/jcl/examples/windows/debug/framestrack/
trunk/jcl/examples/windows/debug/reportconverter/
trunk/jcl/examples/windows/debug/sourceloc/
trunk/jcl/examples/windows/debug/stacktrack/
trunk/jcl/examples/windows/debug/threadexcept/
trunk/jcl/examples/windows/delphitools/
trunk/jcl/examples/windows/delphitools/common/
trunk/jcl/examples/windows/delphitools/dependencyviewer/
trunk/jcl/examples/windows/delphitools/peviewer/
trunk/jcl/examples/windows/delphitools/resfix/
trunk/jcl/examples/windows/delphitools/screenjpg/
trunk/jcl/examples/windows/delphitools/toolhelpview/
trunk/jcl/examples/windows/edisdk/
trunk/jcl/examples/windows/edisdk/comserver/
trunk/jcl/examples/windows/edisdk/vb5/
trunk/jcl/examples/windows/fileversion/
trunk/jcl/examples/windows/lanman/
trunk/jcl/examples/windows/locales/
trunk/jcl/examples/windows/mapi/
trunk/jcl/examples/windows/multimedia/
trunk/jcl/examples/windows/ntfs/
trunk/jcl/examples/windows/ntservice/
trunk/jcl/examples/windows/peimage/
trunk/jcl/examples/windows/registry/
trunk/jcl/examples/windows/structstorage/
trunk/jcl/examples/windows/sysinfo/
trunk/jcl/examples/windows/tasks/
Property changes on: trunk/jcl/examples
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/containers
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/containers/algorithms
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/containers/hashing
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/containers/lists
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/containers/performance
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/containers/trees
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/expreval
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/filesearch
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/graphics
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/multimedia
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/numformat
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/pcre
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/rtti
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/sysinfo
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/textreader
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/common/unitversioning
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/dotnet
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/dotnet/JCLNetDemo
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/appinst
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/asuser
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/clr
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/debug
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/debug/framestrack
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/debug/reportconverter
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/debug/sourceloc
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/debug/stacktrack
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/debug/threadexcept
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/delphitools
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/delphitools/common
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/delphitools/dependencyviewer
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/delphitools/peviewer
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/delphitools/resfix
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/delphitools/screenjpg
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/delphitools/toolhelpview
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/edisdk
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/edisdk/comserver
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/edisdk/vb5
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/fileversion
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/lanman
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/locales
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/mapi
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/multimedia
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/ntfs
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/ntservice
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/peimage
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/registry
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/structstorage
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/sysinfo
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
Property changes on: trunk/jcl/examples/windows/tasks
___________________________________________________________________
Name: svn:ignore
- makefile.mak
*.identcache
*.local
*.cfg
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2006-09-03 17:54:29
|
Revision: 1748
http://svn.sourceforge.net/jcl/?rev=1748&view=rev
Author: outchy
Date: 2006-09-03 10:53:21 -0700 (Sun, 03 Sep 2006)
Log Message:
-----------
New installer core:
- compilation of the JCL for the .net Framework (to be improved)
- complete abstraction of the GUI and of the storage
- new icons for "radio" buttons and installation steps in the installer
Modified Paths:
--------------
trunk/jcl/install/JclInstall.pas
trunk/jcl/install/JediInstall.pas
trunk/jcl/install/JediInstaller.dpr
trunk/jcl/install/JediInstaller.res
trunk/jcl/install/QJediInstaller.dof
trunk/jcl/install/QJediInstaller.dpr
trunk/jcl/install/QJediInstaller.kof
trunk/jcl/install/QJediInstaller.res
trunk/jcl/install/makefile.mak
trunk/jcl/install/prototypes.mak
trunk/jcl/install.sh
Added Paths:
-----------
trunk/jcl/install/ClxGui/
trunk/jcl/install/ClxGui/QJediGUIInstall.xfm
trunk/jcl/install/ClxGui/QJediGUIMain.xfm
trunk/jcl/install/ClxGui/QJediGUIReadme.xfm
trunk/jcl/install/JediInstallConfigIni.pas
trunk/jcl/install/VclGui/
trunk/jcl/install/VclGui/FrmCompile.dfm
trunk/jcl/install/VclGui/FrmCompile.pas
trunk/jcl/install/VclGui/JediGUIInstall.dfm
trunk/jcl/install/VclGui/JediGUIMain.dfm
trunk/jcl/install/VclGui/JediGUIReadme.dfm
trunk/jcl/install/prototypes/JediGUIInstall.pas
trunk/jcl/install/prototypes/JediGUIMain.pas
trunk/jcl/install/prototypes/JediGUIReadme.pas
trunk/jcl/install/prototypes.sh
Removed Paths:
-------------
trunk/jcl/install/FrmCompile.dfm
trunk/jcl/install/FrmCompile.pas
trunk/jcl/install/JediInstallerMain.dfm
trunk/jcl/install/ProductFrames.dfm
trunk/jcl/install/QJediInstallerMain.xfm
trunk/jcl/install/QProductFrames.xfm
trunk/jcl/install/prototypes/JediInstallerMain.pas
trunk/jcl/install/prototypes/ProductFrames.pas
trunk/jcl/install/prototypes/jpp.sh
Property changes on: trunk/jcl/install/ClxGui
___________________________________________________________________
Name: svn:ignore
+ QJediGUIInstall.pas
QJediGUIMain.pas
QJediGUIReadme.pas
Copied: trunk/jcl/install/ClxGui/QJediGUIInstall.xfm (from rev 1747, trunk/jcl/install/QProductFrames.xfm)
===================================================================
--- trunk/jcl/install/ClxGui/QJediGUIInstall.xfm (rev 0)
+++ trunk/jcl/install/ClxGui/QJediGUIInstall.xfm 2006-09-03 17:53:21 UTC (rev 1748)
@@ -0,0 +1,98 @@
+object InstallFrame: TInstallFrame
+ Left = 0
+ Top = 0
+ Width = 791
+ Height = 424
+ HorzScrollBar.Range = 385
+ Color = clBackground
+ Font.Color = clText
+ Font.Height = 12
+ Font.Name = 'helvetica'
+ Font.Pitch = fpVariable
+ Font.Style = []
+ Font.Weight = 40
+ ParentColor = False
+ ParentFont = False
+ TabOrder = 0
+ object Splitter: TSplitter
+ Left = 406
+ Top = 0
+ Width = 5
+ Height = 424
+ Align = alRight
+ MinSize = 150
+ ResizeStyle = rsUpdate
+ OnCanResize = SplitterCanResize
+ end
+ object ComponentsTreePanel: TPanel
+ Left = 0
+ Top = 0
+ Width = 406
+ Height = 424
+ Align = alClient
+ BevelOuter = bvNone
+ TabOrder = 1
+ object Label1: TLabel
+ Left = 8
+ Top = 8
+ Width = 155
+ Height = 15
+ Caption = '&Select components to install'
+ end
+ object TreeView: TTreeView
+ Left = 8
+ Top = 24
+ Width = 394
+ Height = 393
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ Columns = <>
+ Indent = 19
+ ReadOnly = True
+ TabOrder = 0
+ OnCustomDrawItem = TreeViewCustomDrawItem
+ OnKeyPress = TreeViewKeyPress
+ OnMouseDown = TreeViewMouseDown
+ end
+ end
+ object InfoPanel: TPanel
+ Left = 411
+ Top = 0
+ Width = 380
+ Height = 424
+ Align = alRight
+ BevelOuter = bvNone
+ TabOrder = 0
+ object ProgressBar: TProgressBar
+ Left = 104
+ Top = 6
+ Width = 270
+ Height = 14
+ Anchors = [akLeft, akTop, akRight]
+ end
+ object Label2: TLabel
+ Left = 9
+ Top = 8
+ Width = 84
+ Height = 15
+ Caption = 'Installation &Log'
+ end
+ object InfoDisplay: TMemo
+ Left = 8
+ Top = 24
+ Width = 366
+ Height = 301
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ ScrollBars = ssVertical
+ TabOrder = 0
+ end
+ object OptionsGroupBox: TGroupBox
+ Left = 8
+ Top = 336
+ Width = 366
+ Height = 81
+ Anchors = [akLeft, akRight, akBottom]
+ Caption = '&Advanced Options'
+ TabOrder = 1
+ end
+ end
+end
Copied: trunk/jcl/install/ClxGui/QJediGUIMain.xfm (from rev 1747, trunk/jcl/install/QJediInstallerMain.xfm)
===================================================================
--- trunk/jcl/install/ClxGui/QJediGUIMain.xfm (rev 0)
+++ trunk/jcl/install/ClxGui/QJediGUIMain.xfm 2006-09-03 17:53:21 UTC (rev 1748)
@@ -0,0 +1,587 @@
+object MainForm: TMainForm
+ Left = 280
+ Top = 163
+ Width = 838
+ Height = 608
+ VertScrollBar.Range = 49
+ ActiveControl = InstallBtn
+ AutoScroll = False
+ Caption = 'JEDI Installer'
+ Color = clButton
+ Font.Color = clText
+ Font.Height = 12
+ Font.Name = 'helvetica'
+ Font.Pitch = fpVariable
+ Font.Style = []
+ Font.Weight = 40
+ ParentFont = False
+ Position = poScreenCenter
+ ShowHint = True
+ OnCreate = FormCreate
+ OnDestroy = FormDestroy
+ PixelsPerInch = 96
+ TextHeight = 15
+ TextWidth = 6
+ object StatusBevel: TBevel
+ Left = 8
+ Top = 582
+ Width = 395
+ Height = 19
+ Anchors = [akLeft, akRight, akBottom]
+ end
+ object Bevel1: TBevel
+ Left = 8
+ Top = 568
+ Width = 821
+ Height = 9
+ Anchors = [akLeft, akRight, akBottom]
+ Shape = bsTopLine
+ end
+ object ProgressBar: TProgressBar
+ Left = 412
+ Top = 582
+ Width = 153
+ Height = 19
+ Anchors = [akLeft, akRight, akBottom]
+ Visible = False
+ end
+ object StatusLabel: TLabel
+ Left = 16
+ Top = 584
+ Width = 379
+ Height = 14
+ Anchors = [akLeft, akRight, akBottom]
+ AutoSize = False
+ Caption = 'StatusLabel'
+ end
+ object TitlePanel: TPanel
+ Left = 0
+ Top = 0
+ Width = 838
+ Height = 49
+ Align = alTop
+ BevelWidth = 2
+ BorderStyle = bsSingle
+ Color = 9981440
+ TabOrder = 2
+ object JediImage: TImage
+ Left = 708
+ Top = 9
+ Width = 116
+ Height = 31
+ Cursor = crHandPoint
+ Anchors = [akTop, akRight]
+ AutoSize = True
+ Picture.Data = {
+ 07544269746D617046120000424D421200000000000036040000280000007400
+ 00001F00000001000800000000000C0E00000000000000000000000100000001
+ 0000FFFFFF000808080010101000181818002121210029292900313131003939
+ 3900424242004A4A4A00525252005A5A5A00636363006B6B6B00737373007B7B
+ 7B00848484008C8C8C00949494009C9C9C00A5A5A500ADADAD00B5B5B500BDBD
+ BD00C6C6C600CECECE00D6D6D600DEDEDE00E7E7E700EFEFEF00F7F7F700E7E7
+ EF00EFEFF700CECED600D6D6DE00DEDEE700A5A5AD00ADADB50094949C009C9C
+ A50084848C00E7E7F7006B6B73007B7B840063636B0052525A00292931002121
+ 290042425200181821001818290008081000101021000808180039425A00D6DE
+ EF00CED6E700B5BDCE00ADB5C600525A6B0029314200C6CEDE00A5ADBD00DEE7
+ F700D6DEE700949CA500CEDEEF00C6D6E700A5B5C600525A63008C9CAD00A5BD
+ D6003139420010182100E7EFF700CED6DE00C6CED600ADB5BD00A5ADB5008C94
+ 9C00BDCEDE00B5C6D6009CADBD004A525A00BDD6EF000810180010213100DEE7
+ EF0039424A0018212900A5BDCE00849CAD00BDD6E7009CB5C600CEE7F700CEDE
+ E700ADBDC6008C9CA5004A5A6300C6D6DE00A5B5BD0084949C0063737B00DEEF
+ F700BDCED600B5C6CE009CADB50094A5AD007B8C9400C6DEE700A5BDC600849C
+ A500B5CED6009CB5BD0094ADB5008CA5AD007B949C00E7EFEF00EFF7F700F7FF
+ FF00CED6D600DEE7E700B5BDBD00A5ADAD00BDC6C6008C949400949C9C00848C
+ 8C00737B7B00E7F7F7006B737300C6D6D600ADBDBD00B5C6C600BDCECE00A5B5
+ B5005A6363009CADAD008C9C9C0094A5A50084949400BDD6D600ADC6C6009CB5
+ B500849C9C0094B5B500182121001829290008101000BDCEC6009CADA500CEDE
+ D600C6D6CE00E7EFE700CED6CE00D6DED6006B736B0010181000EFEFE700F7F7
+ EF00FFFFF700CECEC600DEDED600E7E7DE00BDBDB500ADADA500C6C6BD00A5A5
+ 9C008C8C840084847B00CECEBD005A5A5200ADAD9C009C9C8C004A4A42004242
+ 3900EFE7CE00B5AD9C0029211000BDB5A500C6A56B00C6B59C00CEC6BD00ADA5
+ 9C00F7EFE700DED6CE00D6CEC600B5ADA5009C948C00948C8400EFDECE00A57B
+ 5200E7DED600C6BDB500B5A59C0094847B009C8C84004A393100634A4200EFE7
+ E700CEC6C600E7DEDE00BDB5B500B5ADAD00C6BDBD00A59C9C00BDADAD00C6B5
+ B5005A525200B5A5A500AD9C9C009C8C8C00A59494004A4242008C7B7B003931
+ 3100A58C8C009C848400947B7B005A4A4A008C737300846B6B007B6363008C6B
+ 6B007B5A5A002118180073525200634242005A313100522929004A2121004218
+ 180052212900734A52005A313900522931004A2129004A18210094737B008463
+ 6B0073525A006B4A52004A293100AD949C00A58C94009C848C00EFE7EF00F7EF
+ F700FFF7FF00D6CED60039313900211821001810180010081000100818000000
+ 0000A903FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00BBBBBBB3B3BBB3BBB3
+ BBB3BBB3B3BBB3B3BBB3BBB3BBB3BBB3BBB3BBB3B3BBB3B3B3BBB3BBB3BBB3BB
+ B3BBBBB3BBBBB3BBB3BBB3BBB3BBB3BBB3B3BBB3BBB3BBB3BBB3B3BBB3BBB3BB
+ B3BBB3BBB3BBB3BBBBBBBBBBB3B3BBB3BBB3B3DDEBE4EBE5DFA2BACFC7C900BA
+ E5EDEBDCBBBBB3B3BBFF00C1C1C1C1A4A4C1C1A4C1A4C1C1A4C1A4A4C1A4C1A4
+ C1A4C1A4C1C1A4C1A4C1A4C1A4C1A4C1A4C1A4C1A4C1C1C1A4C1C1A4C1C1A4C1
+ A4C1A4C1C1A4C1A4C1A4C1A4C1C1A4C1A4C1A4C1A4C1A4C1A4C1C1A4C1C1C1C1
+ C1A4C1A4C1C1A4C1DCEBE5E31E009E1AD11D1BEADED9EAE8C4C1C1A4C1FF00B6
+ B6A6B6B6B6B6B6B6B6B6A6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6
+ B6B6B6B6B6B6B6B6B6B6A6B6B6A6B6B6B6B6B6B6B6B6B6A6B6B6B6B6B6B6B6B6
+ A6B6A6B6B6B6B6B6B6B6B6B6B6A6B6B6B6A6B6A6B6B6B6B6B6A6B6A6AAC3EBE5
+ F4C7F4DF20BAEADA0000B6EAEBC4B6B6B6FF00A1BABABABABAA1BAA1BABABAA1
+ BABAA1BABABABABAA1BABABAA1BABAA1BAA1BAA1BAA1BAA1BABAA1BAA1BABABA
+ BABABAA1A1BAA1BABAA1BABAA1BABAA1BABAA1BABABABABABABABAA1BAA1BAA1
+ BABAA1BABABABABAA1BABAA1BABABABABABAD2EBE5EADD00C9E5EF001DD600CA
+ E5EBC4BABAFF001AB91A1A1A1AB9B9B9B91AB9B9B91AB9A21AB91AB9B9B91A1A
+ B91A1AB9B9B9B91AB9B9B9B9B91AB9B9A2B91A1A1AB91AB9B9B9B9B91AB9B91A
+ B9B91AB9A21AB9B91AB91A1AB91A1AB9B9B9B9B9B91AB9B91AB9B91AB9B91AB9
+ B91AB91AB91AB9BCEBE6D81AEADC001CE9D200BBEDECEBB7A2FF00C0A2A219CA
+ A4CA17A2A2A2A2A2A2A2BA131313A2A2177D1215A2A2C815822A2C9C7D12A2A2
+ A1CB802C8213A4C0A2C812137E137E13CAA2A21610800E0D8013A2A2A2A12714
+ 13A4C0A2A2A2A2187B101028CDBAA2A2A21313137E141414A2171413D5EBEBE4
+ E000C9E2D100CFE8E2D1EAEBD2FF00A3A3A37B41746C18A3A3C9A3A3A3A34D85
+ 3E60A3A36B84728BA3197B4C689B4B1B9860A9A34E914B8698696B14A3237C84
+ 86691C8E4DA3787A86851B9922251AA3A322224B4027A3A3A3A316781B4A6983
+ 607E14A340864322401D1E16A31E1E766CFAEBE6DC00D1D200C8ECF01C00CFE5
+ E5FF001CC7C77E6A4E6A65C7C79EC7C7C7C7896A916AC799643E854EC71A526E
+ 64916A724E894E19274D718564858318C71A8660697C69A27CC986869A4B6319
+ 401C2CC7C71C401F76A5C7C7C7C74019691A404A1F760CC775764A811E374D15
+ 9EFE9DFD02FD09EBEBD20000CFE4F5A01C00CEEAEAFF009F9F1D15898B896A1D
+ 9F1D9F1D9F1D7B6471211D9F7C868F4E1D21608539211C3A606A8E18698564BA
+ 218540849F1A8D78784C7979231C634B68981C1F5720171D9F1D1F1E75159F1D
+ 9F1F37797976201E1E1E1EA21E408C3B0F110C159F0333B2B2C510DBEBE5DAD3
+ EBCE00CC1ABAE3A2C8FF001E1E1E7E736B73611E1E1E1E1E1E1E249187731E1E
+ 646B7B6B1E785D713A981E876A9885178469861A1983867B1E2278221BA11E1E
+ 1E9F1E7557221E1C1D1D1A1E1E1D76381F151E1E1E20765F3918195692494915
+ 03FE31FE191E1E1E1EFDB5C11DBFB4B0CCECECE4A200D3D1C9DC1B1E00FF0000
+ 00007E4D64844EA5CB18F7A000008B8685891AA64E8F89890022868E6818009B
+ 8569987A784C4B1A694B40250022386350160000001E1F9F1DA200793F1D1900
+ 00001E7551250000007A5308310F1A350403FC16920404941800000000020B1E
+ C0BEB81E05D7EBEBD9EEF59FCF1EB61DA2FF00000000656F7E746B6561650B13
+ 1D008B6F6B5A8261527A691C00227C408E18004B401B79215723791D2363404E
+ 009B976340A11E1E00001E405F4B00795F371F0000279D49FE130000001431FC
+ 920F1902E19203160304040118001E000003032ABA9EBA0C0233BDEBE6EA9FF8
+ 9FD4C89FF0FF000000007D746B6B6B6F6B4E876F0E1E4E87644E686986257E00
+ 002260643E9500681B3778220000001D864C606A0022401E1E7F9C881A7C5345
+ 452800000000000000273105FB1400000019101010191A010304031604E103E1
+ 090A0A160003040204000A0102020DCCEBEBD81BDDCE00EFE6FF000000006573
+ 6F736B726B5D8464691B4D684B86514B86504B11005763573F18007C4B7086A2
+ 00000020545A8615004D3B49FE9232FE1A7B322FFB0D00000000000000130403
+ E114000000000000000019FD0304031604920392030303140003030304000A02
+ 02010D1B07EBE5EBD200F4E7F3FF000000008A6B7260601D4C72526A46784E64
+ 726E1B771C751C7A00406767817800571E3750A20000001B0892592D00103104
+ 3103FC011A15FB04E10D000000000000001403E1031400000000000000001A01
+ 03030316040403E103FC021300E1030305000A0201020D1C0202EBE5D8CCEBD2
+ 00FF000000003E64393A7200006E5239421B185C75671C0043393A7100252E59
+ 4927003CFEFE331C0000001B04FB040B0010FB03920C0F0C001231E1920D001E
+ 1F9E750000140403031400000000000000001A0204049D16030305020B0F0E00
+ 0003319D05000A0202010C1C020202F2EBECC200D1FF000000004F5B72527100
+ 0069508E8E226067713C1C0007593131001331042F14000731FB9D1C0000001B
+ 0492310A0010E1920417000000110392040D0010070706000013039203140000
+ 0000000000001A0103050316E1030402980000000003030204000A0201020C1C
+ 02010206F1E8F4D1E5FF000000A04D3F5E6350000050475047194F94FE021D00
+ 92E1040400139204E17B00060492031C00A0001A03E1E1D0001003E103180000
+ 0012E104E10D000F0303030000130404031400000000A0000000210204030316
+ 04040302C80000000003030205002D0202020E1B0202FD061DE2E5E5EBFF001E
+ 1E1E8C7482452D1E1E3030303C150A03039D14140404E12F1ECD0403FB0E1903
+ E1E1031D1E1E1E190492030A1E2B03920310A71321A7E1920308180992040218
+ A70E03E1030E13CB1E1E1E1E1E1EBA94E192031504030402111413191E030302
+ 2FA40401020113A2020294061ECAEBEBEBFF001D1DF709FE03FBFC1D1E02E192
+ 03150A0304E102FC030403D09F160392033101040492011D1D1D9F190403040A
+ 9FA803E1040202021117E192E10394E103030A02020392E192FC02089E1D1D1D
+ 1D1D190203E10215E1040392030202109F0303020201020202011B1A0202FD06
+ 9F1DBDEBE4FF009EC79E099DFB9203161002E10303150AFC04319203E103011A
+ C71A0104E1FBFB04030114C7C7C71CA131E1030A9E2B03030304030211C792E1
+ 0492E19203011A0103E10392030404091CC7C7C7C7C71994039203A531040303
+ E10303A8C703020301020133FD0B9E18020102059EC7C7A4EBFF00A3A3A30903
+ 040403020392E10402A20F08AE08AE08080B1DA3A3A31807080707AF0A10A3A3
+ A3A3A3BA0B0A0A10A3130A0A0A0A0AAEA1A3A308090707070A12A3060A0AD00A
+ 0A0A0A10A3A3A3A3A3A3A10192E103150BAB0A0A0A0A0A15A3080A0909090AAF
+ 15A3A3A10909090EA3A3A31CC1FF00A2A2C009030303040303E1040110C0A2A2
+ A2C0A2C0A2A2C0A2A2C0A2B91ABAA11AA2A2C0A2A2C0A2A2A2C0A2A2A2C0A2A2
+ C0A2C0A2A2C0A2A2B9BA1AA1A2C0A2A2C0A2A2C0A2A2A2A2A2C0A2A2A2A21802
+ 03E102A4A2A2A2C0A2A2A2A2C0A2C0A2A2A2C0A2C0A2A2C0A2A2B9C0A2A2A2A2
+ A2FF00B91AB90A03040492042F060AA81A1AB99BB91A1A1AB91A1AB91A1A1AB9
+ 1A1AB91AB91A1AB91A1A1A1AB91AB91A1AB91A1A1AB91A1A1A1AB91A1A1AB9B9
+ 9B1AB91A1A1A1A1AB91AB91A1A1AB91AB91AC89404040316B91A1A1AB91AB91A
+ 1A1A1AB91A1AB91A9BB91AB9B91A1A1AB91AB91AB9FF00BAA1BAA1BABABABABA
+ BABAA1BAA1BAA1BAA1BABABAA1BABAA1BABABAA1BABAA1BAA1BABAA1BABABABA
+ A1BAA1BABAA1BABABAA1BABABABAA1BABABAA1A1BABAA1BABABABABAA1BAA1BA
+ BABAA1BAA1BAA1BABAA1BABAA1BABABAA1BAA1BABABABAA1BABAA1BABAA1BAA1
+ A1BABABAA1BAA1BABAFF00B6B6B6B6B6C1AAC1AAC1AAA6B6B6B6B6B6C1B6C1AA
+ B6B6B6B6B6B6C1AAB6C1AAB6B6B6C1AAB6C1AAC1AAC1AAB6B6C1AAC1AAB6B6C1
+ AAB6B6B6C1AAB6B6B6C1B6B6B6C1AAC1AAB6B6C1AAC1AAB6B6B6B6B6C1AAB6B6
+ B6B6C1AAB6B6B6B6B6C1AAB6B6C1B6B6B6C1AAB6B6B6B6B6B6B6B6B6B6FF00A4
+ C1C1A4C1C1C1C1C1C1C1C1C1C1C1A4C1C1C1C1C1A4C1C1A4C1C1C1C1C1C1C1A4
+ C1C1C1C1C1C1C1C1C1C1C1A4C1C1C1C1C1A4C1C1C1A4C1C1C1C1A4C1C1C1C1A4
+ C1C1C1C1A4C1C1C1C1C1C1A4C1C1A4C1C1C1C1C1A4C1C1C1A4C1A4C1C1C1C1A4
+ C1C1C1C1C1C1C1A4C1C1C1A4C1C1C1C1C1FF00B3BBB3B3B3BBB3BBB3BBB3BBB3
+ BBB3B3B3BBB3B3BBB3BBB3B3BBB3BBB3BBB3BBB3B3BBB3BBB3BBB3BBB3BBB3B3
+ B3BBB3BBB3BBB3BBB3B3B3BBB3BBB3BBB3BBB3B3B3BBB3BBB3BBB3BBB3BBB3B3
+ B3BBB3BBB3BBB3BBB3BBB3BBB3BBB3BBB3BBB3B3BBB3B3BBB3BBB3B3BBB3BBB3
+ BBB3BBB3BBFF00ACC2ACC2ACC2ACC2B7B1B7B1B7B1B7B1B7B1B7B1B7B1B7B1B7
+ B1B7B1B7B1B7B1B7ACC2ACC2ACC2ACC2ACC2ACC2ACC2ACC2ACC2ACC2ACC2ACC2
+ ACC2ACC2ACC2ACC2ACC2ACC2ACC2ACC2ACC2B7B1B7B1B7B1B7B1B7B1B7B1B7B1
+ B7B1B7B1B7B1B7C2ACC2ACC2ACC2ACC2ACC2ACC2ACC2ACC2ADFF000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000001E0E}
+ OnClick = JediImageClick
+ end
+ object Title: TLabel
+ Left = 8
+ Top = 13
+ Width = 197
+ Height = 24
+ Caption = 'Project JEDI Installer'
+ Font.Color = clWhite
+ Font.Height = 21
+ Font.Name = 'helvetica'
+ Font.Pitch = fpVariable
+ Font.Style = []
+ Font.Weight = 40
+ ParentFont = False
+ end
+ end
+ object InstallBtn: TBitBtn
+ Left = 572
+ Top = 579
+ Width = 80
+ Height = 25
+ Anchors = [akRight, akBottom]
+ Caption = '&Install'
+ TabOrder = 0
+ OnClick = InstallBtnClick
+ Glyph.Data = {
+ 3A030000424D3603000000000000360000002800000010000000100000000100
+ 18000000000000030000230B0000230B00000000000000000000C6CED6C6CED6
+ C6CECECECED6C6CED6C6CED6C6CECECECECEC6CED6BDB5B5C6C6BDC6CECEC6CE
+ D6C6CECEC6CED6C6CED6C6CED6C6CED6C6D6CEC6CED6C6CED6C6CECEADB5BDAD
+ ADADBDB5AD185294527394CEC6B59C9CADBDB5B5C6CECEC6CED6C6CED6C6CED6
+ CECECEC6CED6C6CED6B5C6CE296BA5185294425A8431A5D63184B5425A7B1052
+ 94637B8CCECECEC6CECEC6CED6C6CED6C6CECEC6CED6C6CECEB5BDBD4AADDE39
+ A5DE1884BD39B5E7219CCE107BB5109CCE5294A5C6C6BDC6CECEC6CED6C6CED6
+ C6D6CEC6CED6B5BDCE3163943194CE52BDEF39B5E739B5E731A5D6219CD6109C
+ CE10639C5A7394CECECEC6CED6C6CED6CECECEC6CED6ADC6D6399CD64AB5EF52
+ BDEF63C6EF94ADBD396B840873B51084BD008CC6217BADCECECEC6CED6C6CECE
+ C6CED6C6CED6B5C6CE5ABDD652BDEF42BDEF94D6EFADADAD4A636B107BB50894
+ CE109CCE52ADC6C6CECEC6CED6C6CED67BAD7BC6C6ADA5BD94088408218C844A
+ B5EF94D6EFADADAD4A636B219CCE189CCE9CB5BDC6CECEC6CED6C6CED69CC69C
+ 21AD31188C18399C3131CE5229AD7B39B5BD84CEB59C94945A636363ADC642AD
+ D6ADC6D6C6CECEC6CED6C6CED69CBD8452E77342D65A31CE5231CE5221BD3121
+ AD314AB542847B5A847B6BC6C6C6C6CED6C6CECEC6CED6C6CED694BD9C219C21
+ 42D65A4AE76B52D66B4ABD5A21AD3118AD2110A5100884088CA563CECECEC6CE
+ D6C6CED6C6CED6C6CECE9CD6AD52E77B52E77B52E77BADD6B5848C8C21732100
+ 8C0808A510009C088CB56BC6CED6C6CECECED6D6C6CED6C6CECEC6D6CEADDEBD
+ 52E77B63E77BC6D6C68C8C8C318C3918AD2110A51073B55AB5CEBDC6CED6C6CE
+ CEC6CED6C6CED6C6CED6C6CED6C6CECE52D66B63E784C6D6C68C8C8C39944221
+ B52929AD29CECEBDC6CED6C6CED6CECECEC6CED6CED6D6C6CECEC6CED6C6CED6
+ ADDEBD9CD6ADBDB5A563635A8C947394C69CB5CEBDC6CED6C6CED6C6CECEC6CE
+ D6C6CED6C6CECEC6CED6C6CED6C6CECEC6CED6C6CED6C6C6BD9C9C9CB5BDBDC6
+ CED6C6CECEC6CED6C6CED6C6CECEC6CED6C6CECEC6CED6C6CED6}
+ end
+ object QuitBtn: TBitBtn
+ Left = 748
+ Top = 579
+ Width = 80
+ Height = 25
+ Anchors = [akRight, akBottom]
+ Caption = '&Quit'
+ TabOrder = 1
+ OnClick = QuitBtnClick
+ Glyph.Data = {
+ 3A050000424D3605000000000000360400002800000010000000100000000100
+ 08000000000000010000230B0000230B000000010000000100000026B5000026
+ B600022BBE00072FBE000F30B5001A39B7001636B8001337BD001739B9001A39
+ B8001939BA001839BB001E3EBC001D3FBF002342BD002141BF002342BE00022C
+ C000052EC1000A32C0000B33C1000D35C0001238C200183CC0000132D7001138
+ D4000439E000053AE000083EE1001F44D9001941DE001F4CDF002347D8002248
+ DF00254EDE00244FDF002A4DDA002C51DB002F51DA002E51DB002F52DB002951
+ DC002A50DC002D51DC003053DC000D42E0000F43E1000A43E8000E48E9001547
+ E0001848E0001C4BE000134BE900264EE2002352E6002450E4002C50E1002C51
+ E1002C52E2002C55E4002C58E6002456E8002D5CE8002C5DE9003053E1003054
+ E2003154E2003558E2003759E300385AE3003A5BE3003A5CE3003B5DE3003F5F
+ E4003F60E3003763E8004261E4004162E4004363E4004066E7004464E5004564
+ E5004665E5004865E4004867E5004C67E5004669E6004868E5004B68E5004B69
+ E5004A69E600496AE6004E6CE6004F6CE6004E6DE600506CE600516CE600506D
+ E600536FE7005470E7005673E7005A75E8005B76E8005D78E8005E79E800637D
+ E800627CE900657EE9007F90D1006781EA006483EC006587EE006A83E9006B83
+ E9006B85EA006C85EA006C86EB006F88EB006F8FEF007086EA007089EB00728A
+ EC00728FEE00768DEC00778EEC007990EC007A91EC007E94ED006B8DF0007192
+ F1007294F1008596DC008A9BDE008093ED008195ED008097ED008398EE00899D
+ EE008B9EEE008CA0EF008DA1EF0095A8F00097A8F00097A9F1009DAEF10098B1
+ F600A2B2F200A6B5F200B0BDF400B1BDF400B0BFF500B2BFF400B7C2F500BBC6
+ F500BBC8F600B6C7F800BACAF800D2D9DC00DBE3FB00DCE4FB00E0E6FB00E2E8
+ FB00E9EDFC00EBEFFC00EEF0FC00EFF1FD00F8F9FA00FFFFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000009DA6A7A7A7A7
+ A7A7A7A7A7A7A7A7A69DA683040609050B080715130311016CA6A7191D242627
+ 25292333312D1B1800A7A71E3844507FA1A7A79F81342F1A02A7A721454E92A7
+ 9A7A769CA791301C12A7A7394C8AA788564F4B3F82A7802E14A7A74358A3995E
+ 5BA7A73E3D9B9E3216A7A74962A7866157A7A73C366FA71F17A7A75165A7865F
+ 54A7A73B376EA7220DA7A75D69A5986053A7A73A3596A02A0FA7A762738FA785
+ 554C464174A7792B10A7A7687E7893A795777194A78D40280EA7A7728C87758E
+ A4A7A7A2894D472C0CA7A77C908B7D78706B6A67645C4D280AA7A6977B6D6663
+ 5D5A59524A48422084A69DA6A7A7A7A7A7A7A7A7A7A7A7A7A69D}
+ end
+ object ProductsPageControl: TPageControl
+ Left = 8
+ Top = 56
+ Width = 821
+ Height = 504
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ MultiLine = True
+ TabOrder = 3
+ end
+ object UninstallBtn: TBitBtn
+ Left = 660
+ Top = 579
+ Width = 80
+ Height = 25
+ Anchors = [akRight, akBottom]
+ Caption = '&Uninstall'
+ TabOrder = 5
+ OnClick = UninstallBtnClick
+ end
+ object ImageList: TImageList
+ Left = 32
+ Top = 416
+ Bitmap = {
+ 494D474C01000100100000001000000007000000424D361B0000000000003600
+ 00002800000030000000300000000100180000000000001B0000120B0000120B
+ 00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000BFBFBFBFBFBF7F
+ 7F7F7F7F7F7F7F7F000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ 000000BFBFBFBFBFBF7F7F7F0000000000000000007F7F7F7F7F7F7F7F7F0000
+ 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFF000000BFBFBFBFBFBF000000FFFFFF00FF00FF
+ FFFF00FF00FFFFFF0000007F7F7F7F7F7F000000FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+ BFBFBF000000FFFFFF000000000000000000000000000000FFFFFF0000007F7F
+ 7F000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFF000000BFBFBF7F7F7FFFFFFF00000000000000FF0000
+ 8000008000000000000000FFFFFF7F7F7F7F7F7F000000FFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000BFBFBF
+ 00000000FF0000000000FF0000800000FF0000800000800000000000FF000000
+ 007F7F7F000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFF000000FFFFFF000000FFFFFF00000000FF0000FF0000
+ FF0000FF00008000000000FFFFFF0000007F7F7F000000FFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+ 00000000FF00000000FFFFFF00FF0000FF0000800000FF0000000000FF000000
+ 00BFBFBF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFF000000FFFFFF7F7F7FFFFFFF000000000000FFFFFFFF
+ FFFF00FF00000000000000FFFFFF7F7F7FBFBFBF000000FFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+ BFBFBF000000FFFFFF000000000000000000000000000000FFFFFF000000BFBF
+ BF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFBFBFBF000000FFFFFF00FF00FF
+ FFFF00FF00FFFFFF000000BFBFBFBFBFBF000000FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ 000000FFFFFFBFBFBF7F7F7F0000000000000000007F7F7FBFBFBFBFBFBF0000
+ 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFF
+ FFFFBFBFBFBFBFBF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFF808080808080808080808080FFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000
+ 0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080808080FFFFFFFF
+ FFFFFFFFFFFFFFFF808080808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF000000000000C0C0C0C0C0C0808080808080808080000000000000FFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000BFBFBFBFBFBF7F
+ 7F7F7F7F7F7F7F7F000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080
+ 80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000C0C0C0C0C0C080808000000000
+ 0000000000808080808080808080000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ 000000BFBFBFBFBFBF7F7F7F0000000000000000007F7F7F7F7F7F7F7F7F0000
+ 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF00
+ 0000000000FFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFF000000
+ C0C0C0C0C0C0000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFF0000008080808080
+ 80000000FFFFFFFFFFFFFFFFFF000000BFBFBFBFBFBF000000FFFFFF0000FFFF
+ FFFF0000FFFFFFFF0000007F7F7F7F7F7F000000FFFFFFFFFFFFFFFFFFFFFFFF
+ 808080FFFFFFFFFFFF000000000000000000000000000000000000FFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFF000000C0C0C0000000FFFFFF00000000000000
+ 0000000000000000FFFFFF000000808080000000FFFFFFFFFFFFFFFFFF000000
+ BFBFBF000000FFFFFF000000000000000000000000000000FFFFFF0000007F7F
+ 7F000000FFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFF00000000000000
+ 0000000000000000000000FFFFFFFFFFFFFFFFFF808080FFFFFF000000C0C0C0
+ 808080FFFFFF000000000000C0C0C0808080808080000000000000FFFFFF8080
+ 80808080000000FFFFFF000000BFBFBF7F7F7FFFFFFF0000000000000000FF00
+ 0080000080000000000000FFFFFF7F7F7F7F7F7F000000FFFFFFFFFFFF808080
+ FFFFFFFFFFFF000000000000000000000000000000000000000000000000FFFF
+ FFFFFFFF808080FFFFFF000000C0C0C0000000C0C0C0000000C0C0C0808080C0
+ C0C0808080808080000000C0C0C0000000808080000000FFFFFF000000BFBFBF
+ 0000000000FF0000000000FF0000800000FF0000800000800000000000FF0000
+ 007F7F7F000000FFFFFFFFFFFF808080FFFFFFFFFFFF00000000000000000000
+ 0000000000000000000000000000FFFFFFFFFFFF808080FFFFFF000000FFFFFF
+ 000000FFFFFF000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFF0000
+ 00808080000000FFFFFF000000FFFFFF000000FFFFFF0000000000FF0000FF00
+ 00FF0000FF000080000000FFFFFF0000007F7F7F000000FFFFFFFFFFFF808080
+ FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000FFFFFFFFFF
+ FFFFFFFF808080FFFFFF000000FFFFFF000000C0C0C0000000FFFFFFC0C0C0C0
+ C0C0808080C0C0C0000000C0C0C0000000C0C0C0000000FFFFFF000000FFFFFF
+ 0000000000FF000000FFFFFF0000FF0000FF0000800000FF0000000000FF0000
+ 00BFBFBF000000FFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFF00000000000000
+ 0000000000000000000000FFFFFFFFFFFF808080FFFFFFFFFFFF000000FFFFFF
+ 808080FFFFFF000000000000FFFFFFFFFFFFC0C0C0000000000000FFFFFF8080
+ 80C0C0C0000000FFFFFF000000FFFFFF7F7F7FFFFFFF000000000000FFFFFFFF
+ FFFF0000FF000000000000FFFFFF7F7F7FBFBFBF000000FFFFFFFFFFFFFFFFFF
+ 808080FFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF000000
+ BFBFBF000000FFFFFF000000000000000000000000000000FFFFFF000000BFBF
+ BF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000FFFFFFFFFFFFFFFFFF000000FFFFFFBFBFBF000000FFFFFF0000FFFF
+ FFFF0000FFFFFFFF000000BFBFBFBFBFBF000000FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFF808080808080FFFFFFFFFFFFFFFFFFFFFFFF808080808080FFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000
+ 0000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ 000000FFFFFFBFBFBF7F7F7F0000000000000000007F7F7FBFBFBFBFBFBF0000
+ 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808080
+ 8080808080808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF000000000000000000000000000000000000000000000000000000FFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFF
+ FFFFBFBFBFBFBFBF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000
+ 0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFF808080808080808080808080FFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080808080FFFFFFFF
+ FFFFFFFFFFFFFFFF808080808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF8080808080808080808080808080808080808080808080808080808080
+ 80808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808080808080808080808080
+ 8080808080808080808080808080808080808080FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080
+ 80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFF00
+ 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF
+ 808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF808080FFFFFFFFFFFF000000000000000000FFFFFFFFFFFFFFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFF
+ FFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFF00000000000000
+ 0000000000000000FFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFF808080
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF808080FFFFFF000000000000FFFFFF000000000000000000FFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFF
+ FFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFF000000FFFFFFFF
+ FFFFFFFFFF000000000000000000FFFFFF808080FFFFFFFFFFFFFFFFFF808080
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFF
+ FF808080FFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFF000000FFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF
+ 808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFF8080808080808080808080808080808080808080808080808080808080
+ 80808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808080808080808080808080
+ 8080808080808080808080808080808080808080FFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFF808080808080FFFFFFFFFFFFFFFFFFFFFFFF808080808080FFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808080
+ 8080808080808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFF424DBE010000000000003E0000002800000030000000
+ 30000000010001000000000080010000120B0000120B00000200000002000000
+ FFFFFF00000000000000DB9999B9FFFF07C0BFFFFFFFFFFF1FF07BFFF6EBFFFF
+ 3FF8EFFEFFEFFFFF7ABCFFFFFFFFFFFF77DC7B377777FFFFEFEEFFEFFFFFFFFF
+ FFFE7FFFFFFFFFFFAFEECDDCDDDDFFFFBBFEFFFFFFFEFFFFACEEFFFFFFFFFFFF
+ 77DC77773577FFFF5ABCEFFFFFFFFFFF2FF8FFFEFFFFFFFF18F0FDDDFDDFFFFF
+ 07C0BE7EDFF7FFFF000000000000FFFF03C007C007C0FFFF0C301FF01FF0FFFF
+ 10083FF83FF8FFFF21847ABC7ABCFFFF27E477DC77DCFFFF47E2EFEEEFEEFFFF
+ 4FF2FFFEFFFEFFFF4FF2AFEEAFEEFFFF47E2BBFEBBFEFFFF27E4ACEEACEEFFFF
+ 21847FFC77DCFFFF10087FFC5ABCFFFF0C303FF82FF8FFFF03C01FF018F0FFFF
+ 000007C007C0FFFF000000000000FFFF0000000003C0FFFF000000000C30FFFF
+ 1FFC1FFC1008FFFF100410042004FFFF100411042004FFFF100413844002FFFF
+ 100417C44002FFFF100416E44002FFFF100414744002FFFF100410342004FFFF
+ 100410142004FFFF100410041008FFFF1FFC1FFC0C30FFFF0000000003C0FFFF
+ 000000000000FFFF}
+ end
+end
Added: trunk/jcl/install/ClxGui/QJediGUIReadme.xfm
===================================================================
--- trunk/jcl/install/ClxGui/QJediGUIReadme.xfm (rev 0)
+++ trunk/jcl/install/ClxGui/QJediGUIReadme.xfm 2006-09-03 17:53:21 UTC (rev 1748)
@@ -0,0 +1,16 @@
+object ReadmeFrame: TReadmeFrame
+ Left = 0
+ Top = 0
+ Width = 320
+ Height = 240
+ TabOrder = 0
+ TabStop = True
+ object ReadmePane: TTextViewer
+ Left = 0
+ Top = 0
+ Width = 320
+ Height = 240
+ Align = alClient
+ TabOrder = 0
+ end
+end
Property changes on: trunk/jcl/install/ClxGui/QJediGUIReadme.xfm
___________________________________________________________________
Name: svn:eol-style
+ native
Deleted: trunk/jcl/install/FrmCompile.dfm
===================================================================
--- trunk/jcl/install/FrmCompile.dfm 2006-09-03 14:30:32 UTC (rev 1747)
+++ trunk/jcl/install/FrmCompile.dfm 2006-09-03 17:53:21 UTC (rev 1748)
@@ -1,211 +0,0 @@
-object FormCompile: TFormCompile
- Left = 348
- Top = 311
- BorderIcons = []
- BorderStyle = bsDialog
- Caption = 'Compiling'
- ClientHeight = 165
- ClientWidth = 361
- Color = clBtnFace
- Font.Charset = DEFAULT_CHARSET
- Font.Color = clWindowText
- Font.Height = -11
- Font.Name = 'MS Sans Serif'
- Font.Style = []
- OldCreateOrder = False
- Position = poScreenCenter
- OnCloseQuery = FormCloseQuery
- PixelsPerInch = 96
- TextHeight = 13
- object PanelClient: TPanel
- Left = 8
- Top = 5
- Width = 345
- Height = 124
- TabOrder = 1
- object BevelProject: TBevel
- Left = 10
- Top = 6
- Width = 324
- Height = 19
- end
- object BevelStatus: TBevel
- Left = 10
- Top = 30
- Width = 324
- Height = 19
- end
- object BevelCurrentLine: TBevel
- Left = 10
- Top = 54
- Width = 160
- Height = 19
- end
- object BevelHints: TBevel
- Left = 10
- Top = 78
- Width = 105
- Height = 19
- end
- object LblProject: TLabel
- Left = 64
- Top = 9
- Width = 265
- Height = 13
- AutoSize = False
- Caption = 'Project filename'
- Transparent = True
- end
- object LblStatusCaption: TLabel
- Left = 14
- Top = 33
- Width = 29
- Height = 13
- Caption = 'Done:'
- Font.Charset = DEFAULT_CHARSET
- Font.Color = clWindowText
- Font.Height = -11
- Font.Name = 'MS Sans Serif'
- Font.Style = []
- ParentFont = False
- end
- object BevelTotalLines: TBevel
- Left = 174
- Top = 54
- Width = 160
- Height = 19
- end
- object LblCurrentLineCaption: TLabel
- Left = 14
- Top = 57
- Width = 56
- Height = 13
- Caption = 'Current line:'
- end
- object LblCurrentLine: TLabel
- Left = 158
- Top = 57
- Width = 6
- Height = 13
- Alignment = taRightJustify
- Caption = '0'
- end
- object LblTotalLinesCaption: TLabel
- Left = 178
- Top = 57
- Width = 51
- Height = 13
- Caption = 'Total lines:'
- end
- object LblTotalLines: TLabel
- Left = 322
- Top = 57
- Width = 6
- Height = 13
- Alignment = taRightJustify
- Caption = '0'
- end
- object BevelWarnings: TBevel
- Left = 120
- Top = 78
- Width = 105
- Height = 19
- end
- object BevelErrors: TBevel
- Left = 230
- Top = 78
- Width = 104
- Height = 19
- end
- object LblHintsCaption: TLabel
- Left = 14
- Top = 81
- Width = 27
- Height = 13
- Caption = 'Hints:'
- end
- object LblHints: TLabel
- Left = 104
- Top = 81
- Width = 6
- Height = 13
- Alignment = taRightJustify
- Caption = '0'
- end
- object LblWarningsCaption: TLabel
- Left = 124
- Top = 81
- Width = 48
- Height = 13
- Caption = 'Warnings:'
- end
- object LblWarnings: TLabel
- Left = 213
- Top = 81
- Width = 6
- Height = 13
- Alignment = taRightJustify
- Caption = '0'
- end
- object LblErrorsCaption: TLabel
- Left = 234
- Top = 81
- Width = 30
- Height = 13
- Caption = 'Errors:'
- end
- object LblErrors: TLabel
- Left = 322
- Top = 81
- Width = 6
- Height = 13
- Alignment = taRightJustify
- Caption = '0'
- end
- object LblProjectCaption: TLabel
- Left = 14
- Top = 9
- Width = 36
- Height = 13
- Caption = 'Project:'
- end
- object LblStatus: TLabel
- Left = 110
- Top = 33
- Width = 78
- Height = 13
- Caption = 'There are errors.'
- Font.Charset = DEFAULT_CHARSET
- Font.Color = clWindowText
- Font.Height = -11
- Font.Name = 'MS Sans Serif'
- Font.Style = []
- ParentFont = False
- end
- object LblErrorReason: TLabel
- Left = 8
- Top = 104
- Width = 73
- Height = 13
- Caption = 'LblErrorReason'
- Font.Charset = DEFAULT_CHARSET
- Font.Color = clRed
- Font.Height = -11
- Font.Name = 'MS Sans Serif'
- Font.Style = []
- ParentFont = False
- Visible = False
- end
- end
- object BtnOk: TButton
- Left = 144
- Top = 134
- Width = 75
- Height = 25
- Caption = 'OK'
- Default = True
- Enabled = False
- TabOrder = 0
- OnClick = BtnOkClick
- end
-end
Deleted: trunk/jcl/install/FrmCompile.pas
===================================================================
--- trunk/jcl/install/FrmCompile.pas 2006-09-03 14:30:32 UTC (rev 1747)
+++ trunk/jcl/install/FrmCompile.pas 2006-09-03 17:53:21 UTC (rev 1748)
@@ -1,354 +0,0 @@
-{-----------------------------------------------------------------------------
-The contents of this file are subject to the Mozilla Public License
-Version 1.1 (the "License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-http://www.mozilla.org/MPL/MPL-1.1.html
-
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
-the specific language governing rights and limitations under the License.
-
-The Original Code is: FrmCompile.pas, released on 2004-12-13.
-
-The Initial Developer of the Original Code is Andreas Hausladen
-(Andreas dott Hausladen att gmx dott de)
-Portions created by Andreas Hausladen are Copyright (C) 2004 Andreas Hausladen.
-All Rights Reserved.
-
-Contributor(s): -
-
-You may retrieve the latest version of this file at the Project JEDI's JVCL
-home page, located at http://jvcl.sourceforge.net
-
-Known Issues:
------------------------------------------------------------------------------}
-// $Id$
-
-unit FrmCompile;
-
-{$I jedi.inc}
-
-interface
-
-uses
- Windows, SysUtils, Classes, Graphics, Controls, Forms, StdCtrls, ExtCtrls;
-
-type
- TCompileLineType = (clText, clFileProgress, clHint, clWarning, clError, clFatal);
-
- ICompileMessages = interface
- ['{C932390B-8DB6-4CAE-89D0-7BAB8A2E640B}']
- procedure Clear;
-
- procedure AddHint(const Text: string);
- procedure AddWarning(const Text: string);
- procedure AddError(const Text: string);
- procedure AddFatal(const Text: string);
- procedure AddText(const Msg: string);
-
- { Text is the line that the compiler outputs. The ICompileMessages
- implementor must parse the line itself. }
- end;
-
- TFormCompile = class(TForm)
- PanelClient: TPanel;
- BtnOk: TButton;
- BevelProject: TBevel;
- BevelStatus: TBevel;
- BevelCurrentLine: TBevel;
- BevelHints: TBevel;
- LblProject: TLabel;
- LblStatusCaption: TLabel;
- BevelTotalLines: TBevel;
- LblCurrentLineCaption: TLabel;
- LblCurrentLine: TLabel;
- LblTotalLinesCaption: TLabel;
- LblTotalLines: TLabel;
- BevelWarnings: TBevel;
- BevelErrors: TBevel;
- LblHintsCaption: TLabel;
- LblHints: TLabel;
- LblWarningsCaption: TLabel;
- LblWarnings: TLabel;
- LblErrorsCaption: TLabel;
- LblErrors: TLabel;
- LblProjectCaption: TLabel;
- LblStatus: TLabel;
- LblErrorReason: TLabel;
- procedure BtnOkClick(Sender: TObject);
- procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- private
- FHints: Cardinal;
- FWarnings: Cardinal;
- FErrors: Cardinal;
- FCurrentLine: Cardinal;
- FTotalLines: Cardinal;
- FCurFilename: string;
- FCompileMessages: ICompileMessages;
- FAutoClearCompileMessages: Boolean;
- procedure SetCurrentLine(Line: Cardinal);
- function IsCompileFileLine(const Line: string): Boolean;
- public
- procedure Init(const ProjectName: string; Clear: Boolean = True);
- procedure Compiling(const Filename: string);
- procedure Linking(const Filename: string);
- procedure Done(const ErrorReason: string = '');
-
- function HandleLine(const Line: string): TCompileLineType;
-
- procedure IncHint;
- procedure IncWarning;
- procedure IncError;
-
- property Hints: Cardinal read FHints;
- property Warnings: Cardinal read FWarnings;
- property Errors: Cardinal read FErrors;
- property CurrentLine: Cardinal read FCurrentLine write SetCurrentLine;
-
- property AutoClearCompileMessages: Boolean read FAutoClearCompileMessages write FAutoClearCompileMessages default False;
- property CompileMessages: ICompileMessages read FCompileMessages write FCompileMessages;
- end;
-
-var
- FormCompile: TFormCompile;
-
-implementation
-
-{$IFDEF MSWINDOWS}
-{$I windowsonly.inc}
-uses
- FileCtrl;
-{$ENDIF MSWINDOWS}
-
-{$R *.dfm}
-
-resourcestring
- RsPreparing = 'Preparing...';
- RsCompiling = 'Compiling';
- RsLinking = 'Linking';
- RsDone = 'Done';
- RsThereAreErrors = 'There are errors.';
- RsThereAreWarnings = 'There are warnings.';
- RsThereAreHints = 'There are hints.';
- RsCompiled = 'compiled.';
-
-{ TFormCompile }
-
-procedure TFormCompile.BtnOkClick(Sender: TObject);
-begin
- Tag := 1;
- Close;
-end;
-
-function TFormCompile.HandleLine(const Line: string): TCompileLineType;
-
- function HasText(Text: string; const Values: array of string): Boolean;
- var
- i: Integer;
- begin
- Result := True;
- Text := AnsiLowerCase(Text);
- for i := 0 to High(Values) do
- if Pos(Values[i], Text) > 0 then
- Exit;
- Result := False;
- end;
-
-begin
- Result := clText;
- if Line = '' then
- Exit;
-
- if IsCompileFileLine(Line) then
- Result := clFileProgress
- else
- if HasText(Line, ['hint: ', 'hinweis: ', 'suggestion: ']) then // do not localize
- begin
- Result := clHint;
- IncHint;
- if Assigned(FCompileMessages) then
- FCompileMessages.AddHint(Line);
- end
- else if HasText(Line, ['warning: ', 'warnung: ', 'avertissement: ']) then // do not localize
- begin
- Result := clWarning;
- IncWarning;
- if Assigned(FCompileMessages) then
- FCompileMessages.AddWarning(Line);
- end
- else if HasText(Line, ['error: ', 'fehler: ', 'erreur: ']) then // do not localize
- begin
- Result := clError;
- IncError;
- if Assigned(FCompileMessages) then
- FCompileMessages.AddError(Line);
- end
- else if HasText(Line, ['fatal: ', 'schwerwiegend: ', 'fatale: ']) then // do not localize
- begin
- Result := clFatal;
- IncError;
- if Assigned(FCompileMessages) then
- FCompileMessages.AddFatal(Line);
- end;
-end;
-
-function TFormCompile.IsCompileFileLine(const Line: string): Boolean;
-
- function PosLast(Ch: Char; const S: string): Integer;
- begin
- for Result := Length(S) downto 1 do
- if S[Result] = Ch then
- Exit;
- Result := 0;
- end;
-
-var
- ps, psEnd, LineNum, Err: Integer;
- Filename: string;
-begin
- Result := False;
- ps := PosLast('(', Line);
- if (ps > 0) and (Pos(': ', Line) = 0) and (Pos('.', Line) > 0) then
- begin
- psEnd := PosLast(')', Line);
- if psEnd < ps then
- Exit;
-
- Filename := Copy(Line, 1, ps - 1);
- if (Filename <> '') and (Filename[Length(Filename)] > #32) then
- begin
- Val(Copy(Line, ps + 1, psEnd - ps - 1), LineNum, Err);
- if Err = 0 then
- begin
- Compiling(Filename);
- CurrentLine := LineNum;
- Result := True;
- end;
- end;
- end;
-end;
-
-
-procedure TFormCompile.Init(const ProjectName: string; Clear: Boolean);
-begin
- Tag := 0;
- LblProject.Caption := MinimizeName(ProjectName, LblProject.Canvas, LblProject.ClientWidth);
-
- LblStatusCaption.Font.Style := [];
- LblStatus.Font.Style := [];
-
- if Clear then
- begin
- if Assigned(FCompileMessages) and AutoClearCompileMessages then
- FCompileMessages.Clear;
- FHints := 0;
- FErrors := 0;
- FWarnings := 0;
- FTotalLines := 0;
- end;
- FCurrentLine := 0;
- FCurFilename := '';
-
- LblHints.Caption := IntToStr(FHints);
- LblWarnings.Caption := IntToStr(FWarnings);
- LblErrors.Caption := IntToStr(FErrors);
- LblCurrentLine.Caption := IntToStr(FCurrentLine);
- LblTotalLines.Caption := IntToStr(FTotalLines);
- LblStatusCaption.Caption := RsPreparing;
- LblStatus.Caption := '';
-
- BtnOk.Enabled := False;
- Show;
-end;
-
-procedure TFormCompile.Compiling(const Filename: string);
-begin
- if Filename <> FCurFilename then
- begin
- FCurFilename := Filename;
- FTotalLines := FTotalLines + FCurrentLine;
- CurrentLine := 0; // updates total lines and current lines
- LblStatusCaption.Font.Style := [];
- LblStatus.Font.Style := [];
- LblStatusCaption.Caption := RsCompiling + ':';
- LblStatus.Caption := ExtractFileName(Filename);
- Application.ProcessMessages;
- end;
-end;
-
-procedure TFormCompile.Linking(const Filename: string);
-begin
- FTotalLines := FTotalLines + FCurrentLine;
- CurrentLine := 0;
-
- LblStatusCaption.Font.Style := [];
- LblStatus.Font.Style := [];
- LblStatusCaption.Caption := RsLinking + ':';
- LblStatus.Caption := ExtractFileName(Filename);
- Application.ProcessMessages;
-end;
-
-procedure TFormCompile.Done(const ErrorReason: string);
-begin
- FCurFilename := '';
- FTotalLines := FTotalLines + FCurrentLine;
- CurrentLine := 0;
-
- LblErrorReason.Caption := ErrorReason;
- LblErrorReason.Visible := ErrorReason <> '';
- LblStatusCaption.Font.Style := [fsBold];
- LblStatus.Font.Style := [fsBold];
- LblStatusCaption.Caption := RsDone + ':';
-
- if FErrors > 0 then
- LblStatus.Caption := RsThereAreErrors
- else if FWarnings > 0 then
- LblStatus.Caption := RsThereAreWarnings
- else if FHints > 0 then
- LblStatus.Caption := RsThereAreHints
- else
- LblStatus.Caption := RsCompiled;
- BtnOk.Enabled := ErrorReason <> '';
- if ErrorReason <> '' then
- begin
- Hide;
- ShowModal;
- end;
-end;
-
-procedure TFormCompile.IncError;
-begin
- Inc(FErrors);
- LblErrors.Caption := IntToStr(FErrors);
- Application.ProcessMessages;
-end;
-
-procedure TFormCompile.IncHint;
-begin
- Inc(FHints);
- LblHints.Caption := IntToStr(FHints);
- Application.ProcessMessages;
-end;
-
-procedure TFormCompile.IncWarning;
-begin
- Inc(FWarnings);
- LblWarnings.Caption := IntToStr(FWarnings);
- Application.ProcessMessages;
-end;
-
-procedure TFormCompile.SetCurrentLine(Line: Cardinal);
-begin
- FCurrentLine := Line;
- LblCurrentLine.Caption := IntToStr(Line);
- LblTotalLines.Caption := IntToStr(FTotalLines + FCurrentLine);
- Application.ProcessMessages;
-end;
-
-procedure TFormCompile.FormCloseQuery(Sender: TObject;
- var CanClose: Boolean);
-begin
- CanClose := Tag = 1;
-end;
-
-end.
Modified: trunk/jcl/install/JclInstall.pas
===================================================================
--- trunk/jcl/install/JclInstall.pas 2006-09-03 14:30:32 UTC (rev 1747)
+++ trunk/jcl/install/JclInstall.pas 2006-09-03 17:53:21 UTC (rev 1748)
@@ -16,9 +16,11 @@
{ The Initial Developer of the Original Code is Petr Vones. Portions created by Petr Vones are }
{ Copyright (C) of Petr Vones. All Rights Reserved. }
{ }
-{ Contributor(s): Robert Rossmair (crossplatform & BCB support, refactoring) }
+{ Contributor(s): }
+{ - Robert Rossmair - crossplatform & BCB support, refactoring }
+{ - Florent Ouchet (outchy) - New installer core for .net compilation }
{ }
-{ Last modified: $Date$ }
+{ Last modified: $Date$ }
{ }
{**************************************************************************************************}
@@ -30,118 +32,145 @@
{$I crossplatform.inc}
uses
- SysUtils, Classes, IniFiles, Contnrs,
+ SysUtils, Classes, Contnrs,
JclSysUtils, JclBorlandTools, JediInstall;
type
+ TJclOption = (
+ joLibrary,
+ joDef,
+ joDefThreadSafe,
+ joDefDropObsoleteCode,
+ joDefMathPrecSingle,
+ joDefMathPrecDouble,
+ joDefMathPrecExtended,
+ joDefMathExtremeValues,
+ joDefUnitVersioning,
+ joDefHookDllExceptions,
+ joDefDebugNoBinary,
+ joDefDebugNoTD32,
+ joDefDebugNoMap,
+ joDefDebugNoExports,
+ joDefDebugNoSymbols,
+ joDefEDIWeakPackageUnits,
+ joEnvironment,
+ joEnvLibPath,
+ joEnvBrowsingPath,
+ joEnvDebugDCUPath,
+ joMake,
+ joMakeRelease,
+ joMakeReleaseVClx,
+ joMakeReleaseVCL,
+ joMakeDebug,
+ joMakeDebugVClx,
+ joMakeDebugVCL,
+ joCopyHppFiles,
+ joPackages,
+ joDualPackages,
+ joCopyPackagesHppFiles,
+ joPdbCreate,
+ joMapCreate,
+ joJdbgCreate,
+ joJdbgInsert,
+ joMapDelete,
+ joExperts,
+ joExpertsDsgnPackages,
+ joExpertsDLL,
+ joExpertDebug,
+ joExpertAnalyzer,
+ joExpertFavorite,
+ joExpertRepository,
+ joExpertThreadNames,
+ joExpertUses,
+ joExpertSimdView,
+ joExpertVersionControl,
+ joExceptDlg,
+ joExceptDlgVCL,
+ joExceptDlgVCLSnd,
+ joExceptDlgCLX,
+ joHelp,
+ joHelpHlp,
+ joHelpChm,
+ joHelpHxS,
+ joHelpHxSPlugin,
+ joMakeDemos);
+
TJclDistribution = class;
TJclInstallation = class
private
+ // identification
FDistribution: TJclDistribution;
FTarget: TJclBorRADToolInstallation;
+ FCLRVersion: string;
+ FTargetName: string;
+ FTargetPlatform: TJclBorPlatform;
+ FGUIPage: IJediInstallPage;
+ FGUI: IJediInstallGUI;
+ FGUIBPLPathIndex: Integer;
+ FGUIDCPPathIndex: Integer;
FDebugDcuDir: string;
FLibDir: string;
FLibObjDir: string;
- FDefines: TStringList;
- FUnits: TStringList;
- FDemos: TStringList;
- FDemoExclusionList: TStringList;
- FOnWriteLog: TTextHandler;
- FRelativeDemoPath: string;
+ FJclDcpPath: string;
+ FDemoList: TStringList;
+ FLogLines: TStringList;
FDemoSectionName: string;
+ FLogFileName: string;
procedure AddDemo(const Directory: string; const FileInfo: TSearchRec);
procedure AddDemos(const Directory: string);
- procedure AddDialogToRepository(const DialogName: string; const DialogFileName: string;
- const DialogIconFileName: string; const Designer: string; const Ancestor: string = '');
function GetDemoList: TStringList;
- procedure BuildUnitList(const SubDir: string; Units: TStrings);
- function GetDemoExclusionList: TStrings;
- function GetProgressTotal: Integer;
- function GetTool: IJediInstallTool;
- function GetUnits(const SourceDir: string): TStrings;
- function InitOptions: Boolean;
- procedure InstallationStarted;
- procedure InstallationFinished;
- procedure InstallFailedOn(const InstallObj: string);
- procedure ConfigureBpr2Mak(const Pac...
[truncated message content] |
|
From: <ou...@us...> - 2006-09-03 14:30:44
|
Revision: 1747
http://svn.sourceforge.net/jcl/?rev=1747&view=rev
Author: outchy
Date: 2006-09-03 07:30:32 -0700 (Sun, 03 Sep 2006)
Log Message:
-----------
enhancements for .net platform support
Modified Paths:
--------------
trunk/jcl/source/common/JclBorlandTools.pas
trunk/jcl/source/common/JclResources.pas
trunk/jcl/source/windows/JclDotNet.pas
Modified: trunk/jcl/source/common/JclBorlandTools.pas
===================================================================
--- trunk/jcl/source/common/JclBorlandTools.pas 2006-09-03 09:36:16 UTC (rev 1746)
+++ trunk/jcl/source/common/JclBorlandTools.pas 2006-09-03 14:30:32 UTC (rev 1747)
@@ -179,6 +179,8 @@
TJclBorDesigners = set of TJClBorDesigner;
+ TJclBorPlatform = (bp32bit, bp64bit);
+
const
JclBorPersonalityDescription: array [TJclBorPersonality] of string =
(
@@ -427,15 +429,17 @@
procedure SaveOptionsToFile(const ConfigFileName: string);
procedure AddProjectOptions(const ProjectFileName, DCPPath: string);
function Compile(const ProjectFileName: string): Boolean;
+ function GetConfigFileName: string; virtual;
public
function Execute(const CommandLine: string): Boolean; override;
function MakePackage(const PackageName, BPLPath, DCPPath: string; ExtraOptions: string = ''): Boolean;
function MakeProject(const ProjectName, OutputDir, DcpSearchPath: string; ExtraOptions: string = ''): Boolean;
- procedure SetDefaultOptions;
+ procedure SetDefaultOptions; virtual;
{$IFDEF KEEP_DEPRECATED}
function SupportsLibSuffix: Boolean;
{$ENDIF KEEP_DEPRECATED}
property OnBeforeSaveOptionsToFile: TNotifyEvent read FOnBeforeSaveOptionsToFile write FOnBeforeSaveOptionsToFile;
+ property ConfigFileName: string read GetConfigFileName;
end;
{$IFDEF KEEP_DEPRECATED}
TJclDCC = TJclDCC32;
@@ -557,7 +561,6 @@
function GetLibraryBrowsingPath: TJclBorRADToolPath;
procedure SetLibraryBrowsingPath(const Value: TJclBorRADToolPath);
procedure SetDebugDCUPath(const Value: TJclBorRADToolPath);
- procedure SetOutputCallback(const Value: TTextHandler);
protected
constructor Create(const AConfigDataLocation: string); virtual;
@@ -594,6 +597,7 @@
function GetName: string; virtual;
procedure OutputString(const AText: string);
function OutputFileDelete(const FileName: string): Boolean;
+ procedure SetOutputCallback(const Value: TTextHandler); virtual;
public
destructor Destroy; override;
class procedure ExtractPaths(const Path: TJclBorRADToolPath; List: TStrings);
@@ -647,6 +651,7 @@
function SupportsBCB: Boolean;
{$ENDIF KEEP_DEPRECATED}
function SupportsVisualCLX: Boolean;
+ function SupportsVCL: Boolean;
function LibFolderName: string;
// Command line tools
property CommandLineTools: TCommandLineTools read FCommandLineTools;
@@ -737,15 +742,31 @@
end;
{$IFDEF MSWINDOWS}
+ TJclDCCIL = class(TJclDCC32)
+ private
+ FMaxCLRVersion: string;
+ protected
+ function GetExeName: string; override;
+ function GetConfigFileName: string; override;
+ function GetMaxCLRVersion: string;
+ public
+ function MakeProject(const ProjectName, OutputDir, ExtraOptions: string): Boolean; reintroduce;
+ procedure SetDefaultOptions; override;
+ property MaxCLRVersion: string read GetMaxCLRVersion;
+ end;
+
TJclBDSInstallation = class(TJclBorRADToolInstallation)
private
FDualPackageInstallation: Boolean;
FHelp2Manager: TJclHelp2Manager;
+ FDCCIL: TJclDCCIL;
+ FPdbCreate: Boolean;
procedure SetDualPackageInstallation(const Value: Boolean);
function GetCppBrowsingPath: TJclBorRADToolPath;
function GetCppSearchPath: TJclBorRADToolPath;
procedure SetCppBrowsingPath(const Value: TJclBorRADToolPath);
procedure SetCppSearchPath(const Value: TJclBorRADToolPath);
+ function GetMaxDelphiCLRVersion: string;
protected
constructor Create(const AConfigDataLocation: string); override;
function GetDCPOutputPath: string; override;
@@ -756,6 +777,7 @@
const DcpSearchPath: string): Boolean; override;
function GetVclIncludeDir: string; override;
function GetName: string; override;
+ procedure SetOutputCallback(const Value: TTextHandler); override;
public
destructor Destroy; override;
class function PackageSourceFileExtension: string; override;
@@ -778,8 +800,15 @@
function UnregisterPackage(const BinaryFileName: string): Boolean; override;
function CleanPackageCache(const BinaryFileName: string): Boolean;
+ function CompileDelphiDotNetProject(const ProjectName, OutputDir: string;
+ PEFormat: TJclBorPlatform = bp32bit;
+ const CLRVersion: string = ''; const ExtraOptions: string = ''): Boolean;
+
property DualPackageInstallation: Boolean read FDualPackageInstallation write SetDualPackageInstallation;
property Help2Manager: TJclHelp2Manager read FHelp2Manager;
+ property DCCIL: TJclDCCIL read FDCCIL;
+ property MaxDelphiCLRVersion: string read GetMaxDelphiCLRVersion;
+ property PdbCreate: Boolean read FPdbCreate write FPdbCreate;
end;
{$ENDIF MSWINDOWS}
@@ -876,6 +905,7 @@
Version: Integer;
CoreIdeVersion: string;
ProjectsDirResId: Integer;
+ CLRVersionResId: Integer;
Supported: Boolean;
end;
{$ENDIF MSWINDOWS}
@@ -899,6 +929,7 @@
Version: 1;
CoreIdeVersion: '71';
ProjectsDirResId: 64507;
+ CLRVersionResId: 0; // no dccil.exe
Supported: True),
(
Name: RsDelphiName;
@@ -906,6 +937,7 @@
Version: 8;
CoreIdeVersion: '71';
ProjectsDirResId: 64460;
+ CLRVersionResId: 9499;
Supported: True),
(
Name: RsDelphiName;
@@ -913,6 +945,7 @@
Version: 9;
CoreIdeVersion: '90';
ProjectsDirResId: 64431;
+ CLRVersionResId: 9499;
Supported: True),
(
Name: RsBDSName;
@@ -920,6 +953,7 @@
Version: 10;
CoreIdeVersion: '100';
ProjectsDirResId: 64719;
+ CLRVersionResId: 9500;
Supported: True)
);
{$ENDIF MSWINDOWS}
@@ -988,6 +1022,13 @@
HelpGidFileName = '%s\Help\%s%d.gid';
{$ENDIF MSWINDOWS}
+ {$IFDEF MSWINDOWS}
+ DCC32ConfigurationFile = 'DCC32.CFG';
+ {$ELSE MSWINDOWS}
+ DCC32ConfigurationFile = 'dcc.conf';
+ {$ENDIF MSWINDOWS}
+ DCCILConfigurationFile = 'DCCIL.CFG';
+
{$IFDEF KYLIX}
IDs: array [TKylixVersion] of Integer = (60, 65, 69);
LibSuffixes: array [TKylixVersion] of string[3] = ('6.0', '6.5', '6.9');
@@ -2220,20 +2261,18 @@
end;
function TJclDCC32.Execute(const CommandLine: string): Boolean;
-const
- {$IFDEF WIN32}
- ConfFileName = 'DCC32.CFG';
- {$ENDIF WIN32}
- {$IFDEF KYLIX}
- ConfFileName = 'dcc.conf';
- {$ENDIF KYLIX}
begin
FOutput := '';
- SaveOptionsToFile(ConfFileName);
+ SaveOptionsToFile(ConfigFileName);
Result := inherited Execute(CommandLine);
- FileDelete(ConfFileName);
+ FileDelete(ConfigFileName);
end;
+function TJclDCC32.GetConfigFileName: string;
+begin
+ Result := DCC32ConfigurationFile;
+end;
+
procedure TJclDCC32.SaveOptionsToFile(const ConfigFileName: string);
{$IFDEF MSWINDOWS}
var
@@ -2322,6 +2361,7 @@
SetCurrentDir(ExtractFilePath(PackageName) + '.');
try
Options.Clear;
+ SetDefaultOptions;
AddProjectOptions(PackageName, DCPPath);
AddPathOption('LN', DCPPath);
AddPathOption('LE', BPLPath);
@@ -2341,6 +2381,7 @@
SetCurrentDir(ExtractFilePath(ProjectName) + '.');
try
Options.Clear;
+ SetDefaultOptions;
AddProjectOptions(ProjectName, DcpSearchPath);
AddPathOption('E', OutputDir);
Options.Add(ExtraOptions);
@@ -2374,6 +2415,83 @@
end;
{$ENDIF KEEP_DEPRECATED}
+{$IFDEF MSWINDOWS}
+//=== { TJclDCCIL } ==========================================================
+
+function TJclDCCIL.GetConfigFileName: string;
+begin
+ Result := DCCILConfigurationFile;
+end;
+
+function TJclDCCIL.GetExeName: string;
+begin
+ Result := DCCILExeName;
+end;
+
+function TJclDCCIL.GetMaxCLRVersion: string;
+var
+ H: HMODULE;
+ FileName: string;
+ StartPos, EndPos: Integer;
+begin
+ if FMaxCLRVersion <> '' then
+ begin
+ Result := FMaxCLRVersion;
+ Exit;
+ end;
+
+ Result := 'v1.1.4322'; // do not localize
+
+ FileName := Installation.BinFolderName + GetExeName;
+
+ H := LoadLibraryEx(PChar(FileName), 0, LOAD_LIBRARY_AS_DATAFILE or DONT_RESOLVE_DLL_REFERENCES);
+ if H <> 0 then
+ begin
+ SetLength(Result, 1024);
+ SetLength(Result, LoadString(H, BDSVersions[Installation.IDEVersionNumber].CLRVersionResId,
+ PChar(Result), Length(Result) - 1));
+ FreeLibrary(H);
+ end;
+
+ StartPos := Pos(':', Result);
+ if StartPos = 0 then
+ StartPos := Pos('=', Result);
+
+ if StartPos > 0 then
+ Result := Copy(Result, StartPos + 1, Length(Result) - StartPos);
+
+ EndPos := Pos(' ', Result);
+ if EndPos > 0 then
+ SetLength(Result, EndPos - 1);
+
+ FMaxCLRVersion := Result;
+end;
+
+function TJclDCCIL.MakeProject(const ProjectName, OutputDir,
+ ExtraOptions: string): Boolean;
+var
+ SaveDir: string;
+begin
+ SaveDir := GetCurrentDir;
+ SetCurrentDir(ExtractFilePath(ProjectName) + '.');
+ try
+ Options.Clear;
+ SetDefaultOptions;
+ AddPathOption('E', OutputDir);
+ Options.Add(ExtraOptions);
+ Result := Compile(ProjectName);
+ finally
+ SetCurrentDir(SaveDir);
+ end;
+end;
+procedure TJclDCCIL.SetDefaultOptions;
+begin
+ Options.Clear;
+ AddPathOption('U', Installation.LibFolderName);
+end;
+
+{$ENDIF MSWINDOWS}
+
//=== { TJclBorlandMake } ====================================================
function TJclBorlandMake.GetExeName: string;
@@ -3677,6 +3795,15 @@
end;
{$ENDIF KEEP_DEPRECATED}
+function TJclBorRADToolInstallation.SupportsVCL: Boolean;
+begin
+ {$IFDEF KYLIX}
+ Result := False;
+ {$ELSE ~KYLIX}
+ Result := (RadToolKind = brBorlandDevStudio) or (VersionNumber >= 6);
+ {$ENDIF ~KYLIX}
+end;
+
function TJclBorRADToolInstallation.SupportsVisualCLX: Boolean;
begin
{$IFDEF KYLIX}
@@ -4119,10 +4246,13 @@
if FPersonalities = [] then
raise EJclBorRadException.CreateRes(@RsENoSupportedPersonality);
+
+ FDCCIL := TJclDCCIL.Create(Self);
end;
destructor TJclBDSInstallation.Destroy;
begin
+ FDCCIL.Free;
FHelp2Manager.Free;
inherited Destroy;
end;
@@ -4183,6 +4313,49 @@
end;
end;
+function TJclBDSInstallation.CompileDelphiDotNetProject(const ProjectName,
+ OutputDir: string; PEFormat: TJclBorPlatform; const CLRVersion,
+ ExtraOptions: string): Boolean;
+var
+ DCCILOptions, PlatformOption, PdbOption: string;
+begin
+ if VersionNumber >= 2 then // C#Builder 1 doesn't have any Delphi.net compiler
+ begin
+ OutputString(Format(RsCompilingProject, [ProjectName]));
+
+ if not IsDelphiProject(ProjectName) then
+ raise EJclBorRADException.CreateResFmt(@RsENotADelphiProject, [ProjectName]);
+
+ PlatformOption := '';
+ case PEFormat of
+ bp32bit:
+ if VersionNumber >= 3 then
+ PlatformOption := 'x86';
+ bp64bit:
+ if VersionNumber >= 3 then
+ PlatformOption := 'x64'
+ else
+ raise EJclBorRADException.CreateRes(@RsEx64PlatformNotValid);
+ end;
+
+ if PdbCreate then
+ PdbOption := '-V'
+ else
+ PdbOption := '';
+
+ DCCILOptions := Format('%s --platform:%s %s', [ExtraOptions, PlatformOption, PdbOption]);
+
+ Result := DCCIL.MakeProject(ProjectName, OutputDir, DCCILOptions);
+
+ if Result then
+ OutputString(RsCompilationOk)
+ else
+ OutputString(RsCompilationFailed);
+ end
+ else
+ raise EJclBorRADException.CreateRes(@RsENoSupportedPersonality);
+end;
+
function TJclBDSInstallation.CompileDelphiPackage(const PackageName, BPLPath, DCPPath, ExtraOptions: string): Boolean;
var
NewOptions: string;
@@ -4235,7 +4408,7 @@
Result := inherited CompileDelphiProject(ProjectName, DcpSearchPath, OutputDir);
end;
-{ TODO -cHelp : Donator: Adreas Hausladen }
+{ TODO -cHelp : Donator: Andreas Hausladen }
function TJclBDSInstallation.GetBorlandStudioProjectsDir: string;
var
H: HMODULE;
@@ -4334,6 +4507,11 @@
end;
end;
+function TJclBDSInstallation.GetMaxDelphiCLRVersion: string;
+begin
+ Result := DCCIL.GetMaxCLRVersion;
+end;
+
function TJclBDSInstallation.GetName: string;
begin
if VersionNumber in [Low(BDSVersions)..High(BDSVersions)] then
@@ -4425,6 +4603,13 @@
FDualPackageInstallation := Value;
end;
+procedure TJclBDSInstallation.SetOutputCallback(const Value: TTextHandler);
+begin
+ inherited SetOutputCallback(Value);
+ if clDccIL in CommandLineTools then
+ DCCIL.OutputCallback := Value;
+end;
+
function TJclBDSInstallation.UnregisterPackage(const BinaryFileName: string): Boolean;
begin
if VersionNumber >= 3 then
Modified: trunk/jcl/source/common/JclResources.pas
===================================================================
--- trunk/jcl/source/common/JclResources.pas 2006-09-03 09:36:16 UTC (rev 1746)
+++ trunk/jcl/source/common/JclResources.pas 2006-09-03 14:30:32 UTC (rev 1747)
@@ -148,6 +148,7 @@
RsENotABcbProject = '%s not a C++Builder project source file';
RsENoSupportedPersonality = 'No personalities supported';
RsEDualPackageNotSupported = 'This installation of %s doesn''t support dual packages';
+ RsEx64PlatformNotValid = 'This installation cannot generate x64 binaries';
{$IFDEF MSWINDOWS}
RsENoOpenHelp = 'open help not present in Borland Developer Studio';
{$ENDIF MSWINDOWS}
@@ -813,6 +814,10 @@
RsDebugNoProcessInfo = 'Unable to obtain process information';
RsDebugSnapshot = 'Failure creating toolhelp32 snapshot';
+//=== JclDotNet ==============================================================
+resourcestring
+ RsEUnknownCLRVersion = '"%s" is not a known CLR version';
+
//=== JclEDI =================================================================
resourcestring
RsEDIError001 = 'Could not open edi file. File not specified.';
Modified: trunk/jcl/source/windows/JclDotNet.pas
===================================================================
--- trunk/jcl/source/windows/JclDotNet.pas 2006-09-03 09:36:16 UTC (rev 1746)
+++ trunk/jcl/source/windows/JclDotNet.pas 2006-09-03 14:30:32 UTC (rev 1747)
@@ -87,6 +87,8 @@
TJclClrHostLoaderFlags = set of TJclClrHostLoaderFlag;
type
+ EJclClrException = class(SysUtils.Exception);
+
TJclClrAppDomain = class;
TJclClrAppDomainSetup = class;
TJclClrAssembly = class;
@@ -121,7 +123,8 @@
class function CorSystemDirectory: WideString;
class function CorVersion: WideString;
class function CorRequiredVersion: WideString;
- class procedure GetClrVersions(VersionNames: TWideStrings);
+ class procedure GetClrVersions(VersionNames: TWideStrings); overload;
+ class procedure GetClrVersions(VersionNames: TStrings); overload;
property DefaultInterface: ICorRuntimeHost read FDefaultInterface implements ICorRuntimeHost;
property AppDomains[const Idx: Integer]: TJclClrAppDomain read GetAppDomain; default;
property AppDomainCount: Integer read GetAppDomainCount;
@@ -234,6 +237,8 @@
property Methods[const Name: WideString]: TJclClrMethod read GetMethod;
end;
+function CompareCLRVersions(const LeftVersion, RightVersion: string): Integer;
+
type
HDOMAINENUM = Pointer;
{$EXTERNALSYM HDOMAINENUM}
@@ -350,8 +355,78 @@
{$IFDEF HAS_UNIT_VARIANTS}
Variants,
{$ENDIF HAS_UNIT_VARIANTS}
- JclSysUtils, JclResources;
+ JclSysUtils, JclResources, JclStrings;
+function CompareCLRVersions(const LeftVersion, RightVersion: string): Integer;
+var
+ LeftMajor, RightMajor, LeftMinor, RightMinor, LeftBuild, RightBuild, DotPos: Integer;
+ LeftStr, RightStr, LeftNum, RightNum: string;
+begin
+ if (Length(LeftVersion) = 0) or (LeftVersion[1] <> 'v') then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [LeftVersion]);
+
+ if (Length(RightVersion) = 0) or (RightVersion[1] <> 'v') then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [RightVersion]);
+
+ DotPos := Pos('.', LeftVersion);
+ if DotPos = 0 then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [LeftVersion]);
+ LeftNum := Copy(LeftVersion, 2, DotPos - 2);
+ LeftStr := Copy(LeftVersion, DotPos + 1, Length(LeftVersion) - DotPos);
+ if not TryStrToInt(LeftNum, LeftMajor) then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [LeftVersion]);
+
+ DotPos := Pos('.', RightVersion);
+ if DotPos = 0 then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [RightVersion]);
+ RightNum := Copy(RightVersion, 2, DotPos - 2);
+ RightStr := Copy(RightVersion, DotPos + 1, Length(RightVersion) - DotPos);
+ if not TryStrToInt(RightNum, RightMajor) then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [RightVersion]);
+
+ Result := -1;
+ if LeftMajor < RightMajor then
+ Exit;
+ Result := 1;
+ if LeftMajor > RightMajor then
+ Exit;
+
+ DotPos := Pos('.', LeftStr);
+ if DotPos = 0 then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [LeftVersion]);
+ LeftNum := Copy(LeftStr, 1, DotPos - 1);
+ LeftStr := Copy(LeftStr, DotPos + 1, Length(LeftStr) - DotPos);
+ if not TryStrToInt(LeftNum, LeftMinor) then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [LeftVersion]);
+
+ DotPos := Pos('.', RightStr);
+ if DotPos = 0 then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [RightVersion]);
+ RightNum := Copy(RightStr, 1, DotPos - 1);
+ RightStr := Copy(RightStr, DotPos + 1, Length(RightStr) - DotPos);
+ if not TryStrToInt(RightNum, RightMinor) then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [RightVersion]);
+
+ Result := -1;
+ if LeftMinor < RightMinor then
+ Exit;
+ Result := 1;
+ if LeftMinor > RightMinor then
+ Exit;
+
+ if not TryStrToInt(LeftStr, LeftBuild) then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [LeftVersion]);
+ if not TryStrToInt(RightStr, RightBuild) then
+ raise EJclClrException.CreateResFmt(@RsEUnknownCLRVersion, [RightVersion]);
+
+ if LeftBuild < RightBuild then
+ Result := -1
+ else if LeftBuild > RightBuild then
+ Result := 1
+ else
+ Result := 0;
+end;
+
procedure GetProcedureAddress(var P: Pointer; const ModuleName, ProcName: string);
var
ModuleHandle: HMODULE;
@@ -807,6 +882,21 @@
end;
end;
+class procedure TJclClrHost.GetClrVersions(VersionNames: TStrings);
+var
+ AWideStrings: TWideStrings;
+ Index: Integer;
+begin
+ AWideStrings := TWideStringList.Create;
+ try
+ GetCLRVersions(AWideStrings);
+ for Index := 0 to AWideStrings.Count - 1 do
+ VersionNames.Add(AWideStrings.Strings[Index]);
+ finally
+ AWideStrings.Free;
+ end;
+end;
+
function TJclClrHost.GetCurrentAppDomain: IJclClrAppDomain;
var
Unk: IUnknown;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2006-09-03 09:36:25
|
Revision: 1746
http://svn.sourceforge.net/jcl/?rev=1746&view=rev
Author: outchy
Date: 2006-09-03 02:36:16 -0700 (Sun, 03 Sep 2006)
Log Message:
-----------
Fixed compilation with Delphi 5
Modified Paths:
--------------
trunk/jcl/examples/windows/debug/reportconverter/formConverter.pas
Modified: trunk/jcl/examples/windows/debug/reportconverter/formConverter.pas
===================================================================
--- trunk/jcl/examples/windows/debug/reportconverter/formConverter.pas 2006-08-27 22:14:13 UTC (rev 1745)
+++ trunk/jcl/examples/windows/debug/reportconverter/formConverter.pas 2006-09-03 09:36:16 UTC (rev 1746)
@@ -33,7 +33,7 @@
interface
uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, JclDebug;
type
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mo...@us...> - 2006-08-27 22:14:23
|
Revision: 1745 Author: morrac Date: 2006-08-27 15:14:13 -0700 (Sun, 27 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1745&view=rev Log Message: ----------- 1- There's a new property called ErrorCode that contains the error code of the last compile. 2- FVector (the array of capture ranges) is now dinamically allocated. This makes the footprint of the instances almost 3 kbytes smaller, and avoids match errors in extreme cases. 3- CaptureCount is now initialized by Compile (it was previously initialized only after calling Match). 4- There's two new global procedures, called InitializeLocaleSupport and TerminateLocaleSupport (that need not be normally called). 5- The UserLocale parameter of Compile is now optional and defaults to False. 6- GetCaptures was reimplemented for better performance (less stack usage, faster execution). It also avoids errors with long captures. 7- GetCapturesOffset was fixed for off-by-one errors. 8- There's a new TJclAnsiRegEx specific error constant named JCL_PCRE_ERROR_STUDYFAILED. 9- Now Compile fails if the Study parameter is set to True and the study fails. ErrorCode is set to JCL_PCRE_ERROR_STUDYFAILED. 10- Minor code cleanups. 11- All pointer checks for nil where replaced with calls Assigned. 12- All AnsiString variables where changed to String. For more details regarding points 1 to 10 see my message to the jcl devel mailing list of day 2006-aug-20. Points 11 and 12 where added based on reviewers' recommendations. Modified Paths: -------------- trunk/jcl/source/common/JclPCRE.pas trunk/jcl/source/common/JclResources.pas Modified: trunk/jcl/source/common/JclPCRE.pas =================================================================== --- trunk/jcl/source/common/JclPCRE.pas 2006-08-23 19:01:13 UTC (rev 1744) +++ trunk/jcl/source/common/JclPCRE.pas 2006-08-27 22:14:13 UTC (rev 1745) @@ -31,6 +31,8 @@ unit JclPCRE; +{$RANGECHECKS OFF} + interface uses @@ -45,6 +47,9 @@ {$ENDIF HAS_UNIT_LIBC} Classes, SysUtils; +const + JCL_PCRE_ERROR_STUDYFAILED = -999; + type EPCREError = class(Exception) private @@ -54,7 +59,7 @@ property ErrorCode: Integer read FErrorCode; end; - TPCREIntArray = array [0..2999] of Integer; // 1000 subpatterns should be enough... + TPCREIntArray = array [0 .. 0] of Integer; PPCREIntArray = ^TPCREIntArray; TJclAnsiRegExOption = (roIgnoreCase, roMultiLine, roDotAll, roExtended, @@ -73,32 +78,40 @@ FCode: Pointer; FExtra: Pointer; FOptions: TJclAnsiRegExOptions; - FSubject: AnsiString; - FErrorMessage: AnsiString; + FSubject: String; + + FErrorCode: Integer; + FErrorMessage: String; FErrorOffset: Integer; - FVector: TPCREIntArray; + + FVector: PPCREIntArray; + FVectorSize: Integer; FStringCount: Integer; - FVectorSize: Integer; - FTables: PChar; - FMaxCaptureLength: Integer; + function GetCaptureCount: Integer; - function GetCaptures(Index: Integer): AnsiString; + function GetCaptures(Index: Integer): String; function GetAPIOptions(RunTime: Boolean): Integer; function GetCapturesOffset(Index: Integer): TJclAnsiCaptureOffset; + public - constructor Create; destructor Destroy; override; - function Compile(const Pattern: AnsiString; Study, UserLocale: Boolean): Boolean; - function Match(const Subject: AnsiString; StartOffset: Cardinal = 1): Boolean; + property Options: TJclAnsiRegExOptions read FOptions write FOptions; + function Compile(const Pattern: String; Study: Boolean; + UserLocale: Boolean = False): Boolean; + function Match(const Subject: String; StartOffset: Cardinal = 1): Boolean; property CaptureCount: Integer read GetCaptureCount; - property Captures[Index: Integer]: AnsiString read GetCaptures; + property Captures[Index: Integer]: String read GetCaptures; property CaptureOffset[Index: Integer]: TJclAnsiCaptureOffset read GetCapturesOffset; - property ErrorMessage: AnsiString read FErrorMessage; + + property ErrorCode: Integer read FErrorCode; + property ErrorMessage: String read FErrorMessage; property ErrorOffset: Integer read FErrorOffset; - property MaxCaptureLength: Integer read FMaxCaptureLength write FMaxCaptureLength; end; +procedure InitializeLocaleSupport; +procedure TerminateLocaleSupport; + {$IFDEF UNITVERSIONING} const UnitVersioning: TUnitVersionInfo = ( @@ -115,6 +128,9 @@ pcre, JclResources; +var + GTables: PChar; + function JclPCREGetMem(Size: Integer): Pointer; cdecl; begin GetMem(Result, Size); @@ -174,6 +190,8 @@ PErr := @RsErrDfaRecurse; PCRE_ERROR_RECURSIONLIMIT: PErr := @RsErrRecursionLimit; + JCL_PCRE_ERROR_STUDYFAILED: + PErr := @RsErrStudyFailed; else Result := True; end; @@ -183,43 +201,60 @@ //=== { TJclAnsiRegEx } ====================================================== -constructor TJclAnsiRegEx.Create; -begin - inherited Create; - FMaxCaptureLength := 1024; - FVectorSize := SizeOf(FVector) div SizeOf(Integer); -end; - destructor TJclAnsiRegEx.Destroy; begin - if FCode <> nil then + if Assigned(FCode) then pcre_free^(FCode); - if FExtra <> nil then + if Assigned(FExtra) then pcre_free^(FExtra); + if Assigned(FVector) then + FreeMem(FVector); inherited Destroy; end; -function TJclAnsiRegEx.Compile(const Pattern: AnsiString; Study, UserLocale: Boolean): Boolean; +function TJclAnsiRegEx.Compile(const Pattern: String; Study: Boolean; + UserLocale: Boolean = False): Boolean; var - ErrPtr: PChar; - ErrOffset: Integer; + ErrMsgPtr: PChar; + Tables: PChar; begin if UserLocale then - FTables := pcre_maketables + begin + InitializeLocaleSupport; + Tables := GTables; + end else - FTables := nil; + Tables := nil; + if Pattern = '' then raise EPCREError.CreateRes(@RsErrNull, PCRE_ERROR_NULL); - if FCode <> nil then pcre_free^(FCode); - FCode := pcre_compile(PChar(Pattern), GetAPIOptions(False), @ErrPtr, @ErrOffset, FTables); - FErrorMessage := ErrPtr; - FErrorOffset := ErrOffset; - Result := (FCode <> nil); - if Result and Study then + + if Assigned(FCode) then pcre_free^(FCode); + FCode := pcre_compile2(PChar(Pattern), GetAPIOptions(False), + @FErrorCode, @ErrMsgPtr, @FErrorOffset, Tables); + FErrorMessage := ErrMsgPtr; + Result := Assigned(FCode); + if Result then begin - if FExtra <> nil then pcre_free^(FExtra); - FExtra := pcre_study(FCode, 0, @ErrPtr); + if Study then + begin + if Assigned(FExtra) then pcre_free^(FExtra); + FExtra := pcre_study(FCode, 0, @ErrMsgPtr); + Result := Assigned(FExtra) or (not Assigned(ErrMsgPtr)); + if not Result then + begin + FErrorCode := JCL_PCRE_ERROR_STUDYFAILED; + FErrorMessage := ErrMsgPtr; + end; + end; + + PCRECheck(pcre_fullinfo(FCode, FExtra, PCRE_INFO_CAPTURECOUNT, @FStringCount)); + if FStringCount > 0 then + FVectorSize := (FStringCount + 1) * 3 + else + FVectorSize := 0; + ReAllocMem(FVector, FVectorSize * SizeOf(Integer)); end; end; @@ -260,17 +295,22 @@ function TJclAnsiRegEx.GetCaptureCount: Integer; begin Result := FStringCount; - // PCRECheck(pcre_fullinfo(FCode, FExtra, PCRE_INFO_CAPTURECOUNT, @Result)); end; -function TJclAnsiRegEx.GetCaptures(Index: Integer): AnsiString; +function TJclAnsiRegEx.GetCaptures(Index: Integer): String; var - Len: Integer; + From, Len: Integer; begin - SetLength(Result, MaxCaptureLength); - Len := pcre_copy_substring(PChar(FSubject), @FVector, FStringCount, Index, PChar(Result), MaxCaptureLength); - PCRECheck(Len); - SetLength(Result, Len); + if (Index < 0) or (Index >= FStringCount) then + PCRECheck(PCRE_ERROR_NOSUBSTRING) + else + begin + Index := Index * 2; + From := FVector^[Index]; + Len := FVector^[Index + 1] - From; + SetLength(Result, Len); + Move(FSubject[From + 1], PChar(Result)^, Len); + end; end; function TJclAnsiRegEx.GetCapturesOffset(Index: Integer): TJclAnsiCaptureOffset; @@ -280,25 +320,42 @@ Result.FirstPos := -1; Result.LastPos := -1; end; - Result.FirstPos := FVector[Index * 2]; - Result.LastPos := FVector[Index * 2 + 1]; + Index := Index * 2; + Result.FirstPos := FVector^[Index]; + Result.LastPos := FVector^[Index + 1] - 1; end; -function TJclAnsiRegEx.Match(const Subject: AnsiString; StartOffset: Cardinal = 1): Boolean; +function TJclAnsiRegEx.Match(const Subject: String; StartOffset: Cardinal = 1): Boolean; begin - if (FCode = nil) or (Subject = '') then + if (not Assigned(FCode)) or (Subject = '') then begin Result := False; Exit; end; if StartOffset < 1 then StartOffset := 1; + FSubject := Subject; FStringCount := pcre_exec(FCode, FExtra, PChar(FSubject), Length(FSubject), - StartOffset - 1, GetAPIOptions(True), @FVector, FVectorSize); - Result := FStringCount > 0; + StartOffset - 1, GetAPIOptions(True), PInteger(FVector), FVectorSize); + Result := FStringCount >= 0; end; +procedure InitializeLocaleSupport; +begin + if not Assigned(GTables) then + GTables := pcre_maketables; +end; + +procedure TerminateLocaleSupport; +begin + if Assigned(GTables) then + begin + pcre_free^(GTables); + GTables := nil; + end; +end; + //=== { EPCREError } ========================================================= constructor EPCREError.CreateRes(ResStringRec: PResStringRec; ErrorCode: Integer); @@ -322,6 +379,7 @@ {$ENDIF UNITVERSIONING} finalization + TerminateLocaleSupport; {$IFDEF UNITVERSIONING} UnregisterUnitVersion(HInstance); {$ENDIF UNITVERSIONING} Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2006-08-23 19:01:13 UTC (rev 1744) +++ trunk/jcl/source/common/JclResources.pas 2006-08-27 22:14:13 UTC (rev 1745) @@ -1283,7 +1283,8 @@ RsErrDfaRecurse = 'DFA Recurse'; RsErrRecursionLimit = 'Recursion limit'; RsErrLibNotLoaded = 'PCRE library not loaded'; - RsErrMemFuncNotSet = 'PCRE memory management functions not set'; + RsErrMemFuncNotSet = 'PCRE memory management functions not set'; + RsErrStudyFailed = 'Study failed'; //=== JclPeImage ============================================================= resourcestring This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ob...@us...> - 2006-08-23 19:01:30
|
Revision: 1744 Author: obones Date: 2006-08-23 12:01:13 -0700 (Wed, 23 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1744&view=rev Log Message: ----------- PathGetShortName may not return the short path Modified Paths: -------------- trunk/jcl/source/common/JclBorlandTools.pas Modified: trunk/jcl/source/common/JclBorlandTools.pas =================================================================== --- trunk/jcl/source/common/JclBorlandTools.pas 2006-08-18 15:15:47 UTC (rev 1743) +++ trunk/jcl/source/common/JclBorlandTools.pas 2006-08-23 19:01:13 UTC (rev 1744) @@ -2207,13 +2207,10 @@ function TJclDCC32.Compile(const ProjectFileName: string): Boolean; begin - {$IFDEF MSWINDOWS} - // quotes not required with short path names - Result := Execute(PathGetShortName(ExtractFileDir(ProjectFileName)) + - DirDelimiter + ExtractFileName(ProjectFileName)); - {$ELSE} + // Note: PathGetShortName may not return the short path if it's a network + // drive. Hence we always double quote the path, regardless of the compiling + // environment. Result := Execute(StrDoubleQuote(StrTrimQuotes(ProjectFileName))); - {$ENDIF MSWINDOWS} end; constructor TJclDCC32.Create(AInstallation: TJclBorRADToolInstallation); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ou...@us...> - 2006-08-18 15:29:12
|
Revision: 1743 Author: outchy Date: 2006-08-18 08:15:47 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1743&view=rev Log Message: ----------- Old releases that were hidden in the files section at Sourceforge. These releases are no more supported, just made public for courtesy purpose. Added Paths: ----------- tags/JCL122-Build965/jcl/ tags/JCL122-Build965/jcl/Install.bat tags/JCL122-Build965/jcl/Readme.html tags/JCL122-Build965/jcl/Readme.txt tags/JCL122-Build965/jcl/bin/ tags/JCL122-Build965/jcl/bin/Bin.txt tags/JCL122-Build965/jcl/dcu/ tags/JCL122-Build965/jcl/dcu/Dcu.txt tags/JCL122-Build965/jcl/examples/ tags/JCL122-Build965/jcl/examples/ApiHookDemoMain.dfm tags/JCL122-Build965/jcl/examples/ApiHookDemoMain.pas tags/JCL122-Build965/jcl/examples/ApiHookExample.dof tags/JCL122-Build965/jcl/examples/ApiHookExample.dpr tags/JCL122-Build965/jcl/examples/ApiHookExample.res tags/JCL122-Build965/jcl/examples/AppInstDemoMain.dfm tags/JCL122-Build965/jcl/examples/AppInstDemoMain.pas tags/JCL122-Build965/jcl/examples/AppInstExample.dof tags/JCL122-Build965/jcl/examples/AppInstExample.dpr tags/JCL122-Build965/jcl/examples/AppInstExample.res tags/JCL122-Build965/jcl/examples/ConsoleExamples.dpr tags/JCL122-Build965/jcl/examples/CreateProcAsUserDemoMain.dfm tags/JCL122-Build965/jcl/examples/CreateProcAsUserDemoMain.pas tags/JCL122-Build965/jcl/examples/CreateProcAsUserExample.dof tags/JCL122-Build965/jcl/examples/CreateProcAsUserExample.dpr tags/JCL122-Build965/jcl/examples/CreateProcAsUserExample.res tags/JCL122-Build965/jcl/examples/FramesTrackDemoMain.dfm tags/JCL122-Build965/jcl/examples/FramesTrackDemoMain.pas tags/JCL122-Build965/jcl/examples/FramesTrackExample.dof tags/JCL122-Build965/jcl/examples/FramesTrackExample.dpr tags/JCL122-Build965/jcl/examples/FramesTrackExample.res tags/JCL122-Build965/jcl/examples/JclDebugExamples.bpg tags/JCL122-Build965/jcl/examples/JclExamples.bpg tags/JCL122-Build965/jcl/examples/LanManDemoMain.dfm tags/JCL122-Build965/jcl/examples/LanManDemoMain.pas tags/JCL122-Build965/jcl/examples/LanManExample.dof tags/JCL122-Build965/jcl/examples/LanManExample.dpr tags/JCL122-Build965/jcl/examples/LanManExample.res tags/JCL122-Build965/jcl/examples/LocalesDemoMain.dfm tags/JCL122-Build965/jcl/examples/LocalesDemoMain.pas tags/JCL122-Build965/jcl/examples/LocalesExample.dof tags/JCL122-Build965/jcl/examples/LocalesExample.dpr tags/JCL122-Build965/jcl/examples/LocalesExample.res tags/JCL122-Build965/jcl/examples/MapiDemoMain.dfm tags/JCL122-Build965/jcl/examples/MapiDemoMain.pas tags/JCL122-Build965/jcl/examples/MapiExample.dof tags/JCL122-Build965/jcl/examples/MapiExample.dpr tags/JCL122-Build965/jcl/examples/MapiExample.res tags/JCL122-Build965/jcl/examples/MidiOutExample.dof tags/JCL122-Build965/jcl/examples/MidiOutExample.dpr tags/JCL122-Build965/jcl/examples/MidiOutExample.res tags/JCL122-Build965/jcl/examples/MidiOutExampleMain.dfm tags/JCL122-Build965/jcl/examples/MidiOutExampleMain.pas tags/JCL122-Build965/jcl/examples/MidiOutExampleTuningDlg.dfm tags/JCL122-Build965/jcl/examples/MidiOutExampleTuningDlg.pas tags/JCL122-Build965/jcl/examples/MultiMediaExample.dof tags/JCL122-Build965/jcl/examples/MultiMediaExample.dpr tags/JCL122-Build965/jcl/examples/MultiMediaExample.res tags/JCL122-Build965/jcl/examples/MultimediaDemoMain.dfm tags/JCL122-Build965/jcl/examples/MultimediaDemoMain.pas tags/JCL122-Build965/jcl/examples/NtSvcDemoDependent.dfm tags/JCL122-Build965/jcl/examples/NtSvcDemoDependent.pas tags/JCL122-Build965/jcl/examples/NtSvcDemoGroups.dfm tags/JCL122-Build965/jcl/examples/NtSvcDemoGroups.pas tags/JCL122-Build965/jcl/examples/NtSvcDemoMain.dfm tags/JCL122-Build965/jcl/examples/NtSvcDemoMain.pas tags/JCL122-Build965/jcl/examples/NtSvcExample.dof tags/JCL122-Build965/jcl/examples/NtSvcExample.dpr tags/JCL122-Build965/jcl/examples/NtSvcExample.res tags/JCL122-Build965/jcl/examples/PeFuncDemoMain.dfm tags/JCL122-Build965/jcl/examples/PeFuncDemoMain.pas tags/JCL122-Build965/jcl/examples/PeFuncExample.dof tags/JCL122-Build965/jcl/examples/PeFuncExample.dpr tags/JCL122-Build965/jcl/examples/PeFuncExample.res tags/JCL122-Build965/jcl/examples/RTTIDemoMain.dfm tags/JCL122-Build965/jcl/examples/RTTIDemoMain.pas tags/JCL122-Build965/jcl/examples/RTTIExample.dof tags/JCL122-Build965/jcl/examples/RTTIExample.dpr tags/JCL122-Build965/jcl/examples/RTTIExample.res tags/JCL122-Build965/jcl/examples/ReadMailDemoMain.dfm tags/JCL122-Build965/jcl/examples/ReadMailDemoMain.pas tags/JCL122-Build965/jcl/examples/ReadMailExample.dof tags/JCL122-Build965/jcl/examples/ReadMailExample.dpr tags/JCL122-Build965/jcl/examples/ReadMailExample.res tags/JCL122-Build965/jcl/examples/RegistryDemoMain.dfm tags/JCL122-Build965/jcl/examples/RegistryDemoMain.pas tags/JCL122-Build965/jcl/examples/RegistryExample.dof tags/JCL122-Build965/jcl/examples/RegistryExample.dpr tags/JCL122-Build965/jcl/examples/RegistryExample.res tags/JCL122-Build965/jcl/examples/SingleInstDemoMain.dfm tags/JCL122-Build965/jcl/examples/SingleInstDemoMain.pas tags/JCL122-Build965/jcl/examples/SingleInstExample.dof tags/JCL122-Build965/jcl/examples/SingleInstExample.dpr tags/JCL122-Build965/jcl/examples/SingleInstExample.res tags/JCL122-Build965/jcl/examples/SourceLocDemoMain.dfm tags/JCL122-Build965/jcl/examples/SourceLocDemoMain.pas tags/JCL122-Build965/jcl/examples/SourceLocExample.dof tags/JCL122-Build965/jcl/examples/SourceLocExample.dpr tags/JCL122-Build965/jcl/examples/SourceLocExample.res tags/JCL122-Build965/jcl/examples/StackTrackDLLsComLibrary.dof tags/JCL122-Build965/jcl/examples/StackTrackDLLsComLibrary.dpr tags/JCL122-Build965/jcl/examples/StackTrackDLLsComLibrary.res tags/JCL122-Build965/jcl/examples/StackTrackDLLsComLibrary.tlb tags/JCL122-Build965/jcl/examples/StackTrackDLLsComLibrary_TLB.pas tags/JCL122-Build965/jcl/examples/StackTrackDLLsComUnit.pas tags/JCL122-Build965/jcl/examples/StackTrackDLLsDemoMain.dfm tags/JCL122-Build965/jcl/examples/StackTrackDLLsDemoMain.pas tags/JCL122-Build965/jcl/examples/StackTrackDLLsDynamicLibrary.dof tags/JCL122-Build965/jcl/examples/StackTrackDLLsDynamicLibrary.dpr tags/JCL122-Build965/jcl/examples/StackTrackDLLsDynamicLibrary.res tags/JCL122-Build965/jcl/examples/StackTrackDLLsDynamicUnit.pas tags/JCL122-Build965/jcl/examples/StackTrackDLLsExample.dof tags/JCL122-Build965/jcl/examples/StackTrackDLLsExample.dpr tags/JCL122-Build965/jcl/examples/StackTrackDLLsExample.res tags/JCL122-Build965/jcl/examples/StackTrackDLLsStaticLibrary.dof tags/JCL122-Build965/jcl/examples/StackTrackDLLsStaticLibrary.dpr tags/JCL122-Build965/jcl/examples/StackTrackDLLsStaticLibrary.res tags/JCL122-Build965/jcl/examples/StackTrackDLLsStaticUnit.pas tags/JCL122-Build965/jcl/examples/StackTrackDemoMain.dfm tags/JCL122-Build965/jcl/examples/StackTrackDemoMain.pas tags/JCL122-Build965/jcl/examples/StackTrackExample.dof tags/JCL122-Build965/jcl/examples/StackTrackExample.dpr tags/JCL122-Build965/jcl/examples/StackTrackExample.res tags/JCL122-Build965/jcl/examples/StretchGraphicDemoMain.dfm tags/JCL122-Build965/jcl/examples/StretchGraphicDemoMain.pas tags/JCL122-Build965/jcl/examples/StretchGraphicExample.dof tags/JCL122-Build965/jcl/examples/StretchGraphicExample.dpr tags/JCL122-Build965/jcl/examples/StretchGraphicExample.res tags/JCL122-Build965/jcl/examples/SysInfoDemoMain.dfm tags/JCL122-Build965/jcl/examples/SysInfoDemoMain.pas tags/JCL122-Build965/jcl/examples/SysInfoExample.dof tags/JCL122-Build965/jcl/examples/SysInfoExample.dpr tags/JCL122-Build965/jcl/examples/SysInfoExample.res tags/JCL122-Build965/jcl/examples/TextReaderDemoMain.dfm tags/JCL122-Build965/jcl/examples/TextReaderDemoMain.pas tags/JCL122-Build965/jcl/examples/TextReaderExample.dof tags/JCL122-Build965/jcl/examples/TextReaderExample.dpr tags/JCL122-Build965/jcl/examples/TextReaderExample.res tags/JCL122-Build965/jcl/examples/ThreadExceptDemoMain.dfm tags/JCL122-Build965/jcl/examples/ThreadExceptDemoMain.pas tags/JCL122-Build965/jcl/examples/ThreadExceptExample.dof tags/JCL122-Build965/jcl/examples/ThreadExceptExample.dpr tags/JCL122-Build965/jcl/examples/ThreadExceptExample.res tags/JCL122-Build965/jcl/examples/UnmangleNameDemoMain.dfm tags/JCL122-Build965/jcl/examples/UnmangleNameDemoMain.pas tags/JCL122-Build965/jcl/examples/UnmangleNameExample.dof tags/JCL122-Build965/jcl/examples/UnmangleNameExample.dpr tags/JCL122-Build965/jcl/examples/UnmangleNameExample.res tags/JCL122-Build965/jcl/examples/VerInfoDemoMain.dfm tags/JCL122-Build965/jcl/examples/VerInfoDemoMain.pas tags/JCL122-Build965/jcl/examples/VerInfoExample.dof tags/JCL122-Build965/jcl/examples/VerInfoExample.dpr tags/JCL122-Build965/jcl/examples/VerInfoExample.res tags/JCL122-Build965/jcl/examples/debugextension/ tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde40.dof tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde40.dpk tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde40.res tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde50.dof tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde50.dpk tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde50.res tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde60.dof tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde60.dpk tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde60.res tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde70.dof tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde70.dpk tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIde70.res tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIdeIcon.res tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIdeImpl.pas tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIdeResult.dfm tags/JCL122-Build965/jcl/examples/debugextension/JclDebugIdeResult.pas tags/JCL122-Build965/jcl/examples/debugextension/JclOtaUtils.pas tags/JCL122-Build965/jcl/examples/debugextension/dialog/ tags/JCL122-Build965/jcl/examples/debugextension/dialog/ClxExceptDlg.ico tags/JCL122-Build965/jcl/examples/debugextension/dialog/ClxExceptDlg.pas tags/JCL122-Build965/jcl/examples/debugextension/dialog/ClxExceptDlg.xfm tags/JCL122-Build965/jcl/examples/debugextension/dialog/ExceptDlg.dfm tags/JCL122-Build965/jcl/examples/debugextension/dialog/ExceptDlg.ico tags/JCL122-Build965/jcl/examples/debugextension/dialog/ExceptDlg.pas tags/JCL122-Build965/jcl/examples/debugextension/dialog/ExceptDlgMail.dfm tags/JCL122-Build965/jcl/examples/debugextension/dialog/ExceptDlgMail.ico tags/JCL122-Build965/jcl/examples/debugextension/dialog/ExceptDlgMail.pas tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ tags/JCL122-Build965/jcl/examples/debugextension/threadnames/JclIdeThreadStatus.pas tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ThreadExpertSharedNames.pas tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ThreadExpertUnit.pas tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ThreadNameExpert40.dof tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ThreadNameExpert40.dpk tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ThreadNameExpert40.res tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ThreadNameExpert50.dof tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ThreadNameExpert50.dpk tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ThreadNameExpert50.res tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ThreadNameExpert60.dof tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ThreadNameExpert60.dpk tags/JCL122-Build965/jcl/examples/debugextension/threadnames/ThreadNameExpert60.res tags/JCL122-Build965/jcl/examples/debugextension/tools/ tags/JCL122-Build965/jcl/examples/debugextension/tools/MakeJclDbg.dof tags/JCL122-Build965/jcl/examples/debugextension/tools/MakeJclDbg.dpr tags/JCL122-Build965/jcl/examples/debugextension/tools/MapToJdbg.dof tags/JCL122-Build965/jcl/examples/debugextension/tools/MapToJdbg.dpr tags/JCL122-Build965/jcl/examples/debugextension/tools/MapToJdbg.res tags/JCL122-Build965/jcl/examples/debugextension/tools/MapToJdbgMain.dfm tags/JCL122-Build965/jcl/examples/debugextension/tools/MapToJdbgMain.pas tags/JCL122-Build965/jcl/examples/debugextension/tools/TlbToMap.dof tags/JCL122-Build965/jcl/examples/debugextension/tools/TlbToMap.dpr tags/JCL122-Build965/jcl/examples/debugextension/tools/TlbToMap.res tags/JCL122-Build965/jcl/examples/debugextension/tools/TlbToMapMain.dfm tags/JCL122-Build965/jcl/examples/debugextension/tools/TlbToMapMain.pas tags/JCL122-Build965/jcl/examples/debugextension/tools/Tools.bpg tags/JCL122-Build965/jcl/examples/debugextension/tools/makefile.mak tags/JCL122-Build965/jcl/examples/delphitools/ tags/JCL122-Build965/jcl/examples/delphitools/DelphiToolsGroup.bpg tags/JCL122-Build965/jcl/examples/delphitools/Readme.txt tags/JCL122-Build965/jcl/examples/delphitools/common/ tags/JCL122-Build965/jcl/examples/delphitools/common/About.dfm tags/JCL122-Build965/jcl/examples/delphitools/common/About.pas tags/JCL122-Build965/jcl/examples/delphitools/common/D6MdiMsgFix.pas tags/JCL122-Build965/jcl/examples/delphitools/common/FindDlg.dfm tags/JCL122-Build965/jcl/examples/delphitools/common/FindDlg.pas tags/JCL122-Build965/jcl/examples/delphitools/common/SHDocVw_TLB.pas tags/JCL122-Build965/jcl/examples/delphitools/common/ToolsUtils.pas tags/JCL122-Build965/jcl/examples/delphitools/dependencyviewer/ tags/JCL122-Build965/jcl/examples/delphitools/dependencyviewer/DependView.dof tags/JCL122-Build965/jcl/examples/delphitools/dependencyviewer/DependView.dpr tags/JCL122-Build965/jcl/examples/delphitools/dependencyviewer/DependView.res tags/JCL122-Build965/jcl/examples/delphitools/dependencyviewer/DependViewMain.dfm tags/JCL122-Build965/jcl/examples/delphitools/dependencyviewer/DependViewMain.pas tags/JCL122-Build965/jcl/examples/delphitools/dependencyviewer/FileViewer.dfm tags/JCL122-Build965/jcl/examples/delphitools/dependencyviewer/FileViewer.pas tags/JCL122-Build965/jcl/examples/delphitools/makefile.mak tags/JCL122-Build965/jcl/examples/delphitools/peviewer/ tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeDump.dfm tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeDump.pas tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeGenDef.dfm tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeGenDef.pas tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeResView.dfm tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeResView.pas tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeResource.pas tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeSearch.dfm tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeSearch.pas tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeViewer.dof tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeViewer.dpr tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeViewer.res tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeViewer.tlb tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeViewerControl.pas tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeViewerMain.dfm tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeViewerMain.pas tags/JCL122-Build965/jcl/examples/delphitools/peviewer/PeViewer_TLB.pas tags/JCL122-Build965/jcl/examples/delphitools/resfix/ tags/JCL122-Build965/jcl/examples/delphitools/resfix/ResFix.dof tags/JCL122-Build965/jcl/examples/delphitools/resfix/ResFix.dpr tags/JCL122-Build965/jcl/examples/delphitools/resfix/ResFix.res tags/JCL122-Build965/jcl/examples/delphitools/resfix/ResFixMain.dfm tags/JCL122-Build965/jcl/examples/delphitools/resfix/ResFixMain.pas tags/JCL122-Build965/jcl/examples/delphitools/screenjpg/ tags/JCL122-Build965/jcl/examples/delphitools/screenjpg/Main.dfm tags/JCL122-Build965/jcl/examples/delphitools/screenjpg/Main.pas tags/JCL122-Build965/jcl/examples/delphitools/screenjpg/ScreenJPG.dof tags/JCL122-Build965/jcl/examples/delphitools/screenjpg/ScreenJPG.dpr tags/JCL122-Build965/jcl/examples/delphitools/screenjpg/ScreenJPG.res tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/ tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/ChangePriority.dfm tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/ChangePriority.pas tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/Global.dfm tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/Global.pas tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/HeapDump.dfm tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/HeapDump.pas tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/Main.dfm tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/Main.pas tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/MemoryDump.dfm tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/MemoryDump.pas tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/ModulesDump.dfm tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/ModulesDump.pas tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/ToolHelpViewer.dof tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/ToolHelpViewer.dpr tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/ToolHelpViewer.res tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/ViewTemplate.dfm tags/JCL122-Build965/jcl/examples/delphitools/toolhelpview/ViewTemplate.pas tags/JCL122-Build965/jcl/examples/idefavopendialogs/ tags/JCL122-Build965/jcl/examples/idefavopendialogs/FavDlg.rc tags/JCL122-Build965/jcl/examples/idefavopendialogs/FavDlg.res tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite40.dof tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite40.dpk tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite40.res tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite50.dof tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite50.dpk tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite50.res tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite60.dof tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite60.dpk tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite60.res tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite70.dof tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite70.dpk tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite70.res tags/JCL122-Build965/jcl/examples/idefavopendialogs/IdeOpenDlgFavoriteUnit.pas tags/JCL122-Build965/jcl/examples/idefavopendialogs/OpenDlgFavAdapter.pas tags/JCL122-Build965/jcl/examples/installhelper/ tags/JCL122-Build965/jcl/examples/installhelper/DelphiInstall.pas tags/JCL122-Build965/jcl/examples/installhelper/JclInstall.pas tags/JCL122-Build965/jcl/examples/installhelper/JediInstallIntf.pas tags/JCL122-Build965/jcl/examples/installhelper/JediInstaller.dof tags/JCL122-Build965/jcl/examples/installhelper/JediInstaller.dpr tags/JCL122-Build965/jcl/examples/installhelper/JediInstaller.res tags/JCL122-Build965/jcl/examples/installhelper/JediInstallerMain.dfm tags/JCL122-Build965/jcl/examples/installhelper/JediInstallerMain.pas tags/JCL122-Build965/jcl/examples/installhelper/makefile.mak tags/JCL122-Build965/jcl/examples/makefile.mak tags/JCL122-Build965/jcl/examples/projectanalyzer/ tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjAnalyzerFrm.dfm tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjAnalyzerFrm.pas tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjAnalyzerIcon.res tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjAnalyzerImpl.pas tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer40.dof tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer40.dpk tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer40.res tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer50.dof tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer50.dpk tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer50.res tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer60.dof tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer60.dpk tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer60.res tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer70.dof tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer70.dpk tags/JCL122-Build965/jcl/examples/projectanalyzer/ProjectAnalyzer70.res tags/JCL122-Build965/jcl/help/ tags/JCL122-Build965/jcl/help/JclHelp.cnt tags/JCL122-Build965/jcl/help/JclHelp.hlp tags/JCL122-Build965/jcl/makefile.mak tags/JCL122-Build965/jcl/packages/ tags/JCL122-Build965/jcl/packages/CJCL50.bpk tags/JCL122-Build965/jcl/packages/CJCL50.cpp tags/JCL122-Build965/jcl/packages/CJCL50.res tags/JCL122-Build965/jcl/packages/DJCL40.dof tags/JCL122-Build965/jcl/packages/DJCL40.dpk tags/JCL122-Build965/jcl/packages/DJCL40.res tags/JCL122-Build965/jcl/packages/DJCL50.dof tags/JCL122-Build965/jcl/packages/DJCL50.dpk tags/JCL122-Build965/jcl/packages/DJCL50.res tags/JCL122-Build965/jcl/packages/DJCL60.dof tags/JCL122-Build965/jcl/packages/DJCL60.dpk tags/JCL122-Build965/jcl/packages/DJCL60.res tags/JCL122-Build965/jcl/packages/DJCL70.dof tags/JCL122-Build965/jcl/packages/DJCL70.dpk tags/JCL122-Build965/jcl/packages/DJCL70.res tags/JCL122-Build965/jcl/packages/JclPackages40.bpg tags/JCL122-Build965/jcl/packages/JclPackages50.bpg tags/JCL122-Build965/jcl/packages/JclPackages60.bpg tags/JCL122-Build965/jcl/packages/JclPackages70.bpg tags/JCL122-Build965/jcl/source/ tags/JCL122-Build965/jcl/source/JEDI.inc tags/JCL122-Build965/jcl/source/Jcl8087.pas tags/JCL122-Build965/jcl/source/JclAppInst.pas tags/JCL122-Build965/jcl/source/JclBase.pas tags/JCL122-Build965/jcl/source/JclCOM.pas tags/JCL122-Build965/jcl/source/JclComplex.pas tags/JCL122-Build965/jcl/source/JclConsole.pas tags/JCL122-Build965/jcl/source/JclCounter.pas tags/JCL122-Build965/jcl/source/JclDateTime.pas tags/JCL122-Build965/jcl/source/JclDebug.pas tags/JCL122-Build965/jcl/source/JclExprEval.pas tags/JCL122-Build965/jcl/source/JclFileUtils.pas tags/JCL122-Build965/jcl/source/JclGraphUtils.pas tags/JCL122-Build965/jcl/source/JclGraphics.pas tags/JCL122-Build965/jcl/source/JclHookExcept.pas tags/JCL122-Build965/jcl/source/JclIniFiles.pas tags/JCL122-Build965/jcl/source/JclLANMan.pas tags/JCL122-Build965/jcl/source/JclLocales.pas tags/JCL122-Build965/jcl/source/JclLogic.pas tags/JCL122-Build965/jcl/source/JclMIDI.pas tags/JCL122-Build965/jcl/source/JclMapi.pas tags/JCL122-Build965/jcl/source/JclMath.pas tags/JCL122-Build965/jcl/source/JclMime.pas tags/JCL122-Build965/jcl/source/JclMiscel.pas tags/JCL122-Build965/jcl/source/JclMultimedia.pas tags/JCL122-Build965/jcl/source/JclNTFS.pas tags/JCL122-Build965/jcl/source/JclPeImage.pas tags/JCL122-Build965/jcl/source/JclPrint.pas tags/JCL122-Build965/jcl/source/JclRTTI.pas tags/JCL122-Build965/jcl/source/JclRegistry.pas tags/JCL122-Build965/jcl/source/JclResources.pas tags/JCL122-Build965/jcl/source/JclSchedule.pas tags/JCL122-Build965/jcl/source/JclSecurity.pas tags/JCL122-Build965/jcl/source/JclShell.pas tags/JCL122-Build965/jcl/source/JclStatistics.pas tags/JCL122-Build965/jcl/source/JclStrHashMap.pas tags/JCL122-Build965/jcl/source/JclStrings.pas tags/JCL122-Build965/jcl/source/JclSvcCtrl.pas tags/JCL122-Build965/jcl/source/JclSynch.pas tags/JCL122-Build965/jcl/source/JclSysInfo.pas tags/JCL122-Build965/jcl/source/JclSysUtils.pas tags/JCL122-Build965/jcl/source/JclTD32.pas tags/JCL122-Build965/jcl/source/JclUnicode.pas tags/JCL122-Build965/jcl/source/JclUnicode.rc tags/JCL122-Build965/jcl/source/JclUnicode.res tags/JCL122-Build965/jcl/source/JclUnitConv.pas tags/JCL122-Build965/jcl/source/JclWin32.pas tags/JCL122-Build965/jcl/source/JclWinMIDI.pas tags/JCL122-Build965/jcl/source/LM.pas tags/JCL122-Build965/jcl/source/Snmp.pas tags/JCL122-Build965/jcl/source/jcl.inc Added: tags/JCL122-Build965/jcl/Install.bat =================================================================== --- tags/JCL122-Build965/jcl/Install.bat (rev 0) +++ tags/JCL122-Build965/jcl/Install.bat 2006-08-18 15:15:47 UTC (rev 1743) @@ -0,0 +1,4 @@ +@CD Examples\InstallHelper +@MAKE +@CD ..\.. +@START Bin\JediInstaller.exe \ No newline at end of file Added: tags/JCL122-Build965/jcl/Readme.html =================================================================== --- tags/JCL122-Build965/jcl/Readme.html (rev 0) +++ tags/JCL122-Build965/jcl/Readme.html 2006-08-18 15:15:47 UTC (rev 1743) @@ -0,0 +1,346 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<HTML> + +<HEAD> +<TITLE>Jedi Code Library Release 1.22</TITLE> +</HEAD> + +<BODY> +<PRE> +=============================================================================== +Jedi Code Library +Release 1.22 +Build 965 22-Oct-2002 +=============================================================================== + +It has been a long time since we released the last version of the Jedi Code +Library. Now, we are proud to present Version 1.22. It includes a real bunch of +bug fixes, some new features and even two completely new units. + +Furthermore we are introducing an Issue Tracker to help you and us to solve JCL +related problems as fast as possible. The times in which you had to check the +VCS, or contact someone from the team individually to retain information about +the status of a specific bug are gone by now. + +So far the good news, some less good news is that the team changed a little +bit. The former lead and main coordinator of the JCL - Marcel van Brakel - has +left the team and moved on to other areas. We hereby wish him good look and +want to say "thank you" for all what he has done. Please do not send any email +regarding JCL support to him - instead use the mailing list, the newsgroup or +one of our email accounts. + +<B>* New features</B> + +- Delphi 7 support +- JCL Installer allows to specify path to BPL and DCP files +- Exception Dialog with 'Send' button to send the report by Simple MAPI +- New Unit: JclSchedule Contains scheduler classes. + +<B>* Bug fixes</B> + +* JclConsole: + - Changed Alloc and Dealloc to class function + +* JclDebug: + - Bug in TJclMapScanner class address range calculating + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000069">InsertDebugDataIntoExecutableFile returns True if DebugData already present</A> + +* JclFileUtils: + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000271">GetSizeOfFile function does not work for files larger than 4GB</A> + +* JclGraphics: + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000342">Memory leak in IconToBitmap function</A> + +* JclMapi: + - Bug in TJclEmail.GetParentWnd + +* JclMath: + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000349">ModFloat(-2, 2) gives 2</A> + +* JclStrings: + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000253">Bug in StrStripNonNumbersChars</A> + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000341">StrReverse could use StrReverseInPlace</A> + +* JclSysInfo: + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000365">GetShellProcessName does not work on Win9x systems</A> + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000303">RunningProcessesList, FullPath option does not work under Windows XP</A> + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000186">Exception in GetBiosName and GetBiosExtendedInfo</A> + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000231">Program crashes when tries to use function GetBIOSExtendedInfo and others under Windows 2000</A> + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000215">GetSwapFileUsage gives an error if there is no Page File</A> + +* JclSysUtils: + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000248">StrToBoolean does not accept 'Y', 'N', 'T', 'F'</A> + +* JclUnicode: + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000204">Dialogs unit does not need to be in the uses clause</A> + +* JCL Installer: + - <A href="http://projectjedi.sourceforge.net/mantis/view_bug_advanced_page.php?f_id=0000322">Installerinoperable when using large fonts</A> + + +<B>* JCL Distribution content:</B> + +Install.bat - Compile and run JCL Installer +makefile.mak - Builds all JCL examples and tools +Readme.txt +Bin - Folder for compiled JCL binaries +Dcu - Folder for DCU files +Examples - JCL example applications +Examples\DebugExtension - JCL Debug IDE expert for using JclDebug unit + \Dialog - Application exception dialog replacement + \ThreadNames - IDE expert showing class names for debugged threads + \Tools - Tools for creating files with JCL debug information +Examples\DelphiTools - Collection of system tools using JCL +Examples\InstallHelper - JCL Installer +Examples\ProjectAnalyzer - Project Analyzer IDE expert +Help - Help file +Packages - JCL runtime package and project group containing all + available design-time packages +Source - JCL source code + + +<B>* Installation</B> + +Supported development tools versions: + +- Delphi 4 Update Pack #3 +- Delphi 5 Update Pack #1 +- Delphi 6 Update Pack #2 (including Personal Edition) +- Delphi 7 +- Free Pascal compiler +- C++ Builder 5 + +Please make sure you have installed latest update packs. You can download them +from Borland Support web page: <A HREF="http://info.borland.com/devsupport/delphi/">http://info.borland.com/devsupport/delphi/</A> + +Important: +If you have installed any previous version of the JCL you have to delete it. It +is also necessary to remove all installed JCL packages from the IDE. Do not mix +files or compiled packages from older versions of the JCL with current version. + +Because the JCL does NOT contain any components you don't have to install it to +the IDE. Just use desired unit(s) in your project (add them to uses clause) and +make sure IDE Library Path or Project Search Path contains JCL\Source folder, +i.e. C:\Delphi\JCL\Source (where C:\Delphi\JCL is folder when you have unzipped +the JCL archive). + +- To set the path for all projects in IDE Library Path (recommended) go to: + Tools|Environment Options -> Library tab, add the path to Library Path field + or use JCL Installer described later in the document + +- To set the path for a project only (optional) go to: + Project|Options -> Directories/Conditionals page, add the path to Search path + field + +Although you might want to install additional experts or files shipped with the +JCL. Currently there are: + +- Help file +- Improved VCL Exception Dialogs (see JclDebug notes below in the document) +- IDE experts + +The installation process is described later in the document. You can use JCL +Installer to simplify the installation process. + +<B>Using JCL with Delphi 7 Trial Edition:</B> +The compiler in the Trail Edition is not fully compatible with full editions +of Delphi. It is not able to compile units with $WEAKPACKAGEUNIT ON switch +used in the JCL units. You may temporarily comment out the directive in order +to compile the JCL units by this edition. + + +<B>* JCL Installer</B> + +Helps you to integrate Jedi Code Library with Delphi IDE. Currently it assists +with: + +- Compiling and installing runtime packages and IDE experts +- Adding JCL Debug extension dialogs to Object Repository +- Adding JCL\Source path to Library Path in Environment Options +- Integrating JCL help file to the IDE. + +To start it double-click on <B><U>Install.bat</B></U> file in the JCL root folder. + + +<B>* Feedback</B> + +If you have any comments or suggestions we would appreciate it if you drop us a +note. There are several ways to get in contact with us: + + - Write to <A HREF="mailto:jc...@de...">jc...@de...</A> or to <A HREF="mailto:jcl...@de...">jcl...@de...</A> + This email account should not be used for support requests. If you need + support please use either the newsgroups or the mailing list. + + - If you want to keep up to date about JCL then you can join the JCL mailing + list by going to <A HREF="http://www.egroups.com/group/JEDI-JCL">http://www.egroups.com/group/JEDI-JCL</A> + You can also use this list to voice your opinion, comments or suggestions. + + - If you prefer a newsgroup over a mailing list please join us at + <A HREF="news://forums.talkto.net/jedi.jcl">news://forums.talkto.net/jedi.jcl</A>. + The newsgroup is the point where you can discuss the JCL with other users + and with the team itself. + + +<B>* Issue Tracking</B> + +An issue tracking tool can be accessed via ('Code Library' category): + +<A HREF="http://projectjedi.sourceforge.net/mantis/">http://projectjedi.sourceforge.net/mantis/</A> + +The general rule is: <B><FONT color="#FF0000">If you want to get a bug fixed you need to log it!</B></FONT> + +The JEDI issue tracker is based up on the Mantis BugTracker Open Source project. +More background information about it is available on its homepage +<A HREF="http://mantisbt.sourceforge.net">http://mantisbt.sourceforge.net</A> + +Please be aware that you are allowed there to enter feature request and code +donations as well. + + +<B>* Packages</B> + +DJCL40.dpk - Runtime package for Delphi 4 +DJCL50.dpk - Runtime package for Delphi 5 +DJCL60.dpk - Runtime package for Delphi 6 +DJCL70.dpk - Runtime package for Delphi 7 +CJCL50.bpk - Runtime package for C++ Builder 5 + +JclDebugIde - Expert for inserting JCL Debug information into executable + files. This is useful when use source location routines in + your application +ThreadNameExpert - Expert for displaying class names of TThread classes in + Thread Status window during debugging. See ThreadNamesExample + project in JCL\Examples folder. This expert isn't shipped for + Delphi 7 because the IDE already has the functionality. +ProjectAnalyzer - Expert showing list of units compiled to a current project + including the information how much a unit contributes to the + executable file size. It will add 'Analyze Project <name>' + item to the Project menu + + +<B>* Debug Extension for JclDebug unit</B> + +Examples\DebugExtension folder contains IDE expert which assists to insert JCL +Debug information into executable files. This can be useful when use source +location routines from JclDebug unit. These routines needs some kind of special +information to be able provide source location for given address in the process. +Currently there are four options to get it work: + +1. Generate and deploy MAP file with your executable file. The file is generated + by the linker. It needs to be set in Project|Options dialog -> Linker page, + Detailed checkbox. + +2. Generate and deploy JDBG file file with your executable file. This is binary + file based on MAP file but its size is typically about 12% of original MAP + file. You can generate it by MapToJdbg tool in JCL\Examples\Tools folder. + The advantage over MAP file is smaller size and better security of the file + content because it is not a plain text file and it also contains a checksum. + +3. Generate Borland TD32 debug symbols. These symbols are stored directly in the + executable file but usually adds several megabytes so the file is very large. + The advantage is you don't have to deploy any other file and it is easy to + generate it by checking Include TD32 debug info in Linker option page. + +4. Insert JCL Debug info into executable file by the IDE expert. The size of + added data is similar to JDBG file but it will be inserted directly into the + executable file. This is probably best option because it combines small size + of included data and no requirement of deploying additional files. In case + you use this option you need install the JclDebugIde expert. + +The IDE expert will add new item to IDE Project menu. Due some differences in +Open Tools API the use of the expert is slightly different in Delphi 4. For +Delphi 5, 6 and 7 it adds 'Insert JCL Debug data' check item at the end of the +Project menu. When the item is checked, everytime the project is compiled by one +of following commands: Compile, Build, Compile All Projects, Build All Projects +or Run necessary JCL debug data are automatically inserted into the executable. +Moreover, for Build and Build All commands dialog with detailed information of +size of these data will be displayed. For Delphi 4 there is 'Build JCL Debug' +command only in the Project menu which performs a build including these data. + +You can generate those debug data for packages and libraries as well using the +expert. Each executable file in the project can use different option from those +listed above. It is not necessary to generate any debug data for Borland runtime +packages because the source location code can use names of exported functions +to get procedure or method name. To get line number information for Borland RTL +and VCL/CLX units you have to check Use Debug DCUs checkbox in Project|Options +dialog -> Compiler tab (not available in Delphi 4). Unfortunately it is not +possible to get line number information for Borland runtime packages because +Borland does not provide detailed MAP files for them so you get procedure or +method name only. + +In case you have more than one data source for an executable file by an accident +the best one is chosen in following order: + +1. JCL Debug data in the executable file +2. JDBG file +3. Borland TD32 symbols +4. MAP file +5. Library or Borland package exports + +It is also possible to insert JCL debug data programmatically to the executable +file by using MakeJclDbg command line tool in JCL\Examples\Tools folder. You can +study included makefiles which uses this tool for building DelphiTools examples. + +To help using JclDebug exceptional stack tracking in application simple dialog +is provided in JCL\Examples\DebugExtension\Dialog folder. The dialog replaces +standard dialog displayed by VCL or CLX application when an unhandled exception +occurs. It has additional Detailed button showing the stack, list of loaded +modules and other system information. By adding the dialog to the application +exceptional stack tracking code is automatically initialized so you don't have +to care about it. You can also turn on logging to text file by setting the Tag +property of the dialog to '1'. There is also version for CLX (ClxExceptDlg) but +it works on Windows only. These dialogs are intended to be added to Object +Repository. + +<B>Short description of getting the JclDebug functionality in your project:</B> + +1. Close all running instances of Delphi +2. Install JCL and IDE experts by the JCL Installer +3. Run Delphi IDE and open your project +4. Remove any TApplication.OnException handlers from your project (if any). +5. Add new Exception Dialog by selecting File | New | Other ... | Dialogs tab, + Select 'Exception Dialog' or 'Exception Dialog with Send' icon, + Click OK button, + Save the form (use ExceptionDialog.pas name, for example) +6. Check Project | Insert JCL Debug data menu item +7. Do Project | Build + + +<B>* Makefiles</B> + +In order to compile all examples and tools by one command we provide makefiles. +To use them open Command Prompt, change current directory to root JCL directory +and run MAKE command. It should start to compile all project using most recent +version of compiler from installed Delphi versions. All executable files will be +created in JCL\Bin directory. + + +<B>* Version Control</B> + +We are using FreeVCS as version control system. You can download it from +<A HREF="http://www.freevcs.de">http://www.freevcs.de</A> + +To sychronize please use one of the following accounts: + +server: demos.href.com +uid: jcluser1 +pwd: jcluser + +server: demos.href.com +uid: jcluser2 +pwd: jcluser + +server: demos.href.com +uid: jcluser3 +pwd: jcluser + + +<B>* Downloads</B> + +Jedi Code Library: File List on SourceForge: +<A href="http://sourceforge.net/project/showfiles.php?group_id=47514">http://sourceforge.net/project/showfiles.php?group_id=47514</A> +</PRE> + +</BODY> +</HTML> + Added: tags/JCL122-Build965/jcl/Readme.txt =================================================================== --- tags/JCL122-Build965/jcl/Readme.txt (rev 0) +++ tags/JCL122-Build965/jcl/Readme.txt 2006-08-18 15:15:47 UTC (rev 1743) @@ -0,0 +1,332 @@ +=============================================================================== +Jedi Code Library +Release 1.22 +Build 965 22-Oct-2002 +=============================================================================== + +It has been a long time since we released the last version of the Jedi Code +Library. Now, we are proud to present Version 1.22. It includes a real bunch of +bug fixes, some new features and even two completely new units. + +Furthermore we are introducing an Issue Tracker to help you and us to solve JCL +related problems as fast as possible. The times in which you had to check the +VCS, or contact someone from the team individually to retain information about +the status of a specific bug are gone by now. + +So far the good news, some less good news is that the team changed a little +bit. The former lead and main coordinator of the JCL - Marcel van Brakel - has +left the team and moved on to other areas. We hereby wish him good look and +want to say "thank you" for all what he has done. Please do not send any email +regarding JCL support to him - instead use the mailing list, the newsgroup or +one of our email accounts. + +* New features + +- Delphi 7 support +- JCL Installer allows to specify path to BPL and DCP files +- Exception Dialog with 'Send' button to send the report by Simple MAPI +- New Unit: JclSchedule Contains scheduler classes. + +* Bug fixes + +* JclConsole: + - Changed Alloc and Dealloc to class function + +* JclDebug: + - Bug in TJclMapScanner class address range calculating + - InsertDebugDataIntoExecutableFile returns True if DebugData already present + +* JclFileUtils: + - GetSizeOfFile function does not work for files larger than 4GB + +* JclGraphics: + - Memory leak in IconToBitmap function + +* JclMapi: + - Bug in TJclEmail.GetParentWnd + +* JclMath: + - ModFloat(-2, 2) gives 2 + +* JclStrings: + - Bug in StrStripNonNumbersChars + - StrReverse could use StrReverseInPlace + +* JclSysInfo: + - GetShellProcessName does not work on Win9x systems + - RunningProcessesList, FullPath option does not work under Windows XP + - Exception in GetBiosName and GetBiosExtendedInfo + - Program crashes when tries to use function GetBIOSExtendedInfo and others under Windows 2000 + - GetSwapFileUsage gives an error if there is no Page File + +* JclSysUtils: + - StrToBoolean does not accept 'Y', 'N', 'T', 'F' + +* JclUnicode: + - Dialogs unit does not need to be in the uses clause + +* JCL Installer: + - Installerinoperable when using large fonts + + +* JCL Distribution content: + +Install.bat - Compile and run JCL Installer +makefile.mak - Builds all JCL examples and tools +Readme.txt +Bin - Folder for compiled JCL binaries +Dcu - Folder for DCU files +Examples - JCL example applications +Examples\DebugExtension - JCL Debug IDE expert for using JclDebug unit + \Dialog - Application exception dialog replacement + \ThreadNames - IDE expert showing class names for debugged threads + \Tools - Tools for creating files with JCL debug information +Examples\DelphiTools - Collection of system tools using JCL +Examples\InstallHelper - JCL Installer +Examples\ProjectAnalyzer - Project Analyzer IDE expert +Help - Help file +Packages - JCL runtime package and project group containing all + available design-time packages +Source - JCL source code + + +* Installation + +Supported development tools versions: + +- Delphi 4 Update Pack #3 +- Delphi 5 Update Pack #1 +- Delphi 6 Update Pack #2 (including Personal Edition) +- Delphi 7 +- Free Pascal compiler +- C++ Builder 5 + +Please make sure you have installed latest update packs. You can download them +from Borland Support web page: http://info.borland.com/devsupport/delphi/ + +Important: +If you have installed any previous version of the JCL you have to delete it. It +is also necessary to remove all installed JCL packages from the IDE. Do not mix +files or compiled packages from older versions of the JCL with current version. + +Because the JCL does NOT contain any components you don't have to install it to +the IDE. Just use desired unit(s) in your project (add them to uses clause) and +make sure IDE Library Path or Project Search Path contains JCL\Source folder, +i.e. C:\Delphi\JCL\Source (where C:\Delphi\JCL is folder when you have unzipped +the JCL archive). + +- To set the path for all projects in IDE Library Path (recommended) go to: + Tools|Environment Options -> Library tab, add the path to Library Path field + or use JCL Installer described later in the document + +- To set the path for a project only (optional) go to: + Project|Options -> Directories/Conditionals page, add the path to Search path + field + +Although you might want to install additional experts or files shipped with the +JCL. Currently there are: + +- Help file +- Improved VCL Exception Dialogs (see JclDebug notes below in the document) +- IDE experts + +The installation process is described later in the document. You can use JCL +Installer to simplify the installation process. + +Using JCL with Delphi 7 Trial Edition: +The compiler in the Trail Edition is not fully compatible with full editions +of Delphi. It is not able to compile units with $WEAKPACKAGEUNIT ON switch +used in the JCL units. You may temporarily comment out the directive in order +to compile the JCL units by this edition. + + +* JCL Installer + +Helps you to integrate Jedi Code Library with Delphi IDE. Currently it assists +with: + +- Compiling and installing runtime packages and IDE experts +- Adding JCL Debug extension dialogs to Object Repository +- Adding JCL\Source path to Library Path in Environment Options +- Integrating JCL help file to the IDE. + +To start it double-click on Install.bat file in the JCL root folder. + + +* Feedback + +If you have any comments or suggestions we would appreciate it if you drop us a +note. There are several ways to get in contact with us: + + - Write to jc...@de... or to jcl...@de... + This email account should not be used for support requests. If you need + support please use either the newsgroups or the mailing list. + + - If you want to keep up to date about JCL then you can join the JCL mailing + list by going to http://www.egroups.com/group/JEDI-JCL + You can also use this list to voice your opinion, comments or suggestions. + + - If you prefer a newsgroup over a mailing list please join us at + news://forums.talkto.net/jedi.jcl. + The newsgroup is the point where you can discuss the JCL with other users + and with the team itself. + + +* Issue Tracking + +An issue tracking tool can be accessed via ('Code Library' category): + +http://projectjedi.sourceforge.net/mantis/ + +The general rule is: If you want to get a bug fixed you need to log it! + +The JEDI issue tracker is based up on the Mantis BugTracker Open Source project. +More background information about it is available on its homepage +http://mantisbt.sourceforge.net + +Please be aware that you are allowed there to enter feature request and code +donations as well. + + +* Packages + +DJCL40.dpk - Runtime package for Delphi 4 +DJCL50.dpk - Runtime package for Delphi 5 +DJCL60.dpk - Runtime package for Delphi 6 +DJCL70.dpk - Runtime package for Delphi 7 +CJCL50.bpk - Runtime package for C++ Builder 5 + +JclDebugIde - Expert for inserting JCL Debug information into executable + files. This is useful when use source location routines in + your application +ThreadNameExpert - Expert for displaying class names of TThread classes in + Thread Status window during debugging. See ThreadNamesExample + project in JCL\Examples folder. This expert isn't shipped for + Delphi 7 because the IDE already has the functionality. +ProjectAnalyzer - Expert showing list of units compiled to a current project + including the information how much a unit contributes to the + executable file size. It will add 'Analyze Project <name>' + item to the Project menu + + +* Debug Extension for JclDebug unit + +Examples\DebugExtension folder contains IDE expert which assists to insert JCL +Debug information into executable files. This can be useful when use source +location routines from JclDebug unit. These routines needs some kind of special +information to be able provide source location for given address in the process. +Currently there are four options to get it work: + +1. Generate and deploy MAP file with your executable file. The file is generated + by the linker. It needs to be set in Project|Options dialog -> Linker page, + Detailed checkbox. + +2. Generate and deploy JDBG file file with your executable file. This is binary + file based on MAP file but its size is typically about 12% of original MAP + file. You can generate it by MapToJdbg tool in JCL\Examples\Tools folder. + The advantage over MAP file is smaller size and better security of the file + content because it is not a plain text file and it also contains a checksum. + +3. Generate Borland TD32 debug symbols. These symbols are stored directly in the + executable file but usually adds several megabytes so the file is very large. + The advantage is you don't have to deploy any other file and it is easy to + generate it by checking Include TD32 debug info in Linker option page. + +4. Insert JCL Debug info into executable file by the IDE expert. The size of + added data is similar to JDBG file but it will be inserted directly into the + executable file. This is probably best option because it combines small size + of included data and no requirement of deploying additional files. In case + you use this option you need install the JclDebugIde expert. + +The IDE expert will add new item to IDE Project menu. Due some differences in +Open Tools API the use of the expert is slightly different in Delphi 4. For +Delphi 5, 6 and 7 it adds 'Insert JCL Debug data' check item at the end of the +Project menu. When the item is checked, everytime the project is compiled by one +of following commands: Compile, Build, Compile All Projects, Build All Projects +or Run necessary JCL debug data are automatically inserted into the executable. +Moreover, for Build and Build All commands dialog with detailed information of +size of these data will be displayed. For Delphi 4 there is 'Build JCL Debug' +command only in the Project menu which performs a build including these data. + +You can generate those debug data for packages and libraries as well using the +expert. Each executable file in the project can use different option from those +listed above. It is not necessary to generate any debug data for Borland runtime +packages because the source location code can use names of exported functions +to get procedure or method name. To get line number information for Borland RTL +and VCL/CLX units you have to check Use Debug DCUs checkbox in Project|Options +dialog -> Compiler tab (not available in Delphi 4). Unfortunately it is not +possible to get line number information for Borland runtime packages because +Borland does not provide detailed MAP files for them so you get procedure or +method name only. + +In case you have more than one data source for an executable file by an accident +the best one is chosen in following order: + +1. JCL Debug data in the executable file +2. JDBG file +3. Borland TD32 symbols +4. MAP file +5. Library or Borland package exports + +It is also possible to insert JCL debug data programmatically to the executable +file by using MakeJclDbg command line tool in JCL\Examples\Tools folder. You can +study included makefiles which uses this tool for building DelphiTools examples. + +To help using JclDebug exceptional stack tracking in application simple dialog +is provided in JCL\Examples\DebugExtension\Dialog folder. The dialog replaces +standard dialog displayed by VCL or CLX application when an unhandled exception +occurs. It has additional Detailed button showing the stack, list of loaded +modules and other system information. By adding the dialog to the application +exceptional stack tracking code is automatically initialized so you don't have +to care about it. You can also turn on logging to text file by setting the Tag +property of the dialog to '1'. There is also version for CLX (ClxExceptDlg) but +it works on Windows only. These dialogs are intended to be added to Object +Repository. + +Short description of getting the JclDebug functionality in your project: + +1. Close all running instances of Delphi +2. Install JCL and IDE experts by the JCL Installer +3. Run Delphi IDE and open your project +4. Remove any TApplication.OnException handlers from your project (if any). +5. Add new Exception Dialog by selecting File | New | Other ... | Dialogs tab, + Select 'Exception Dialog' or 'Exception Dialog with Send' icon, + Click OK button, + Save the form (use ExceptionDialog.pas name, for example) +6. Check Project | Insert JCL Debug data menu item +7. Do Project | Build + + +* Makefiles + +In order to compile all examples and tools by one command we provide makefiles. +To use them open Command Prompt, change current directory to root JCL directory +and run MAKE command. It should start to compile all project using most recent +version of compiler from installed Delphi versions. All executable files will be +created in JCL\Bin directory. + + +* Version Control + +We are using FreeVCS as version control system. You can download it from +http://www.freevcs.de + +To sychronize please use one of the following accounts: + +server: demos.href.com +uid: jcluser1 +pwd: jcluser + +server: demos.href.com +uid: jcluser2 +pwd: jcluser + +server: demos.href.com +uid: jcluser3 +pwd: jcluser + + +* Downloads + +Jedi Code Library: File List on SourceForge: +http://sourceforge.net/project/showfiles.php?group_id=47514 \ No newline at end of file Added: tags/JCL122-Build965/jcl/bin/Bin.txt =================================================================== --- tags/JCL122-Build965/jcl/bin/Bin.txt (rev 0) +++ tags/JCL122-Build965/jcl/bin/Bin.txt 2006-08-18 15:15:47 UTC (rev 1743) @@ -0,0 +1 @@ +This directory is inteded as a common place for sample application's EXE files \ No newline at end of file Added: tags/JCL122-Build965/jcl/dcu/Dcu.txt =================================================================== --- tags/JCL122-Build965/jcl/dcu/Dcu.txt (rev 0) +++ tags/JCL122-Build965/jcl/dcu/Dcu.txt 2006-08-18 15:15:47 UTC (rev 1743) @@ -0,0 +1 @@ +This directory is inteded as a common place for DCU files of design-time packages. \ No newline at end of file Added: tags/JCL122-Build965/jcl/examples/ApiHookDemoMain.dfm =================================================================== (Binary files differ) Property changes on: tags/JCL122-Build965/jcl/examples/ApiHookDemoMain.dfm ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: tags/JCL122-Build965/jcl/examples/ApiHookDemoMain.pas =================================================================== --- tags/JCL122-Build965/jcl/examples/ApiHookDemoMain.pas (rev 0) +++ tags/JCL122-Build965/jcl/examples/ApiHookDemoMain.pas 2006-08-18 15:15:47 UTC (rev 1743) @@ -0,0 +1,82 @@ +unit ApiHookDemoMain; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, + StdCtrls; + +type + TForm1 = class(TForm) + HookBtn: TButton; + UnhookBtn: TButton; + BeepBtn: TButton; + Memo1: TMemo; + procedure HookBtnClick(Sender: TObject); + procedure UnhookBtnClick(Sender: TObject); + procedure BeepBtnClick(Sender: TObject); + private + { Private declarations } + public + procedure AddMsg(const S: string); + end; + +var + Form1: TForm1; + +implementation + +{$R *.DFM} + +uses + JclPeImage, JclSysUtils; + +var + PeImportHooks: TJclPeMapImgHooks; + + OldMessageBeep: function(uType: UINT): BOOL; stdcall = nil; + +function NewMessageBeep(uType: UINT): BOOL; stdcall; +begin + Form1.AddMsg(Format('MessageBeep called, uType = %d', [uType])); + Result := OldMessageBeep(uType); +end; + +{ TForm1 } + +procedure TForm1.AddMsg(const S: string); +begin + Memo1.Lines.Add(S); +end; + +procedure TForm1.HookBtnClick(Sender: TObject); +begin + if PeImportHooks.HookImport(Pointer(HInstance), user32, 'MessageBeep', + @NewMessageBeep, @OldMessageBeep) then + AddMsg('MessageBeep hooked ...') + else + AddMsg(Format('MessageBeep hooking error - %s', [SysErrorMessage(GetLastError)])); +end; + +procedure TForm1.UnhookBtnClick(Sender: TObject); +begin + if PeImportHooks.UnhookByNewAddress(@NewMessageBeep) then + begin + @OldMessageBeep := nil; + AddMsg('MessageBeep unhooked ...'); + end else + AddMsg('MessageBeep wasn''t hooked') +end; + +procedure TForm1.BeepBtnClick(Sender: TObject); +begin + MessageBeep(MB_OK); +end; + +initialization + PeImportHooks := TJclPeMapImgHooks.Create; + +finalization + FreeAndNil(PeImportHooks); + +end. Added: tags/JCL122-Build965/jcl/examples/ApiHookExample.dof =================================================================== --- tags/JCL122-Build965/jcl/examples/ApiHookExample.dof (rev 0) +++ tags/JCL122-Build965/jcl/examples/ApiHookExample.dof 2006-08-18 15:15:47 UTC (rev 1743) @@ -0,0 +1,4 @@ +[Directorie... [truncated message content] |
|
From: <ou...@us...> - 2006-08-18 15:26:41
|
Revision: 1742 Author: outchy Date: 2006-08-18 08:12:25 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1742&view=rev Log Message: ----------- Old releases that were hidden in the files section at Sourceforge. These releases are no more supported, just made public for courtesy purpose. Added Paths: ----------- tags/JCL121-Build870/jcl/ tags/JCL121-Build870/jcl/Install.bat tags/JCL121-Build870/jcl/JEDI Code Library Home Page.url tags/JCL121-Build870/jcl/Project JEDI - Issue Tracker.url tags/JCL121-Build870/jcl/Readme.txt tags/JCL121-Build870/jcl/bin/ tags/JCL121-Build870/jcl/bin/Bin.txt tags/JCL121-Build870/jcl/dcu/ tags/JCL121-Build870/jcl/dcu/Dcu.txt tags/JCL121-Build870/jcl/examples/ tags/JCL121-Build870/jcl/examples/ApiHookDemoMain.dfm tags/JCL121-Build870/jcl/examples/ApiHookDemoMain.pas tags/JCL121-Build870/jcl/examples/ApiHookExample.dof tags/JCL121-Build870/jcl/examples/ApiHookExample.dpr tags/JCL121-Build870/jcl/examples/ApiHookExample.res tags/JCL121-Build870/jcl/examples/AppInstDemoMain.dfm tags/JCL121-Build870/jcl/examples/AppInstDemoMain.pas tags/JCL121-Build870/jcl/examples/AppInstExample.dof tags/JCL121-Build870/jcl/examples/AppInstExample.dpr tags/JCL121-Build870/jcl/examples/AppInstExample.res tags/JCL121-Build870/jcl/examples/ConsoleExamples.dpr tags/JCL121-Build870/jcl/examples/CreateProcAsUserDemoMain.dfm tags/JCL121-Build870/jcl/examples/CreateProcAsUserDemoMain.pas tags/JCL121-Build870/jcl/examples/CreateProcAsUserExample.dof tags/JCL121-Build870/jcl/examples/CreateProcAsUserExample.dpr tags/JCL121-Build870/jcl/examples/CreateProcAsUserExample.res tags/JCL121-Build870/jcl/examples/FramesTrackDemoMain.dfm tags/JCL121-Build870/jcl/examples/FramesTrackDemoMain.pas tags/JCL121-Build870/jcl/examples/FramesTrackExample.dof tags/JCL121-Build870/jcl/examples/FramesTrackExample.dpr tags/JCL121-Build870/jcl/examples/FramesTrackExample.res tags/JCL121-Build870/jcl/examples/JclDebugExamples.bpg tags/JCL121-Build870/jcl/examples/JclExamples.bpg tags/JCL121-Build870/jcl/examples/LanManDemoMain.dfm tags/JCL121-Build870/jcl/examples/LanManDemoMain.pas tags/JCL121-Build870/jcl/examples/LanManExample.dof tags/JCL121-Build870/jcl/examples/LanManExample.dpr tags/JCL121-Build870/jcl/examples/LanManExample.res tags/JCL121-Build870/jcl/examples/LocalesDemoMain.dfm tags/JCL121-Build870/jcl/examples/LocalesDemoMain.pas tags/JCL121-Build870/jcl/examples/LocalesExample.dof tags/JCL121-Build870/jcl/examples/LocalesExample.dpr tags/JCL121-Build870/jcl/examples/LocalesExample.res tags/JCL121-Build870/jcl/examples/MapiDemoMain.dfm tags/JCL121-Build870/jcl/examples/MapiDemoMain.pas tags/JCL121-Build870/jcl/examples/MapiExample.dof tags/JCL121-Build870/jcl/examples/MapiExample.dpr tags/JCL121-Build870/jcl/examples/MapiExample.res tags/JCL121-Build870/jcl/examples/MidiOutExample.dof tags/JCL121-Build870/jcl/examples/MidiOutExample.dpr tags/JCL121-Build870/jcl/examples/MidiOutExample.res tags/JCL121-Build870/jcl/examples/MidiOutExampleMain.dfm tags/JCL121-Build870/jcl/examples/MidiOutExampleMain.pas tags/JCL121-Build870/jcl/examples/MidiOutExampleTuningDlg.dfm tags/JCL121-Build870/jcl/examples/MidiOutExampleTuningDlg.pas tags/JCL121-Build870/jcl/examples/MultiMediaExample.dof tags/JCL121-Build870/jcl/examples/MultiMediaExample.dpr tags/JCL121-Build870/jcl/examples/MultiMediaExample.res tags/JCL121-Build870/jcl/examples/MultimediaDemoMain.dfm tags/JCL121-Build870/jcl/examples/MultimediaDemoMain.pas tags/JCL121-Build870/jcl/examples/NtSvcDemoDependent.dfm tags/JCL121-Build870/jcl/examples/NtSvcDemoDependent.pas tags/JCL121-Build870/jcl/examples/NtSvcDemoGroups.dfm tags/JCL121-Build870/jcl/examples/NtSvcDemoGroups.pas tags/JCL121-Build870/jcl/examples/NtSvcDemoMain.dfm tags/JCL121-Build870/jcl/examples/NtSvcDemoMain.pas tags/JCL121-Build870/jcl/examples/NtSvcExample.dof tags/JCL121-Build870/jcl/examples/NtSvcExample.dpr tags/JCL121-Build870/jcl/examples/NtSvcExample.res tags/JCL121-Build870/jcl/examples/PeFuncDemoMain.dfm tags/JCL121-Build870/jcl/examples/PeFuncDemoMain.pas tags/JCL121-Build870/jcl/examples/PeFuncExample.dof tags/JCL121-Build870/jcl/examples/PeFuncExample.dpr tags/JCL121-Build870/jcl/examples/PeFuncExample.res tags/JCL121-Build870/jcl/examples/RTTIDemoMain.dfm tags/JCL121-Build870/jcl/examples/RTTIDemoMain.pas tags/JCL121-Build870/jcl/examples/RTTIExample.dof tags/JCL121-Build870/jcl/examples/RTTIExample.dpr tags/JCL121-Build870/jcl/examples/RTTIExample.res tags/JCL121-Build870/jcl/examples/ReadMailDemoMain.dfm tags/JCL121-Build870/jcl/examples/ReadMailDemoMain.pas tags/JCL121-Build870/jcl/examples/ReadMailExample.dof tags/JCL121-Build870/jcl/examples/ReadMailExample.dpr tags/JCL121-Build870/jcl/examples/ReadMailExample.res tags/JCL121-Build870/jcl/examples/RegistryDemoMain.dfm tags/JCL121-Build870/jcl/examples/RegistryDemoMain.pas tags/JCL121-Build870/jcl/examples/RegistryExample.dof tags/JCL121-Build870/jcl/examples/RegistryExample.dpr tags/JCL121-Build870/jcl/examples/RegistryExample.res tags/JCL121-Build870/jcl/examples/SingleInstDemoMain.dfm tags/JCL121-Build870/jcl/examples/SingleInstDemoMain.pas tags/JCL121-Build870/jcl/examples/SingleInstExample.dof tags/JCL121-Build870/jcl/examples/SingleInstExample.dpr tags/JCL121-Build870/jcl/examples/SingleInstExample.res tags/JCL121-Build870/jcl/examples/SourceLocDemoMain.dfm tags/JCL121-Build870/jcl/examples/SourceLocDemoMain.pas tags/JCL121-Build870/jcl/examples/SourceLocExample.dof tags/JCL121-Build870/jcl/examples/SourceLocExample.dpr tags/JCL121-Build870/jcl/examples/SourceLocExample.res tags/JCL121-Build870/jcl/examples/StackTrackDLLsComLibrary.dof tags/JCL121-Build870/jcl/examples/StackTrackDLLsComLibrary.dpr tags/JCL121-Build870/jcl/examples/StackTrackDLLsComLibrary.res tags/JCL121-Build870/jcl/examples/StackTrackDLLsComLibrary.tlb tags/JCL121-Build870/jcl/examples/StackTrackDLLsComLibrary_TLB.pas tags/JCL121-Build870/jcl/examples/StackTrackDLLsComUnit.pas tags/JCL121-Build870/jcl/examples/StackTrackDLLsDemoMain.dfm tags/JCL121-Build870/jcl/examples/StackTrackDLLsDemoMain.pas tags/JCL121-Build870/jcl/examples/StackTrackDLLsDynamicLibrary.dof tags/JCL121-Build870/jcl/examples/StackTrackDLLsDynamicLibrary.dpr tags/JCL121-Build870/jcl/examples/StackTrackDLLsDynamicLibrary.res tags/JCL121-Build870/jcl/examples/StackTrackDLLsDynamicUnit.pas tags/JCL121-Build870/jcl/examples/StackTrackDLLsExample.dof tags/JCL121-Build870/jcl/examples/StackTrackDLLsExample.dpr tags/JCL121-Build870/jcl/examples/StackTrackDLLsExample.res tags/JCL121-Build870/jcl/examples/StackTrackDLLsStaticLibrary.dof tags/JCL121-Build870/jcl/examples/StackTrackDLLsStaticLibrary.dpr tags/JCL121-Build870/jcl/examples/StackTrackDLLsStaticLibrary.res tags/JCL121-Build870/jcl/examples/StackTrackDLLsStaticUnit.pas tags/JCL121-Build870/jcl/examples/StackTrackDemoMain.dfm tags/JCL121-Build870/jcl/examples/StackTrackDemoMain.pas tags/JCL121-Build870/jcl/examples/StackTrackExample.dof tags/JCL121-Build870/jcl/examples/StackTrackExample.dpr tags/JCL121-Build870/jcl/examples/StackTrackExample.res tags/JCL121-Build870/jcl/examples/SysInfoDemoMain.dfm tags/JCL121-Build870/jcl/examples/SysInfoDemoMain.pas tags/JCL121-Build870/jcl/examples/SysInfoExample.dof tags/JCL121-Build870/jcl/examples/SysInfoExample.dpr tags/JCL121-Build870/jcl/examples/SysInfoExample.res tags/JCL121-Build870/jcl/examples/TextReaderDemoMain.dfm tags/JCL121-Build870/jcl/examples/TextReaderDemoMain.pas tags/JCL121-Build870/jcl/examples/TextReaderExample.dof tags/JCL121-Build870/jcl/examples/TextReaderExample.dpr tags/JCL121-Build870/jcl/examples/TextReaderExample.res tags/JCL121-Build870/jcl/examples/ThreadExceptDemoMain.dfm tags/JCL121-Build870/jcl/examples/ThreadExceptDemoMain.pas tags/JCL121-Build870/jcl/examples/ThreadExceptExample.dof tags/JCL121-Build870/jcl/examples/ThreadExceptExample.dpr tags/JCL121-Build870/jcl/examples/ThreadExceptExample.res tags/JCL121-Build870/jcl/examples/UnmangleNameDemoMain.dfm tags/JCL121-Build870/jcl/examples/UnmangleNameDemoMain.pas tags/JCL121-Build870/jcl/examples/UnmangleNameExample.dof tags/JCL121-Build870/jcl/examples/UnmangleNameExample.dpr tags/JCL121-Build870/jcl/examples/UnmangleNameExample.res tags/JCL121-Build870/jcl/examples/VerInfoDemoMain.dfm tags/JCL121-Build870/jcl/examples/VerInfoDemoMain.pas tags/JCL121-Build870/jcl/examples/VerInfoExample.dof tags/JCL121-Build870/jcl/examples/VerInfoExample.dpr tags/JCL121-Build870/jcl/examples/VerInfoExample.res tags/JCL121-Build870/jcl/examples/debugextension/ tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIde40.dof tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIde40.dpk tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIde40.res tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIde50.dof tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIde50.dpk tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIde50.res tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIde60.dof tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIde60.dpk tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIde60.res tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIdeIcon.res tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIdeImpl.pas tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIdeResult.dfm tags/JCL121-Build870/jcl/examples/debugextension/JclDebugIdeResult.pas tags/JCL121-Build870/jcl/examples/debugextension/JclOtaUtils.pas tags/JCL121-Build870/jcl/examples/debugextension/dialog/ tags/JCL121-Build870/jcl/examples/debugextension/dialog/ClxExceptDlg.ico tags/JCL121-Build870/jcl/examples/debugextension/dialog/ClxExceptDlg.pas tags/JCL121-Build870/jcl/examples/debugextension/dialog/ClxExceptDlg.xfm tags/JCL121-Build870/jcl/examples/debugextension/dialog/ExceptDlg.dfm tags/JCL121-Build870/jcl/examples/debugextension/dialog/ExceptDlg.ico tags/JCL121-Build870/jcl/examples/debugextension/dialog/ExceptDlg.pas tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ tags/JCL121-Build870/jcl/examples/debugextension/threadnames/JclIdeThreadStatus.pas tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ThreadExpertSharedNames.pas tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ThreadExpertUnit.pas tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ThreadNameExpert40.dof tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ThreadNameExpert40.dpk tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ThreadNameExpert40.res tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ThreadNameExpert50.dof tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ThreadNameExpert50.dpk tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ThreadNameExpert50.res tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ThreadNameExpert60.dof tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ThreadNameExpert60.dpk tags/JCL121-Build870/jcl/examples/debugextension/threadnames/ThreadNameExpert60.res tags/JCL121-Build870/jcl/examples/debugextension/tools/ tags/JCL121-Build870/jcl/examples/debugextension/tools/MakeJclDbg.dof tags/JCL121-Build870/jcl/examples/debugextension/tools/MakeJclDbg.dpr tags/JCL121-Build870/jcl/examples/debugextension/tools/MapToJdbg.dof tags/JCL121-Build870/jcl/examples/debugextension/tools/MapToJdbg.dpr tags/JCL121-Build870/jcl/examples/debugextension/tools/MapToJdbg.res tags/JCL121-Build870/jcl/examples/debugextension/tools/MapToJdbgMain.dfm tags/JCL121-Build870/jcl/examples/debugextension/tools/MapToJdbgMain.pas tags/JCL121-Build870/jcl/examples/debugextension/tools/TlbToMap.dof tags/JCL121-Build870/jcl/examples/debugextension/tools/TlbToMap.dpr tags/JCL121-Build870/jcl/examples/debugextension/tools/TlbToMap.res tags/JCL121-Build870/jcl/examples/debugextension/tools/TlbToMapMain.dfm tags/JCL121-Build870/jcl/examples/debugextension/tools/TlbToMapMain.pas tags/JCL121-Build870/jcl/examples/debugextension/tools/Tools.bpg tags/JCL121-Build870/jcl/examples/debugextension/tools/makefile.mak tags/JCL121-Build870/jcl/examples/delphitools/ tags/JCL121-Build870/jcl/examples/delphitools/DelphiToolsGroup.bpg tags/JCL121-Build870/jcl/examples/delphitools/Readme.txt tags/JCL121-Build870/jcl/examples/delphitools/common/ tags/JCL121-Build870/jcl/examples/delphitools/common/About.dfm tags/JCL121-Build870/jcl/examples/delphitools/common/About.pas tags/JCL121-Build870/jcl/examples/delphitools/common/D6MdiMsgFix.pas tags/JCL121-Build870/jcl/examples/delphitools/common/FindDlg.dfm tags/JCL121-Build870/jcl/examples/delphitools/common/FindDlg.pas tags/JCL121-Build870/jcl/examples/delphitools/common/SHDocVw_TLB.pas tags/JCL121-Build870/jcl/examples/delphitools/common/ToolsUtils.pas tags/JCL121-Build870/jcl/examples/delphitools/dependencyviewer/ tags/JCL121-Build870/jcl/examples/delphitools/dependencyviewer/DependView.dof tags/JCL121-Build870/jcl/examples/delphitools/dependencyviewer/DependView.dpr tags/JCL121-Build870/jcl/examples/delphitools/dependencyviewer/DependView.res tags/JCL121-Build870/jcl/examples/delphitools/dependencyviewer/DependViewMain.dfm tags/JCL121-Build870/jcl/examples/delphitools/dependencyviewer/DependViewMain.pas tags/JCL121-Build870/jcl/examples/delphitools/dependencyviewer/FileViewer.dfm tags/JCL121-Build870/jcl/examples/delphitools/dependencyviewer/FileViewer.pas tags/JCL121-Build870/jcl/examples/delphitools/makefile.mak tags/JCL121-Build870/jcl/examples/delphitools/peviewer/ tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeDump.dfm tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeDump.pas tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeGenDef.dfm tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeGenDef.pas tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeResView.dfm tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeResView.pas tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeResource.pas tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeSearch.dfm tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeSearch.pas tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeViewer.dof tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeViewer.dpr tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeViewer.res tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeViewer.tlb tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeViewerControl.pas tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeViewerMain.dfm tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeViewerMain.pas tags/JCL121-Build870/jcl/examples/delphitools/peviewer/PeViewer_TLB.pas tags/JCL121-Build870/jcl/examples/delphitools/resfix/ tags/JCL121-Build870/jcl/examples/delphitools/resfix/ResFix.dof tags/JCL121-Build870/jcl/examples/delphitools/resfix/ResFix.dpr tags/JCL121-Build870/jcl/examples/delphitools/resfix/ResFix.res tags/JCL121-Build870/jcl/examples/delphitools/resfix/ResFixMain.dfm tags/JCL121-Build870/jcl/examples/delphitools/resfix/ResFixMain.pas tags/JCL121-Build870/jcl/examples/delphitools/screenjpg/ tags/JCL121-Build870/jcl/examples/delphitools/screenjpg/Main.dfm tags/JCL121-Build870/jcl/examples/delphitools/screenjpg/Main.pas tags/JCL121-Build870/jcl/examples/delphitools/screenjpg/ScreenJPG.dof tags/JCL121-Build870/jcl/examples/delphitools/screenjpg/ScreenJPG.dpr tags/JCL121-Build870/jcl/examples/delphitools/screenjpg/ScreenJPG.res tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/ tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/ChangePriority.dfm tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/ChangePriority.pas tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/Global.dfm tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/Global.pas tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/HeapDump.dfm tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/HeapDump.pas tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/Main.dfm tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/Main.pas tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/MemoryDump.dfm tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/MemoryDump.pas tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/ModulesDump.dfm tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/ModulesDump.pas tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/ToolHelpViewer.dof tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/ToolHelpViewer.dpr tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/ToolHelpViewer.res tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/ViewTemplate.dfm tags/JCL121-Build870/jcl/examples/delphitools/toolhelpview/ViewTemplate.pas tags/JCL121-Build870/jcl/examples/idefavopendialogs/ tags/JCL121-Build870/jcl/examples/idefavopendialogs/FavDlg.rc tags/JCL121-Build870/jcl/examples/idefavopendialogs/FavDlg.res tags/JCL121-Build870/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite40.dof tags/JCL121-Build870/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite40.dpk tags/JCL121-Build870/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite40.res tags/JCL121-Build870/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite50.dof tags/JCL121-Build870/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite50.dpk tags/JCL121-Build870/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite50.res tags/JCL121-Build870/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite60.dof tags/JCL121-Build870/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite60.dpk tags/JCL121-Build870/jcl/examples/idefavopendialogs/IdeOpenDlgFavorite60.res tags/JCL121-Build870/jcl/examples/idefavopendialogs/IdeOpenDlgFavoriteUnit.pas tags/JCL121-Build870/jcl/examples/idefavopendialogs/OpenDlgFavAdapter.pas tags/JCL121-Build870/jcl/examples/installhelper/ tags/JCL121-Build870/jcl/examples/installhelper/DelphiInstall.pas tags/JCL121-Build870/jcl/examples/installhelper/JclInstall.pas tags/JCL121-Build870/jcl/examples/installhelper/JediInstallIntf.pas tags/JCL121-Build870/jcl/examples/installhelper/JediInstaller.dof tags/JCL121-Build870/jcl/examples/installhelper/JediInstaller.dpr tags/JCL121-Build870/jcl/examples/installhelper/JediInstaller.res tags/JCL121-Build870/jcl/examples/installhelper/JediInstallerMain.dfm tags/JCL121-Build870/jcl/examples/installhelper/JediInstallerMain.pas tags/JCL121-Build870/jcl/examples/installhelper/makefile.mak tags/JCL121-Build870/jcl/examples/makefile.mak tags/JCL121-Build870/jcl/examples/projectanalyzer/ tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjAnalyzerFrm.dfm tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjAnalyzerFrm.pas tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjAnalyzerIcon.res tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjAnalyzerImpl.pas tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjectAnalyzer40.dof tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjectAnalyzer40.dpk tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjectAnalyzer40.res tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjectAnalyzer50.dof tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjectAnalyzer50.dpk tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjectAnalyzer50.res tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjectAnalyzer60.dof tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjectAnalyzer60.dpk tags/JCL121-Build870/jcl/examples/projectanalyzer/ProjectAnalyzer60.res tags/JCL121-Build870/jcl/help/ tags/JCL121-Build870/jcl/help/JclHelp.cnt tags/JCL121-Build870/jcl/help/JclHelp.hlp tags/JCL121-Build870/jcl/makefile.mak tags/JCL121-Build870/jcl/packages/ tags/JCL121-Build870/jcl/packages/CJCL50.bpk tags/JCL121-Build870/jcl/packages/CJCL50.cpp tags/JCL121-Build870/jcl/packages/CJCL50.res tags/JCL121-Build870/jcl/packages/DJCL40.dof tags/JCL121-Build870/jcl/packages/DJCL40.dpk tags/JCL121-Build870/jcl/packages/DJCL40.res tags/JCL121-Build870/jcl/packages/DJCL50.dof tags/JCL121-Build870/jcl/packages/DJCL50.dpk tags/JCL121-Build870/jcl/packages/DJCL50.res tags/JCL121-Build870/jcl/packages/DJCL60.dof tags/JCL121-Build870/jcl/packages/DJCL60.dpk tags/JCL121-Build870/jcl/packages/DJCL60.res tags/JCL121-Build870/jcl/packages/JclPackages40.bpg tags/JCL121-Build870/jcl/packages/JclPackages50.bpg tags/JCL121-Build870/jcl/packages/JclPackages60.bpg tags/JCL121-Build870/jcl/source/ tags/JCL121-Build870/jcl/source/JEDI.inc tags/JCL121-Build870/jcl/source/Jcl8087.pas tags/JCL121-Build870/jcl/source/JclAppInst.pas tags/JCL121-Build870/jcl/source/JclBase.pas tags/JCL121-Build870/jcl/source/JclCOM.pas tags/JCL121-Build870/jcl/source/JclComplex.pas tags/JCL121-Build870/jcl/source/JclConsole.pas tags/JCL121-Build870/jcl/source/JclCounter.pas tags/JCL121-Build870/jcl/source/JclDateTime.pas tags/JCL121-Build870/jcl/source/JclDebug.pas tags/JCL121-Build870/jcl/source/JclEDI.pas tags/JCL121-Build870/jcl/source/JclExprEval.pas tags/JCL121-Build870/jcl/source/JclFileUtils.pas tags/JCL121-Build870/jcl/source/JclGraphUtils.pas tags/JCL121-Build870/jcl/source/JclGraphics.pas tags/JCL121-Build870/jcl/source/JclHookExcept.pas tags/JCL121-Build870/jcl/source/JclIniFiles.pas tags/JCL121-Build870/jcl/source/JclLANMan.pas tags/JCL121-Build870/jcl/source/JclLocales.pas tags/JCL121-Build870/jcl/source/JclLogic.pas tags/JCL121-Build870/jcl/source/JclMIDI.pas tags/JCL121-Build870/jcl/source/JclMapi.pas tags/JCL121-Build870/jcl/source/JclMath.pas tags/JCL121-Build870/jcl/source/JclMime.pas tags/JCL121-Build870/jcl/source/JclMiscel.pas tags/JCL121-Build870/jcl/source/JclMultimedia.pas tags/JCL121-Build870/jcl/source/JclNTFS.pas tags/JCL121-Build870/jcl/source/JclPeImage.pas tags/JCL121-Build870/jcl/source/JclPrint.pas tags/JCL121-Build870/jcl/source/JclRTTI.pas tags/JCL121-Build870/jcl/source/JclRegistry.pas tags/JCL121-Build870/jcl/source/JclResources.pas tags/JCL121-Build870/jcl/source/JclSecurity.pas tags/JCL121-Build870/jcl/source/JclShell.pas tags/JCL121-Build870/jcl/source/JclStatistics.pas tags/JCL121-Build870/jcl/source/JclStrHashMap.pas tags/JCL121-Build870/jcl/source/JclStrings.pas tags/JCL121-Build870/jcl/source/JclSvcCtrl.pas tags/JCL121-Build870/jcl/source/JclSynch.pas tags/JCL121-Build870/jcl/source/JclSysInfo.pas tags/JCL121-Build870/jcl/source/JclSysUtils.pas tags/JCL121-Build870/jcl/source/JclTD32.pas tags/JCL121-Build870/jcl/source/JclUnicode.pas tags/JCL121-Build870/jcl/source/JclUnicode.rc tags/JCL121-Build870/jcl/source/JclUnicode.res tags/JCL121-Build870/jcl/source/JclUnitConv.pas tags/JCL121-Build870/jcl/source/JclWin32.pas tags/JCL121-Build870/jcl/source/JclWinMIDI.pas tags/JCL121-Build870/jcl/source/LM.pas tags/JCL121-Build870/jcl/source/Snmp.pas tags/JCL121-Build870/jcl/source/jcl.inc Added: tags/JCL121-Build870/jcl/Install.bat =================================================================== --- tags/JCL121-Build870/jcl/Install.bat (rev 0) +++ tags/JCL121-Build870/jcl/Install.bat 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1,4 @@ +@CD Examples\InstallHelper +@MAKE +@CD ..\.. +@START Bin\JediInstaller.exe \ No newline at end of file Added: tags/JCL121-Build870/jcl/JEDI Code Library Home Page.url =================================================================== --- tags/JCL121-Build870/jcl/JEDI Code Library Home Page.url (rev 0) +++ tags/JCL121-Build870/jcl/JEDI Code Library Home Page.url 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1,3 @@ +[InternetShortcut] +URL=http://delphi-jedi.org/Jedi:CODELIBJCL +Modified=306CB94678D2C101A7 Added: tags/JCL121-Build870/jcl/Project JEDI - Issue Tracker.url =================================================================== --- tags/JCL121-Build870/jcl/Project JEDI - Issue Tracker.url (rev 0) +++ tags/JCL121-Build870/jcl/Project JEDI - Issue Tracker.url 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1,3 @@ +[InternetShortcut] +URL=http://projectjedi.sourceforge.net/mantis/login.php?f_username=anonymous&f_password=anonymous +Modified=C0DD36D28E2EC20124 Added: tags/JCL121-Build870/jcl/Readme.txt =================================================================== --- tags/JCL121-Build870/jcl/Readme.txt (rev 0) +++ tags/JCL121-Build870/jcl/Readme.txt 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1,350 @@ +=============================================================================== +Jedi Code Library +Release 1.21 +Build 870 19-Jul-2002 +=============================================================================== + +It has been a long time since we released the last version of the Jedi Code +Library. Now, we are proud to present Version 1.21. It includes a real bunch of +bug fixes, some new features and even two completely new units. + +Furthermore we are introducing an Issue Tracker to help you and us to solve JCL +related problems as fast as possible. The times in which you had to check the +VCS, or contact someone from the team individualy to retain information about +the status of a specific bug are gone by now. + +So far the good news, some less good news is that the team changed a little +bit. The former lead and main coordinator of the Code Library - Marcel van +Brakel - has left the team and moved on to other areas. We hereby wish him good +look and want to say "thank you" for all what he has done. Please do not send +any email regarding JCL support to him - instead use the mailing list, the +newsgroup or one of our email accounts. + +* New features + + New Unit: JclConsole Introduces encapsulation of console API routines. + + New Unit: JclEDI Contains classes to eaisly parse EDI documents and + data. + + New Unit: JclMidi Introduces encapsulation of MIDI routines. + + New package: CJCL50.bpk for C++ Builder 5 + + +* JclDebug + Various bugfixes. + +* JclDateTime + Bugfix: LocalDateTimeToDateTime + +* JclGraphics + Some bugfixes + +* JclIniFiles + New function: IniReadStrings + New function: IniWriteStrings + +* JclMath + New function: TruncPower + New function: Coversine + New function: Versine + New function: Haversine + New function: exsecand + + +* JclMiscel + New function: ExitWindows(ExitCode: Cardinal) + New function: LogOffOS + New function: PowerOffOS + New function: ShutDownOS + New function: RebootOS + +* JclNTFS + New functionality: Hard Links (Thanks Marcel!) + Functions: + CreateHardLinkNT + CreateHardLink2000 + NtfsGetHardLinkInfo + NtfsCreateHardLink + NtfsFindHardLinks + NtfsDeleteHardLinks + +* JclRegistry + New function: RegReadDWORD + New function: RegReadDWORDDef + New function: RegWriteDWORD + +* JclStrings + Bugfix: StrToStrings default parameter now true + Bugfix: StrIToStrings default parameter now true + Bugfix: StrSmartCase + + +* JclSysInfo + Bugfix: ExpandEnvironmentVar + Bugfix: GetLocalComputerName + New function: GetMacAddressesSnmp (Mac Addresses via sNMP) + +* JclSysUtils + New function: IsCompiledWithPackages + New function: SystemTObjectInstance + +* JclUnitConv + New function: DmsToDeg + New function: DmsToRad + New function: DegToDms + New function: DegToDmsStr + Bugfix: CartesianToPolar + Bugfix: CartesianToSpheric + + +* Changes + + DJCL.dpk file was renamed to DJCL60.dpk to be consistent with other packages. + +* JCL Distribution content: + +Install.bat - Compile and run JCL Install Helper +makefile.mak - Builds all JCL examples and tools +Readme.txt +Bin - Folder for compiled JCL binaries +Dcu - Folder for DCU files +Examples - JCL example applications +Examples\DebugExtension - JCL Debug IDE expert for using JclDebug unit + \Dialog - Sample application exception dialog replacement + \ThreadNames - IDE expert showing class names for debugged threads + \Tools - Tools for creating files with JCL debug information +Examples\DelphiTools - Collection of system tools using JCL +Examples\InstallHelper - JCL Install Helper +Examples\ProjectAnalyzer - Project Analyzer IDE expert +Help - Help file +Packages - JCL runtime package and project group containing all + available design-time packages +Source - JCL source code + + +* Installation + +Supported development tools versions: + +- Delphi 4 Update Pack #3 +- Delphi 5 Update Pack #1 +- Delphi 6 Update Pack #2 (including Personal Edition) +- Free Pascal compiler + +Please make sure you have installed latest update packs. You can download them +from Borland Support web page: http://www.borland.com/devsupport/delphi/ + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Important !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If you have installed any previous version of the JCL you have to delete it. ! +! It is also necessary to remove all installed JCL packages from the IDE. ! +! Do not mix files or compiled packages from older versions of the JCL with ! +! current version. ! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +Because the JCL does NOT contain any components you don't have to install it to +the IDE. Just use desired unit(s) in your project (add them to uses clause) and +make sure IDE Library Path or Project Search Path contains JCL\Source folder, +i.e. C:\Delphi\JCL\Source (where C:\Delphi\JCL is folder when you have unzipped +the JCL archive). + +- To set the path for all projects in IDE Library Path (recommended) go to: + Tools|Environment Options -> Library tab, add the path to Library Path field + or use JCL Install Helper described later in the document + +- To set the path for a project only (optional) go to: + Project|Options -> Directories/Conditionals page, add the path to Search path + field + +Although you might want to install additional experts or files shipped with the +JCL. Currently there are: + +- Help file +- Sample application exception dialogs +- IDE experts + +The installation process is described later in the document. You can use JCL +Install Helper for the first two options but IDE experts have to be installed +manually from the IDE. + + +* JCL Install Helper + +Helps you to integrate Jedi Code Library with Delphi IDE. Currently it assists +with: + +- Compiling and installing design-time packages to the IDE +- Adding sample JCL Debug extension dialogs to Object Repository +- Adding JCL\Source path to Library Path in Environment Options +- Integrating JCL help file to the IDE. + +To start it click on Install.bat file in the JCL root folder. + + +* Packages + +In case you'd like to install any IDE expert shipped with JCL or use JCL code +in your components or IDE experts you need runtime package containing all JCL +source units. The package is located in Packages folder. There are separate +files for each Delphi version: + +DJCL40.dpk - for Delphi 4 +DJCL50.dpk - for Delphi 5 +DJCL60.dpk - for Delphi 6 + +To simplify the process of installing additional packages we provide project +groups containing all JCL packages for particular Delphi version: + +JclPackages40.bpg - for Delphi 4 +JclPackages50.bpg - for Delphi 5 +JclPackages60.bpg - for Delphi 6 + +Each group contains JCL runtime package and design-time packages for JCL IDE +experts: + +DJCL - JCL runtime package for Delphi +CJCL - JCL runtime package for C++ Builder +JclDebugIde - Expert for inserting JCL Debug information into executable + files. This is useful when use source location routines in + your application +ThreadNameExpert - Expert for displaying class names of TThread classes in + Thread Status window during debugging. See ThreadNamesExample + project in JCL\Examples folder +ProjectAnalyzer - Expert showing list of units compiled to a current project + including the information how much a unit contributes to the + executable file size. It will add 'Analyze Project <name>' + item to the Project menu + + +* Debug Extension for JclDebug unit + +Examples\DebugExtension folder contains IDE expert which assists to insert JCL +Debug information into executable files. This can be useful when use source +location routines from JclDebug unit. These routines needs some kind of special +information to be able provide source location for given address in the process. +Currently there are four options to get it work: + +1. Generate and deploy MAP file with your executable file. The file is generated + by the linker. It needs to be set in Project|Options dialog -> Linker page, + Detailed checkbox. + +2. Generate and deploy JDBG file file with your executable file. This is binary + file based on MAP file but its size is typically about 12% of original MAP + file. You can generate it by MapToJdbg tool in JCL\Examples\Tools folder. + The advantage over MAP file is smaller size and better security of the file + content because it is not a plain text file and it also contains a checksum. + +3. Generate Borland TD32 debug symbols. These symbols are stored directly in the + executable file but usually adds several megabytes so the file is very large. + The advantage is you don't have to deploy any other file and it is easy to + generate it by checking Include TD32 debug info in Linker option page. + +4. Insert JCL Debug info into executable file by the IDE expert. The size of + added data is similar to JDBG file but it will be inserted directly into the + executable file. This is probably best option because it combines small size + of included data and no requirement of deploying additional files. In case + you use this option you need install the JclDebugIde expert. + +The IDE expert will add new item to IDE Project menu. Due some differences in +Open Tools API the use of the expert is slightly different in Delphi 4. For +Delphi 5 and 6 it adds 'Insert JCL Debug data' check item at the end of the +Project menu. When the item is checked, everytime the project is compiled by one +of following commands: Compile, Build, Compile All Projects, Build All Projects +or Run necessary JCL debug data are automatically inserted into the executable. +Moreover, for Build and Build All commands dialog with detailed information of +size of these data will be displayed. For Delphi 4 there is 'Build JCL Debug' +command only in the Project menu which performs a build including these data. + +You can generate those debug data for packages and libraries as well using the +expert. Each executable file in the project can use different option from those +listed above. It is not necessary to generate any debug data for Borland runtime +packages because the source location code can use names of exported functions +to get procedure or method name. To get line number information for Borland RTL +and VCL/CLX units you have to check Use Debug DCUs checkbox in Project|Options +dialog -> Compiler tab (not available in Delphi 4). Unfortunately it is not +possible to get line number information for Borland runtime packages because +Borland does not provide detailed MAP files for them so you get procedure or +method name only. + +In case you have more than one data source for an executable file by an accident +the best one is chosen in following order: + +1. JCL Debug data in the executable file +2. JDBG file +3. Borland TD32 symbols +4. MAP file +5. library or Borland package exports + +It is also possible to insert JCL debug data programmatically to the executable +file by using MakeJclDbg command line tool in JCL\Examples\Tools folder. You can +study included makefiles which uses this tool for building DelphiTools examples. + +To help using JclDebug exceptional stack tracking in application simple dialog +is provided in JCL\Examples\DebugExtension\Dialog folder. The dialog replaces +standard dialog displayed by VCL or CLX application when an unhandled exception +occurs. It has additional Detailed button showing the stack, list of loaded +modules and other system information. By adding the dialog to the application +exceptional stack tracking code is automatically initialized so you don't have +to care about it. You can also turn on logging to text file by setting the Tag +property of the dialog to '1'. There is also version for CLX (ClxExceptDlg) but +it works on Windows only. These dialogs are intended to be added to Object +Repository. + + +* Makefiles + +In order to compile all examples and tools by one command we provide makefiles. +To use them open Command Prompt, change current directory to root JCL directory +and run MAKE command. It should start to compile all project using most recent +version of compiler from installed Delphi versions. All executable files will be +created in JCL\Bin directory. + + +* Feedback + +If you have any comments or suggestions we would appreciate it if you +drop us a note. There are several ways to get in contact with us: + + - Write to jc...@de... or to jcl...@de... + This email account should not be used for support requests. If + you need support please use either the newsgroups or the + mailing list. + + - If you want to keep up to date about JCL then you can join the + JCL mailing list by going to http://www.egroups.com/group/JEDI-JCL + You can also use this list to voice your opinion, comments or + suggestions. + + - If you prefer a newsgroup over a mailing list please join us at + news://forums.talkto.net/jedi.jcl. The newsgroup is the point where + you can discuss the JCL with other users and with the team itself. + + +* Issue Tracking + +We finally decided to use an issue tracking tool. It can be accessed via + +http://jcl.sourceforge.net/ + +The general rule is: + +If you want to get a bug fixed you need to log it! + +The JEDI issue tracker is based up on the Mantis BugTracker Open Source +project. More background information about it is available on its homepage +(http://mantisbt.sourceforge.net) + +Please be aware that you are allowed there to enter feature request +and code donations as well. + +* Version Control + +We are using FreeVCS as version control system. You can download it from +http://www.freevcs.de + +To sychronize please use one of the following accounts: + +server: demos.href.com +uid: jcluser[1|2|3] +pwd: jcluser \ No newline at end of file Added: tags/JCL121-Build870/jcl/bin/Bin.txt =================================================================== --- tags/JCL121-Build870/jcl/bin/Bin.txt (rev 0) +++ tags/JCL121-Build870/jcl/bin/Bin.txt 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1 @@ +This directory is inteded as a common place for sample application's EXE files \ No newline at end of file Added: tags/JCL121-Build870/jcl/dcu/Dcu.txt =================================================================== --- tags/JCL121-Build870/jcl/dcu/Dcu.txt (rev 0) +++ tags/JCL121-Build870/jcl/dcu/Dcu.txt 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1 @@ +This directory is inteded as a common place for DCU files of design-time packages. \ No newline at end of file Added: tags/JCL121-Build870/jcl/examples/ApiHookDemoMain.dfm =================================================================== (Binary files differ) Property changes on: tags/JCL121-Build870/jcl/examples/ApiHookDemoMain.dfm ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: tags/JCL121-Build870/jcl/examples/ApiHookDemoMain.pas =================================================================== --- tags/JCL121-Build870/jcl/examples/ApiHookDemoMain.pas (rev 0) +++ tags/JCL121-Build870/jcl/examples/ApiHookDemoMain.pas 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1,82 @@ +unit ApiHookDemoMain; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, + StdCtrls; + +type + TForm1 = class(TForm) + HookBtn: TButton; + UnhookBtn: TButton; + BeepBtn: TButton; + Memo1: TMemo; + procedure HookBtnClick(Sender: TObject); + procedure UnhookBtnClick(Sender: TObject); + procedure BeepBtnClick(Sender: TObject); + private + { Private declarations } + public + procedure AddMsg(const S: string); + end; + +var + Form1: TForm1; + +implementation + +{$R *.DFM} + +uses + JclPeImage, JclSysUtils; + +var + PeImportHooks: TJclPeMapImgHooks; + + OldMessageBeep: function(uType: UINT): BOOL; stdcall = nil; + +function NewMessageBeep(uType: UINT): BOOL; stdcall; +begin + Form1.AddMsg(Format('MessageBeep called, uType = %d', [uType])); + Result := OldMessageBeep(uType); +end; + +{ TForm1 } + +procedure TForm1.AddMsg(const S: string); +begin + Memo1.Lines.Add(S); +end; + +procedure TForm1.HookBtnClick(Sender: TObject); +begin + if PeImportHooks.HookImport(Pointer(HInstance), user32, 'MessageBeep', + @NewMessageBeep, @OldMessageBeep) then + AddMsg('MessageBeep hooked ...') + else + AddMsg(Format('MessageBeep hooking error - %s', [SysErrorMessage(GetLastError)])); +end; + +procedure TForm1.UnhookBtnClick(Sender: TObject); +begin + if PeImportHooks.UnhookByNewAddress(@NewMessageBeep) then + begin + @OldMessageBeep := nil; + AddMsg('MessageBeep unhooked ...'); + end else + AddMsg('MessageBeep wasn''t hooked') +end; + +procedure TForm1.BeepBtnClick(Sender: TObject); +begin + MessageBeep(MB_OK); +end; + +initialization + PeImportHooks := TJclPeMapImgHooks.Create; + +finalization + FreeAndNil(PeImportHooks); + +end. Added: tags/JCL121-Build870/jcl/examples/ApiHookExample.dof =================================================================== --- tags/JCL121-Build870/jcl/examples/ApiHookExample.dof (rev 0) +++ tags/JCL121-Build870/jcl/examples/ApiHookExample.dof 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1,4 @@ +[Directories] +OutputDir=..\Bin +UnitOutputDir=..\Dcu +SearchPath=..\Source Added: tags/JCL121-Build870/jcl/examples/ApiHookExample.dpr =================================================================== --- tags/JCL121-Build870/jcl/examples/ApiHookExample.dpr (rev 0) +++ tags/JCL121-Build870/jcl/examples/ApiHookExample.dpr 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1,13 @@ +program ApiHookExample; + +uses + Forms, + ApiHookDemoMain in 'ApiHookDemoMain.pas' {Form1}; + +{$R *.RES} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. Added: tags/JCL121-Build870/jcl/examples/ApiHookExample.res =================================================================== (Binary files differ) Property changes on: tags/JCL121-Build870/jcl/examples/ApiHookExample.res ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: tags/JCL121-Build870/jcl/examples/AppInstDemoMain.dfm =================================================================== (Binary files differ) Property changes on: tags/JCL121-Build870/jcl/examples/AppInstDemoMain.dfm ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: tags/JCL121-Build870/jcl/examples/AppInstDemoMain.pas =================================================================== --- tags/JCL121-Build870/jcl/examples/AppInstDemoMain.pas (rev 0) +++ tags/JCL121-Build870/jcl/examples/AppInstDemoMain.pas 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1,169 @@ +unit AppInstDemoMain; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, + JclAppInst, ComCtrls, StdCtrls; + +type + TForm1 = class(TForm) + InstancesListView: TListView; + Label1: TLabel; + SwitchBtn: TButton; + MsgBtn: TButton; + ColorDialog1: TColorDialog; + Memo1: TMemo; + SendBtn: TButton; + AutoUpdateCheckBox: TCheckBox; + procedure FormCreate(Sender: TObject); + procedure SwitchBtnClick(Sender: TObject); + procedure MsgBtnClick(Sender: TObject); + procedure SendBtnClick(Sender: TObject); + procedure Memo1Change(Sender: TObject); + private + procedure BuildInstancesList; + procedure ApplicationEvents1Message(var Msg: TMsg; var Handled: Boolean); + public + procedure WndProc(var Message: TMessage); override; + end; + +var + Form1: TForm1; + +implementation + +{$R *.DFM} + +const + MaxAllowedInstances = 3; + + MyDataKind = 1; + +{ TForm1 } + +procedure TForm1.BuildInstancesList; +var + I, CurrIndex: Integer; +begin + with InstancesListView, JclAppInstances do + begin + Items.BeginUpdate; + Items.Clear; + for I := 0 to InstanceCount -1 do + with Items.Add do + begin + Caption := IntToStr(I + 1); + SubItems.Add(Format('%.8x', [ProcessIDs[I]])); + SubItems.Add(Format('%.8x', [AppWnds[I]])); + end; + CurrIndex := InstanceIndex[GetCurrentProcessId]; + Selected := Items[CurrIndex]; + Items.EndUpdate; + end; + Label1.Caption := IntToStr(CurrIndex + 1); +end; + +procedure TForm1.FormCreate(Sender: TObject); +begin + Application.OnMessage := ApplicationEvents1Message; + BuildInstancesList; +end; + +procedure TForm1.ApplicationEvents1Message(var Msg: TMsg; var Handled: Boolean); +begin + // AI_* messages handler. These messages are automatically send to all instances + // of the application. + with Msg do + if (hwnd = 0) and (message = JclAppInstances.MessageID) then + begin + case wParam of + AI_INSTANCECREATED, AI_INSTANCEDESTROYED: + BuildInstancesList; + AI_USERMSG: + Label1.Font.Color := TColor(lParam); + end; + Handled := True; + end; +end; + +procedure TForm1.SwitchBtnClick(Sender: TObject); +begin + JclAppInstances.SwitchTo(InstancesListView.Selected.Index); +end; + +procedure TForm1.MsgBtnClick(Sender: TObject); +begin + with ColorDialog1 do + begin + Color := Label1.Font.Color; + if Execute then + JclAppInstances.UserNotify(Color); + end; +end; + +procedure TForm1.SendBtnClick(Sender: TObject); +begin + // TForm.ClassName matches window class name. It sends the data to all windows + // belonging instances of this application. The last parameter identifies the + // 'TForm1' (ClassName) window of this instance. + JclAppInstances.SendStrings(ClassName, MyDataKind, Memo1.Lines, Handle); +end; + +var + MemoChanging: Boolean; + +procedure TForm1.WndProc(var Message: TMessage); +begin + // Interprocess communication handler. + + // First check whether we can safely read TForm.Handle property ... + if HandleAllocated and not (csDestroying in ComponentState) then + begin + // ... then whether it is our message. The last paramter tells to ignore the + // message sent from window of this instance + case ReadMessageCheck(Message, Handle) of + MyDataKind: // It is our data + begin + MemoChanging := True; // prevent deadlock, TMemo.OnChange is also fired now + Memo1.Lines.BeginUpdate; + try + // Read TStrings from the message + ReadMessageStrings(Message, Memo1.Lines) + finally + Memo1.Lines.EndUpdate; + MemoChanging := False; + end; + end; + else + inherited; + end; + end + else + inherited; +end; + +procedure TForm1.Memo1Change(Sender: TObject); +begin + if not MemoChanging and AutoUpdateCheckBox.Checked then + SendBtnClick(nil); +end; + +initialization + + with JclAppInstances do + // CheckInstance returns False if current instance number is greater than + // MaxAllowedInstances constant + if not CheckInstance(MaxAllowedInstances) then + begin + // Switch to the first instance of the application + SwitchTo(0); + // Close this instance + KillInstance; + end; + + // Note: For preventing more than one instance of the application you can put + // simple JclAppInstances.CheckSingleInstance line to initialization section + // instead of code above + +end. Added: tags/JCL121-Build870/jcl/examples/AppInstExample.dof =================================================================== --- tags/JCL121-Build870/jcl/examples/AppInstExample.dof (rev 0) +++ tags/JCL121-Build870/jcl/examples/AppInstExample.dof 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1,4 @@ +[Directories] +OutputDir=..\Bin +UnitOutputDir=..\Dcu +SearchPath=..\Source Added: tags/JCL121-Build870/jcl/examples/AppInstExample.dpr =================================================================== --- tags/JCL121-Build870/jcl/examples/AppInstExample.dpr (rev 0) +++ tags/JCL121-Build870/jcl/examples/AppInstExample.dpr 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1,13 @@ +program AppInstExample; + +uses + Forms, + AppInstDemoMain in 'AppInstDemoMain.pas' {Form1}; + +{$R *.RES} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. Added: tags/JCL121-Build870/jcl/examples/AppInstExample.res =================================================================== (Binary files differ) Property changes on: tags/JCL121-Build870/jcl/examples/AppInstExample.res ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: tags/JCL121-Build870/jcl/examples/ConsoleExamples.dpr =================================================================== --- tags/JCL121-Build870/jcl/examples/ConsoleExamples.dpr (rev 0) +++ tags/JCL121-Build870/jcl/examples/ConsoleExamples.dpr 2006-08-18 15:12:25 UTC (rev 1742) @@ -0,0 +1,400 @@ +program ConsoleExamples; +{$APPTYPE CONSOLE} +uses + SysUtils, + Windows, + TypInfo, + JclConsole; + +type + TCPInfoEx = packed record + MaxCharSize: DWORD; + DefaultChar: array[0..MAX_DEFAULTCHAR-1] of Byte; + LeadByte: array[0..MAX_LEADBYTES-1] of Byte; + UnicodeDefaultChar: WideChar; + CodePage: DWORD; + CodePageName: array[0..MAX_PATH-1] of Char; + end; + +function GetCPInfoEx(CodePage, dwFlags: DWORD; var lpCPInfoEx: TCPInfoEx): BOOL; stdcall; + external 'kernel32.dll' name 'GetCPInfoExA'; + +procedure ShowConsoleInfo(const Console: TJclConsole); + function CodePageToName(CodePage: DWORD): string; + var + CpInfo: TCPInfoEx; + begin + Win32Check(GetCPInfoEx(CodePage, 0, CpInfo)); + Result := CpInfo.CodePageName; + end; +begin + Assert(TJclConsole.IsConsole(GetModuleHandle(nil))); + Assert(TJclConsole.IsConsole(ParamStr(0))); + + Console.ActiveScreen.WriteLn('Old Windows Title : ' + Console.Title); + Console.Title := 'Information of the Default Output Screen Buffer'; + Console.ActiveScreen.WriteLn('New Windows Title : ' + Console.Title); + Console.ActiveScreen.WriteLn(Format('Input Code Page : %s', [CodePageToName(Console.InputCodePage)])); + Console.ActiveScreen.WriteLn(Format('Output Code Page : %s', [CodePageToName(Console.OutputCodePage)])); +end; + +procedure ShowScreenInfo(const ScrBuf: TJclScreenBuffer); + function ModeToString: string; + var + AMode: TJclConsoleOutputMode; + begin + for AMode:=Low(TJclConsoleOutputMode) to High(TJclConsoleOutputMode) do + begin + if AMode in ScrBuf.Mode then + begin + if Result <> '' then + Result := Result + ', '; + Result := Result + GetEnumName(TypeInfo(TJclConsoleOutputMode), Integer(AMode)); + end; + end; + end; +var + OldMode: TJclConsoleOutputModes; + Attr: IJclScreenTextAttribute; +begin + ScrBuf.WriteLn; + ScrBuf.WriteLn(Format('Handle: 0x%.8x', [ScrBuf.Handle])); + ScrBuf.Writeln('Old Mode : ' + ModeToString); + OldMode := ScrBuf.Mode; + ScrBuf.Mode := ScrBuf.Mode - [omWrapAtEol]; + ScrBuf.Write('New Mode : ' + ModeToString); + Readln; + ScrBuf.Mode := OldMode; + + ScrBuf.WriteLn(Format('Old Size: (%d, %d)', [ScrBuf.Width, ScrBuf.Height])); + ScrBuf.Width := ScrBuf.Width * 2; + ScrBuf.Write(Format('New Size: (%d, %d)', [ScrBuf.Width, ScrBuf.Height])); + Readln; + ScrBuf.Width := ScrBuf.Width div 2; + + Attr := TJclScreenTextAttribute.Create(fclYellow, bclBlue, True, False, + [fsGridHorizontal, fsUnderscore]); + + ScrBuf.Write('Top', thaCenter, tvaTop, Attr); + ScrBuf.Write('Bottom', thaCenter, tvaBottom, Attr); + ScrBuf.Write('Left', thaLeft, tvaCenter, Attr); + ScrBuf.Write('Right', thaRight, tvaCenter, Attr); + ScrBuf.Write('Center', thaCenter, tvaCenter, Attr); +end; + +procedure ShowCursorInfo(const ScrBuf: TJclScreenBuffer); +const + BoolName: array[Boolean] of string = ('Hide', 'Show'); +var + OldPos: TCoord; + OldSize: TJclScreenCursorSize; +begin + ScrBuf.WriteLn; + ScrBuf.WriteLn(Format('Cursor Position: (%d, %d)', [ScrBuf.Cursor.Position.X, ScrBuf.Cursor.Position.Y])); + OldPos := ScrBuf.Cursor.Position; + ScrBuf.Cursor.MoveTo(ScrBuf.Window.Left, ScrBuf.Window.Top); + ScrBuf.Write(Format('(%d, %d)', [ScrBuf.Cursor.Position.X, ScrBuf.Cursor.Position.Y])); + ScrBuf.Cursor.Position := OldPos; + Readln; + ScrBuf.WriteLn('Left-Top corner :' + ScrBuf.ReadLn(0, 0)); + + ScrBuf.WriteLn(Format('Old Cursor Size: %d', [ScrBuf.Cursor.Size])); + OldSize := ScrBuf.Cursor.Size; ScrBuf.Cursor.Size := 100; + ScrBuf.Write(Format('New Cursor Size: %d', [ScrBuf.Cursor.Size])); + Readln; + ScrBuf.Cursor.Size := OldSize; + + ScrBuf.WriteLn('Visible of Cursor: ' + BoolName[ScrBuf.Cursor.Visible]); + ScrBuf.Cursor.Visible := False; + ScrBuf.Write('Hidden Cursor: ' + BoolName[ScrBuf.Cursor.Visible]); + Readln; + ScrBuf.Cursor.Visible := True; +end; + +procedure ShowWindowInfo(const ScrBuf: TJclScreenBuffer); +var + OldPos, OldSize: TCoord; +begin + ScrBuf.WriteLn; + ScrBuf.WriteLn(Format('Largest Console Size : (%d, %d)', + [ScrBuf.Window.MaxConsoleWindowSize.X, ScrBuf.Window.MaxConsoleWindowSize.Y])); + ScrBuf.WriteLn(Format('Largest Window Size : (%d, %d)', + [ScrBuf.Window.MaxWindow.X, ScrBuf.Window.MaxWindow.Y])); + + ScrBuf.WriteLn(Format('Old Window Position : (%d, %d)', [ScrBuf.Window.Left, ScrBuf.Window.Top])); + OldPos := ScrBuf.Window.Position; + ScrBuf.Window.Left := 0; + ScrBuf.Window.Top := 0; + ScrBuf.Write(Format('New Window Position : (%d, %d)', [ScrBuf.Window.Left, ScrBuf.Window.Top])); + Readln; + ScrBuf.Window.Position := OldPos; + + ScrBuf.WriteLn(Format('Old Window Size : (%d, %d)', [ScrBuf.Window.Width, ScrBuf.Window.Height])); + OldSize := ScrBuf.Window.Size; + ScrBuf.Window.Width := ScrBuf.Window.Width div 2; + ScrBuf.Window.Height := ScrBuf.Window.Height div 2; + ScrBuf.Write(Format('New Window Size : (%d, %d)', [ScrBuf.Window.Width, ScrBuf.Window.Height])); + Readln; + ScrBuf.Window.Size := OldSize; + + ScrBuf.Write(Format('Scroll up %d line: ', [ScrBuf.Window.Top])); + Readln; + OldPos := ScrBuf.Window.Position; + ScrBuf.Window.Scroll(0, -ScrBuf.Window.Top); + Readln; + ScrBuf.Window.Position := OldPos; +end; + +procedure ShowTextAttributeInfo(const ScrBuf: TJclScreenBuffer); + function StyleToString: string; + var + AStyle: TJclScreenFontStyle; + begin + for AStyle:=Low(TJclScreenFontStyle) to High(TJclScreenFontStyle) do + begin + if AStyle in ScrBuf.Font.Style then + begin + if Result <> '' then + Result := Result + ', '; + Result := Result + GetEnumName(TypeInfo(TJclScreenFontStyle), Integer(AStyle)); + end; + end; + end; +const + HighlightName: array[Boolean] of string = ('', ' [Highlight]'); +var + OldTextAttribute: Word; +begin + ScrBuf.WriteLn('Old Font Color : ' + + GetEnumName(TypeInfo(TJclScreenFontColor), Integer(ScrBuf.Font.Color)) + + HighlightName[ScrBuf.Font.Highlight]); + ScrBuf.WriteLn('Old Back Color : ' + + GetEnumName(TypeInfo(TJclScreenBackColor), Integer(ScrBuf.Font.BgColor)) + + HighlightName[ScrBuf.Font.BgHighlight]); + ScrBuf.Writeln('Old Font Style : ' + StyleToString); + OldTextAttribute := ScrBuf.Font.TextAttribute; + ScrBuf.Font.Color := fclYellow; + ScrBuf.Font.Highlight := True; + ScrBuf.Font.BgColor := bclBlue; + ScrBuf.Font.Style := ScrBuf.Font.Style + [fsUnderscore]; + ScrBuf.WriteLn('New Font Color : ' + + GetEnumName(TypeInfo(TJclScreenFontColor), Integer(ScrBuf.Font.Color)) + + HighlightName[ScrBuf.Font.Highlight]); + ScrBuf.WriteLn('New Back Color : ' + + GetEnumName(TypeInfo(TJclScreenBackColor), Integer(ScrBuf.Font.BgColor)) + + HighlightName[ScrBuf.Font.BgHighlight]); + ScrBuf.Write('New Font Style : ' + StyleToString); + ScrBuf.Font.TextAttribute := OldTextAttribute; + ScrBuf.Writeln; +end; + +{ TCtrlEventHandler } + +type + TCtrlEventHandler = class + private + FConsole: TJclConsole; + FTerminated: Boolean; + protected + procedure OnCtrlC(Sender: TObject); + procedure OnCtrlBreak(Sender: TObject); + procedure OnClose(Sender: TObject); + procedure OnLogOff(Sender: TObject); + procedure OnShutdown(Sender: TObject); + + procedure Terminate; + public + constructor Create(AConsole: TJclConsole); + + property Console: TJclConsole read FConsole; + property Terminated: Boolean read FTerminated; + end; + +constructor TCtrlEventHandler.Create(AConsole: TJclConsole); +begin + FConsole := AConsole; + FTerminated := False; + + Console.OnCtrlC := OnCtrlC; + Console.OnCtrlBreak := OnCtrlBreak; + Console.OnClose := OnClose; + Console.OnLogOff := OnLogOff; + Console.OnShutdown := OnShutdown; +end; + +procedure TCtrlEventHandler.Terminate; +var + Evt: TInputRecord; +begin + Sleep(1000); + + FTerminated := True; + + Evt.EventType := FOCUS_EVENT; + Evt.Event.FocusEvent.bSetFocus := False; + FConsole.Input.PutEvent(Evt); +end; + +procedure TCtrlEventHandler.OnCtrlC(Sender: TObject); +begin + Console.ActiveScreen.Writeln('Ctrl Event: Ctrl-C'); +end; + +procedure TCtrlEventHandler.OnCtrlBreak(Sender: TObject); +begin + Console.ActiveScreen.Writeln('Ctrl Event: Ctrl-Break'); +end; + +procedure TCtrlEventHandler.OnClose(Sender: TObject); +begin + Console.ActiveScreen.Writeln('Ctrl Event: Close'); + Terminate; +end; + +procedure TCtrlEventHandler.OnLogOff(Sender: TObject); +begin + Console.ActiveScreen.Writeln('Ctrl Event: Logoff'); + Terminate; +end; + +procedure TCtrlEventHandler.OnShutdown(Sender: TObject); +begin + Console.ActiveScreen.Writeln('Ctrl Event: Shutdown'); + Terminate; +end; + +procedure ShowInputInfo(const InputBuf: TJclInputBuffer); + function ModeToString: string; + var + AMode: TJclConsoleInputMode; + begin + for AMode:=Low(TJclConsoleInputMode) to High(TJclConsoleInputMode) do + begin + if AMode in InputBuf.Mode then + begin + if Result <> '' then + Result := Result + ', '; + Result := Result + GetEnumName(TypeInfo(TJclConsoleInputMode), Integer(AMode)); + end; + end; + end; + + procedure AddEvent; + var + ir: TInputRecord; + begin + ir.EventType := MENU_EVENT; + ir.Event.MenuEvent.dwCommandId ... [truncated message content] |
|
From: <ou...@us...> - 2006-08-18 15:07:46
|
Revision: 1741 Author: outchy Date: 2006-08-18 07:57:49 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1741&view=rev Log Message: ----------- Old releases that were hidden in the files section at Sourceforge. These releases are no more supported, just made public for courtesy purpose. Added Paths: ----------- tags/JCL120-Build779/jcl/ tags/JCL120-Build779/jcl/Install.bat tags/JCL120-Build779/jcl/Issue Tracker - anonymous account.url tags/JCL120-Build779/jcl/JEDI Code Library Home Page.url tags/JCL120-Build779/jcl/Readme.html tags/JCL120-Build779/jcl/Readme.txt tags/JCL120-Build779/jcl/bin/ tags/JCL120-Build779/jcl/bin/Bin.txt tags/JCL120-Build779/jcl/dcu/ tags/JCL120-Build779/jcl/dcu/Dcu.txt tags/JCL120-Build779/jcl/examples/ tags/JCL120-Build779/jcl/examples/ApiHookDemoMain.dfm tags/JCL120-Build779/jcl/examples/ApiHookDemoMain.pas tags/JCL120-Build779/jcl/examples/ApiHookExample.dof tags/JCL120-Build779/jcl/examples/ApiHookExample.dpr tags/JCL120-Build779/jcl/examples/ApiHookExample.res tags/JCL120-Build779/jcl/examples/AppInstDemoMain.dfm tags/JCL120-Build779/jcl/examples/AppInstDemoMain.pas tags/JCL120-Build779/jcl/examples/AppInstExample.dof tags/JCL120-Build779/jcl/examples/AppInstExample.dpr tags/JCL120-Build779/jcl/examples/AppInstExample.res tags/JCL120-Build779/jcl/examples/CreateProcAsUserDemoMain.dfm tags/JCL120-Build779/jcl/examples/CreateProcAsUserDemoMain.pas tags/JCL120-Build779/jcl/examples/CreateProcAsUserExample.dof tags/JCL120-Build779/jcl/examples/CreateProcAsUserExample.dpr tags/JCL120-Build779/jcl/examples/CreateProcAsUserExample.res tags/JCL120-Build779/jcl/examples/FramesTrackDemoMain.dfm tags/JCL120-Build779/jcl/examples/FramesTrackDemoMain.pas tags/JCL120-Build779/jcl/examples/FramesTrackExample.dof tags/JCL120-Build779/jcl/examples/FramesTrackExample.dpr tags/JCL120-Build779/jcl/examples/FramesTrackExample.res tags/JCL120-Build779/jcl/examples/JclExamples.bpg tags/JCL120-Build779/jcl/examples/LanManDemoMain.dfm tags/JCL120-Build779/jcl/examples/LanManDemoMain.pas tags/JCL120-Build779/jcl/examples/LanManExample.dof tags/JCL120-Build779/jcl/examples/LanManExample.dpr tags/JCL120-Build779/jcl/examples/LanManExample.res tags/JCL120-Build779/jcl/examples/LocalesDemoMain.dfm tags/JCL120-Build779/jcl/examples/LocalesDemoMain.pas tags/JCL120-Build779/jcl/examples/LocalesExample.dof tags/JCL120-Build779/jcl/examples/LocalesExample.dpr tags/JCL120-Build779/jcl/examples/LocalesExample.res tags/JCL120-Build779/jcl/examples/MapiDemoMain.dfm tags/JCL120-Build779/jcl/examples/MapiDemoMain.pas tags/JCL120-Build779/jcl/examples/MapiExample.dof tags/JCL120-Build779/jcl/examples/MapiExample.dpr tags/JCL120-Build779/jcl/examples/MapiExample.res tags/JCL120-Build779/jcl/examples/MultiMediaExample.dof tags/JCL120-Build779/jcl/examples/MultiMediaExample.dpr tags/JCL120-Build779/jcl/examples/MultiMediaExample.res tags/JCL120-Build779/jcl/examples/MultimediaDemoMain.dfm tags/JCL120-Build779/jcl/examples/MultimediaDemoMain.pas tags/JCL120-Build779/jcl/examples/NtSvcDemoDependent.dfm tags/JCL120-Build779/jcl/examples/NtSvcDemoDependent.pas tags/JCL120-Build779/jcl/examples/NtSvcDemoGroups.dfm tags/JCL120-Build779/jcl/examples/NtSvcDemoGroups.pas tags/JCL120-Build779/jcl/examples/NtSvcDemoMain.dfm tags/JCL120-Build779/jcl/examples/NtSvcDemoMain.pas tags/JCL120-Build779/jcl/examples/NtSvcExample.dof tags/JCL120-Build779/jcl/examples/NtSvcExample.dpr tags/JCL120-Build779/jcl/examples/NtSvcExample.res tags/JCL120-Build779/jcl/examples/PeFuncDemoMain.dfm tags/JCL120-Build779/jcl/examples/PeFuncDemoMain.pas tags/JCL120-Build779/jcl/examples/PeFuncExample.dof tags/JCL120-Build779/jcl/examples/PeFuncExample.dpr tags/JCL120-Build779/jcl/examples/PeFuncExample.res tags/JCL120-Build779/jcl/examples/RTTIDemoMain.dfm tags/JCL120-Build779/jcl/examples/RTTIDemoMain.pas tags/JCL120-Build779/jcl/examples/RTTIExample.dof tags/JCL120-Build779/jcl/examples/RTTIExample.dpr tags/JCL120-Build779/jcl/examples/RTTIExample.res tags/JCL120-Build779/jcl/examples/ReadMailDemoMain.dfm tags/JCL120-Build779/jcl/examples/ReadMailDemoMain.pas tags/JCL120-Build779/jcl/examples/ReadMailExample.dof tags/JCL120-Build779/jcl/examples/ReadMailExample.dpr tags/JCL120-Build779/jcl/examples/ReadMailExample.res tags/JCL120-Build779/jcl/examples/RegistryDemoMain.dfm tags/JCL120-Build779/jcl/examples/RegistryDemoMain.pas tags/JCL120-Build779/jcl/examples/RegistryExample.dof tags/JCL120-Build779/jcl/examples/RegistryExample.dpr tags/JCL120-Build779/jcl/examples/RegistryExample.res tags/JCL120-Build779/jcl/examples/SingleInstDemoMain.dfm tags/JCL120-Build779/jcl/examples/SingleInstDemoMain.pas tags/JCL120-Build779/jcl/examples/SingleInstExample.dof tags/JCL120-Build779/jcl/examples/SingleInstExample.dpr tags/JCL120-Build779/jcl/examples/SingleInstExample.res tags/JCL120-Build779/jcl/examples/SourceLocDemoMain.dfm tags/JCL120-Build779/jcl/examples/SourceLocDemoMain.pas tags/JCL120-Build779/jcl/examples/SourceLocExample.dof tags/JCL120-Build779/jcl/examples/SourceLocExample.dpr tags/JCL120-Build779/jcl/examples/SourceLocExample.res tags/JCL120-Build779/jcl/examples/StackTrackDemoMain.dfm tags/JCL120-Build779/jcl/examples/StackTrackDemoMain.pas tags/JCL120-Build779/jcl/examples/StackTrackExample.dof tags/JCL120-Build779/jcl/examples/StackTrackExample.dpr tags/JCL120-Build779/jcl/examples/StackTrackExample.res tags/JCL120-Build779/jcl/examples/SysInfoDemoMain.dfm tags/JCL120-Build779/jcl/examples/SysInfoDemoMain.pas tags/JCL120-Build779/jcl/examples/SysInfoExample.dof tags/JCL120-Build779/jcl/examples/SysInfoExample.dpr tags/JCL120-Build779/jcl/examples/SysInfoExample.res tags/JCL120-Build779/jcl/examples/TextReaderDemoMain.dfm tags/JCL120-Build779/jcl/examples/TextReaderDemoMain.pas tags/JCL120-Build779/jcl/examples/TextReaderExample.dof tags/JCL120-Build779/jcl/examples/TextReaderExample.dpr tags/JCL120-Build779/jcl/examples/TextReaderExample.res tags/JCL120-Build779/jcl/examples/ThreadExceptDemoMain.dfm tags/JCL120-Build779/jcl/examples/ThreadExceptDemoMain.pas tags/JCL120-Build779/jcl/examples/ThreadExceptExample.dof tags/JCL120-Build779/jcl/examples/ThreadExceptExample.dpr tags/JCL120-Build779/jcl/examples/ThreadExceptExample.res tags/JCL120-Build779/jcl/examples/UnmangleNameDemoMain.dfm tags/JCL120-Build779/jcl/examples/UnmangleNameDemoMain.pas tags/JCL120-Build779/jcl/examples/UnmangleNameExample.dof tags/JCL120-Build779/jcl/examples/UnmangleNameExample.dpr tags/JCL120-Build779/jcl/examples/UnmangleNameExample.res tags/JCL120-Build779/jcl/examples/VerInfoDemoMain.dfm tags/JCL120-Build779/jcl/examples/VerInfoDemoMain.pas tags/JCL120-Build779/jcl/examples/VerInfoExample.dof tags/JCL120-Build779/jcl/examples/VerInfoExample.dpr tags/JCL120-Build779/jcl/examples/VerInfoExample.res tags/JCL120-Build779/jcl/examples/debugextension/ tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIde40.dof tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIde40.dpk tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIde40.res tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIde50.dof tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIde50.dpk tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIde50.res tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIde60.dof tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIde60.dpk tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIde60.res tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIdeIcon.res tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIdeImpl.pas tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIdeResult.dfm tags/JCL120-Build779/jcl/examples/debugextension/JclDebugIdeResult.pas tags/JCL120-Build779/jcl/examples/debugextension/JclOtaUtils.pas tags/JCL120-Build779/jcl/examples/debugextension/dialog/ tags/JCL120-Build779/jcl/examples/debugextension/dialog/ClxExceptDlg.ico tags/JCL120-Build779/jcl/examples/debugextension/dialog/ClxExceptDlg.pas tags/JCL120-Build779/jcl/examples/debugextension/dialog/ClxExceptDlg.xfm tags/JCL120-Build779/jcl/examples/debugextension/dialog/ExceptDlg.dfm tags/JCL120-Build779/jcl/examples/debugextension/dialog/ExceptDlg.ico tags/JCL120-Build779/jcl/examples/debugextension/dialog/ExceptDlg.pas tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ tags/JCL120-Build779/jcl/examples/debugextension/threadnames/JclIdeThreadStatus.pas tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ThreadExpertSharedNames.pas tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ThreadExpertUnit.pas tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ThreadNameExpert40.dof tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ThreadNameExpert40.dpk tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ThreadNameExpert40.res tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ThreadNameExpert50.dof tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ThreadNameExpert50.dpk tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ThreadNameExpert50.res tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ThreadNameExpert60.dof tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ThreadNameExpert60.dpk tags/JCL120-Build779/jcl/examples/debugextension/threadnames/ThreadNameExpert60.res tags/JCL120-Build779/jcl/examples/debugextension/tools/ tags/JCL120-Build779/jcl/examples/debugextension/tools/MakeJclDbg.dof tags/JCL120-Build779/jcl/examples/debugextension/tools/MakeJclDbg.dpr tags/JCL120-Build779/jcl/examples/debugextension/tools/MapToJdbg.dof tags/JCL120-Build779/jcl/examples/debugextension/tools/MapToJdbg.dpr tags/JCL120-Build779/jcl/examples/debugextension/tools/MapToJdbg.res tags/JCL120-Build779/jcl/examples/debugextension/tools/MapToJdbgMain.dfm tags/JCL120-Build779/jcl/examples/debugextension/tools/MapToJdbgMain.pas tags/JCL120-Build779/jcl/examples/debugextension/tools/TlbToMap.dof tags/JCL120-Build779/jcl/examples/debugextension/tools/TlbToMap.dpr tags/JCL120-Build779/jcl/examples/debugextension/tools/TlbToMap.res tags/JCL120-Build779/jcl/examples/debugextension/tools/TlbToMapMain.dfm tags/JCL120-Build779/jcl/examples/debugextension/tools/TlbToMapMain.pas tags/JCL120-Build779/jcl/examples/debugextension/tools/Tools.bpg tags/JCL120-Build779/jcl/examples/debugextension/tools/makefile.mak tags/JCL120-Build779/jcl/examples/delphitools/ tags/JCL120-Build779/jcl/examples/delphitools/DelphiToolsGroup.bpg tags/JCL120-Build779/jcl/examples/delphitools/Readme.txt tags/JCL120-Build779/jcl/examples/delphitools/common/ tags/JCL120-Build779/jcl/examples/delphitools/common/About.dfm tags/JCL120-Build779/jcl/examples/delphitools/common/About.pas tags/JCL120-Build779/jcl/examples/delphitools/common/D6MdiMsgFix.pas tags/JCL120-Build779/jcl/examples/delphitools/common/FindDlg.dfm tags/JCL120-Build779/jcl/examples/delphitools/common/FindDlg.pas tags/JCL120-Build779/jcl/examples/delphitools/common/SHDocVw_TLB.pas tags/JCL120-Build779/jcl/examples/delphitools/common/ToolsUtils.pas tags/JCL120-Build779/jcl/examples/delphitools/dependencyviewer/ tags/JCL120-Build779/jcl/examples/delphitools/dependencyviewer/DependView.dof tags/JCL120-Build779/jcl/examples/delphitools/dependencyviewer/DependView.dpr tags/JCL120-Build779/jcl/examples/delphitools/dependencyviewer/DependView.res tags/JCL120-Build779/jcl/examples/delphitools/dependencyviewer/DependViewMain.dfm tags/JCL120-Build779/jcl/examples/delphitools/dependencyviewer/DependViewMain.pas tags/JCL120-Build779/jcl/examples/delphitools/dependencyviewer/FileViewer.dfm tags/JCL120-Build779/jcl/examples/delphitools/dependencyviewer/FileViewer.pas tags/JCL120-Build779/jcl/examples/delphitools/makefile.mak tags/JCL120-Build779/jcl/examples/delphitools/peviewer/ tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeDump.dfm tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeDump.pas tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeGenDef.dfm tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeGenDef.pas tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeResView.dfm tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeResView.pas tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeResource.pas tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeSearch.dfm tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeSearch.pas tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeViewer.dof tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeViewer.dpr tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeViewer.res tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeViewer.tlb tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeViewerControl.pas tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeViewerMain.dfm tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeViewerMain.pas tags/JCL120-Build779/jcl/examples/delphitools/peviewer/PeViewer_TLB.pas tags/JCL120-Build779/jcl/examples/delphitools/resfix/ tags/JCL120-Build779/jcl/examples/delphitools/resfix/ResFix.dof tags/JCL120-Build779/jcl/examples/delphitools/resfix/ResFix.dpr tags/JCL120-Build779/jcl/examples/delphitools/resfix/ResFix.res tags/JCL120-Build779/jcl/examples/delphitools/resfix/ResFixMain.dfm tags/JCL120-Build779/jcl/examples/delphitools/resfix/ResFixMain.pas tags/JCL120-Build779/jcl/examples/delphitools/screenjpg/ tags/JCL120-Build779/jcl/examples/delphitools/screenjpg/Main.dfm tags/JCL120-Build779/jcl/examples/delphitools/screenjpg/Main.pas tags/JCL120-Build779/jcl/examples/delphitools/screenjpg/ScreenJPG.dof tags/JCL120-Build779/jcl/examples/delphitools/screenjpg/ScreenJPG.dpr tags/JCL120-Build779/jcl/examples/delphitools/screenjpg/ScreenJPG.res tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/ tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/ChangePriority.dfm tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/ChangePriority.pas tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/Global.dfm tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/Global.pas tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/HeapDump.dfm tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/HeapDump.pas tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/Main.dfm tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/Main.pas tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/MemoryDump.dfm tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/MemoryDump.pas tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/ModulesDump.dfm tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/ModulesDump.pas tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/ToolHelpViewer.dof tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/ToolHelpViewer.dpr tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/ToolHelpViewer.res tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/ViewTemplate.dfm tags/JCL120-Build779/jcl/examples/delphitools/toolhelpview/ViewTemplate.pas tags/JCL120-Build779/jcl/examples/installhelper/ tags/JCL120-Build779/jcl/examples/installhelper/DelphiInstall.pas tags/JCL120-Build779/jcl/examples/installhelper/JclInstallHelper.dof tags/JCL120-Build779/jcl/examples/installhelper/JclInstallHelper.dpr tags/JCL120-Build779/jcl/examples/installhelper/JclInstallHelper.res tags/JCL120-Build779/jcl/examples/installhelper/JclInstallHelperMain.dfm tags/JCL120-Build779/jcl/examples/installhelper/JclInstallHelperMain.pas tags/JCL120-Build779/jcl/examples/installhelper/makefile.mak tags/JCL120-Build779/jcl/examples/makefile.mak tags/JCL120-Build779/jcl/examples/projectanalyzer/ tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjAnalyzerFrm.dfm tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjAnalyzerFrm.pas tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjAnalyzerIcon.res tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjAnalyzerImpl.pas tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjectAnalyzer40.dof tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjectAnalyzer40.dpk tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjectAnalyzer40.res tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjectAnalyzer50.dof tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjectAnalyzer50.dpk tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjectAnalyzer50.res tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjectAnalyzer60.dof tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjectAnalyzer60.dpk tags/JCL120-Build779/jcl/examples/projectanalyzer/ProjectAnalyzer60.res tags/JCL120-Build779/jcl/help/ tags/JCL120-Build779/jcl/help/JclHelp.cnt tags/JCL120-Build779/jcl/help/JclHelp.hlp tags/JCL120-Build779/jcl/makefile.mak tags/JCL120-Build779/jcl/packages/ tags/JCL120-Build779/jcl/packages/DJCL.dof tags/JCL120-Build779/jcl/packages/DJCL.dpk tags/JCL120-Build779/jcl/packages/DJCL.res tags/JCL120-Build779/jcl/packages/DJCL40.dof tags/JCL120-Build779/jcl/packages/DJCL40.dpk tags/JCL120-Build779/jcl/packages/DJCL40.res tags/JCL120-Build779/jcl/packages/DJCL50.dof tags/JCL120-Build779/jcl/packages/DJCL50.dpk tags/JCL120-Build779/jcl/packages/DJCL50.res tags/JCL120-Build779/jcl/packages/JclPackages40.bpg tags/JCL120-Build779/jcl/packages/JclPackages50.bpg tags/JCL120-Build779/jcl/packages/JclPackages60.bpg tags/JCL120-Build779/jcl/source/ tags/JCL120-Build779/jcl/source/JEDI.inc tags/JCL120-Build779/jcl/source/Jcl8087.pas tags/JCL120-Build779/jcl/source/JclAppInst.pas tags/JCL120-Build779/jcl/source/JclBase.pas tags/JCL120-Build779/jcl/source/JclCOM.pas tags/JCL120-Build779/jcl/source/JclComplex.pas tags/JCL120-Build779/jcl/source/JclCounter.pas tags/JCL120-Build779/jcl/source/JclDateTime.pas tags/JCL120-Build779/jcl/source/JclDebug.pas tags/JCL120-Build779/jcl/source/JclExprEval.pas tags/JCL120-Build779/jcl/source/JclFileUtils.pas tags/JCL120-Build779/jcl/source/JclGraphUtils.pas tags/JCL120-Build779/jcl/source/JclGraphics.pas tags/JCL120-Build779/jcl/source/JclHookExcept.pas tags/JCL120-Build779/jcl/source/JclIniFiles.pas tags/JCL120-Build779/jcl/source/JclLANMan.pas tags/JCL120-Build779/jcl/source/JclLocales.pas tags/JCL120-Build779/jcl/source/JclLogic.pas tags/JCL120-Build779/jcl/source/JclMapi.pas tags/JCL120-Build779/jcl/source/JclMath.pas tags/JCL120-Build779/jcl/source/JclMime.pas tags/JCL120-Build779/jcl/source/JclMiscel.pas tags/JCL120-Build779/jcl/source/JclMultimedia.pas tags/JCL120-Build779/jcl/source/JclNTFS.pas tags/JCL120-Build779/jcl/source/JclPeImage.pas tags/JCL120-Build779/jcl/source/JclPrint.pas tags/JCL120-Build779/jcl/source/JclRTTI.pas tags/JCL120-Build779/jcl/source/JclRegistry.pas tags/JCL120-Build779/jcl/source/JclResources.pas tags/JCL120-Build779/jcl/source/JclSecurity.pas tags/JCL120-Build779/jcl/source/JclShell.pas tags/JCL120-Build779/jcl/source/JclStatistics.pas tags/JCL120-Build779/jcl/source/JclStrHashMap.pas tags/JCL120-Build779/jcl/source/JclStrings.pas tags/JCL120-Build779/jcl/source/JclSvcCtrl.pas tags/JCL120-Build779/jcl/source/JclSynch.pas tags/JCL120-Build779/jcl/source/JclSysInfo.pas tags/JCL120-Build779/jcl/source/JclSysUtils.pas tags/JCL120-Build779/jcl/source/JclTD32.pas tags/JCL120-Build779/jcl/source/JclUnicode.pas tags/JCL120-Build779/jcl/source/JclUnicode.rc tags/JCL120-Build779/jcl/source/JclUnicode.res tags/JCL120-Build779/jcl/source/JclUnitConv.pas tags/JCL120-Build779/jcl/source/JclWin32.pas tags/JCL120-Build779/jcl/source/LM.pas tags/JCL120-Build779/jcl/source/jcl.inc Added: tags/JCL120-Build779/jcl/Install.bat =================================================================== --- tags/JCL120-Build779/jcl/Install.bat (rev 0) +++ tags/JCL120-Build779/jcl/Install.bat 2006-08-18 14:57:49 UTC (rev 1741) @@ -0,0 +1,4 @@ +@CD Examples\InstallHelper +@MAKE +@CD ..\.. +@START Bin\JclInstallHelper.exe \ No newline at end of file Added: tags/JCL120-Build779/jcl/Issue Tracker - anonymous account.url =================================================================== --- tags/JCL120-Build779/jcl/Issue Tracker - anonymous account.url (rev 0) +++ tags/JCL120-Build779/jcl/Issue Tracker - anonymous account.url 2006-08-18 14:57:49 UTC (rev 1741) @@ -0,0 +1,3 @@ +[InternetShortcut] +URL=http://jcl.sourceforge.net/reportbug +Modified=007D0F2E78D2C101C6 Added: tags/JCL120-Build779/jcl/JEDI Code Library Home Page.url =================================================================== --- tags/JCL120-Build779/jcl/JEDI Code Library Home Page.url (rev 0) +++ tags/JCL120-Build779/jcl/JEDI Code Library Home Page.url 2006-08-18 14:57:49 UTC (rev 1741) @@ -0,0 +1,3 @@ +[InternetShortcut] +URL=http://delphi-jedi.org/Jedi:CODELIBJCL +Modified=306CB94678D2C101A7 Added: tags/JCL120-Build779/jcl/Readme.html =================================================================== --- tags/JCL120-Build779/jcl/Readme.html (rev 0) +++ tags/JCL120-Build779/jcl/Readme.html 2006-08-18 14:57:49 UTC (rev 1741) @@ -0,0 +1,474 @@ +<HTML> + +<HEAD> +<TITLE>Jedi Code Library Release 1.20</TITLE> +</HEAD> + +<BODY> +<PRE> + +====================================================================== +Jedi Code Library +Release 1.20 +Build 779 19-Apr-2002 +====================================================================== + +It has been a long time since we released the last version of the Jedi +Code Library. Now, we are proud to present Version 1.20. It includes a +real bunch of bug fixes, some new features and even two completely +new units. + +Furthermore we are introducing an Issue Tracker to help you and us to +solve JCL related problems as fast as possible. The times in which you +had to check the VCS, or contact someone from the team individualy to +retain information about the status of a specific bug are gone by now. + +So far the good news, some less good news is that the team changed a +little bit. The former lead and main coordinator of the Code Library - +Marcel van Brakel - has left the team and moved on to other areas. We +hereby wish him good look and want to say "thank you" for all what he +has done. Please do not send any email regarding JCL support to him - +instead use the mailing list, the newsgroup or one of our email +accounts. + +<B>* New features</B> + + New Unit: JclTD32 Introduces Borland TD32 symbolic debugging + information support routines and classes. + + New Unit: JclSvCtrl This unit introduces various routines and + classes to control Windows NT services. + + JclAppInst + - TJclAppInstances.SendCmdLineParams method added + + JclCounter + - Linux compatability + - You are now able to resume counting. + + JclDebug + - New feature: Borland TD32 debug symbols can be another source of + source code location information + - Improved: OffsetFromProcName and OffsetFromLineNumber items added + to TJclLocationInfo structure to improve source location + information + - Improved: GetLocationInfoStr function has new default parameters + for formatting new information added to TJclLocationInfo structure + - Improved: Stack listing code has been optimized for performance. + It should be at least twenty times faster than original code which + is important for exceptional stack tracking + - Improved: MAP file parser now accepts files with incorrect information + (caused by bug in the linker) as well and corrects them. There is new + TJclMapScanner.LineNumberErrors property indicating number of incorrect + line number information in the MAP file + - Improved: TJclDebugThread and TJclDebugThreadList classes + - Added: TJclStackInfoItem.CallerAdr property + - Added: TJclModuleInfoList class + - Added: New LineNumberErrors parameter to ConvertMapFileToJdbgFile + function + - Added: New LineNumberErrors parameter to InsertDebugDataIntoExecutableFile + function + - Added: stStaticModuleList to TJclStackTrackingOption to improve + performance of stack listing code for applications using statically + linked modules only + - Backward compatibility: ModuleFromAddr and IsSystemModule routines moved to + JclSysInfo unit. Its functionality is replaced by + TJclModuleInfoList class for better performance + + JclFileUtils + - TJclMappedTextReader class added + - New function: VersionFixedFileInfo + - Function improved: ShredFile now uses an alternating bit + pattern. + + JclMapi + - Added: DefaultProfileName, ProfileCount and Profiles properties to + TJclSimpleMapi class + - Added: TJclEmail.HtmlBody property for creating HTML format messages + + JclMath + - Rabin Miller strong primality test added + + JclMultimedia + - Improved: CD Audio routines has additional parameter for specifying the + drive + - New function: GetCdInfo + - New function: GetCDAudioTrackList + - Added: Audio mixer classes + + JclPeImage + - Added: TJclPeImage.IsCLR and TJclPeImage.CLRHeader properties + - Added: TJclPeImage.CertificateList property + - Added: TJclPeRootResourceList.ManifestContent property + - Added: TJclPePackageInfo.Available property + - Added: TJclPePackageInfo.EnsureExtension property + - Added: TJclPeBorImage.PackageCompilerVersion property + - Added: TJclPeBorImage.DependedPackages method + - New function: PeBorDependedPackages + - New function: PeClearCheckSum + - New function: PeFindMissingImports + - New function: PeCreateRequiredImportList + - Backward compatibility: TJclPeBorImage.IsTD32DebugPresent property + removed. The functionallity is replaced by + JclTD32 unit + + JclRegistry + - New function: RegKeyExists + + JclShell + - New function: GetFileNameIcon + + JclStrings + - New function: StrTrimCharsRight + - New function: StrTrimCharsLeft + - New function: StrNormIndex + - New function: StrCharPosLower + - New function: StrCharPosUpper + + JclSysInfo + - Now able to detect Crusoe chipsets. + - Improved: Windows XP added to operating system info routines + - Improved: GetPidFromProcessName accepts filename without full path + - Added: Windows 95/98/Me system resources information routines + - New function: GetShellProcessName + - New function: GetShellProcessHandle + - New function: GetWindowsServicePackVersion + - New function: GetNtProductTypeString + - New function: GetWindowsVersionString + - New function: GetCommonAppdataFolder + - New function: IsMainAppWindow + - New function: GetWindowCaption + - New function: GetMainAppWndFromPid + + JclSysUtils + - Added: TJclReferenceMemoryStream class + - Added: TList binary search routines + - Added: Dynamic arrays sorting and searching routines + - New function: GetImplementorOfInterface + + +<B>* JCL Distribution content:</B> + +Install.bat - Compile and run JCL Install Helper +makefile.mak - Builds all JCL examples and tools +Readme.txt +Bin - Folder for compiled JCL binaries +Dcu - Folder for DCU files +Examples - JCL example applications +Examples\DebugExtension - JCL Debug IDE expert for using JclDebug unit + \Dialog - Sample application exception dialog replacement + \ThreadNames - IDE expert showing class names for debugged threads + \Tools - Tools for creating files with JCL debug information +Examples\DelphiTools - Collection of system tools using JCL +Examples\InstallHelper - JCL Install Helper +Examples\ProjectAnalyzer - Project Analyzer IDE expert +Help - Help file +Packages - JCL runtime package and project group containing all + available design-time packages +Source - JCL source code + + +<B>* Installation</B> + +Supported development tools versions: + +- Delphi 4 Update Pack #3 +- Delphi 5 Update Pack #1 +- Delphi 6 Update Pack #2 (including Personal Edition) +- Free Pascal compiler + +Please make sure you have installed latest update packs. You can download them +from Borland Support web page: <A HREF="http://www.borland.com/devsupport/delphi/">http://www.borland.com/devsupport/delphi/</A> + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Important !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If you have installed any previous version of the JCL you have to delete it. ! +! It is also necessary to remove all installed JCL packages from the IDE. ! +! Do not mix files or compiled packages from older versions of the JCL with ! +! current version. ! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +Because the JCL does NOT contain any components you don't have to install it to +the IDE. Just use desired unit(s) in your project (add them to uses clause) and +make sure IDE Library Path or Project Search Path contains JCL\Source folder, +i.e. C:\Delphi\JCL\Source (where C:\Delphi\JCL is folder when you have unzipped +the JCL archive). + +- To set the path for all projects in IDE Library Path (recommended) go to: + Tools|Environment Options -> Library tab, add the path to Library Path field + or use JCL Install Helper described later in the document + +- To set the path for a project only (optional) go to: + Project|Options -> Directories/Conditionals page, add the path to Search path + field + +Although you might want to install additional experts or files shipped with the +JCL. Currently there are: + +- Help file +- Sample application exception dialogs +- IDE experts + +The installation process is described later in the document. You can use JCL +Install Helper for the first two options but IDE experts have to be installed +manually from the IDE. + + +<B>* JCL Install Helper</B> + +Helps you to integrate Jedi Code Library with Delphi IDE. Currently it assists +with: + +- Adding sample JCL Debug extension dialogs to Object Repository +- Adding JCL\Source path to Library Path in Environment Options +- Integrating JCL help file to the IDE. + +To start it click on Install.bat file in the JCL root folder. + + +<B>* Packages</B> + +In case you'd like to install any IDE expert shipped with JCL or use JCL code +in your components or IDE experts you need runtime package containing all JCL +source units. The package is located in Packages folder. There are separate +files for each Delphi version: + +DJCL40.dpk - for Delphi 4 +DJCL50.dpk - for Delphi 5 +DJCL.dpk - for Delphi 6 + +To simplify the process of installing additional packages we provide project +groups containing all JCL packages for particular Delphi version: + +JclPackages40.bpg - for Delphi 4 +JclPackages50.bpg - for Delphi 5 +JclPackages60.bpg - for Delphi 6 + +Each group contains JCL runtime package and design-time packages for JCL IDE +experts: + +DJCL - JCL runtime package +JclDebugIde - Expert for inserting JCL Debug information into executable + files. This is useful when use source location routines in + your application +ThreadNameExpert - Expert for displaying class names of TThread classes in + Thread Status window during debugging. See ThreadNamesExample + project in JCL\Examples folder +ProjectAnalyzer - Expert showing list of units compiled to a current project + including the information how much a unit contributes to the + executable file size. It will add 'Analyze Project <name>' + item to the Project menu + +To install it, open file matching your Delphi version, activate Project Manager +window in Delphi IDE, select DJCLxx file and build it from popup menu by Build +command. Then select desired designtime package(s) and install them one by one +by Install command from the popup menu. Then close the project group (answer +'No' when IDE asks to save changes in project group files). + + +<B>* Debug Extension for JclDebug unit</B> + +Examples\DebugExtension folder contains IDE expert which assists to insert JCL +Debug information into executable files. This can be useful when use source +location routines from JclDebug unit. These routines needs some kind of special +information to be able provide source location for given address in the process. +Currently there are four options to get it work: + +1. Generate and deploy MAP file with your executable file. The file is generated + by the linker. It needs to be set in Project|Options dialog -> Linker page, + Detailed checkbox. + +2. Generate and deploy JDBG file file with your executable file. This is binary + file based on MAP file but its size is typically about 12% of original MAP + file. You can generate it by MapToJdbg tool in JCL\Examples\Tools folder. + The advantage over MAP file is smaller size and better security of the file + content because it is not a plain text file and it also contains a checksum. + +3. Generate Borland TD32 debug symbols. These symbols are stored directly in the + executable file but usually adds several megabytes so the file is very large. + The advantage is you don't have to deploy any other file and it is easy to + generate it by checking Include TD32 debug info in Linker option page. + +4. Insert JCL Debug info into executable file by the IDE expert. The size of + added data is similar to JDBG file but it will be inserted directly into the + executable file. This is probably best option because it combines small size + of included data and no requirement of deploying additional files. In case + you use this option you need install the JclDebugIde expert. + +The IDE expert will add new item to IDE Project menu. Due some differences in +Open Tools API the use of the expert is slightly different in Delphi 4. For +Delphi 5 and 6 it adds 'Insert JCL Debug data' check item at the end of the +Project menu. When the item is checked, everytime the project is compiled by one +of following commands: Compile, Build, Compile All Projects, Build All Projects +or Run necessary JCL debug data are automatically inserted into the executable. +Moreover, for Build and Build All commands dialog with detailed information of +size of these data will be displayed. For Delphi 4 there is 'Build JCL Debug' +command only in the Project menu which performs a build including these data. + +You can generate those debug data for packages and libraries as well using the +expert. Each executable file in the project can use different option from those +listed above. It is not necessary to generate any debug data for Borland runtime +packages because the source location code can use names of exported functions +to get procedure or method name. To get line number information for Borland RTL +and VCL/CLX units you have to check Use Debug DCUs checkbox in Project|Options +dialog -> Compiler tab (not available in Delphi 4). Unfortunately it is not +possible to get line number information for Borland runtime packages because +Borland does not provide detailed MAP files for them so you get procedure or +method name only. + +In case you have more than one data source for an executable file by an accident +the best one is chosen in following order: + +1. JCL Debug data in the executable file +2. JDBG file +3. Borland TD32 symbols +4. MAP file +5. library or Borland package exports + +It is also possible to insert JCL debug data programmatically to the executable +file by using MakeJclDbg command line tool in JCL\Examples\Tools folder. You can +study included makefiles which uses this tool for building DelphiTools examples. + +To help using JclDebug exceptional stack tracking in application simple dialog +is provided in JCL\Examples\DebugExtension\Dialog folder. The dialog replaces +standard dialog displayed by VCL or CLX application when an unhandled exception +occurs. It has additional Detailed button showing the stack, list of loaded +modules and other system information. By adding the dialog to the application +exceptional stack tracking code is automatically initialized so you don't have +to care about it. You can also turn on logging to text file by setting the Tag +property of the dialog to '1'. There is also version for CLX (ClxExceptDlg) but +it works on Windows only. These dialogs are intended to be added to Object +Repository. + + +<B>* Makefiles</B> + +In order to compile all examples and tools by one command we provide makefiles. +To use them open Command Prompt, change current directory to root JCL directory +and run MAKE command. It should start to compile all project using most recent +version of compiler from installed Delphi versions. All executable files will be +created in JCL\Bin directory. + + +<B>* Feedback</B> + +If you have any comments or suggestions we would appreciate it if you +drop us a note. There are several ways to get in contact with us: + + - Write to <A HREF="mailto:jc...@de...">jc...@de...</A> or to <A HREF="mailto:jcl...@de...">jcl...@de...</A> + This email account should not be used for support requests. If + you need support please use either the newsgroups or the + mailing list. + + - If you want to keep up to date about JCL then you can join the + JCL mailing list by going to <A HREF="http://www.egroups.com/group/JEDI-JCL">http://www.egroups.com/group/JEDI-JCL</A> + You can also use this list to voice your opinion, comments or + suggestions. + + - If you prefer a newsgroup over a mailing list please join us at + <A HREF="news://forums.talkto.net/jedi.jcl">news://forums.talkto.net/jedi.jcl</A>. The newsgroup is the point where + you can discuss the JCL with other users and with the team itself. + + +<B>* Issue Tracking</B> + +We finally decided to use an issue tracking tool. It can be accessed +via either + +<A HREF="http://jcl.sourceforge.net/">http://jcl.sourceforge.net/</A> + +or + +<A HREF="http://jcl.sourceforge.net/reportbug">http://jcl.sourceforge.net/reportbug</A> + +The first link requires you register for a new login account. +The second one uses an anonymous account. You can enter and keep +track of bug reports as well as of feature requests. + +The general rule is: + +If you want to get a bug fixed you need to log it! + +The JEDI issue tracker is based up on the Mantis BugTracker Open Source +project. More background information about it is available on its homepage +(<A HREF="http://mantisbt.sourceforge.net">http://mantisbt.sourceforge.net</A>) + +Please be aware that you are allowed there to enter feature request +and code donations as well. + +<B>* Version Control</B> + +We are using FreeVCS as version control system. You can download it from +<A HREF="http://www.freevcs.de">http://www.freevcs.de</A> + +To sychronize please use one of the following accounts: + +server: demos.href.com +uid: jcluser[1|2|3] +pwd: jcluser + + +<B>* Bug fixes</B> + + Jcl8087 + - FPC compatability added. + + JclFileUtils + - CreateEmptyFile fixed (#0000007) + - AdvBuildFileList fixed - problem with Normal files (#0000030) + + JclGraphics + - FillLongWord replaced with OP. + + JclMath + - Removed the JclRangeSet and JclFlatSet classes + - Bug fixed: Power (wrong results near zero) + - Bug fixed: LCM has thrown a divide by zero when arg = 0 + - Bug fixed: Rational.Add did not work at all. + - Bug fixed: Rational.Subtract did not work at all. + + JclRegistry + - Bug fixed: RegReadBinary and RegReadBinaryDef now accept + REG_MULTI_SZ as well. + + JclStrings + - Bug fix: Rewrote StrSmartCase to fix a bug. + - Bug fix: StrIsAlphaNumUnderscore + - Bug fix: StrIsSubset + - Bug fix: StrRepeatLength + - Bug fix: StrLastPos + + JclSysInfo + - Bug fix: RunningProcessesList + - Bug fix: Crusoe processor detection + +<B>* Bug fixes in Build 754</B> + + JclFileUtils + - Bug fix: TJclFileVersionInfo.ExtractData method raises exception for + GAPI32.DLL version 5.5.2803.1 + + Examples + - Bug fix: JclDebugIde expert raises exception during the installation + - Bug fix: JCL Install helper raises exception during the installation + +<B>* Bug fixes in Build 779</B> + + JclDebug + - Bug fix: Memory leak in TJclGlobalModulesList.FreeModulesList + + JclGraphics + - Bug fix: Fixed DoStretch bug + + JclStrHashMap + - Bug fix: Memory leaks in CaseSensitiveTraits and CaseInsensitiveTraits + + JclStrings + - Bug fix: StrIToString and StrToStrings + + Examples + - Exception dialog reports exceptions in threads (TJclDebugThread) +</PRE> + +</BODY> +</HTML> + Added: tags/JCL120-Build779/jcl/Readme.txt =================================================================== --- tags/JCL120-Build779/jcl/Readme.txt (rev 0) +++ tags/JCL120-Build779/jcl/Readme.txt 2006-08-18 14:57:49 UTC (rev 1741) @@ -0,0 +1,461 @@ +====================================================================== +Jedi Code Library +Release 1.20 +Build 779 19-Apr-2002 +====================================================================== + +It has been a long time since we released the last version of the Jedi +Code Library. Now, we are proud to present Version 1.20. It includes a +real bunch of bug fixes, some new features and even two completely +new units. + +Furthermore we are introducing an Issue Tracker to help you and us to +solve JCL related problems as fast as possible. The times in which you +had to check the VCS, or contact someone from the team individualy to +retain information about the status of a specific bug are gone by now. + +So far the good news, some less good news is that the team changed a +little bit. The former lead and main coordinator of the Code Library - +Marcel van Brakel - has left the team and moved on to other areas. We +hereby wish him good look and want to say "thank you" for all what he +has done. Please do not send any email regarding JCL support to him - +instead use the mailing list, the newsgroup or one of our email +accounts. + +* New features + + New Unit: JclTD32 Introduces Borland TD32 symbolic debugging + information support routines and classes. + + New Unit: JclSvCtrl This unit introduces various routines and + classes to control Windows NT services. + + JclAppInst + - TJclAppInstances.SendCmdLineParams method added + + JclCounter + - Linux compatability + - You are now able to resume counting. + + JclDebug + - New feature: Borland TD32 debug symbols can be another source of + source code location information + - Improved: OffsetFromProcName and OffsetFromLineNumber items added + to TJclLocationInfo structure to improve source location + information + - Improved: GetLocationInfoStr function has new default parameters + for formatting new information added to TJclLocationInfo structure + - Improved: Stack listing code has been optimized for performance. + It should be at least twenty times faster than original code which + is important for exceptional stack tracking + - Improved: MAP file parser now accepts files with incorrect information + (caused by bug in the linker) as well and corrects them. There is new + TJclMapScanner.LineNumberErrors property indicating number of incorrect + line number information in the MAP file + - Improved: TJclDebugThread and TJclDebugThreadList classes + - Added: TJclStackInfoItem.CallerAdr property + - Added: TJclModuleInfoList class + - Added: New LineNumberErrors parameter to ConvertMapFileToJdbgFile + function + - Added: New LineNumberErrors parameter to InsertDebugDataIntoExecutableFile + function + - Added: stStaticModuleList to TJclStackTrackingOption to improve + performance of stack listing code for applications using statically + linked modules only + - Backward compatibility: ModuleFromAddr and IsSystemModule routines moved to + JclSysInfo unit. Its functionality is replaced by + TJclModuleInfoList class for better performance + + JclFileUtils + - TJclMappedTextReader class added + - New function: VersionFixedFileInfo + - Function improved: ShredFile now uses an alternating bit + pattern. + + JclMapi + - Added: DefaultProfileName, ProfileCount and Profiles properties to + TJclSimpleMapi class + - Added: TJclEmail.HtmlBody property for creating HTML format messages + + JclMath + - Rabin Miller strong primality test added + + JclMultimedia + - Improved: CD Audio routines has additional parameter for specifying the + drive + - New function: GetCdInfo + - New function: GetCDAudioTrackList + - Added: Audio mixer classes + + JclPeImage + - Added: TJclPeImage.IsCLR and TJclPeImage.CLRHeader properties + - Added: TJclPeImage.CertificateList property + - Added: TJclPeRootResourceList.ManifestContent property + - Added: TJclPePackageInfo.Available property + - Added: TJclPePackageInfo.EnsureExtension property + - Added: TJclPeBorImage.PackageCompilerVersion property + - Added: TJclPeBorImage.DependedPackages method + - New function: PeBorDependedPackages + - New function: PeClearCheckSum + - New function: PeFindMissingImports + - New function: PeCreateRequiredImportList + - Backward compatibility: TJclPeBorImage.IsTD32DebugPresent property + removed. The functionallity is replaced by + JclTD32 unit + + JclRegistry + - New function: RegKeyExists + + JclShell + - New function: GetFileNameIcon + + JclStrings + - New function: StrTrimCharsRight + - New function: StrTrimCharsLeft + - New function: StrNormIndex + - New function: StrCharPosLower + - New function: StrCharPosUpper + + JclSysInfo + - Now able to detect Crusoe chipsets. + - Improved: Windows XP added to operating system info routines + - Improved: GetPidFromProcessName accepts filename without full path + - Added: Windows 95/98/Me system resources information routines + - New function: GetShellProcessName + - New function: GetShellProcessHandle + - New function: GetWindowsServicePackVersion + - New function: GetNtProductTypeString + - New function: GetWindowsVersionString + - New function: GetCommonAppdataFolder + - New function: IsMainAppWindow + - New function: GetWindowCaption + - New function: GetMainAppWndFromPid + + JclSysUtils + - Added: TJclReferenceMemoryStream class + - Added: TList binary search routines + - Added: Dynamic arrays sorting and searching routines + - New function: GetImplementorOfInterface + + +* JCL Distribution content: + +Install.bat - Compile and run JCL Install Helper +makefile.mak - Builds all JCL examples and tools +Readme.txt +Bin - Folder for compiled JCL binaries +Dcu - Folder for DCU files +Examples - JCL example applications +Examples\DebugExtension - JCL Debug IDE expert for using JclDebug unit + \Dialog - Sample application exception dialog replacement + \ThreadNames - IDE expert showing class names for debugged threads + \Tools - Tools for creating files with JCL debug information +Examples\DelphiTools - Collection of system tools using JCL +Examples\InstallHelper - JCL Install Helper +Examples\ProjectAnalyzer - Project Analyzer IDE expert +Help - Help file +Packages - JCL runtime package and project group containing all + available design-time packages +Source - JCL source code + + +* Installation + +Supported development tools versions: + +- Delphi 4 Update Pack #3 +- Delphi 5 Update Pack #1 +- Delphi 6 Update Pack #2 (including Personal Edition) +- Free Pascal compiler + +Please make sure you have installed latest update packs. You can download them +from Borland Support web page: http://www.borland.com/devsupport/delphi/ + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Important !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If you have installed any previous version of the JCL you have to delete it. ! +! It is also necessary to remove all installed JCL packages from the IDE. ! +! Do not mix files or compiled packages from older versions of the JCL with ! +! current version. ! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +Because the JCL does NOT contain any components you don't have to install it to +the IDE. Just use desired unit(s) in your project (add them to uses clause) and +make sure IDE Library Path or Project Search Path contains JCL\Source folder, +i.e. C:\Delphi\JCL\Source (where C:\Delphi\JCL is folder when you have unzipped +the JCL archive). + +- To set the path for all projects in IDE Library Path (recommended) go to: + Tools|Environment Options -> Library tab, add the path to Library Path field + or use JCL Install Helper described later in the document + +- To set the path for a project only (optional) go to: + Project|Options -> Directories/Conditionals page, add the path to Search path + field + +Although you might want to install additional experts or files shipped with the +JCL. Currently there are: + +- Help file +- Sample application exception dialogs +- IDE experts + +The installation process is described later in the document. You can use JCL +Install Helper for the first two options but IDE experts have to be installed +manually from the IDE. + + +* JCL Install Helper + +Helps you to integrate Jedi Code Library with Delphi IDE. Currently it assists +with: + +- Adding sample JCL Debug extension dialogs to Object Repository +- Adding JCL\Source path to Library Path in Environment Options +- Integrating JCL help file to the IDE. + +To start it click on Install.bat file in the JCL root folder. + + +* Packages + +In case you'd like to install any IDE expert shipped with JCL or use JCL code +in your components or IDE experts you need runtime package containing all JCL +source units. The package is located in Packages folder. There are separate +files for each Delphi version: + +DJCL40.dpk - for Delphi 4 +DJCL50.dpk - for Delphi 5 +DJCL.dpk - for Delphi 6 + +To simplify the process of installing additional packages we provide project +groups containing all JCL packages for particular Delphi version: + +JclPackages40.bpg - for Delphi 4 +JclPackages50.bpg - for Delphi 5 +JclPackages60.bpg - for Delphi 6 + +Each group contains JCL runtime package and design-time packages for JCL IDE +experts: + +DJCL - JCL runtime package +JclDebugIde - Expert for inserting JCL Debug information into executable + files. This is useful when use source location routines in + your application +ThreadNameExpert - Expert for displaying class names of TThread classes in + Thread Status window during debugging. See ThreadNamesExample + project in JCL\Examples folder +ProjectAnalyzer - Expert showing list of units compiled to a current project + including the information how much a unit contributes to the + executable file size. It will add 'Analyze Project <name>' + item to the Project menu + +To install it, open file matching your Delphi version, activate Project Manager +window in Delphi IDE, select DJCLxx file and build it from popup menu by Build +command. Then select desired designtime package(s) and install them one by one +by Install command from the popup menu. Then close the project group (answer +'No' when IDE asks to save changes in project group files). + + +* Debug Extension for JclDebug unit + +Examples\DebugExtension folder contains IDE expert which assists to insert JCL +Debug information into executable files. This can be useful when use source +location routines from JclDebug unit. These routines needs some kind of special +information to be able provide source location for given address in the process. +Currently there are four options to get it work: + +1. Generate and deploy MAP file with your executable file. The file is generated + by the linker. It needs to be set in Project|Options dialog -> Linker page, + Detailed checkbox. + +2. Generate and deploy JDBG file file with your executable file. This is binary + file based on MAP file but its size is typically about 12% of original MAP + file. You can generate it by MapToJdbg tool in JCL\Examples\Tools folder. + The advantage over MAP file is smaller size and better security of the file + content because it is not a plain text file and it also contains a checksum. + +3. Generate Borland TD32 debug symbols. These symbols are stored directly in the + executable file but usually adds several megabytes so the file is very large. + The advantage is you don't have to deploy any other file and it is easy to + generate it by checking Include TD32 debug info in Linker option page. + +4. Insert JCL Debug info into executable file by the IDE expert. The size of + added data is similar to JDBG file but it will be inserted directly into the + executable file. This is probably best option because it combines small size + of included data and no requirement of deploying additional files. In case + you use this option you need install the JclDebugIde expert. + +The IDE expert will add new item to IDE Project menu. Due some differences in +Open Tools API the use of the expert is slightly different in Delphi 4. For +Delphi 5 and 6 it adds 'Insert JCL Debug data' check item at the end of the +Project menu. When the item is checked, everytime the project is compiled by one +of following commands: Compile, Build, Compile All Projects, Build All Projects +or Run necessary JCL debug data are automatically inserted into the executable. +Moreover, for Build and Build All commands dialog with detailed information of +size of these data will be displayed. For Delphi 4 there is 'Build JCL Debug' +command only in the Project menu which performs a build including these data. + +You can generate those debug data for packages and libraries as well using the +expert. Each executable file in the project can use different option from those +listed above. It is not necessary to generate any debug data for Borland runtime +packages because the source location code can use names of exported functions +to get procedure or method name. To get line number information for Borland RTL +and VCL/CLX units you have to check Use Debug DCUs checkbox in Project|Options +dialog -> Compiler tab (not available in Delphi 4). Unfortunately it is not +possible to get line number information for Borland runtime packages because +Borland does not provide detailed MAP files for them so you get procedure or +method name only. + +In case you have more than one data source for an executable file by an accident +the best one is chosen in following order: + +1. JCL Debug data in the executable file +2. JDBG file +3. Borland TD32 symbols +4. MAP file +5. library or Borland package exports + +It is also possible to insert JCL debug data programmatically to the executable +file by using MakeJclDbg command line tool in JCL\Examples\Tools folder. You can +study included makefiles which uses this tool for building DelphiTools examples. + +To help using JclDebug exceptional stack tracking in application simple dialog +is provided in JCL\Examples\DebugExtension\Dialog folder. The dialog replaces +standard dialog displayed by VCL or CLX application when an unhandled exception +occurs. It has additional Detailed button showing the stack, list of loaded +modules and other system information. By adding the dialog to the application +exceptional stack tracking code is automatically initialized so you don't have +to care about it. You can also turn on logging to text file by setting the Tag +property of the dialog to '1'. There is also version for CLX (ClxExceptDlg) but +it works on Windows only. These dialogs are intended to be added to Object +Repository. + + +* Makefiles + +In order to compile all examples and tools by one command we provide makefiles. +To use them open Command Prompt, change current directory to root JCL directory +and run MAKE command. It should start to compile all project using most recent +version of compiler from installed Delphi versions. All executable files will be +created in JCL\Bin directory. + + +* Feedback + +If you have any comments or suggestions we would appreciate it if you +drop us a note. There are several ways to get in contact with us: + + - Write to jc...@de... or to jcl...@de... + This email account should not be used for support requests. If + you need support please use either the newsgroups or the + mailing list. + + - If you want to keep up to date about JCL then you can join the + JCL mailing list by going to http://www.egroups.com/group/JEDI-JCL + You can also use this list to voice your opinion, comments or + suggestions. + + - If you prefer a newsgroup over a mailing list please join us at + news://forums.talkto.net/jedi.jcl. The newsgroup is the point where + you can discuss the JCL with other users and with the team itself. + + +* Issue Tracking + +We finally decided to use an issue tracking tool. It can be accessed +via either + +http://jcl.sourceforge.net/ + +or + +http://jcl.sourceforge.net/reportbug + +The first link requires you register for a new login account. +The second one uses an anonymous account. You can enter and keep +track of bug reports as well as of feature requests. + +The general rule is: + +If you want to get a bug fixed you need to log it! + +The JEDI issue tracker is based up on the Mantis BugTracker Open Source +project. More background information about it is available on its homepage +(http://mantisbt.sourceforge.net) + +Please be aware that you are allowed there to enter feature request +and code donations as well. + +* Version Control + +We are using FreeVCS as version control system. You can download it from +http://www.freevcs.de + +To sychronize please use one of the following accounts: + +server: demos.href.com +uid: jcluser[1|2|3] +pwd: jcluser + + +* Bug fixes + + Jcl8087 + - FPC compatability added. + + JclFileUtils + - CreateEmptyFile fixed (#0000007) + - AdvBuildFileList fixed - problem with Normal files (#0000030) + + JclGraphics + - FillLongWord replaced with OP. + + JclMath + - Removed the JclRangeSet and JclFlatSet classes + - Bug fixed: Power (wrong results near zero) + - Bug f... [truncated message content] |
|
From: <ou...@us...> - 2006-08-18 14:52:26
|
Revision: 1740 Author: outchy Date: 2006-08-18 07:45:19 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1740&view=rev Log Message: ----------- Old releases that were hidden in the files section at Sourceforge. These releases are no more supported, just made public for courtesy purpose. Added Paths: ----------- tags/JCL111-Build505/jcl/ tags/JCL111-Build505/jcl/Bug Reporting.url tags/JCL111-Build505/jcl/Index.txt tags/JCL111-Build505/jcl/JclDebugChanges.txt tags/JCL111-Build505/jcl/Jedi Code Library.url tags/JCL111-Build505/jcl/WhatsNew.txt tags/JCL111-Build505/jcl/examples/ tags/JCL111-Build505/jcl/examples/ApiHookDemoMain.dfm tags/JCL111-Build505/jcl/examples/ApiHookDemoMain.pas tags/JCL111-Build505/jcl/examples/ApiHookExample.dpr tags/JCL111-Build505/jcl/examples/ApiHookExample.res tags/JCL111-Build505/jcl/examples/AppInstDemoMain.dfm tags/JCL111-Build505/jcl/examples/AppInstDemoMain.pas tags/JCL111-Build505/jcl/examples/AppInstExample.dpr tags/JCL111-Build505/jcl/examples/AppInstExample.res tags/JCL111-Build505/jcl/examples/CreateProcAsUserDemoMain.dfm tags/JCL111-Build505/jcl/examples/CreateProcAsUserDemoMain.pas tags/JCL111-Build505/jcl/examples/CreateProcAsUserExample.dpr tags/JCL111-Build505/jcl/examples/CreateProcAsUserExample.res tags/JCL111-Build505/jcl/examples/FramesTrackDemoMain.dfm tags/JCL111-Build505/jcl/examples/FramesTrackDemoMain.pas tags/JCL111-Build505/jcl/examples/FramesTrackExample.dpr tags/JCL111-Build505/jcl/examples/FramesTrackExample.res tags/JCL111-Build505/jcl/examples/JclExamples.bpg tags/JCL111-Build505/jcl/examples/LanManDemoMain.dfm tags/JCL111-Build505/jcl/examples/LanManDemoMain.pas tags/JCL111-Build505/jcl/examples/LanManExample.dpr tags/JCL111-Build505/jcl/examples/LanManExample.res tags/JCL111-Build505/jcl/examples/LocalesDemoMain.dfm tags/JCL111-Build505/jcl/examples/LocalesDemoMain.pas tags/JCL111-Build505/jcl/examples/LocalesExample.dpr tags/JCL111-Build505/jcl/examples/LocalesExample.res tags/JCL111-Build505/jcl/examples/MapiDemoMain.dfm tags/JCL111-Build505/jcl/examples/MapiDemoMain.pas tags/JCL111-Build505/jcl/examples/MapiExample.dpr tags/JCL111-Build505/jcl/examples/MapiExample.res tags/JCL111-Build505/jcl/examples/PeFuncDemoMain.dfm tags/JCL111-Build505/jcl/examples/PeFuncDemoMain.pas tags/JCL111-Build505/jcl/examples/PeFuncExample.dpr tags/JCL111-Build505/jcl/examples/PeFuncExample.res tags/JCL111-Build505/jcl/examples/RTTIDemo.dpr tags/JCL111-Build505/jcl/examples/RTTIDemo.res tags/JCL111-Build505/jcl/examples/RTTIDemoMain.dfm tags/JCL111-Build505/jcl/examples/RTTIDemoMain.pas tags/JCL111-Build505/jcl/examples/ReadMailDemoMain.dfm tags/JCL111-Build505/jcl/examples/ReadMailDemoMain.pas tags/JCL111-Build505/jcl/examples/ReadMailExample.dpr tags/JCL111-Build505/jcl/examples/ReadMailExample.res tags/JCL111-Build505/jcl/examples/RegistryDemoMain.dfm tags/JCL111-Build505/jcl/examples/RegistryDemoMain.pas tags/JCL111-Build505/jcl/examples/RegistryExample.dpr tags/JCL111-Build505/jcl/examples/RegistryExample.res tags/JCL111-Build505/jcl/examples/SingleInstDemoMain.dfm tags/JCL111-Build505/jcl/examples/SingleInstDemoMain.pas tags/JCL111-Build505/jcl/examples/SingleInstExample.dpr tags/JCL111-Build505/jcl/examples/SingleInstExample.res tags/JCL111-Build505/jcl/examples/SourceLocDemoMain.dfm tags/JCL111-Build505/jcl/examples/SourceLocDemoMain.pas tags/JCL111-Build505/jcl/examples/SourceLocExample.dpr tags/JCL111-Build505/jcl/examples/SourceLocExample.res tags/JCL111-Build505/jcl/examples/StackTrackDemoMain.dfm tags/JCL111-Build505/jcl/examples/StackTrackDemoMain.pas tags/JCL111-Build505/jcl/examples/StackTrackExample.dpr tags/JCL111-Build505/jcl/examples/StackTrackExample.res tags/JCL111-Build505/jcl/examples/SysInfoDemoMain.dfm tags/JCL111-Build505/jcl/examples/SysInfoDemoMain.pas tags/JCL111-Build505/jcl/examples/SysInfoExample.dpr tags/JCL111-Build505/jcl/examples/SysInfoExample.res tags/JCL111-Build505/jcl/examples/Tools/ tags/JCL111-Build505/jcl/examples/Tools/Common/ tags/JCL111-Build505/jcl/examples/Tools/Common/About.dfm tags/JCL111-Build505/jcl/examples/Tools/Common/About.pas tags/JCL111-Build505/jcl/examples/Tools/Common/ExceptionDlg.dfm tags/JCL111-Build505/jcl/examples/Tools/Common/ExceptionDlg.pas tags/JCL111-Build505/jcl/examples/Tools/Common/FindDlg.dfm tags/JCL111-Build505/jcl/examples/Tools/Common/FindDlg.pas tags/JCL111-Build505/jcl/examples/Tools/Common/ToolsUtils.pas tags/JCL111-Build505/jcl/examples/Tools/DelphiToolsGroup.bpg tags/JCL111-Build505/jcl/examples/Tools/DependencyViewer/ tags/JCL111-Build505/jcl/examples/Tools/DependencyViewer/DependView.dpr tags/JCL111-Build505/jcl/examples/Tools/DependencyViewer/DependView.res tags/JCL111-Build505/jcl/examples/Tools/DependencyViewer/DependViewMain.dfm tags/JCL111-Build505/jcl/examples/Tools/DependencyViewer/DependViewMain.pas tags/JCL111-Build505/jcl/examples/Tools/DependencyViewer/FileViewer.dfm tags/JCL111-Build505/jcl/examples/Tools/DependencyViewer/FileViewer.pas tags/JCL111-Build505/jcl/examples/Tools/PeViewer/ tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeDump.dfm tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeDump.pas tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeGenDef.dfm tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeGenDef.pas tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeResView.dfm tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeResView.pas tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeResource.pas tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeSearch.dfm tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeSearch.pas tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeViewer.dpr tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeViewer.res tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeViewer.tlb tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeViewerControl.pas tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeViewerMain.dfm tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeViewerMain.pas tags/JCL111-Build505/jcl/examples/Tools/PeViewer/PeViewer_TLB.pas tags/JCL111-Build505/jcl/examples/Tools/Readme.txt tags/JCL111-Build505/jcl/examples/Tools/ResFix/ tags/JCL111-Build505/jcl/examples/Tools/ResFix/ResFix.dpr tags/JCL111-Build505/jcl/examples/Tools/ResFix/ResFix.res tags/JCL111-Build505/jcl/examples/Tools/ResFix/ResFixMain.dfm tags/JCL111-Build505/jcl/examples/Tools/ResFix/ResFixMain.pas tags/JCL111-Build505/jcl/examples/Tools/ScreenJPG/ tags/JCL111-Build505/jcl/examples/Tools/ScreenJPG/Main.dfm tags/JCL111-Build505/jcl/examples/Tools/ScreenJPG/Main.pas tags/JCL111-Build505/jcl/examples/Tools/ScreenJPG/ScreenJPG.dpr tags/JCL111-Build505/jcl/examples/Tools/ScreenJPG/ScreenJPG.res tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/ tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/ChangePriority.dfm tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/ChangePriority.pas tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/Global.dfm tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/Global.dti tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/Global.pas tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/HeapDump.dfm tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/HeapDump.pas tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/Main.dfm tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/Main.pas tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/MemoryDump.dfm tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/MemoryDump.pas tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/ModulesDump.dfm tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/ModulesDump.pas tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/ToolHelpViewer.dpr tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/ToolHelpViewer.res tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/ViewTemplate.dfm tags/JCL111-Build505/jcl/examples/Tools/ToolHelpView/ViewTemplate.pas tags/JCL111-Build505/jcl/examples/UnmangleNameDemoMain.dfm tags/JCL111-Build505/jcl/examples/UnmangleNameDemoMain.pas tags/JCL111-Build505/jcl/examples/UnmangleNameExample.dpr tags/JCL111-Build505/jcl/examples/UnmangleNameExample.res tags/JCL111-Build505/jcl/examples/VerInfoDemoMain.dfm tags/JCL111-Build505/jcl/examples/VerInfoDemoMain.pas tags/JCL111-Build505/jcl/examples/VerInfoExample.dpr tags/JCL111-Build505/jcl/examples/VerInfoExample.res tags/JCL111-Build505/jcl/examples/debugextension/ tags/JCL111-Build505/jcl/examples/debugextension/JclDebugIde.dpk tags/JCL111-Build505/jcl/examples/debugextension/JclDebugIde.res tags/JCL111-Build505/jcl/examples/debugextension/JclDebugIde40.dpk tags/JCL111-Build505/jcl/examples/debugextension/JclDebugIde40.res tags/JCL111-Build505/jcl/examples/debugextension/JclDebugIde50.dpk tags/JCL111-Build505/jcl/examples/debugextension/JclDebugIde50.res tags/JCL111-Build505/jcl/examples/debugextension/JclDebugIdeIcon.res tags/JCL111-Build505/jcl/examples/debugextension/JclDebugIdeImpl.pas tags/JCL111-Build505/jcl/examples/debugextension/JclDebugIdeReg.pas tags/JCL111-Build505/jcl/examples/debugextension/JclDebugIdeResult.dfm tags/JCL111-Build505/jcl/examples/debugextension/JclDebugIdeResult.pas tags/JCL111-Build505/jcl/examples/debugextension/JclDebugThread.pas tags/JCL111-Build505/jcl/examples/debugextension/JclDsgnD4.pas tags/JCL111-Build505/jcl/examples/debugextension/ThreadExpertSharedNames.pas tags/JCL111-Build505/jcl/examples/debugextension/ThreadExpertUnit.pas tags/JCL111-Build505/jcl/examples/debugextension/ThreadNameExpert.dpk tags/JCL111-Build505/jcl/examples/debugextension/ThreadNameExpert.res tags/JCL111-Build505/jcl/examples/debugextension/ThreadNameExpert40.dpk tags/JCL111-Build505/jcl/examples/debugextension/ThreadNameExpert40.res tags/JCL111-Build505/jcl/examples/debugextension/ThreadNameExpert50.dpk tags/JCL111-Build505/jcl/examples/debugextension/ThreadNameExpert50.res tags/JCL111-Build505/jcl/examples/debugextension/dialog/ tags/JCL111-Build505/jcl/examples/debugextension/dialog/EXCEPTDLG.dfm tags/JCL111-Build505/jcl/examples/debugextension/dialog/EXCEPTDLG.pas tags/JCL111-Build505/jcl/examples/debugextension/dialog/ExceptDlg.ico tags/JCL111-Build505/jcl/examples/debugextension/tools/ tags/JCL111-Build505/jcl/examples/debugextension/tools/MakeJclDbg.dpr tags/JCL111-Build505/jcl/examples/debugextension/tools/MapToJdbg.dpr tags/JCL111-Build505/jcl/examples/debugextension/tools/MapToJdbg.res tags/JCL111-Build505/jcl/examples/debugextension/tools/MapToJdbgMain.dfm tags/JCL111-Build505/jcl/examples/debugextension/tools/MapToJdbgMain.pas tags/JCL111-Build505/jcl/examples/debugextension/tools/TlbToMap.dpr tags/JCL111-Build505/jcl/examples/debugextension/tools/TlbToMap.res tags/JCL111-Build505/jcl/examples/debugextension/tools/TlbToMapMain.dfm tags/JCL111-Build505/jcl/examples/debugextension/tools/TlbToMapMain.pas tags/JCL111-Build505/jcl/examples/debugextension/tools/makejcldbg.res tags/JCL111-Build505/jcl/examples/projectanalyzer/ tags/JCL111-Build505/jcl/examples/projectanalyzer/ProjAnalyzerFrm.dfm tags/JCL111-Build505/jcl/examples/projectanalyzer/ProjAnalyzerFrm.pas tags/JCL111-Build505/jcl/examples/projectanalyzer/ProjAnalyzerIcon.res tags/JCL111-Build505/jcl/examples/projectanalyzer/ProjAnalyzerImpl.pas tags/JCL111-Build505/jcl/examples/projectanalyzer/ProjectAnalyzer.dpk tags/JCL111-Build505/jcl/examples/projectanalyzer/ProjectAnalyzer.res tags/JCL111-Build505/jcl/examples/projectanalyzer/ProjectAnalyzer40.dpk tags/JCL111-Build505/jcl/examples/projectanalyzer/ProjectAnalyzer40.res tags/JCL111-Build505/jcl/examples/projectanalyzer/ProjectAnalyzer50.dpk tags/JCL111-Build505/jcl/examples/projectanalyzer/ProjectAnalyzer50.res tags/JCL111-Build505/jcl/help/ tags/JCL111-Build505/jcl/help/ExprEval.chm tags/JCL111-Build505/jcl/help/Hit/ tags/JCL111-Build505/jcl/help/Hit/Help Extenstion/ tags/JCL111-Build505/jcl/help/Hit/Help Extenstion/Package/ tags/JCL111-Build505/jcl/help/Hit/Help Extenstion/Package/JHIT.dpk tags/JCL111-Build505/jcl/help/Hit/Help Extenstion/Source/ tags/JCL111-Build505/jcl/help/Hit/Help Extenstion/Source/HelpViewer.pas tags/JCL111-Build505/jcl/help/Hit/Help Extenstion/Source/HtmlHlp.inc tags/JCL111-Build505/jcl/help/Hit/Help Extenstion/Source/HtmlHlp.pas tags/JCL111-Build505/jcl/help/Hit/Tool/ tags/JCL111-Build505/jcl/help/Hit/Tool/Source/ tags/JCL111-Build505/jcl/help/Hit/Tool/Source/HelpTool.dpr tags/JCL111-Build505/jcl/help/Hit/Tool/Source/UnHelpTool.dfm tags/JCL111-Build505/jcl/help/Hit/Tool/Source/UnHelpTool.pas tags/JCL111-Build505/jcl/help/Hit/Tool/Source/fexit.bmp tags/JCL111-Build505/jcl/help/Hit/Tool/Source/filenew.bmp tags/JCL111-Build505/jcl/help/Hit/license.txt tags/JCL111-Build505/jcl/help/Hit/readme.txt tags/JCL111-Build505/jcl/help/jcl-help.chm tags/JCL111-Build505/jcl/license.txt tags/JCL111-Build505/jcl/packages/ tags/JCL111-Build505/jcl/packages/DJCL.dof tags/JCL111-Build505/jcl/packages/DJCL.dpk tags/JCL111-Build505/jcl/packages/DJCL.res tags/JCL111-Build505/jcl/packages/DJCL40.dof tags/JCL111-Build505/jcl/packages/DJCL40.dpk tags/JCL111-Build505/jcl/packages/DJCL40.res tags/JCL111-Build505/jcl/packages/DJCL50.dof tags/JCL111-Build505/jcl/packages/DJCL50.dpk tags/JCL111-Build505/jcl/packages/DJCL50.res tags/JCL111-Build505/jcl/readme.txt tags/JCL111-Build505/jcl/source/ tags/JCL111-Build505/jcl/source/JCL.INC tags/JCL111-Build505/jcl/source/JEDI.INC tags/JCL111-Build505/jcl/source/Jcl8087.pas tags/JCL111-Build505/jcl/source/JclAppInst.pas tags/JCL111-Build505/jcl/source/JclBase.pas tags/JCL111-Build505/jcl/source/JclCOM.pas tags/JCL111-Build505/jcl/source/JclComplex.pas tags/JCL111-Build505/jcl/source/JclCounter.pas tags/JCL111-Build505/jcl/source/JclDateTime.pas tags/JCL111-Build505/jcl/source/JclDebug.pas tags/JCL111-Build505/jcl/source/JclExprEval.pas tags/JCL111-Build505/jcl/source/JclFileUtils.pas tags/JCL111-Build505/jcl/source/JclGraphUtils.pas tags/JCL111-Build505/jcl/source/JclGraphics.pas tags/JCL111-Build505/jcl/source/JclHookExcept.pas tags/JCL111-Build505/jcl/source/JclIniFiles.pas tags/JCL111-Build505/jcl/source/JclLANMan.pas tags/JCL111-Build505/jcl/source/JclLocales.pas tags/JCL111-Build505/jcl/source/JclLogic.pas tags/JCL111-Build505/jcl/source/JclMapi.pas tags/JCL111-Build505/jcl/source/JclMath.pas tags/JCL111-Build505/jcl/source/JclMime.pas tags/JCL111-Build505/jcl/source/JclMiscel.pas tags/JCL111-Build505/jcl/source/JclMultimedia.pas tags/JCL111-Build505/jcl/source/JclNTFS.pas tags/JCL111-Build505/jcl/source/JclPeImage.pas tags/JCL111-Build505/jcl/source/JclPrint.pas tags/JCL111-Build505/jcl/source/JclRTTI.pas tags/JCL111-Build505/jcl/source/JclRegistry.pas tags/JCL111-Build505/jcl/source/JclResources.pas tags/JCL111-Build505/jcl/source/JclSecurity.pas tags/JCL111-Build505/jcl/source/JclShell.pas tags/JCL111-Build505/jcl/source/JclStatistics.pas tags/JCL111-Build505/jcl/source/JclStrHashMap.pas tags/JCL111-Build505/jcl/source/JclStrings.pas tags/JCL111-Build505/jcl/source/JclSynch.pas tags/JCL111-Build505/jcl/source/JclSysInfo.pas tags/JCL111-Build505/jcl/source/JclSysUtils.pas tags/JCL111-Build505/jcl/source/JclUnicode.pas tags/JCL111-Build505/jcl/source/JclUnicode.rc tags/JCL111-Build505/jcl/source/JclUnicode.res tags/JCL111-Build505/jcl/source/JclUnitConv.pas tags/JCL111-Build505/jcl/source/JclWin32.pas tags/JCL111-Build505/jcl/source/LM.pas Added: tags/JCL111-Build505/jcl/Bug Reporting.url =================================================================== --- tags/JCL111-Build505/jcl/Bug Reporting.url (rev 0) +++ tags/JCL111-Build505/jcl/Bug Reporting.url 2006-08-18 14:45:19 UTC (rev 1740) @@ -0,0 +1,3 @@ +[InternetShortcut] +URL=http://delphi-jedi.org/pgbugreport +Modified=E0C85AFA36EFC001E2 Added: tags/JCL111-Build505/jcl/Index.txt =================================================================== --- tags/JCL111-Build505/jcl/Index.txt (rev 0) +++ tags/JCL111-Build505/jcl/Index.txt 2006-08-18 14:45:19 UTC (rev 1740) @@ -0,0 +1,1263 @@ +8087.txt + + All8087Exceptions A set containing all FPU exception flags. + ClearPending8087Exceptions Clears all pending FPU exceptions. + Get8087ControlWord Returns the 80x87 control word. + Get8087Infinity Returns the infinity setting of the FPU. + Get8087Precision Returns the precision setting of the FPU. + Get8087Rounding Returns the rounding setting of the FPU. + Get8087StatusWord Returns the 80x87 status word. + GetMasked8087Exceptions Returns the set of masked FPU exceptions. + GetPending8087Exceptions Returns a set of pending FPU exception flags. + Mask8087Exceptions Masks additional exceptions. + Set8087ControlWord Sets the 80x87 control word + Set8087Infinity Sets the infinity control of the FPU. + Set8087Precision Sets the precision control of the FPU. + Set8087Rounding Sets the rounding control of the FPU. + SetMasked8087Exceptions Sets the FPU exception mask. + T8087Exceptions Enumeration which describes the set of available FPU exception masks. Note that you can use the All8087Exceptions constant whenever you need a set which includes all exception flags. + T8087Infinity Enumeration used for retrieving and setting the FPU precision control. + T8087Precision Used for retrieving and setting the FPU precision control. + T8087Rounding Enumeration used for retrieving and setting the FPU rounding control. + Unmask8087Exceptions Unmasks the specified exceptions. + +AppInst.txt + + AI_INSTANCECREATED WParam field for instance creation notifications + AI_INSTANCEDESTROYED WParam field for instance destruction notifications + AI_USERMSG WParam field for user-defined notification messages. + TJclAppInstances TJclAppInstances allows you to control the number of application instances the user can run. + +Base.txt + + CardinalsToI64 Packs the supplied 32 bit values in an Int64 + DynArrayAllocSize Returns the allocation size for a dynamic array + DynArrayElemSize Returns the size of an element in the array. + DynArrayFinalize Releases the memory reserved for the dynamic array. + DynArrayHigh Upper bound for dynamic array of some type. + DynArrayInitialize Initializes a dynamic array for use. + DynArrayLength Returns the length of a dynamic array + DynArraySetLength Sets the length of the dynamic array. + EJclError Base exception class for all JCL exceptions. + EJclWin32Error Base class for exceptions raised in response to Win32 errors. + Float Generic floating point type. + I64Assign Initializes an Int64 to the supplied values. + I64Compare Compares two 64 bit integers. + I64Copy Copies an Int64 + I64ToCardinals Extracts the high and low 32 bit values from an Int64. + Int64 Int64 is used to simulate an unsigned 64-bit value in compilers which do not natively support this type. All supported compilers except Delphi3 and C++ Builder 3 natively support Int64 in which case Int64 is not redefined. Various support routines have been defined to assist manipulating an Int64. + JclVersion Constants describing the JCL version. + LongWord Alias for Cardinal. + TDynArray A dynamic array of some type. + TObjectList TList descendent to maintain a list of TObject descendents. + TSysCharSet A set of characters. + +Com.txt + + GetDCOMVersion Returns the version of DCOM installed. + GetMDACVersion Returns the version of MDAC (Microsoft Data Access) installed. + IsDCOMEnabled Returns whether DCOM is enabled. + IsDCOMInstalled Returns whether DCOM is installed. + +Complex.txt + + TComplexKind Enumeration specifies the way of representing a complex number using either rectangular representation or polar coordinates. + +Counter.txt + + StartCount Starts a high performance resolution counter. + StopCount Stops a high performance resolution counter. + TJclCounter Implements a high performance counter. + +DateTime.txt + + CenturyBaseYear Gives the year "00" of the century specified by DateTime. + CenturyOfDate Extracts the century from a DateTime. + CreationDateTimeOfFile Extracts the creation date of the file specified by SR. + DateTimeToDosDateTime Converts a TDateTime to a TDosDateTime. + DateTimeToFileTime Converts a TDateTime to a TFileTime. + DateTimeToLocalDateTime Converts a UNC based TDateTime to a local TDateTime + DateTimeToSystemTime Converts a TDateTime to a TSystemTime. + DayOfDate Extracts the day from a DateTime. + DayOfTheYear Returns the day of the year (1... 366) and optionally the year. + DayOfTheYearToDateTime Encodes the DateTime denoted by a year and the number of a day in that year. + DaysInMonth Returns the number of days in the month represent by a DateTime. + DecodeDate Works like DecodeDate in SysUtils, but can do negative years and years > 9999. + DosDateTimeToDateTime Converts a TDosDateTime to a TDateTime. + DosDateTimeToFileTime Converts a TDosDateTime to a TFileTime. + DosDateTimeToStr Converts a DOS DateTime to a string. + DosDateTimeToSystemTime Converts a TDoaDateTime to a TSystemTime. + EasterSunday Returns the date of Easter Sunday for a given year. + EncodeDate Works like EncodeDate in SysUtils, but can do negative years and years > 9999. + FATDatesEqual Test if the dates are equal within the granularity of the FAT file system (2 seconds) + FileTimeToDateTime Converts a TFileTime to a TDateTime. + FileTimeToDosDateTime Converts a UTC based TFileTime to a TDateTime. + FileTimeToLocalDateTime Converts a UTC based TFileTime to a local TDateTime. + FileTimeToStr Converts a TFileTime to a string. + FileTimeToSystemTime Converts a UTC based TFileTime to a TSystemTime. + FormatDateTime Enhences FormatDateTime by the additional Format tokens w, i, e and f. + HourOfTime Extracts the hour from a DateTime. + HoursToMSecs Converts hours to milliseconds. + IsLeapYear Tests whether DateTime represents a leap year. + ISOWeekNumber Returns the week number of a given date. Optionally the reference-year for this week and the weekday can be requested + ISOWeekToDateTime Returns the date denoted by year, week and weekday. + LastAccessDateTimeOfFile Extracts the last access date of the file specified by SR. + LastWriteDateTimeOfFile Extracts the last write date of the file specified by SR. + LocalDateTimeToDateTime Converts a local TDateTime to a UNC based TDateTime + LocalDateTimeToFileTime Converts a local TDateTime to a UNC based TFileTime + Make4DigitYear Converts a 2 digit year into a 4 digit year. + MakeYear4Digit Converts a 2 digit year into a 4 digit year. + MinuteOfTime Extracts the minutes from a DateTime. + MinutesToMSecs Converts minutes to milliseconds. + MonthOfDate Extracts the month from a DateTime. + SecondOfTime Extracts the seconds from a DateTime. + SecondsToMSecs Converts seconds to milliseconds. + SystemTimeToDosDateTime Converts a TSystemTime to a TDosDateTime. + SystemTimeToFileTime Converts a TSystemTime to a TFileTime. + SystemTimeToStr Converts a TSystemTime to a string. + TimeOfDateTimeToMSecs Returns the number of milliseconds in a DateTime. + TimeOfDateTimeToSeconds Returns the number of seconds in a DateTime. + YearOfDate Extracts the year from a DateTime. + +Debug.txt + + __FILE__ Returns the name of the file. + __FILE_OF_ADDR__ Returns the filename for an address. + __LINE__ Returns the line number in the source code file at which a routine is executing. + __LINE_OF_ADDR__ Returns the line number given an address. + __MAP__ Returns the file name, unit name, procedure name and line number at which a routine is executing. + __MAP_OF_ADDR__ Returns the file name, unit name, procedure name and line number given an address. + __MODULE__ Returns the name of the unit in which a routine resides. + __MODULE_OF_ADDR__ Returns the module name for an address. + __PROC__ Returns the name of the routine at a specified level. + __PROC_OF_ADDR__ Returns the procedure name for an address. + AssertKindOf Asserts that an object is of a specified class. + Caller Returns the address of a calling routine. + ClearLocationData Clears the list of debug information items. + ConvertMapFileToJdbgFile Converts a text based MAP file to a Jcl binary debug file. + DebugInfoAvailable Determines if debug info for a module is available. + EnableCrashOnCtrlScroll Enables manually crashing Windows. + ExceptionFrameTrackingEnable Except frame tracking enabled for hooked exceptions. + ExceptNotifyMethod Exception notify method place holder. + ExceptNotifyProc Exception notify routine place holder. + ExtractClassName Extracts the class name from a procedure name. + ExtractMethodName Extracts the method name from a procedure name. + FileByLevel Returns the name of the file. + FileOfAddr Returns the filename for an address. + GetLocationInfo Returns location info given an address. + GetLocationInfoStr Returns location info in a formatted string, given an address. + InsertDebugDataIntoExecutableFile Insert binary debug data into an executable. + IsDebuggerAttached Determines whether the calling process is running under the context of a debugger. + IsHandleValid Tests whether a handle is valid. + IsSystemModule Determines if a module belongs to the current application + JclCreateExceptFrameList Creates an exception frame list. + JclCreateStackList Creates a stack list. + JclDbgDataResName Resource name for binary debug data + JclDbgDataSignature Signature of Jcl Binary Debug Data + JclDbgFileExtension File extension for a Jcl Binary Debug File + JclExceptionsHooked Determines if exceptions are hooked. + JclHookExceptions Enables exception hooking. + JclLastExceptFrameList Retreives the last generated except frame list. + JclLastExceptStackList Retreives the last generated stack info list. + JclUnhookExceptions Disables exception hooking. + JmpInstruction Disected jump instruction + LineByLevel Returns the line number in the source code file at which a routine is executing. + LineOfAddr Returns the line number given an address. + MapByLevel Returns the file name, unit name, procedure name and line number at which a routine is executing. + MapOfAddr Returns the file name, unit name, procedure name and line number given an address. + ModuleByLevel Returns the name of the unit in which a routine resides. + ModuleFromAddr Returns the module handle for an address. + ModuleOfAddr Returns the module name for an address. + PExcDesc Except frame descriptor + PExcFrame Except frame + PJclMapString A map-file string + ProcByLevel Returns the name of the routine at a specified level. + ProcOfAddr Returns the procedure name for an address. + PStackFrame Stack frame information + RawStackTracking Raw tack tracking enabled for hooked exceptions. + StackTrackingEnable Stack tracking enabled for hooked exceptions. + TExcDescEntry Except on... handler item + TExceptFrameKind Exception frame kind. + TJclAbstractMapParser Abstract Map parser + TJclBinDebugGenerator Generates a binary version of a map file. + TJclBinDebugScanner Scans a binary version of a map file. + TJclDebugInfoBinary Debug info location item for Jcl binary debug data. + TJclDebugInfoExports Debug info location item for Borland export header. + TJclDebugInfoList Holds a list of debug info items + TJclDebugInfoMap Debug info location item for text-base map files. + TJclDebugInfoSource Debug info location item. + TJclExceptFrame Except frame item. + TJclExceptFrameList List of except frame item. + TJclExceptNotifyMethod Exception notify method type. + TJclExceptNotifyProc Exception notify procedure type. + TJclLocationInfo Location info structure + TJclMapAddress Holds location information. + TJclMapParser Generic map file parser + TJclMapScanner Generic map file parser + TJclStackBaseList Base stack information list + TJclStackInfoItem Stack information item + TJclStackInfoList Stack information list + Trace Sends a message to the debugger. + TraceFmt Sends a formatted message to the debugger. + TraceLoc Sends a message to the debugger including location information. + TraceLocFmt Sends a formatted message to the debugger prepending it with location information. + TrackAllModules Track all modules or Borland modules only. + TStackInfo Stack information + +FileUtils.txt + + AdvBuildFileList AdvBuildFileList works like BuildFileList if called with only three parameters, but it accepts two optional parameters for extended functionality. + BuildFileList Builds a list of files and folders in a directory. + CloseVolume Closes a handle for a previously opened volume. + CreateEmptyFile Creates a new file with a zero length. + DelTree Recursively deletes a folder. + DelTreeEx Recursively deletes a folder. + DirectoryExists Determines whether a directory exists. + DiskInDrive Tests whether there is a disk in the specified drive. + DriveLetters Set of valid characters to use as drive letters. + FileCreateTemp Creates a temporary file. + FileExists Tests whether a file exists. + FileGetDisplayName Returns the display name of a path. + FileGetSize Returns the size of the specified file. + FileGetTempName Returns the name for a temporary file. + FileGetTypeName Returns a string that describes the file's type. + FindUnusedFileName Returns a unique filename composed of the specified parts and a unique number. + ForceDirectories Creates all the directories along a directory path if they do not already exist. + GetDirectorySize Returns the size of a directory. + GetDriveTypeStr Returns the type of drive. + GetFileAgeCoherence Tests the file age coherence of a file. + GetFileAttributeList Converts attributes flag to a stringlist. + GetFileAttributeListEx Converts attributes flag to a stringlist. + GetFileCreation Returns the date/time that the file was created. + GetFileInformation Returns information about a file. + GetFileLastAccess Returns the date/time that the file was last accessed. + GetFileLastWrite Returns the date/time that the file was last written to. + GetModulePath Returns the filename of a module. + GetSizeOfFile Returns the size of a file. + GetStandardFileInfo Returns information about a file. + IsDirectory Tests if the file is a directory. + LockVolume Locks the specified volume. + OpenVolume Opens a handle to the specified volume. + OSIdentToString Maps an OS identifier as to a string. + PathAddExtension Adds the extension to a path. + PathAddSeparator Forces the string to end with a directory separator. + PathAppend Concatenates two paths. + PathBuildRoot Creates a root path for the given drive number. + PathCommonPrefix Compares two paths for a common prefix. + PathCompactPath Compacts a path to fit within the given pixel width. + PathDevicePrefix Prefix used to specify a physical device under Windows. + PathExtractElements Extracts all elements from a path. + PathExtractFileDirFixed Extracts drive and directory parts from a filename. + PathExtractFileNameNoExt Extracts the filename without the extension. + PathGetLongName Returns the long name of a path. + PathGetShortName Returns the short name of a path. + PathIsAbsolute Tests if a path is an absolute path. + PathIsChild Checks whether Path is a child of Base. + PathIsDiskDevice Tests whether a path denotes a disk device. + PathIsUNC Tests whether a path is a UNC path. + PathRemoveExtension Removes the extension from a path. + PathRemoveSeparator Removes a trailing directory separator from a path. + PathSeparator Character used as path element separator. + PathUncPrefix Prefix for UNC path names. + SetDirCreation Sets the directory's last-write time stamp. + SetDirLastAccess Sets the directory's last-write time stamp. + SetDirLastWrite Sets the directory's last-write time stamp. + SetFileCreation Sets the file's creation time stamp. + SetFileLastAccess Sets the file's last-access time stamp. + SetFileLastWrite Sets the file's last-write time stamp. + ShredFile Shreds the contents of the file and then deletes it. + TDelTreeProgress Progress callback routine for the DelTreeEx function. + TFileFlags + TJclCustomFileMapping Wrapper for Win32 filemapping object. + TJclFileMapping Implements a filemapping object backed by an actual disk file. + TJclFileMappingView Implements a file mapping view object. + TJclFileVersionInfo Enables reading of version information from executables. + TJclSwapFileMapping Implements a filemapping object backed by the swap file. + TJclTempFileStream Implements a temporary file-stream. + UnLockVolume Unlocks the specified volume. + VersionResourceAvailable Tests if a file has a version resource. + +Graphics.txt + + BitmapToIcon Converts a bitmap to an icon. + BitmapToJPeg Converts a bitmap to a JPEG. + BrightColor Brightens a color by a percentage. + BrightColorChannel Brightens one channel of a color by a percentage. + CIED65ToCIED50 Converts values of the XYZ color space using the D65 white point to D50 white point. + CIELAB2BGR Conversion of the CIE L*a*b color space to RGB using a two step approach assuming a D65 white point, first a conversion to CIE XYZ is performed and then from there to RGB. + CMYK2BGR Converts a stream of Count CMYK values to BGR. + DarkColor Darkens a color by a percentage. + DarkColorChannel Darkens one channel of a color by a percentage. + DrawBitmap Draws a bitmap to a device context. + ExtractIconCount Returns the number of icons in a file. + GetAntialiasedBitmap Antialiases a bitmap. + GetColorBlue Extracts the Blue component from a TColor. + GetColorFlag Extracts the Flag component from a TColor. + GetColorGreen Extracts the Green component from a TColor. + GetColorRed Extracts the Red component from a TColor. + GetRGBValue Returns the Red, Green and Blue components of a TColor. + Gray16 Converts each color component from a 16 bits per sample to 8 bit used in Windows DIBs. + IconToBitmap Converts an icon to a bitmap. + JPegToBitmap Converts a JPEG to a bitmap. + NullPoint Returns a null point. + NullRect Returns a null rectangle. + OpenGLColor2WinColor Converts OpenGLColor to TColor. + PointAssign Initializes a TPoint with the supplied values. + PointCopy Copies a TPoint. + PointEqual Tests two points for equality. + PointIsNull Tests a point against the null point. + PointMove Moves a point. + RectAssign Initializes a rectangle by the individual coordinates. + RectAssignPoints Initializes a rectangle by TPoints. + RectBounds Initializes a rectangle by bounds. + RectCenter Returns the center-point of the rectangle. + RectCopy Copies a rectangle. + RectEqual Tests two rectangles for equality. + RectGrow Expands a rectangle by the specified amount. + RectGrowX Expands the horizontal dimension of a rectangle by the specified amount. + RectGrowY Expands the vertical dimension of a rectangle by the specified amount. + RectHeight Returns the height of a rectangle. + RectIncludesPoint Tests if a point lies within a rectangle. + RectIncludesRect Tests if one rectangle is completely embedded inside another rectangle. + RectIntersection Calculates the intersection of two rectangles. + RectIntersectRect Tests if two rectangles intersect. + RectIsEmpty Tests if the rectangle is empty. + RectIsNull Tests if a rectangle is a null rectangle. + RectIsSquare Tests if the rectangle is square. + RectIsValid Tests if R is a valid rectangle. + RectMove Moves the specified rectangle by the specified offsets. + RectMoveTo Moves the rectangle to the specified coordinates. + RectNormalize Normalizes a rectangle. + RectsAreValid Tests if all the rectangles in the array are valid. + RectUnion Calculates the union of two rectangles. + RectWidth Returns the width of a rectangle. + RGB2BGR Reorders a stream of "Count" RGB values to BGR, additionally an eventual sample size adjustment is done. + RGBA2BGRA Reorders a stream of "Count" RGBA values to BGRA, additionally an eventual sample size adjustment is done. + SetColorBlue Sets the Blue component of a TColor. + SetColorFlag Sets the Flag component of a TColor. + SetColorGreen Sets the Green component of a TColor. + SetColorRed Sets the Red component of a TColor. + SetRGBValue Returns a TColor initialized with the supplied values. + Stretch Scales a bitmap to another bitmap. + TColor32 TColor32 represents an ARGB color quad. + TColor32Array TColor32 Arrays. + TJclDesktopCanvas Access the desktop canvas. + TPalette32 TPalette32 types are mostly used to simulate palette-based operations. + TResamplingFilter Filters for stretch function. + WinColor2OpenGLColor Converts TColor to OpenGLColor. + +IniFiles.txt + + IniReadBool Reads a boolean key from an ini file. + IniReadInteger Reads an integer key from an ini file. + IniReadString Reads a string key from an ini file. + IniWriteBool Writes a boolean key to an ini file. + IniWriteInteger Writes an integer key to an ini file. + IniWriteString Writes a string key to an ini file. + +Locales.txt + + Create Creates an instance of TJclLocaleInfo for a specific locale. + TJclAvailableKeybLayout Describes an available keyboard layout. + TJclKeybLayoutFlags Set of flags which describe how to load, unload or activate an input locale identifier.[Description] + TJclKeyboardLayout Wrapper for a loaded input locale identifier. + TJclKeyboardLayoutList Maintains a list of input locale identifiers. + TJclLocaleInfo TJclLocaleInfo represents an installed or supported locale. + TJclLocalesKind TJclLocalesKind is used by the TJclLocalesList class to specify whether the list contains elements for all supported or all installed locales and codepages. + TJclLocalesList Maintains information about supported locales and codepages. + +Logic.txt + + BitsHighest Returns the highest bit set in the supplied value. + BitsLowest Returns the lowest bit set in the supplied value. + BitsNeeded Returns the number of Bits needed to represent a given positive integer. + BitsToBooleans Unpacks a set of bits into an array of booleans. + BooleansToBits Packs an array of booleans into a set of bits. + ClearBit Clears a bit in an integer-type value. + CountBitsCleared Returns the number of cleared bits in the supplied value. + CountBitsSet Returns the number of set bits in the passed value. + DecLimit Decrements an ordinal up to limit. + DecLimitClamp Decrements an ordinal up to limit. + Digits Returns the number of digits in a given positive integer. + IncLimit Increments an ordinal up to limit. + IncLimitClamp Increments an ordinal up to limit. + LRot Left rotates bits. + LRot Left rotates bits. + Max Returns the larger of two values. + Min Returns the smaller of two values. + OrdToBinary Returns the supplied value in its binary form. + ReverseBits Reverses the bits of Value. + ReverseBytes Reverses the bytes of Value. + RRot Right rotates bits. + Sar Performs an arithmetic right shift. + SetBit Sets a bit in an integer-type value. + SwapOrd Swaps two integer-typed variables. + TestBit Tests a bit in an integer-type value. + TestBits Test multiple bits. + ToggleBit Toggles a bit in an integer-type value. + +Mapi.txt + + EJclMapiError Exception class for MAPI-errors + JclSimpleBringUpSendMailDialog Brings up the send mail dialog + JclSimpleSendMail Sends an email to a recipient. + MapiCheck Checks the MAPI result code + MapiErrorMessage Retrieves the MAPI error message for a given MAPI result code. + TJclEmail E-mail class + TJclEmailFindOptions MAPI search options + TJclEmailLogonOptions Logon options + TJclEmailReadMsg Message information record + TJclEmailReadOptions Read options + TJclEmailRecip E-mail recipient object + TJclEmailRecipKind E-mail recipient type + TJclEmailRecips E-mail recipients list object + TJclMapiClient MAPI-Client record + TJclMapiClientConnect MAPI-Client type + TJclSimpleMapi Simple MAPI class. + +Math.txt + + ArcCos Calculates the inverse cosine of X. + ArcCosH Calculates the inverse hyperbolic cosine. + ArcCot Calculates the inverse of cotangent. + ArcCotH Calculates the inverse hyperbolic cotangent. + ArcCsc Calculates the inverse cosecant. + ArcCscH Calculates the inverse hyperbolic cosecant. + ArcSec Calculates the inverse Sec. + ArcSecH Calculates the inverse hyperbolic secant. + ArcSin Calculates the inverse sine. + ArcSinH Calculates the inverse hyperbolic sine. + ArcTan Calculates the inverse tangent + Arctan2 Calculates the inverse tangent of Y / X + ArcTanH Returns the inverse hyperbolic tangent of X + Ceiling Return the nearest integer value above X. + CheckCrc32 Checks and, if possible, corrects the data. + Cos Calculates the cosine of X + CosH Returns the hyperbolic cosine of X. + Cot Returns the cotangent of the argument. + CotH Returns the hyperbolic cotangent of X. + Crc32 Calculates or checks a CRC. + Csc Returns the reciprocal of the sine of X. + CscH Hyperbolic Cosecant (csc). + CycleToGrad Converts cycles to grads. + DegMinSecToFloat Converts degrees, minutes, seconds to a float. + DegToGrad Converts degrees to grads. + Factorial Returns the factorial of the argument. + FloatingPointClass Classifies the supplied floating point value. + FloatIsZero Tests if a float is zero. + FloatsEqual Compares two floats for equality. + FloatToDegMinSec Converts a float to degrees, minutes and seconds. + Floor Return the nearest integer value below X. + GCD Returns the greatest common divisor. + GradToCycle Converts grads to cycles. + GradToDeg Converts grads to degrees. + IsInfinite Determines whether <I>Value</I> is infinite. + IsNaN Determines whether <I>Value</I> is a NaN. + ISqrt Returns the integral part of the square root. + LCM Returns the Least Common Multiple of two integers. + LogBase10 Returns log base 10. + LogBase2 Returns log base 2. + LogBaseN Returns log base N. + MaxFloat Returns the larger of the two arguments. + MinFloat Returns the smaller of the arguments + ModFloat Returns the modulus of two floating point numbers. + NormalizeAngle Normalizes the given angle + Power Returns Base to the power Exponent. + PowerInt Returns X to the power N. + Pythagoras Computes Sqrt(X^2 + Y^2) + RelativePrime Tests if two numbers are relatively prime. + RemainderFloat Returns the remainder of two floating point numbers. + Sec Returns the reciprocal of the cosine of the argument. + SecH Returns the hyperbolic secant of the argument. + Sgn Returns the sign of the argument. + Signe Returns the value of X with the same sign as Y. + Sin Returns the sine of the argument. + SinCos Calculates the sine and cosine of the argument. + SinH Returns the hyperbolic sine of the argument. + SwapFloats Swaps two floating point values. + Tan Returns the tangent of the argument. + TanH Returns the hyperbolic tangent of the argument. + TenToY Raises 10 to the power Y. + TFloatingPointClass Describes the hierarchy of floating point classes. + TwoToY Raises 2 to the power Y. + +Mime.txt + + EJclMimeError Base class for exceptions raised in response to MIME encoding/decoding errors. + MimeDecode The primary Mime decoding routine + MimeDecodedSize Calculates the output size for decoding + MimeDecodePartial MIME decode a chunk of data in a multi-phase decoding routine + MimeDecodePartialEnd MIME decode the last chunk of data in a multi-phase decoding routine + MimeDecodeStream Decodes a MIME-encoded stream + MimeDecodeString MIME-Decodes a string + MimeEncode The primary Mime encoding routine + MimeEncodedSize Calculates the output size for encoding + MimeEncodeStream MIME-Encodes a stream + MimeEncodeString MIME-Encodes a string + +Miscel.txt + + CreateProcAsUser Spawns a new process in the context of the specified user account. + CreateProcAsUserEx Spawns a new process in the context of the specified user account. + EJclCreateProcessError Class for exceptions raised due to errors in the <REF Target"..\CreateProcAsUser">CreateProcAsUser</REF> / <REF Target"..\CreateProcAsUserEx">CreateProcAsUserEx</REF> procedure pair. + SetDisplayResolution Changes the resolution of the screen. + +MultiMedia.txt + + GetMciErrorMessage Wrapper for mciGetErrorString API. + OpenCloseCdDrive Opens or closes the CD drive. + TJclMultimediaTimer Wrapper for a Win32 multi-media timer 'object'. + TMmNotificationKind Determines the method of notification when the timer's interval elapses. You can choose between using kernel events or callbacks. + TMmTimerKind Determines the kind of timer, periodic or one-shot. + +NTFS.txt + + NtfsCreateJunctionPoint Creates an NTFS junction point. + NtfsDeleteJunctionPoint Deletes a junction point. + NtfsDeleteReparsePoint Deletes a reparse point. + NtfsFileHasReparsePoint Returns whether a specified file or directory has an associated reparse point. + NtfsFindFirstStream Starts the enumeration of streams in a file. + NtfsFindNextStream Returns the next stream in a file. + NtfsFindStreamClose Terminates the enumeration of streams. + NtfsGetAllocRangeEntry Extracts an entry from the ranges record. + NtfsGetCompression Obtains the compression state of a file. + NtfsGetJunctionPointDestination Returns the destination directory of a junction point. + NtfsGetReparsePoint Returns the reparse point data associated with the specified file or directory. + NtfsGetReparseTag Returns the reparse tag of a file or directory. + NtfsGetSparse Tests whether the file is a sparse file. + NtfsIsFolderMountPoint Returns whether a directory is a mount point. + NtfsMountDeviceAsDrive Mounts a device as a drive. + NtfsMountVolume Mounts a volume to a specified directory. + NtfsQueryAllocRanges Queries the specified sparse file for the ranges that are actually allocated. + NtfsReparsePointsSupported Returns whether a filesystem supports reparse points. + NtfsSetCompression Sets the compression state of a file. + NtfsSetReparsePoint Sets a reparse point for a file or directory. + NtfsSetSparse Sets the sparse file attribute. + NtfsSparseStreamsSupported Test if the volume supports sparse streams. + NtfsZeroDataByHandle Decommits storage for a specified range within a sparse file. + NtfsZeroDataByName Decommits storage for a specified range within a sparse file. + TFindStreamData Record type used by the NtfsFindFirstStream, NtfsFindNextStream and NtfsFindStreamClose functions which contains information about the streams in a NTFS file. + TNtfsAllocRanges TNtfsAllocRanges is initialized by a call to <REF Target"..\NtfsQueryAllocRanges">NtfsQueryAllocRanges</REF>. It holds the data that describes the allocated ranges in the file within the boundaries that the file was queried for. You can use the NtfsGetAllocRangeEntry to extract the individual entries from this record. WARNING: After you're done with this record you are responsible for freeing the memory associated with the Data member, i.e. you must call: FreeMem(Ranges.Data). + TReparseGuidDataBuffer TGenericReparseBuffer is a generic record type used for reparse point operations on an NTFS volume. + TStreamId NTFS file stream IDs which denote the kind of data stored in an NTFS stream. + +PE.txt + + EJclPeImageError Base exception class for exceptions raised by the JclPeImage module. + IsValidPeFile Determines whether a file is a valid portable executable file. + PeBorUnmangleName TODO + PeCreateNameHintTable TODO + PeDbgImgLibraryName TODO + PeDbgImgNtHeaders TODO + PeDoesExportFunction Tests whether an image exports a specific fuction. + PeDoesImportFunction Tests whether an image imports a specific function. + PeDoesImportLibrary Tests whether an image is implicitly linked against a library. + PeExportedFunctions Returns a list of exported function from an image. + PeExportedFunctionsArray Returns a list of exported function from an image. + PeGetNtHeaders Returns a TImageNtHeaders record for an image. + PeImportedFunctions Returns a list of all directly imported functions for an image. + PeImportedFunctionsArray Returns a list of all directly imported functions for an image. + PeImportedLibraries Returns a list of all libraries an image imports. + PeImportedLibrariesArray Returns a list of all libraries an image imports. + PeIsExportFunctionForwarded Tests whether a function is forwarded. + PeIsExportFunctionForwardedEx Tests whether a function is forwarded. + PeIsNameMangled TODO + PeMapImgFindSection Searches the image, specified by NtHeaders, for a specific named section. + PeMapImgLibraryName Returns the name of the image file mapped at the specified address. + PeMapImgNtHeaders Returns a pointer to the TImageNtHeaders record. + PeMapImgSections Returns a pointer to the header of the first section in an image. + PeRebaseImage Rebases an image. + PeSmartFunctionNameSame Compares two function names. + PeStripFunctionAW Returns the base name of the supplied function name. + PeUnmangleName TODO + PeUpdateCheckSum Updates the image checksum. + PeVerifyCheckSum Verifies the checksum of a portable executable file. + TJclBorUmDescription TODO + TJclBorUmResult TODO + TJclBorUmSymbolKind TODO + TJclBorUmSymbolModifier TODO + TJclLoadConfig TODO + TJclPeBorImage Specialisation of TJclPeImage for Borland produced images. + TJclPeDebugList The TJclPeDebugList represent the debug section of an image file. + TJclPeExportFuncItem Represents a single exported function. + TJclPeExportFuncList The TJclPeExportFuncList class represents the export section of an image file. + TJclPeExportSort Enumeration used to determine on which field a list of exported functions is sorted. + TJclPeFileProperties Record which contains some common attributes of an image file. + TJclPeHeader TODO + TJclPeImage Abstraction of a portable executable file. + TJclPeImageBaseList Baseclass for list-like classes which require a TJclPeImage instance reference. + TJclPeImageStatus TJclPeImageStatus defines the various states a TJclPeImage instance can be in. + TJclPeImportFuncItem Represents a single imported function. + TJclPeImportKind Specifies how a function was imported. This does not include whether or not the function was imported by name or ordinal. + TJclPeImportLibItem Abstraction of an import descriptor. + TJclPeImportLibSort ... [truncated message content] |
|
From: <ou...@us...> - 2006-08-18 11:59:28
|
Revision: 1739 Author: outchy Date: 2006-08-18 04:58:50 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1739&view=rev Log Message: ----------- New tag for JCL 1.22 (this release was hidden in the files section at sourceforge) Added Paths: ----------- tags/JCL122-Build965/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ou...@us...> - 2006-08-18 11:58:10
|
Revision: 1738 Author: outchy Date: 2006-08-18 04:57:34 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1738&view=rev Log Message: ----------- New tag for JCL 1.21 (this release was hidden in the files section at sourceforge) Added Paths: ----------- tags/JCL121-Build870/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ou...@us...> - 2006-08-18 11:56:18
|
Revision: 1737 Author: outchy Date: 2006-08-18 04:55:47 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1737&view=rev Log Message: ----------- New tag for JCL 1.20 (this release was hidden in the files section at sourceforge) Added Paths: ----------- tags/JCL120-Build779/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ou...@us...> - 2006-08-18 11:54:44
|
Revision: 1736 Author: outchy Date: 2006-08-18 04:54:14 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1736&view=rev Log Message: ----------- New tag for JCL 1.11 (this source was hidden in the files section at sourceforge) Added Paths: ----------- tags/JCL111-Build505/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ou...@us...> - 2006-08-18 11:45:46
|
Revision: 1735 Author: outchy Date: 2006-08-18 04:45:40 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1735&view=rev Log Message: ----------- code already integrated in the Jedi Math library (http://sourceforge.net/projects/jedimath) mainly in JmDSP.pas Removed Paths: ------------- trunk/donations/FFT_source.zip Deleted: trunk/donations/FFT_source.zip =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ou...@us...> - 2006-08-18 11:43:57
|
Revision: 1734 Author: outchy Date: 2006-08-18 04:43:42 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/jcl/?rev=1734&view=rev Log Message: ----------- code already integrated in the Jedi Math library (http://sourceforge.net/projects/jedimath) mainly in JmDSP.pas Added Paths: ----------- tags/donated-to-jedimath/FFT_source.zip Copied: tags/donated-to-jedimath/FFT_source.zip (from rev 1733, trunk/donations/FFT_source.zip) =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |