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: <sch...@us...> - 2007-06-10 17:15:21
|
Revision: 2035
http://svn.sourceforge.net/jcl/?rev=2035&view=rev
Author: schuettecarsten
Date: 2007-06-10 10:15:18 -0700 (Sun, 10 Jun 2007)
Log Message:
-----------
Fixed wrong email address...
Modified Paths:
--------------
trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas
Modified: trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas
===================================================================
--- trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas 2007-06-10 08:55:31 UTC (rev 2034)
+++ trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas 2007-06-10 17:15:18 UTC (rev 2035)
@@ -242,8 +242,8 @@
with TJclEmail.Create do
try
ParentWnd := Application.Handle;
- Recipients.Add('su...@vi...');
- Subject := 'Exception Report';
+ Recipients.Add('na...@do...');
+ Subject := 'email subject';
Body := ReportAsText;
SaveTaskWindows;
try
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-06-10 08:55:33
|
Revision: 2034
http://svn.sourceforge.net/jcl/?rev=2034&view=rev
Author: outchy
Date: 2007-06-10 01:55:31 -0700 (Sun, 10 Jun 2007)
Log Message:
-----------
Eliminating dotnet specific warnings.
Modified Paths:
--------------
trunk/jcl/source/common/JclBase.pas
trunk/jcl/source/common/JclStringLists.pas
Modified: trunk/jcl/source/common/JclBase.pas
===================================================================
--- trunk/jcl/source/common/JclBase.pas 2007-06-10 08:39:50 UTC (rev 2033)
+++ trunk/jcl/source/common/JclBase.pas 2007-06-10 08:55:31 UTC (rev 2034)
@@ -230,7 +230,7 @@
// basic set types
type
- TSetOfChar = set of Char;
+ TSetOfAnsiChar = set of AnsiChar;
{$IFNDEF XPLATFORM_RTL}
procedure RaiseLastOSError;
Modified: trunk/jcl/source/common/JclStringLists.pas
===================================================================
--- trunk/jcl/source/common/JclStringLists.pas 2007-06-10 08:39:50 UTC (rev 2033)
+++ trunk/jcl/source/common/JclStringLists.pas 2007-06-10 08:55:31 UTC (rev 2034)
@@ -166,7 +166,7 @@
function Trim: IJclStringList;
function Join(const ASeparator: string = ''): string;
function Split(const AText, ASeparator: string; AClearBeforeAdd: Boolean = True): IJclStringList;
- function ExtractWords(const AText: string; const ADelims: TSetOfChar = [#0..' ']; AClearBeforeAdd: Boolean = True): IJclStringList;
+ function ExtractWords(const AText: string; const ADelims: TSetOfAnsiChar = [#0..' ']; AClearBeforeAdd: Boolean = True): IJclStringList;
function Last: string;
function First: string;
function LastIndex: Integer;
@@ -344,7 +344,7 @@
function Delimit(const ADelimiter: string): IJclStringList;
function Join(const ASeparator: string = ''): string;
function Split(const AText, ASeparator: string; AClearBeforeAdd: Boolean = True): IJclStringList;
- function ExtractWords(const AText: string; const ADelims: TSetOfChar = [#0..' '];
+ function ExtractWords(const AText: string; const ADelims: TSetOfAnsiChar = [#0..' '];
AClearBeforeAdd: Boolean = True): IJclStringList;
function Last: string;
function First: string;
@@ -507,7 +507,7 @@
Result := FSelfAsInterface;
end;
-function TJclStringListImpl.ExtractWords(const AText: string; const ADelims: TSetOfChar;
+function TJclStringListImpl.ExtractWords(const AText: string; const ADelims: TSetOfAnsiChar;
AClearBeforeAdd: Boolean): IJclStringList;
var
L, I, X: Integer;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-06-10 08:39:54
|
Revision: 2033
http://svn.sourceforge.net/jcl/?rev=2033&view=rev
Author: outchy
Date: 2007-06-10 01:39:50 -0700 (Sun, 10 Jun 2007)
Log Message:
-----------
Mantis 4111: LastDayOfWeek returns wrong result.
Moving Date and Time related functions from JclSchedule.pas to JclDateTime.pas.
Modified Paths:
--------------
trunk/jcl/source/common/JclDateTime.pas
trunk/jcl/source/common/JclSchedule.pas
Modified: trunk/jcl/source/common/JclDateTime.pas
===================================================================
--- trunk/jcl/source/common/JclDateTime.pas 2007-06-09 20:52:48 UTC (rev 2032)
+++ trunk/jcl/source/common/JclDateTime.pas 2007-06-10 08:39:50 UTC (rev 2033)
@@ -200,6 +200,28 @@
function UnixTimeToFileTime(const AValue: TJclUnixTime32): TFileTime;
{$ENDIF MSWINDOWS}
+// Time stamps (formerly in JclSchedule)
+function NullStamp: TTimeStamp;
+function CompareTimeStamps(const Stamp1, Stamp2: TTimeStamp): Int64;
+function EqualTimeStamps(const Stamp1, Stamp2: TTimeStamp): Boolean;
+function IsNullTimeStamp(const Stamp: TTimeStamp): Boolean;
+function TimeStampDOW(const Stamp: TTimeStamp): Integer;
+
+// Day of week (formerly in JclSchedule)
+function FirstWeekDay(const Year, Month: Integer; var DOW: Integer): Integer; overload;
+function FirstWeekDay(const Year, Month: Integer): Integer; overload;
+function LastWeekDay(const Year, Month: Integer; var DOW: Integer): Integer; overload;
+function LastWeekDay(const Year, Month: Integer): Integer; overload;
+function IndexedWeekDay(const Year, Month: Integer; Index: Integer): Integer;
+function FirstWeekendDay(const Year, Month: Integer; var DOW: Integer): Integer; overload;
+function FirstWeekendDay(const Year, Month: Integer): Integer; overload;
+function LastWeekendDay(const Year, Month: Integer; var DOW: Integer): Integer; overload;
+function LastWeekendDay(const Year, Month: Integer): Integer; overload;
+function IndexedWeekendDay(const Year, Month: Integer; Index: Integer): Integer;
+function FirstDayOfWeek(const Year, Month, DayOfWeek: Integer): Integer;
+function LastDayOfWeek(const Year, Month, DayOfWeek: Integer): Integer;
+function IndexedDayOfWeek(const Year, Month, DayOfWeek, Index: Integer): Integer;
+
type
EJclDateTimeError = class(EJclError);
@@ -1204,6 +1226,264 @@
{$ENDIF MSWINDOWS}
+// Time stamps utilities
+
+// Utility functions
+function NullStamp: TTimeStamp;
+begin
+ Result.Date := 0;
+ Result.Time := -1;
+end;
+
+function CompareTimeStamps(const Stamp1, Stamp2: TTimeStamp): Int64;
+begin
+ if Stamp1.Date < Stamp2.Date then
+ Result := -1
+ else
+ if Stamp1.Date = Stamp2.Date then
+ begin
+ if Stamp1.Time < Stamp2.Time then
+ Result := -1
+ else
+ if Stamp1.Time = Stamp2.Time then
+ Result := 0
+ else // If Stamp1.Time > Stamp2.Time then
+ Result := 1;
+ end
+ else // if Stamp1.Date > Stamp2.Date then
+ Result := 1;
+// Result := Int64(Stamp1) - Int64(Stamp2);
+end;
+
+function EqualTimeStamps(const Stamp1, Stamp2: TTimeStamp): Boolean;
+begin
+ Result := CompareTimeStamps(Stamp1, Stamp2) = 0;
+end;
+
+function IsNullTimeStamp(const Stamp: TTimeStamp): Boolean;
+begin
+ Result := CompareTimeStamps(NullStamp, Stamp) = 0;
+end;
+
+function TimeStampDOW(const Stamp: TTimeStamp): Integer;
+begin
+ Result := (Stamp.Date - 1) mod 7 + 1
+end;
+
+// day of week utilities
+
+function FirstWeekDay(const Year, Month: Integer; var DOW: Integer): Integer;
+begin
+ DOW := ISODayOfWeek(EncodeDate(Year, Month, 1));
+ if DOW > 5 then
+ begin
+ Result := 9 - DOW;
+ DOW := 1;
+ end
+ else
+ Result := 1;
+end;
+
+function FirstWeekDay(const Year, Month: Integer): Integer;
+var
+ Dummy: Integer;
+begin
+ Result := FirstWeekDay(Year, Month, Dummy);
+end;
+
+function LastWeekDay(const Year, Month: Integer; var DOW: Integer): Integer;
+begin
+ DOW := ISODayOfWeek(EncodeDate(Year, Month, DaysInMonth(EncodeDate(Year, Month, 1))));
+ if DOW > 5 then
+ begin
+ Result := DaysInMonth(EncodeDate(Year, Month, 1)) - (DOW - 5);
+ DOW := 5;
+ end
+ else
+ Result := DaysInMonth(EncodeDate(Year, Month, 1));
+end;
+
+function LastWeekDay(const Year, Month: Integer): Integer;
+var
+ Dummy: Integer;
+begin
+ Result := LastWeekDay(Year, Month, Dummy);
+end;
+
+function IndexedWeekDay(const Year, Month: Integer; Index: Integer): Integer;
+var
+ DOW: Integer;
+begin
+ if Index > 0 then
+ Result := FirstWeekDay(Year, Month, DOW)
+ else
+ if Index < 0 then
+ Result := LastWeekDay(Year, Month, DOW)
+ else
+ Result := 0;
+ if Index > 1 then // n-th weekday from start of month
+ begin
+ Dec(Index);
+ if DOW > 1 then // adjust to first monday
+ begin
+ if Index < (5 - DOW) then
+ begin
+ Inc(Result, Index);
+ Index := 0;
+ end
+ else
+ begin
+ Dec(Index, 6 - DOW);
+ Inc(Result, 8 - DOW);
+ end;
+ end;
+ Result := Result + (7 * (Index div 5)) + (Index mod 5);
+ end
+ else
+ if Index < -1 then // n-th weekday from end of month
+ begin
+ Index := Abs(Index) - 1;
+ if DOW < 5 then // adjust to last friday
+ begin
+ if Index < DOW then
+ begin
+ Dec(Result, Index);
+ Index := 0;
+ end
+ else
+ begin
+ Dec(Index, DOW);
+ Dec(Result, DOW + 2);
+ end;
+ end;
+ Result := Result - (7 * (Index div 5)) - (Index mod 5);
+ end;
+ if (Result < 0) or (Result > DaysInMonth(EncodeDate(Year, Month, 1))) then
+ Result := 0;
+end;
+
+function FirstWeekendDay(const Year, Month: Integer; var DOW: Integer): Integer;
+begin
+ DOW := ISODayOfWeek(EncodeDate(Year, Month, 1));
+ if DOW < 6 then
+ begin
+ Result := 7 - DOW;
+ DOW := 6;
+ end
+ else
+ Result := 1;
+end;
+
+function FirstWeekendDay(const Year, Month: Integer): Integer;
+var
+ Dummy: Integer;
+begin
+ Result := FirstWeekendDay(Year, Month, Dummy);
+end;
+
+function LastWeekendDay(const Year, Month: Integer; var DOW: Integer): Integer;
+begin
+ DOW := ISODayOfWeek(EncodeDate(Year, Month, DaysInMonth(EncodeDate(Year, Month, 1))));
+ if DOW < 6 then
+ begin
+ Result := DaysInMonth(EncodeDate(Year, Month, 1)) - DOW;
+ DOW := 7;
+ end
+ else
+ Result := DaysInMonth(EncodeDate(Year, Month, 1));
+end;
+
+function LastWeekendDay(const Year, Month: Integer): Integer;
+var
+ Dummy: Integer;
+begin
+ Result := LastWeekendDay(Year, Month, Dummy);
+end;
+
+function IndexedWeekendDay(const Year, Month: Integer; Index: Integer): Integer;
+var
+ DOW: Integer;
+begin
+ if Index > 0 then
+ Result := FirstWeekendDay(Year, Month, DOW)
+ else
+ if Index < 0 then
+ Result := LastWeekendDay(Year, Month, DOW)
+ else
+ Result := 0;
+ if Index > 1 then // n-th weekend day from the start of the month
+ begin
+ if (DOW > 6) and not Odd(Index) then // Adjust to first saturday
+ begin
+ Inc(Result, 6);
+ Dec(Index);
+ end;
+ if Index > 1 then
+ begin
+ Dec(Index);
+ Result := Result + (7 * (Index div 2)) + (Index mod 2);
+ end;
+ end
+ else
+ if Index < -1 then // n-th weekend day from the start of the month
+ begin
+ Index := Abs(Index);
+ if (DOW < 7) and not Odd(Index) then // Adjust to last sunday
+ begin
+ Dec(Result, 6);
+ Dec(Index);
+ end;
+ if Index > 1 then
+ begin
+ Dec(Index);
+ Result := Result - (7 * (Index div 2)) - (Index mod 2);
+ end;
+ end;
+ if (Result < 0) or (Result > DaysInMonth(EncodeDate(Year, Month, 1))) then
+ Result := 0;
+end;
+
+function FirstDayOfWeek(const Year, Month, DayOfWeek: Integer): Integer;
+var
+ DOW: Integer;
+begin
+ DOW := ISODayOfWeek(EncodeDate(Year, Month, 1));
+ if DOW > DayOfWeek then
+ Result := 8 + DayOfWeek - DOW
+ else
+ if DOW < DayOfWeek then
+ Result := 1 + DayOfWeek - DOW
+ else
+ Result := 1;
+end;
+
+function LastDayOfWeek(const Year, Month, DayOfWeek: Integer): Integer;
+var
+ DOW: Integer;
+begin
+ DOW := ISODayOfWeek(EncodeDate(Year, Month, DaysInMonth(EncodeDate(Year, Month, 1))));
+ if DOW > DayOfWeek then
+ Result := DaysInMonth(EncodeDate(Year, Month, 1)) - (DOW - DayOfWeek)
+ else
+ if DOW < DayOfWeek then
+ Result := DaysInMonth(EncodeDate(Year, Month, 1)) - (7 - DayOfWeek + DOW)
+ else
+ Result := DaysInMonth(EncodeDate(Year, Month, 1));
+end;
+
+function IndexedDayOfWeek(const Year, Month, DayOfWeek, Index: Integer): Integer;
+begin
+ if Index > 0 then
+ Result := FirstDayOfWeek(Year, Month, DayOfWeek) + 7 * (Index - 1)
+ else
+ if Index < 0 then
+ Result := LastDayOfWeek(Year, Month, DayOfWeek) - 7 * (Abs(Index) - 1)
+ else
+ Result := 0;
+ if (Result < 0) or (Result > DaysInMonth(EncodeDate(Year, Month, 1))) then
+ Result := 0;
+end;
+
{$IFDEF UNITVERSIONING}
initialization
RegisterUnitVersion(HInstance, UnitVersioning);
Modified: trunk/jcl/source/common/JclSchedule.pas
===================================================================
--- trunk/jcl/source/common/JclSchedule.pas 2007-06-09 20:52:48 UTC (rev 2032)
+++ trunk/jcl/source/common/JclSchedule.pas 2007-06-10 08:39:50 UTC (rev 2033)
@@ -174,10 +174,6 @@
end;
function CreateSchedule: IJclSchedule;
-function NullStamp: TTimeStamp;
-function CompareTimeStamps(const Stamp1, Stamp2: TTimeStamp): Int64;
-function EqualTimeStamps(const Stamp1, Stamp2: TTimeStamp): Boolean;
-function IsNullTimeStamp(const Stamp: TTimeStamp): Boolean;
{$IFDEF UNITVERSIONING}
const
@@ -257,265 +253,6 @@
{$ENDIF ~RTL140_UP}
-// Utility functions
-function NullStamp: TTimeStamp;
-begin
- Result.Date := 0;
- Result.Time := -1;
-end;
-
-function CompareTimeStamps(const Stamp1, Stamp2: TTimeStamp): Int64;
-begin
- if Stamp1.Date < Stamp2.Date then
- Result := -1
- else
- if Stamp1.Date = Stamp2.Date then
- begin
- if Stamp1.Time < Stamp2.Time then
- Result := -1
- else
- if Stamp1.Time = Stamp2.Time then
- Result := 0
- else // If Stamp1.Time > Stamp2.Time then
- Result := 1;
- end
- else // if Stamp1.Date > Stamp2.Date then
- Result := 1;
-// Result := Int64(Stamp1) - Int64(Stamp2);
-end;
-
-function EqualTimeStamps(const Stamp1, Stamp2: TTimeStamp): Boolean;
-begin
- Result := CompareTimeStamps(Stamp1, Stamp2) = 0;
-end;
-
-function IsNullTimeStamp(const Stamp: TTimeStamp): Boolean;
-begin
- Result := CompareTimeStamps(NullStamp, Stamp) = 0;
-end;
-
-function TimeStampDOW(const Stamp: TTimeStamp): Integer;
-begin
- Result := (Stamp.Date - 1) mod 7 + 1
-end;
-
-function ISODayOfWeek(DateTime: TDateTime): Integer;
-begin
- Result := (DayOfWeek(DateTime - 2 + 7) mod 7) + 1;
-end;
-
-function FirstWeekDayPrim(const Year, Month: Integer; var DOW: Integer): Integer;
-begin
- DOW := ISODayOfWeek(JclDateTime.EncodeDate(Year, Month, 1));
- if DOW > 5 then
- begin
- Result := 9 - DOW;
- DOW := 1;
- end
- else
- Result := 1;
-end;
-
-function LastWeekDayPrim(const Year, Month: Integer; var DOW: Integer): Integer;
-begin
- DOW := ISODayOfWeek(JclDateTime.EncodeDate(Year, Month, DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1))));
- if DOW > 5 then
- begin
- Result := DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1)) - (DOW - 5);
- DOW := 5;
- end
- else
- Result := DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1));
-end;
-
-function FirstWeekendDayPrim(const Year, Month: Integer; var DOW: Integer): Integer;
-begin
- DOW := ISODayOfWeek(JclDateTime.EncodeDate(Year, Month, 1));
- if DOW < 6 then
- begin
- Result := 7 - DOW;
- DOW := 6;
- end
- else
- Result := 1;
-end;
-
-function LastWeekendDayPrim(const Year, Month: Integer; var DOW: Integer): Integer;
-begin
- DOW := ISODayOfWeek(JclDateTime.EncodeDate(Year, Month, DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1))));
- if DOW < 6 then
- begin
- Result := DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1)) - DOW;
- DOW := 7;
- end
- else
- Result := DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1));
-end;
-
-function FirstWeekDay(const Year, Month: Integer): Integer;
-var
- Dummy: Integer;
-begin
- Result := FirstWeekDayPrim(Year, Month, Dummy);
-end;
-
-function LastWeekDay(const Year, Month: Integer): Integer;
-var
- Dummy: Integer;
-begin
- Result := LastWeekDayPrim(Year, Month, Dummy);
-end;
-
-function IndexedWeekDay(const Year, Month: Integer; Index: Integer): Integer;
-var
- DOW: Integer;
-begin
- if Index > 0 then
- Result := FirstWeekDayPrim(Year, Month, DOW)
- else
- if Index < 0 then
- Result := LastWeekDayPrim(Year, Month, DOW)
- else
- Result := 0;
- if Index > 1 then // n-th weekday from start of month
- begin
- Dec(Index);
- if DOW > 1 then // adjust to first monday
- begin
- if Index < (5 - DOW) then
- begin
- Inc(Result, Index);
- Index := 0;
- end
- else
- begin
- Dec(Index, 6 - DOW);
- Inc(Result, 8 - DOW);
- end;
- end;
- Result := Result + (7 * (Index div 5)) + (Index mod 5);
- end
- else
- if Index < -1 then // n-th weekday from end of month
- begin
- Index := Abs(Index) - 1;
- if DOW < 5 then // adjust to last friday
- begin
- if Index < DOW then
- begin
- Dec(Result, Index);
- Index := 0;
- end
- else
- begin
- Dec(Index, DOW);
- Dec(Result, DOW + 2);
- end;
- end;
- Result := Result - (7 * (Index div 5)) - (Index mod 5);
- end;
- if (Result < 0) or (Result > DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1))) then
- Result := 0;
-end;
-
-function FirstWeekendDay(const Year, Month: Integer): Integer;
-var
- Dummy: Integer;
-begin
- Result := FirstWeekendDayPrim(Year, Month, Dummy);
-end;
-
-function LastWeekendDay(const Year, Month: Integer): Integer;
-var
- Dummy: Integer;
-begin
- Result := LastWeekendDayPrim(Year, Month, Dummy);
-end;
-
-function IndexedWeekendDay(const Year, Month: Integer; Index: Integer): Integer;
-var
- DOW: Integer;
-begin
- if Index > 0 then
- Result := FirstWeekendDayPrim(Year, Month, DOW)
- else
- if Index < 0 then
- Result := LastWeekendDayPrim(Year, Month, DOW)
- else
- Result := 0;
- if Index > 1 then // n-th weekend day from the start of the month
- begin
- if (DOW > 6) and not Odd(Index) then // Adjust to first saturday
- begin
- Inc(Result, 6);
- Dec(Index);
- end;
- if Index > 1 then
- begin
- Dec(Index);
- Result := Result + (7 * (Index div 2)) + (Index mod 2);
- end;
- end
- else
- if Index < -1 then // n-th weekend day from the start of the month
- begin
- Index := Abs(Index);
- if (DOW < 7) and not Odd(Index) then // Adjust to last sunday
- begin
- Dec(Result, 6);
- Dec(Index);
- end;
- if Index > 1 then
- begin
- Dec(Index);
- Result := Result - (7 * (Index div 2)) - (Index mod 2);
- end;
- end;
- if (Result < 0) or (Result > DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1))) then
- Result := 0;
-end;
-
-function FirstDayOfWeek(const Year, Month, DayOfWeek: Integer): Integer;
-var
- DOW: Integer;
-begin
- DOW := ISODayOfWeek(JclDateTime.EncodeDate(Year, Month, 1));
- if DOW > DayOfWeek then
- Result := 8 + DayOfWeek - DOW
- else
- if DOW < DayOfWeek then
- Result := 1 + DayOfWeek - DOW
- else
- Result := 1;
-end;
-
-function LastDayOfWeek(const Year, Month, DayOfWeek: Integer): Integer;
-var
- DOW: Integer;
-begin
- DOW := ISODayOfWeek(JclDateTime.EncodeDate(Year, Month, DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1))));
- if DOW > DayOfWeek then
- Result := DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1)) - (DOW - DayOfWeek)
- else
- if DOW < DayOfWeek then
- Result := DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1)) - (7 + DayOfWeek - DOW)
- else
- Result := DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1));
-end;
-
-function IndexedDayOfWeek(const Year, Month, DayOfWeek, Index: Integer): Integer;
-begin
- if Index > 0 then
- Result := FirstDayOfWeek(Year, Month, DayOfWeek) + 7 * (Index - 1)
- else
- if Index < 0 then
- Result := LastDayOfWeek(Year, Month, DayOfWeek) - 7 * (Abs(Index) - 1)
- else
- Result := 0;
- if (Result < 0) or (Result > DaysInMonth(JclDateTime.EncodeDate(Year, Month, 1))) then
- Result := 0;
-end;
-
//=== { TScheduleAggregate } =================================================
type
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-06-09 20:52:49
|
Revision: 2032
http://svn.sourceforge.net/jcl/?rev=2032&view=rev
Author: outchy
Date: 2007-06-09 13:52:48 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
JclFont unit for Delphi 5 and C++Builder 5.
Modified Paths:
--------------
trunk/jcl/packages/c5/JclC50.bpk
trunk/jcl/packages/c5/JclC50.cpp
trunk/jcl/packages/c5/JclC50.dpk
trunk/jcl/packages/d5/JclD50.dpk
trunk/jcl/packages/xml/Jcl-R.xml
Modified: trunk/jcl/packages/c5/JclC50.bpk
===================================================================
--- trunk/jcl/packages/c5/JclC50.bpk 2007-06-09 20:52:11 UTC (rev 2031)
+++ trunk/jcl/packages/c5/JclC50.bpk 2007-06-09 20:52:48 UTC (rev 2032)
@@ -5,7 +5,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:41 UTC
+ Last generated: 09-06-2007 20:44:07 UTC
*****************************************************************************
-->
<PROJECT>
@@ -102,6 +102,7 @@
..\..\lib\c5\zlibh.obj
..\..\lib\c5\JclGraphics.obj
..\..\lib\c5\JclGraphUtils.obj
+ ..\..\lib\c5\JclFont.obj
..\..\lib\c5\JclPrint.obj
"/>
<RESFILES value="JclC50.res"/>
Modified: trunk/jcl/packages/c5/JclC50.cpp
===================================================================
--- trunk/jcl/packages/c5/JclC50.cpp 2007-06-09 20:52:11 UTC (rev 2031)
+++ trunk/jcl/packages/c5/JclC50.cpp 2007-06-09 20:52:48 UTC (rev 2032)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:41 UTC
+ Last generated: 09-06-2007 20:44:07 UTC
-----------------------------------------------------------------------------
*/
@@ -99,6 +99,7 @@
USEUNIT("..\..\source\windows\zlibh.pas");
USEUNIT("..\..\source\vcl\JclGraphics.pas");
USEUNIT("..\..\source\vcl\JclGraphUtils.pas");
+USEUNIT("..\..\source\vcl\JclFont.pas");
USEUNIT("..\..\source\vcl\JclPrint.pas");
USEPACKAGE("vcl50.bpi");
USEPACKAGE("vcljpg50.bpi");
Modified: trunk/jcl/packages/c5/JclC50.dpk
===================================================================
--- trunk/jcl/packages/c5/JclC50.dpk 2007-06-09 20:52:11 UTC (rev 2031)
+++ trunk/jcl/packages/c5/JclC50.dpk 2007-06-09 20:52:48 UTC (rev 2032)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:42 UTC
+ Last generated: 09-06-2007 20:44:07 UTC
-----------------------------------------------------------------------------
}
@@ -128,6 +128,7 @@
zlibh in '..\..\source\windows\zlibh.pas' ,
JclGraphics in '..\..\source\vcl\JclGraphics.pas' ,
JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' ,
+ JclFont in '..\..\source\vcl\JclFont.pas' ,
JclPrint in '..\..\source\vcl\JclPrint.pas'
;
Modified: trunk/jcl/packages/d5/JclD50.dpk
===================================================================
--- trunk/jcl/packages/d5/JclD50.dpk 2007-06-09 20:52:11 UTC (rev 2031)
+++ trunk/jcl/packages/d5/JclD50.dpk 2007-06-09 20:52:48 UTC (rev 2032)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:44 UTC
+ Last generated: 09-06-2007 20:44:07 UTC
-----------------------------------------------------------------------------
}
@@ -132,6 +132,7 @@
zlibh in '..\..\source\windows\zlibh.pas' ,
JclGraphics in '..\..\source\vcl\JclGraphics.pas' ,
JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' ,
+ JclFont in '..\..\source\vcl\JclFont.pas' ,
JclPrint in '..\..\source\vcl\JclPrint.pas'
;
Modified: trunk/jcl/packages/xml/Jcl-R.xml
===================================================================
--- trunk/jcl/packages/xml/Jcl-R.xml 2007-06-09 20:52:11 UTC (rev 2031)
+++ trunk/jcl/packages/xml/Jcl-R.xml 2007-06-09 20:52:48 UTC (rev 2032)
@@ -109,6 +109,7 @@
<File Name="..\..\source\windows\zlibh.pas" Targets="WinDev" Formname="" Condition=""/>
<File Name="..\..\source\vcl\JclGraphics.pas" Targets="c5,d5" Formname="" Condition=""/>
<File Name="..\..\source\vcl\JclGraphUtils.pas" Targets="c5,d5" Formname="" Condition=""/>
+ <File Name="..\..\source\vcl\JclFont.pas" Targets="c5,d5" Formname="" Condition=""/>
<File Name="..\..\source\vcl\JclPrint.pas" Targets="c5,d5" Formname="" Condition=""/>
</Contains>
</Package>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-06-09 20:52:12
|
Revision: 2031
http://svn.sourceforge.net/jcl/?rev=2031&view=rev
Author: outchy
Date: 2007-06-09 13:52:11 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
Removing UTF-8 BOM
Modified Paths:
--------------
trunk/jcl/source/windows/JclMiscel.pas
Modified: trunk/jcl/source/windows/JclMiscel.pas
===================================================================
--- trunk/jcl/source/windows/JclMiscel.pas 2007-06-09 20:22:33 UTC (rev 2030)
+++ trunk/jcl/source/windows/JclMiscel.pas 2007-06-09 20:52:11 UTC (rev 2031)
@@ -1,4 +1,4 @@
-{**************************************************************************************************}
+{**************************************************************************************************}
{ }
{ Project JEDI Code Library (JCL) }
{ }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cyc...@us...> - 2007-06-09 20:22:36
|
Revision: 2030
http://svn.sourceforge.net/jcl/?rev=2030&view=rev
Author: cycocrew
Date: 2007-06-09 13:22:33 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
Update to add JclFont to all VCL related packages
Modified Paths:
--------------
trunk/jcl/packages/c6/JclVcl.bpk
trunk/jcl/packages/c6/JclVcl.dpk
trunk/jcl/packages/d10/JclVcl.dpk
trunk/jcl/packages/d11/JclVcl.dpk
trunk/jcl/packages/d11/JclVcl.dproj
trunk/jcl/packages/d6/JclVcl.dpk
trunk/jcl/packages/d7/JclVcl.dpk
trunk/jcl/packages/d9/JclVcl.dpk
trunk/jcl/packages/xml/JclVcl-R.xml
Modified: trunk/jcl/packages/c6/JclVcl.bpk
===================================================================
--- trunk/jcl/packages/c6/JclVcl.bpk 2007-06-09 15:14:03 UTC (rev 2029)
+++ trunk/jcl/packages/c6/JclVcl.bpk 2007-06-09 20:22:33 UTC (rev 2030)
@@ -5,7 +5,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml)
- Last generated: 24-09-2006 19:28:07 UTC
+ Last generated: 09-06-2007 20:20:09 UTC
*****************************************************************************
-->
<PROJECT>
@@ -17,6 +17,7 @@
..\..\lib\c6\obj\JclPrint.obj
..\..\lib\c6\obj\JclGraphUtils.obj
..\..\lib\c6\obj\JclGraphics.obj
+ ..\..\lib\c6\obj\JclFont.obj
"/>
<RESFILES value="JclVcl.res"/>
<IDLFILES value=""/>
@@ -77,6 +78,7 @@
<FILE FILENAME="..\..\source\vcl\JclPrint.pas" FORMNAME="" UNITNAME="JclPrint" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="..\..\source\vcl\JclGraphUtils.pas" FORMNAME="" UNITNAME="JclGraphUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="..\..\source\vcl\JclGraphics.pas" FORMNAME="" UNITNAME="JclGraphics" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\source\vcl\JclFont.pas" FORMNAME="" UNITNAME="JclFont" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
</FILELIST>
<BUILDTOOLS>
</BUILDTOOLS>
Modified: trunk/jcl/packages/c6/JclVcl.dpk
===================================================================
--- trunk/jcl/packages/c6/JclVcl.dpk 2007-06-09 15:14:03 UTC (rev 2029)
+++ trunk/jcl/packages/c6/JclVcl.dpk 2007-06-09 20:22:33 UTC (rev 2030)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml)
- Last generated: 27-02-2006 20:07:09 UTC
+ Last generated: 09-06-2007 20:20:09 UTC
-----------------------------------------------------------------------------
}
@@ -44,6 +44,7 @@
contains
JclPrint in '..\..\source\vcl\JclPrint.pas' ,
JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' ,
- JclGraphics in '..\..\source\vcl\JclGraphics.pas'
+ JclGraphics in '..\..\source\vcl\JclGraphics.pas' ,
+ JclFont in '..\..\source\vcl\JclFont.pas'
;
end.
Modified: trunk/jcl/packages/d10/JclVcl.dpk
===================================================================
--- trunk/jcl/packages/d10/JclVcl.dpk 2007-06-09 15:14:03 UTC (rev 2029)
+++ trunk/jcl/packages/d10/JclVcl.dpk 2007-06-09 20:22:33 UTC (rev 2030)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml)
- Last generated: 27-02-2006 20:07:10 UTC
+ Last generated: 09-06-2007 20:20:11 UTC
-----------------------------------------------------------------------------
}
@@ -45,7 +45,8 @@
contains
JclPrint in '..\..\source\vcl\JclPrint.pas' ,
JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' ,
- JclGraphics in '..\..\source\vcl\JclGraphics.pas'
+ JclGraphics in '..\..\source\vcl\JclGraphics.pas' ,
+ JclFont in '..\..\source\vcl\JclFont.pas'
;
end.
Modified: trunk/jcl/packages/d11/JclVcl.dpk
===================================================================
--- trunk/jcl/packages/d11/JclVcl.dpk 2007-06-09 15:14:03 UTC (rev 2029)
+++ trunk/jcl/packages/d11/JclVcl.dpk 2007-06-09 20:22:33 UTC (rev 2030)
@@ -1,4 +1,13 @@
package JclVcl;
+{
+-----------------------------------------------------------------------------
+ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
+ ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml)
+
+ Last generated: 09-06-2007 20:20:12 UTC
+-----------------------------------------------------------------------------
+}
+
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
@@ -30,12 +39,14 @@
rtl,
vcl,
vcljpg,
- Jcl;
-
+ Jcl
+ ;
+
contains
- JclPrint in '..\..\source\vcl\JclPrint.pas',
- JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas',
- JclGraphics in '..\..\source\vcl\JclGraphics.pas',
- JclFont in '..\..\source\vcl\JclFont.pas';
+ JclPrint in '..\..\source\vcl\JclPrint.pas' ,
+ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' ,
+ JclGraphics in '..\..\source\vcl\JclGraphics.pas' ,
+ JclFont in '..\..\source\vcl\JclFont.pas'
+ ;
end.
Modified: trunk/jcl/packages/d11/JclVcl.dproj
===================================================================
--- trunk/jcl/packages/d11/JclVcl.dproj 2007-06-09 15:14:03 UTC (rev 2029)
+++ trunk/jcl/packages/d11/JclVcl.dproj 2007-06-09 20:22:33 UTC (rev 2030)
@@ -1,12 +1,10 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
- <ProjectGuid>{dac973da-b69f-4b0f-b2b7-94e2e91107a1}</ProjectGuid>
+ <ProjectGuid></ProjectGuid>
<MainSource>JclVcl.dpk</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
- <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\..\Public\Documents\RAD Studio\5.0\Bpl\JclVcl110.bpl</DCC_DependencyCheckOutputName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version>
@@ -32,35 +30,61 @@
<DCC_UnitSearchPath>..\..\lib\d11\debug;..\..\source</DCC_UnitSearchPath>
<DCC_ResourcePath>..\..\lib\d11\debug;..\..\source</DCC_ResourcePath>
<DCC_ObjPath>..\..\lib\d11\debug;..\..\source</DCC_ObjPath>
- <DCC_IncludePath>..\..\lib\d11\debug;..\..\source</DCC_IncludePath>
- <DCC_DebugInformation>False</DCC_DebugInformation>
- <DCC_WriteableConstants>True</DCC_WriteableConstants>
- <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
- <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
- <DCC_ImageBase>48200000</DCC_ImageBase>
+ <DCC_IncludePath>..\..\lib\d11\debug;..\..\source</DCC_IncludePath>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
-<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">2552</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1031</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">Project JEDI</VersionInfoKeys><VersionInfoKeys Name="FileDescription">JEDI Code Library VCL package</VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.0.0.2552</VersionInfoKeys><VersionInfoKeys Name="InternalName">JclVcl</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2007 Project JEDI</VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename">JclVcl110.bpl</VersionInfoKeys><VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.0 Build 2552</VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">JclVcl.dpk</Source></Source><Package_Options><Package_Options Name="LibSuffix">110</Package_Options> <Package_Options Name="PackageDescription">JEDI Code Library VCL package</Package_Options>
- <Package_Options Name="ImplicitBuild">False</Package_Options>
- <Package_Options Name="DesigntimeOnly">False</Package_Options>
- <Package_Options Name="RuntimeOnly">True</Package_Options>
- </Package_Options></Delphi.Personality></BorlandProject></BorlandProject>
+ <BorlandProject xmlns="">
+ <Delphi.Personality>
+ <Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">True</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">2</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">2552</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1031</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName">Project JEDI</VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription">JEDI Code Library VCL package</VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">2.0.0.2552</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName">JclVcl</VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2007 Project JEDI</VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename">JclVcl110.bpl</VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">2.0 Build 2552</VersionInfoKeys>
+ </VersionInfoKeys>
+ <Source>
+ <Source Name="MainSource">JclVcl.dpk</Source>
+ </Source>
+ <Package_Options>
+ <Package_Options Name="LibSuffix">110</Package_Options>
+ </Package_Options>
+ </Delphi.Personality>
+ </BorlandProject>
+ </BorlandProject>
</ProjectExtensions>
- <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
+ <ItemGroup />
<ItemGroup>
<DelphiCompile Include="JclVcl.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
- <DCCReference Include="..\..\source\vcl\Jcl.dcp" />
- <DCCReference Include="..\..\source\vcl\JclFont.pas" />
- <DCCReference Include="..\..\source\vcl\JclGraphics.pas" />
- <DCCReference Include="..\..\source\vcl\JclGraphUtils.pas" />
- <DCCReference Include="..\..\source\vcl\JclPrint.pas" />
- <DCCReference Include="..\..\source\vcl\rtl.dcp" />
- <DCCReference Include="..\..\source\vcl\vcl.dcp" />
- <DCCReference Include="..\..\source\vcl\vcljpg.dcp" />
+ <DCCReference Include="rtl.dcp" />
</ItemGroup>
-</Project>
\ No newline at end of file
+ <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
+</Project>
Modified: trunk/jcl/packages/d6/JclVcl.dpk
===================================================================
--- trunk/jcl/packages/d6/JclVcl.dpk 2007-06-09 15:14:03 UTC (rev 2029)
+++ trunk/jcl/packages/d6/JclVcl.dpk 2007-06-09 20:22:33 UTC (rev 2030)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml)
- Last generated: 27-02-2006 20:07:09 UTC
+ Last generated: 09-06-2007 20:20:09 UTC
-----------------------------------------------------------------------------
}
@@ -45,7 +45,8 @@
contains
JclPrint in '..\..\source\vcl\JclPrint.pas' ,
JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' ,
- JclGraphics in '..\..\source\vcl\JclGraphics.pas'
+ JclGraphics in '..\..\source\vcl\JclGraphics.pas' ,
+ JclFont in '..\..\source\vcl\JclFont.pas'
;
end.
Modified: trunk/jcl/packages/d7/JclVcl.dpk
===================================================================
--- trunk/jcl/packages/d7/JclVcl.dpk 2007-06-09 15:14:03 UTC (rev 2029)
+++ trunk/jcl/packages/d7/JclVcl.dpk 2007-06-09 20:22:33 UTC (rev 2030)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml)
- Last generated: 27-02-2006 20:07:09 UTC
+ Last generated: 09-06-2007 20:20:09 UTC
-----------------------------------------------------------------------------
}
@@ -45,7 +45,8 @@
contains
JclPrint in '..\..\source\vcl\JclPrint.pas' ,
JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' ,
- JclGraphics in '..\..\source\vcl\JclGraphics.pas'
+ JclGraphics in '..\..\source\vcl\JclGraphics.pas' ,
+ JclFont in '..\..\source\vcl\JclFont.pas'
;
end.
Modified: trunk/jcl/packages/d9/JclVcl.dpk
===================================================================
--- trunk/jcl/packages/d9/JclVcl.dpk 2007-06-09 15:14:03 UTC (rev 2029)
+++ trunk/jcl/packages/d9/JclVcl.dpk 2007-06-09 20:22:33 UTC (rev 2030)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml)
- Last generated: 27-02-2006 20:07:09 UTC
+ Last generated: 09-06-2007 20:20:10 UTC
-----------------------------------------------------------------------------
}
@@ -45,7 +45,8 @@
contains
JclPrint in '..\..\source\vcl\JclPrint.pas' ,
JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' ,
- JclGraphics in '..\..\source\vcl\JclGraphics.pas'
+ JclGraphics in '..\..\source\vcl\JclGraphics.pas' ,
+ JclFont in '..\..\source\vcl\JclFont.pas'
;
end.
Modified: trunk/jcl/packages/xml/JclVcl-R.xml
===================================================================
--- trunk/jcl/packages/xml/JclVcl-R.xml 2007-06-09 15:14:03 UTC (rev 2029)
+++ trunk/jcl/packages/xml/JclVcl-R.xml 2007-06-09 20:22:33 UTC (rev 2030)
@@ -25,5 +25,6 @@
<File Name="..\..\source\vcl\JclGraphics.pas" Targets="Vcl" Formname="" Condition=""/>
<File Name="..\..\source\prototypes\JclGraphUtils.pas" Targets="VclDev" Formname="" Condition=""/>
<File Name="..\..\source\prototypes\JclGraphics.pas" Targets="VclDev" Formname="" Condition=""/>
+ <File Name="..\..\source\vcl\JclFont.pas" Targets="Vcl" Formname="" Condition=""/>
</Contains>
</Package>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-06-09 15:14:05
|
Revision: 2029
http://svn.sourceforge.net/jcl/?rev=2029&view=rev
Author: outchy
Date: 2007-06-09 08:14:03 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
Preparing JCL 1.100 (with support for C++Builder 2007)
Added Paths:
-----------
branches/JCL_1.100/
Copied: branches/JCL_1.100 (from rev 2015, trunk)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-06-09 15:11:48
|
Revision: 2028
http://svn.sourceforge.net/jcl/?rev=2028&view=rev
Author: outchy
Date: 2007-06-09 08:11:46 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
not copied from the right revision
Removed Paths:
-------------
branches/JCL_1.100/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-06-09 15:07:11
|
Revision: 2027
http://svn.sourceforge.net/jcl/?rev=2027&view=rev
Author: outchy
Date: 2007-06-09 08:07:07 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
Preparing JCL Version 1 Release 100 (with support for C++Builder 2007)
Added Paths:
-----------
branches/JCL_1.100/
Copied: branches/JCL_1.100 (from rev 2026, trunk)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sch...@us...> - 2007-06-09 14:08:59
|
Revision: 2026
http://svn.sourceforge.net/jcl/?rev=2026&view=rev
Author: schuettecarsten
Date: 2007-06-09 07:08:54 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
Fixed ExceptionHandler and ExceptionThreadHandler to handle IsIgnoredException correctly
Modified Paths:
--------------
trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas
trunk/jcl/experts/debug/dialog/ExceptDlg.pas
trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas
Modified: trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas
===================================================================
--- trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas 2007-06-08 21:38:48 UTC (rev 2025)
+++ trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas 2007-06-09 14:08:54 UTC (rev 2026)
@@ -453,37 +453,45 @@
class procedure T%FORMNAME%.ExceptionHandler(Sender: TObject; E: Exception);
begin
- if ExceptionShowing then
- Application.ShowException(Exception(E))
- else if Assigned(E) and not IsIgnoredException(E.ClassType) then
- begin
- ExceptionShowing := True;
- try
- ShowException(E, nil);
- finally
- ExceptionShowing := False;
+ if Assigned(E) then
+ if ExceptionShowing then
+ Application.ShowException(E)
+ else
+ begin
+ ExceptionShowing := True;
+ try
+ if IsIgnoredException(E.ClassType) then
+ Application.ShowException(E)
+ else
+ ShowException(E, nil);
+ finally
+ ExceptionShowing := False;
+ end;
end;
- end;
end;
//--------------------------------------------------------------------------------------------------
class procedure T%FORMNAME%.ExceptionThreadHandler(Thread: TJclDebugThread);
+var
+ E: Exception;
begin
- if ExceptionShowing then
- begin
- if Thread.SyncException is EXception then
- Application.ShowException(Exception(Thread.SyncException));
- end
- else
- begin
- ExceptionShowing := True;
- try
- ShowException(Thread.SyncException, Thread);
- finally
- ExceptionShowing := False;
+ E := Exception(Thread.SyncException);
+ if Assigned(E) then
+ if ExceptionShowing then
+ Application.ShowException(E)
+ else
+ begin
+ ExceptionShowing := True;
+ try
+ if IsIgnoredException(E.ClassType) then
+ Application.ShowException(E)
+ else
+ ShowException(E, Thread);
+ finally
+ ExceptionShowing := False;
+ end;
end;
- end;
end;
//--------------------------------------------------------------------------------------------------
Modified: trunk/jcl/experts/debug/dialog/ExceptDlg.pas
===================================================================
--- trunk/jcl/experts/debug/dialog/ExceptDlg.pas 2007-06-08 21:38:48 UTC (rev 2025)
+++ trunk/jcl/experts/debug/dialog/ExceptDlg.pas 2007-06-09 14:08:54 UTC (rev 2026)
@@ -397,37 +397,45 @@
class procedure TExceptionDialog.ExceptionHandler(Sender: TObject; E: Exception);
begin
- if ExceptionShowing then
- Application.ShowException(Exception(E))
- else if Assigned(E) and not IsIgnoredException(E.ClassType) then
- begin
- ExceptionShowing := True;
- try
- ShowException(E, nil);
- finally
- ExceptionShowing := False;
+ if Assigned(E) then
+ if ExceptionShowing then
+ Application.ShowException(E)
+ else
+ begin
+ ExceptionShowing := True;
+ try
+ if IsIgnoredException(E.ClassType) then
+ Application.ShowException(E)
+ else
+ ShowException(E, nil);
+ finally
+ ExceptionShowing := False;
+ end;
end;
- end;
end;
//--------------------------------------------------------------------------------------------------
class procedure TExceptionDialog.ExceptionThreadHandler(Thread: TJclDebugThread);
+var
+ E: Exception;
begin
- if ExceptionShowing then
- begin
- if Thread.SyncException is EXception then
- Application.ShowException(Exception(Thread.SyncException));
- end
- else
- begin
- ExceptionShowing := True;
- try
- ShowException(Thread.SyncException, Thread);
- finally
- ExceptionShowing := False;
+ E := Exception(Thread.SyncException);
+ if Assigned(E) then
+ if ExceptionShowing then
+ Application.ShowException(E)
+ else
+ begin
+ ExceptionShowing := True;
+ try
+ if IsIgnoredException(E.ClassType) then
+ Application.ShowException(E)
+ else
+ ShowException(E, Thread);
+ finally
+ ExceptionShowing := False;
+ end;
end;
- end;
end;
//--------------------------------------------------------------------------------------------------
Modified: trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas
===================================================================
--- trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas 2007-06-08 21:38:48 UTC (rev 2025)
+++ trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas 2007-06-09 14:08:54 UTC (rev 2026)
@@ -242,8 +242,8 @@
with TJclEmail.Create do
try
ParentWnd := Application.Handle;
- Recipients.Add('na...@do...');
- Subject := 'email subject';
+ Recipients.Add('su...@vi...');
+ Subject := 'Exception Report';
Body := ReportAsText;
SaveTaskWindows;
try
@@ -417,37 +417,45 @@
class procedure TExceptionDialogMail.ExceptionHandler(Sender: TObject; E: Exception);
begin
- if ExceptionShowing then
- Application.ShowException(Exception(E))
- else if Assigned(E) and not IsIgnoredException(E.ClassType) then
- begin
- ExceptionShowing := True;
- try
- ShowException(E, nil);
- finally
- ExceptionShowing := False;
+ if Assigned(E) then
+ if ExceptionShowing then
+ Application.ShowException(E)
+ else
+ begin
+ ExceptionShowing := True;
+ try
+ if IsIgnoredException(E.ClassType) then
+ Application.ShowException(E)
+ else
+ ShowException(E, nil);
+ finally
+ ExceptionShowing := False;
+ end;
end;
- end;
end;
//--------------------------------------------------------------------------------------------------
class procedure TExceptionDialogMail.ExceptionThreadHandler(Thread: TJclDebugThread);
+var
+ E: Exception;
begin
- if ExceptionShowing then
- begin
- if Thread.SyncException is EXception then
- Application.ShowException(Exception(Thread.SyncException));
- end
- else
- begin
- ExceptionShowing := True;
- try
- ShowException(Thread.SyncException, Thread);
- finally
- ExceptionShowing := False;
+ E := Exception(Thread.SyncException);
+ if Assigned(E) then
+ if ExceptionShowing then
+ Application.ShowException(E)
+ else
+ begin
+ ExceptionShowing := True;
+ try
+ if IsIgnoredException(E.ClassType) then
+ Application.ShowException(E)
+ else
+ ShowException(E, Thread);
+ finally
+ ExceptionShowing := False;
+ end;
end;
- end;
end;
//--------------------------------------------------------------------------------------------------
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cyc...@us...> - 2007-06-08 21:38:51
|
Revision: 2025
http://svn.sourceforge.net/jcl/?rev=2025&view=rev
Author: cycocrew
Date: 2007-06-08 14:38:48 -0700 (Fri, 08 Jun 2007)
Log Message:
-----------
Added JclFont unit in VCL area (SetObjectFontToSystemFont procedure)
Modified Paths:
--------------
trunk/jcl/packages/d11/JclVcl.dpk
trunk/jcl/packages/d11/JclVcl.dproj
trunk/jcl/source/windows/JclMiscel.pas
Added Paths:
-----------
trunk/jcl/source/vcl/JclFont.pas
Modified: trunk/jcl/packages/d11/JclVcl.dpk
===================================================================
--- trunk/jcl/packages/d11/JclVcl.dpk 2007-06-06 14:22:21 UTC (rev 2024)
+++ trunk/jcl/packages/d11/JclVcl.dpk 2007-06-08 21:38:48 UTC (rev 2025)
@@ -1,13 +1,4 @@
package JclVcl;
-{
------------------------------------------------------------------------------
- DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
- ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml)
-
- Last generated: 16-04-2007 07:23:45 UTC
------------------------------------------------------------------------------
-}
-
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
@@ -39,13 +30,12 @@
rtl,
vcl,
vcljpg,
- Jcl
- ;
-
+ Jcl;
+
contains
- JclPrint in '..\..\source\vcl\JclPrint.pas' ,
- JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' ,
- JclGraphics in '..\..\source\vcl\JclGraphics.pas'
- ;
+ JclPrint in '..\..\source\vcl\JclPrint.pas',
+ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas',
+ JclGraphics in '..\..\source\vcl\JclGraphics.pas',
+ JclFont in '..\..\source\vcl\JclFont.pas';
end.
Modified: trunk/jcl/packages/d11/JclVcl.dproj
===================================================================
--- trunk/jcl/packages/d11/JclVcl.dproj 2007-06-06 14:22:21 UTC (rev 2024)
+++ trunk/jcl/packages/d11/JclVcl.dproj 2007-06-08 21:38:48 UTC (rev 2025)
@@ -1,10 +1,12 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<?xml version="1.0" encoding="utf-8"?>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
- <ProjectGuid></ProjectGuid>
+ <ProjectGuid>{dac973da-b69f-4b0f-b2b7-94e2e91107a1}</ProjectGuid>
<MainSource>JclVcl.dpk</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
+ <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\..\Public\Documents\RAD Studio\5.0\Bpl\JclVcl110.bpl</DCC_DependencyCheckOutputName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version>
@@ -30,61 +32,35 @@
<DCC_UnitSearchPath>..\..\lib\d11\debug;..\..\source</DCC_UnitSearchPath>
<DCC_ResourcePath>..\..\lib\d11\debug;..\..\source</DCC_ResourcePath>
<DCC_ObjPath>..\..\lib\d11\debug;..\..\source</DCC_ObjPath>
- <DCC_IncludePath>..\..\lib\d11\debug;..\..\source</DCC_IncludePath>
+ <DCC_IncludePath>..\..\lib\d11\debug;..\..\source</DCC_IncludePath>
+ <DCC_DebugInformation>False</DCC_DebugInformation>
+ <DCC_WriteableConstants>True</DCC_WriteableConstants>
+ <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
+ <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
+ <DCC_ImageBase>48200000</DCC_ImageBase>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
- <BorlandProject xmlns="">
- <Delphi.Personality>
- <Parameters>
- <Parameters Name="UseLauncher">False</Parameters>
- <Parameters Name="LoadAllSymbols">True</Parameters>
- <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
- </Parameters>
- <VersionInfo>
- <VersionInfo Name="IncludeVerInfo">True</VersionInfo>
- <VersionInfo Name="AutoIncBuild">False</VersionInfo>
- <VersionInfo Name="MajorVer">2</VersionInfo>
- <VersionInfo Name="MinorVer">0</VersionInfo>
- <VersionInfo Name="Release">0</VersionInfo>
- <VersionInfo Name="Build">2552</VersionInfo>
- <VersionInfo Name="Debug">False</VersionInfo>
- <VersionInfo Name="PreRelease">False</VersionInfo>
- <VersionInfo Name="Special">False</VersionInfo>
- <VersionInfo Name="Private">False</VersionInfo>
- <VersionInfo Name="DLL">False</VersionInfo>
- <VersionInfo Name="Locale">1031</VersionInfo>
- <VersionInfo Name="CodePage">1252</VersionInfo>
- </VersionInfo>
- <VersionInfoKeys>
- <VersionInfoKeys Name="CompanyName">Project JEDI</VersionInfoKeys>
- <VersionInfoKeys Name="FileDescription">JEDI Code Library VCL package</VersionInfoKeys>
- <VersionInfoKeys Name="FileVersion">2.0.0.2552</VersionInfoKeys>
- <VersionInfoKeys Name="InternalName">JclVcl</VersionInfoKeys>
- <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2007 Project JEDI</VersionInfoKeys>
- <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
- <VersionInfoKeys Name="OriginalFilename">JclVcl110.bpl</VersionInfoKeys>
- <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys>
- <VersionInfoKeys Name="ProductVersion">2.0 Build 2552</VersionInfoKeys>
- </VersionInfoKeys>
- <Source>
- <Source Name="MainSource">JclVcl.dpk</Source>
- </Source>
- <Package_Options>
- <Package_Options Name="LibSuffix">110</Package_Options>
- </Package_Options>
- </Delphi.Personality>
- </BorlandProject>
- </BorlandProject>
+<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">2552</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1031</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">Project JEDI</VersionInfoKeys><VersionInfoKeys Name="FileDescription">JEDI Code Library VCL package</VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.0.0.2552</VersionInfoKeys><VersionInfoKeys Name="InternalName">JclVcl</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2007 Project JEDI</VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename">JclVcl110.bpl</VersionInfoKeys><VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.0 Build 2552</VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">JclVcl.dpk</Source></Source><Package_Options><Package_Options Name="LibSuffix">110</Package_Options> <Package_Options Name="PackageDescription">JEDI Code Library VCL package</Package_Options>
+ <Package_Options Name="ImplicitBuild">False</Package_Options>
+ <Package_Options Name="DesigntimeOnly">False</Package_Options>
+ <Package_Options Name="RuntimeOnly">True</Package_Options>
+ </Package_Options></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
- <ItemGroup />
+ <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup>
<DelphiCompile Include="JclVcl.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
- <DCCReference Include="rtl.dcp" />
+ <DCCReference Include="..\..\source\vcl\Jcl.dcp" />
+ <DCCReference Include="..\..\source\vcl\JclFont.pas" />
+ <DCCReference Include="..\..\source\vcl\JclGraphics.pas" />
+ <DCCReference Include="..\..\source\vcl\JclGraphUtils.pas" />
+ <DCCReference Include="..\..\source\vcl\JclPrint.pas" />
+ <DCCReference Include="..\..\source\vcl\rtl.dcp" />
+ <DCCReference Include="..\..\source\vcl\vcl.dcp" />
+ <DCCReference Include="..\..\source\vcl\vcljpg.dcp" />
</ItemGroup>
- <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
-</Project>
+</Project>
\ No newline at end of file
Added: trunk/jcl/source/vcl/JclFont.pas
===================================================================
--- trunk/jcl/source/vcl/JclFont.pas (rev 0)
+++ trunk/jcl/source/vcl/JclFont.pas 2007-06-08 21:38:48 UTC (rev 2025)
@@ -0,0 +1,108 @@
+{**************************************************************************************************}
+{ }
+{ Project JEDI Code Library (JCL) }
+{ }
+{ 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/ }
+{ }
+{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF }
+{ ANY KIND, either express or implied. See the License for the specific language governing rights }
+{ and limitations under the License. }
+{ }
+{ The Original Code is JclFont.pas. }
+{ }
+{ The Initial Developer of the Original Code is Jean-Fabien Connault. }
+{ Portions created by these individuals are Copyright (C) of these individuals. }
+{ All Rights Reserved. }
+{ }
+{**************************************************************************************************}
+
+unit JclFont;
+
+interface
+
+type
+ TFontType = (ftAuto, ftCaption, ftContent);
+
+procedure SetObjectFontToSystemFont(const AObject: TObject; const FontType: TFontType = ftAuto);
+
+implementation
+
+uses
+ StdCtrls, ComCtrls, Graphics, TypInfo,
+ JclSysUtils, JclSysInfo;
+
+procedure SetCaptionFont(const AObjectFont: TFont);
+begin
+ if IsWinVista or IsWinServer2008 then
+ begin
+ AObjectFont.Name := 'Segoe UI';
+ AObjectFont.Size := 9;
+ end
+ else if IsWinXP or IsWin2k or IsWin2003 then
+ begin
+ // MS Shell Dlg 2
+ AObjectFont.Name := 'Tahoma';
+ AObjectFont.Size := 8;
+ end
+ else
+ begin
+ // MS Shell Dlg
+ AObjectFont.Name := 'MS Sans Serif';
+ AObjectFont.Size := 8;
+ end;
+end;
+
+procedure SetContentFont(const AObjectFont: TFont);
+begin
+ if IsWinVista or IsWinServer2008 then
+ begin
+ AObjectFont.Name := 'Calibri';
+ AObjectFont.Size := 9;
+ end
+ else if IsWinXP or IsWin2k or IsWin2003 then
+ begin
+ // MS Shell Dlg 2
+ AObjectFont.Name := 'Verdana';
+ AObjectFont.Size := 8;
+ end
+ else
+ begin
+ // MS Shell Dlg
+ AObjectFont.Name := 'MS Sans Serif';
+ AObjectFont.Size := 8;
+ end;
+end;
+
+procedure SetObjectFontToSystemFont(const AObject: TObject; const FontType: TFontType);
+var
+ AObjectFont: TFont;
+ AFontType: TFontType;
+begin
+ if (AObject.ClassType = TFont) then
+ AObjectFont := TFont(AObject)
+ else
+ AObjectFont := TFont(GetObjectProp(AObject, 'Font', TFont));
+
+ if (FontType = ftAuto) then
+ begin
+ if (AObject.ClassType = TMemo) or (AObject.ClassType = TRichEdit) then
+ AFontType := ftContent
+ else
+ AFontType := ftCaption;
+ end
+ else
+ AFontType := FontType;
+
+ if (AFontType = ftCaption) then
+ begin
+ SetCaptionFont(AObjectFont);
+ end
+ else if (AFontType = ftContent) then
+ begin
+ SetContentFont(AObjectFont);
+ end;
+end;
+
+end.
Property changes on: trunk/jcl/source/vcl/JclFont.pas
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Id LastChangedDate LastChangedBy LastChangedRevision URL
Name: svn:eol-style
+ native
Modified: trunk/jcl/source/windows/JclMiscel.pas
===================================================================
--- trunk/jcl/source/windows/JclMiscel.pas 2007-06-06 14:22:21 UTC (rev 2024)
+++ trunk/jcl/source/windows/JclMiscel.pas 2007-06-08 21:38:48 UTC (rev 2025)
@@ -1,4 +1,4 @@
-{**************************************************************************************************}
+{**************************************************************************************************}
{ }
{ Project JEDI Code Library (JCL) }
{ }
@@ -26,7 +26,7 @@
{ }
{**************************************************************************************************}
{ }
-{ Various miscellanuous routines that do not (yet) fit nicely into other units }
+{ Various miscellaneous routines that do not (yet) fit nicely into other units }
{ }
{**************************************************************************************************}
@@ -109,6 +109,22 @@
SysUtils,
JclResources, JclSecurity, JclStrings, JclSysUtils, JclWin32, JclSysInfo;
+function SetDisplayResolution(const XRes, YRes: DWORD): Longint;
+var
+ DevMode: TDeviceMode;
+begin
+ Result := DISP_CHANGE_FAILED;
+ FillChar(DevMode, SizeOf(DevMode), #0);
+ DevMode.dmSize := SizeOf(DevMode);
+ if EnumDisplaySettings(nil, 0, DevMode) then
+ begin
+ DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
+ DevMode.dmPelsWidth := XRes;
+ DevMode.dmPelsHeight := YRes;
+ Result := ChangeDisplaySettings(DevMode, 0);
+ end;
+end;
+
function CreateDOSProcessRedirected(const CommandLine, InputFile, OutputFile: string): Boolean;
var
StartupInfo: TStartupInfo;
@@ -349,22 +365,6 @@
{$ENDIF MSWINDOWS}
end;
-function SetDisplayResolution(const XRes, YRes: DWORD): Longint;
-var
- DevMode: TDeviceMode;
-begin
- Result := DISP_CHANGE_FAILED;
- FillChar(DevMode, SizeOf(DevMode), #0);
- DevMode.dmSize := SizeOf(DevMode);
- if EnumDisplaySettings(nil, 0, DevMode) then
- begin
- DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
- DevMode.dmPelsWidth := XRes;
- DevMode.dmPelsHeight := YRes;
- Result := ChangeDisplaySettings(DevMode, 0);
- end;
-end;
-
function GetAllowedPowerOperations: TJclAllowedPowerOperations;
begin
{$IFDEF MSWINDOWS}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cyc...@us...> - 2007-06-06 10:32:48
|
Revision: 2023
http://svn.sourceforge.net/jcl/?rev=2023&view=rev
Author: cycocrew
Date: 2007-06-06 03:32:14 -0700 (Wed, 06 Jun 2007)
Log Message:
-----------
Added CopyDirectory, MoveDirectory and IsBackupFileName functions in JClFileUtils.pas
Added IsUACEnabled function in JclSysInfo.pas
Modified Paths:
--------------
trunk/help/FileUtils.dtx
trunk/jcl/source/common/JclFileUtils.pas
trunk/jcl/source/common/JclSysInfo.pas
Modified: trunk/help/FileUtils.dtx
===================================================================
--- trunk/help/FileUtils.dtx 2007-06-05 07:42:14 UTC (rev 2022)
+++ trunk/help/FileUtils.dtx 2007-06-06 10:32:14 UTC (rev 2023)
@@ -638,7 +638,7 @@
relative paths to absolute ones - and thus needs to evaluate the program's
environment.
Donator:
- Jeff
+ Jean-Fabien Connault
--------------------------------------------------------------------------------
@@PathGetLongName
<GROUP FilesandIO.Pathmanipulation>
@@ -1106,7 +1106,7 @@
Platforms:
Windows, Unix
Donator:
- Marcel van Brakel
+ Jean-Fabien Connault
Contributor:
Robert Rossmair
--------------------------------------------------------------------------------
@@ -2204,7 +2204,7 @@
the system Recycle Bin instead of being
deleted.
Category: Files and IO
-Donator: Anthony Steele
+Donator: Jean-Fabien Connault
Quick info:
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
@@ -2255,7 +2255,7 @@
Depth - Specifies the maximum of path parts to return.
Path - The path to extract parts from.
Donator:
- Jeff
+ Jean-Fabien Connault
See Also
PathGetDepth
--------------------------------------------------------------------------------
@@ -2270,7 +2270,7 @@
See Also
PathExtractPathDepth
Donator:
- Jeff
+ Jean-Fabien Connault
--------------------------------------------------------------------------------
@@UnlockVolume
<GROUP FilesandIO.FilesandDirectories>
Modified: trunk/jcl/source/common/JclFileUtils.pas
===================================================================
--- trunk/jcl/source/common/JclFileUtils.pas 2007-06-05 07:42:14 UTC (rev 2022)
+++ trunk/jcl/source/common/JclFileUtils.pas 2007-06-06 10:32:14 UTC (rev 2023)
@@ -220,6 +220,8 @@
function CloseVolume(var Volume: THandle): Boolean;
{$IFNDEF FPC}
function DeleteDirectory(const DirectoryName: string; MoveToRecycleBin: Boolean): Boolean;
+function CopyDirectory(ExistingDirectoryName, NewDirectoryName: string): Boolean;
+function MoveDirectory(ExistingDirectoryName, NewDirectoryName: string): Boolean;
{$ENDIF ~FPC}
function DelTree(const Path: string): Boolean;
function DelTreeEx(const Path: string; AbortOnFailure: Boolean; Progress: TDelTreeProgress): Boolean;
@@ -238,6 +240,7 @@
function FileMove(const ExistingFileName, NewFileName: string; ReplaceExisting: Boolean = False): Boolean;
function FileRestore(const FileName: string): Boolean;
function GetBackupFileName(const FileName: string): string;
+function IsBackupFileName(const FileName: string): Boolean;
function FileGetDisplayName(const FileName: string): string;
{$IFNDEF CLR}
function FileGetGroupName(const FileName: string {$IFDEF UNIX}; ResolveSymLinks: Boolean = True {$ENDIF}): string;
@@ -2750,6 +2753,39 @@
else
Result := DelTree(DirectoryName);
end;
+
+function CopyDirectory(ExistingDirectoryName, NewDirectoryName: string): Boolean;
+var
+ SH: SHFILEOPSTRUCT;
+begin
+ FillChar(SH, SizeOf(SH), 0);
+ with SH do
+ begin
+ Wnd := 0;
+ wFunc := FO_COPY;
+ pFrom := PChar(PathRemoveSeparator(ExistingDirectoryName) + #0);
+ pTo := PChar(PathRemoveSeparator(NewDirectoryName) + #0);
+ fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR or FOF_SILENT;
+ end;
+ Result := SHFileOperation(SH) = 0;
+end;
+
+function MoveDirectory(ExistingDirectoryName, NewDirectoryName: string): Boolean;
+var
+ SH: SHFILEOPSTRUCT;
+begin
+ FillChar(SH, SizeOf(SH), 0);
+ with SH do
+ begin
+ Wnd := 0;
+ wFunc := FO_MOVE;
+ pFrom := PChar(PathRemoveSeparator(ExistingDirectoryName) + #0);
+ pTo := PChar(PathRemoveSeparator(NewDirectoryName) + #0);
+ fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR or FOF_SILENT;
+ end;
+ Result := SHFileOperation(SH) = 0;
+end;
+
{$ENDIF ~FPC}
function DelTree(const Path: string): Boolean;
@@ -3098,6 +3134,11 @@
Result := ChangeFileExt(FileName, NewExt);
end;
+function IsBackupFileName(const FileName: string): Boolean;
+begin
+ Result := (pos('.~', ExtractFileExt(FileName)) = 1);
+end;
+
function FileGetDisplayName(const FileName: string): string;
{$IFDEF Win32API}
var
Modified: trunk/jcl/source/common/JclSysInfo.pas
===================================================================
--- trunk/jcl/source/common/JclSysInfo.pas 2007-06-05 07:42:14 UTC (rev 2022)
+++ trunk/jcl/source/common/JclSysInfo.pas 2007-06-06 10:32:14 UTC (rev 2023)
@@ -76,7 +76,7 @@
System.Net, System.ComponentModel,
{$ELSE ~CLR}
{$IFDEF MSWINDOWS}
- Windows, ActiveX,
+ Windows, ActiveX, Registry,
{$IFNDEF FPC}
ShlObj,
{$ENDIF ~FPC}
@@ -1262,7 +1262,7 @@
function GetFreeSystemResources: TFreeSystemResources; overload;
function GetBPP: Cardinal;
-// installed programs information
+// Installed programs information
function ProgIDExists(const ProgID: string): Boolean;
function IsWordInstalled: Boolean;
function IsExcelInstalled: Boolean;
@@ -1272,9 +1272,11 @@
function IsOutlookInstalled: Boolean;
function IsInternetExplorerInstalled: Boolean;
function IsMSProjectInstalled: Boolean;
-
function IsOpenOfficeInstalled: Boolean;
+// Windows Vista/Server 2008 UAC (User Account Control)
+function IsUACEnabled: Boolean;
+
{$ENDIF MSWINDOWS}
// Public global variables
@@ -5223,6 +5225,29 @@
Result := ProgIDExists('com.sun.star.ServiceManager');
end;
+//=== Windows Vista/Server 2008 UAC (User Account Control) ===================
+
+function IsUACEnabled: Boolean;
+var
+ UACActive: Boolean;
+ Registry: TRegistry;
+begin
+ Registry := TRegistry.Create;
+ try
+ Registry.RootKey := HKEY_LOCAL_MACHINE;
+ if Registry.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System', False) then
+ begin
+ UACActive := Registry.ReadBool('EnableLUA');
+ Registry.CloseKey;
+ end
+ else
+ UACActive := False;
+ finally
+ Registry.Free;
+ end;
+ Result := (IsWinVista or IsWinServer2008) and UACActive;
+end;
+
//=== Initialization/Finalization ============================================
procedure InitSysInfo;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cyc...@us...> - 2007-06-05 07:42:18
|
Revision: 2022
http://svn.sourceforge.net/jcl/?rev=2022&view=rev
Author: cycocrew
Date: 2007-06-05 00:42:14 -0700 (Tue, 05 Jun 2007)
Log Message:
-----------
Help updates and cosmetic changes (Jedi/JEDI)
Modified Paths:
--------------
trunk/jcl/docs/Contributors.html
trunk/jcl/docs/Contributors.txt
trunk/jcl/docs/Experts.html
trunk/jcl/docs/Readme.html
trunk/jcl/docs/Readme.txt
trunk/jcl/docs/ThreadSafe.txt
trunk/jcl/docs/cps.html
trunk/jcl/examples/windows/delphitools/common/ToolsUtils.pas
trunk/jcl/examples/windows/edisdk/comserver/EDISDK.dof
trunk/jcl/examples/windows/edisdk/comserver/JclEDICOM_ANSIX12.pas
trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas
trunk/jcl/experts/versioncontrol/VersionControlImpl.pas
trunk/jcl/install/JclInstall.pas
trunk/jcl/install/JediInstaller.bdsproj
trunk/jcl/install/JediInstaller.dof
trunk/jcl/install/JediRegInfo.pas
trunk/jcl/install/RegHelper.dpr
trunk/jcl/install/RegHelper.rc
trunk/jcl/packages/c5/JclBaseExpertC50.rc
trunk/jcl/packages/c5/JclC50.rc
trunk/jcl/packages/c5/JclDebugExpertC50.rc
trunk/jcl/packages/c5/JclDebugExpertDLLC50.rc
trunk/jcl/packages/c5/JclFavoriteFoldersExpertC50.rc
trunk/jcl/packages/c5/JclFavoriteFoldersExpertDLLC50.rc
trunk/jcl/packages/c5/JclProjectAnalysisExpertC50.rc
trunk/jcl/packages/c5/JclProjectAnalysisExpertDLLC50.rc
trunk/jcl/packages/c5/JclRepositoryExpertC50.rc
trunk/jcl/packages/c5/JclRepositoryExpertDLLC50.rc
trunk/jcl/packages/c5/JclSIMDViewExpertC50.rc
trunk/jcl/packages/c5/JclSIMDViewExpertDLLC50.rc
trunk/jcl/packages/c5/JclThreadNameExpertC50.rc
trunk/jcl/packages/c5/JclThreadNameExpertDLLC50.rc
trunk/jcl/packages/c5/JclUsesExpertC50.rc
trunk/jcl/packages/c5/JclUsesExpertDLLC50.rc
trunk/jcl/packages/c5/JclVersionControlExpertC50.rc
trunk/jcl/packages/c5/JclVersionControlExpertDLLC50.rc
trunk/jcl/packages/c5/template.rc
trunk/jcl/packages/c6/Jcl.rc
trunk/jcl/packages/c6/JclBaseExpert.rc
trunk/jcl/packages/c6/JclDebugExpert.rc
trunk/jcl/packages/c6/JclDebugExpertDLL.rc
trunk/jcl/packages/c6/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/c6/JclProjectAnalysisExpert.rc
trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/c6/JclRepositoryExpert.rc
trunk/jcl/packages/c6/JclRepositoryExpertDLL.rc
trunk/jcl/packages/c6/JclSIMDViewExpert.rc
trunk/jcl/packages/c6/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/c6/JclThreadNameExpert.rc
trunk/jcl/packages/c6/JclThreadNameExpertDLL.rc
trunk/jcl/packages/c6/JclUsesExpert.rc
trunk/jcl/packages/c6/JclUsesExpertDLL.rc
trunk/jcl/packages/c6/JclVClx.rc
trunk/jcl/packages/c6/JclVcl.rc
trunk/jcl/packages/c6/JclVersionControlExpert.rc
trunk/jcl/packages/c6/JclVersionControlExpertDLL.rc
trunk/jcl/packages/c6/template.rc
trunk/jcl/packages/cs1/Jcl.bdsproj
trunk/jcl/packages/cs1/Jcl.rc
trunk/jcl/packages/cs1/JclBaseExpert.bdsproj
trunk/jcl/packages/cs1/JclBaseExpert.rc
trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj
trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/cs1/JclVersionControlExpertDLL.bdsproj
trunk/jcl/packages/cs1/JclVersionControlExpertDLL.rc
trunk/jcl/packages/cs1/template.bdsproj
trunk/jcl/packages/cs1/template.rc
trunk/jcl/packages/d10/Jcl.bdsproj
trunk/jcl/packages/d10/Jcl.rc
trunk/jcl/packages/d10/JclBaseExpert.bdsproj
trunk/jcl/packages/d10/JclBaseExpert.rc
trunk/jcl/packages/d10/JclDebugExpert.bdsproj
trunk/jcl/packages/d10/JclDebugExpert.rc
trunk/jcl/packages/d10/JclDebugExpertDLL.bdsproj
trunk/jcl/packages/d10/JclDebugExpertDLL.rc
trunk/jcl/packages/d10/JclFavoriteFoldersExpert.bdsproj
trunk/jcl/packages/d10/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.bdsproj
trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d10/JclProjectAnalysisExpert.bdsproj
trunk/jcl/packages/d10/JclProjectAnalysisExpert.rc
trunk/jcl/packages/d10/JclProjectAnalysisExpertDLL.bdsproj
trunk/jcl/packages/d10/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/d10/JclRepositoryExpert.bdsproj
trunk/jcl/packages/d10/JclRepositoryExpert.rc
trunk/jcl/packages/d10/JclRepositoryExpertDLL.bdsproj
trunk/jcl/packages/d10/JclRepositoryExpertDLL.rc
trunk/jcl/packages/d10/JclSIMDViewExpert.bdsproj
trunk/jcl/packages/d10/JclSIMDViewExpert.rc
trunk/jcl/packages/d10/JclSIMDViewExpertDLL.bdsproj
trunk/jcl/packages/d10/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/d10/JclThreadNameExpert.bdsproj
trunk/jcl/packages/d10/JclThreadNameExpert.rc
trunk/jcl/packages/d10/JclThreadNameExpertDLL.bdsproj
trunk/jcl/packages/d10/JclThreadNameExpertDLL.rc
trunk/jcl/packages/d10/JclVcl.bdsproj
trunk/jcl/packages/d10/JclVcl.rc
trunk/jcl/packages/d10/JclVersionControlExpert.bdsproj
trunk/jcl/packages/d10/JclVersionControlExpert.rc
trunk/jcl/packages/d10/JclVersionControlExpertDLL.bdsproj
trunk/jcl/packages/d10/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d10/template.bdsproj
trunk/jcl/packages/d10/template.rc
trunk/jcl/packages/d10.net/Jedi.Jcl.bdsproj
trunk/jcl/packages/d10.net/template.bdsproj
trunk/jcl/packages/d11/Jcl.dproj
trunk/jcl/packages/d11/Jcl.rc
trunk/jcl/packages/d11/JclBaseExpert.dproj
trunk/jcl/packages/d11/JclBaseExpert.rc
trunk/jcl/packages/d11/JclDebugExpert.dproj
trunk/jcl/packages/d11/JclDebugExpert.rc
trunk/jcl/packages/d11/JclDebugExpertDLL.dproj
trunk/jcl/packages/d11/JclDebugExpertDLL.rc
trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dproj
trunk/jcl/packages/d11/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dproj
trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d11/JclProjectAnalysisExpert.dproj
trunk/jcl/packages/d11/JclProjectAnalysisExpert.rc
trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.dproj
trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/d11/JclRepositoryExpert.dproj
trunk/jcl/packages/d11/JclRepositoryExpert.rc
trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj
trunk/jcl/packages/d11/JclRepositoryExpertDLL.rc
trunk/jcl/packages/d11/JclSIMDViewExpert.dproj
trunk/jcl/packages/d11/JclSIMDViewExpert.rc
trunk/jcl/packages/d11/JclSIMDViewExpertDLL.dproj
trunk/jcl/packages/d11/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/d11/JclThreadNameExpert.dproj
trunk/jcl/packages/d11/JclThreadNameExpert.rc
trunk/jcl/packages/d11/JclThreadNameExpertDLL.dproj
trunk/jcl/packages/d11/JclThreadNameExpertDLL.rc
trunk/jcl/packages/d11/JclVcl.dproj
trunk/jcl/packages/d11/JclVcl.rc
trunk/jcl/packages/d11/JclVersionControlExpert.dproj
trunk/jcl/packages/d11/JclVersionControlExpert.rc
trunk/jcl/packages/d11/JclVersionControlExpertDLL.dproj
trunk/jcl/packages/d11/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d11/template.dproj
trunk/jcl/packages/d11/template.rc
trunk/jcl/packages/d5/JclBaseExpertD50.rc
trunk/jcl/packages/d5/JclD50.rc
trunk/jcl/packages/d5/JclDebugExpertD50.rc
trunk/jcl/packages/d5/JclDebugExpertDLLD50.rc
trunk/jcl/packages/d5/JclFavoriteFoldersExpertD50.rc
trunk/jcl/packages/d5/JclFavoriteFoldersExpertDLLD50.rc
trunk/jcl/packages/d5/JclProjectAnalysisExpertD50.rc
trunk/jcl/packages/d5/JclProjectAnalysisExpertDLLD50.rc
trunk/jcl/packages/d5/JclRepositoryExpertD50.rc
trunk/jcl/packages/d5/JclRepositoryExpertDLLD50.rc
trunk/jcl/packages/d5/JclSIMDViewExpertD50.rc
trunk/jcl/packages/d5/JclSIMDViewExpertDLLD50.rc
trunk/jcl/packages/d5/JclThreadNameExpertD50.rc
trunk/jcl/packages/d5/JclThreadNameExpertDLLD50.rc
trunk/jcl/packages/d5/JclUsesExpertD50.rc
trunk/jcl/packages/d5/JclUsesExpertDLLD50.rc
trunk/jcl/packages/d5/JclVersionControlExpertD50.rc
trunk/jcl/packages/d5/JclVersionControlExpertDLLD50.rc
trunk/jcl/packages/d5/template.rc
trunk/jcl/packages/d6/Jcl.rc
trunk/jcl/packages/d6/JclBaseExpert.rc
trunk/jcl/packages/d6/JclDebugExpert.rc
trunk/jcl/packages/d6/JclDebugExpertDLL.rc
trunk/jcl/packages/d6/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/d6/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d6/JclProjectAnalysisExpert.rc
trunk/jcl/packages/d6/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/d6/JclRepositoryExpert.rc
trunk/jcl/packages/d6/JclRepositoryExpertDLL.rc
trunk/jcl/packages/d6/JclSIMDViewExpert.rc
trunk/jcl/packages/d6/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/d6/JclThreadNameExpert.rc
trunk/jcl/packages/d6/JclThreadNameExpertDLL.rc
trunk/jcl/packages/d6/JclUsesExpert.rc
trunk/jcl/packages/d6/JclUsesExpertDLL.rc
trunk/jcl/packages/d6/JclVClx.rc
trunk/jcl/packages/d6/JclVcl.rc
trunk/jcl/packages/d6/JclVersionControlExpert.rc
trunk/jcl/packages/d6/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d6/template.rc
trunk/jcl/packages/d7/Jcl.rc
trunk/jcl/packages/d7/JclBaseExpert.rc
trunk/jcl/packages/d7/JclDebugExpert.rc
trunk/jcl/packages/d7/JclDebugExpertDLL.rc
trunk/jcl/packages/d7/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/d7/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d7/JclProjectAnalysisExpert.rc
trunk/jcl/packages/d7/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/d7/JclRepositoryExpert.rc
trunk/jcl/packages/d7/JclRepositoryExpertDLL.rc
trunk/jcl/packages/d7/JclSIMDViewExpert.rc
trunk/jcl/packages/d7/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/d7/JclThreadNameExpert.rc
trunk/jcl/packages/d7/JclThreadNameExpertDLL.rc
trunk/jcl/packages/d7/JclUsesExpert.rc
trunk/jcl/packages/d7/JclUsesExpertDLL.rc
trunk/jcl/packages/d7/JclVClx.rc
trunk/jcl/packages/d7/JclVcl.rc
trunk/jcl/packages/d7/JclVersionControlExpert.rc
trunk/jcl/packages/d7/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d7/template.rc
trunk/jcl/packages/d8/Jcl.bdsproj
trunk/jcl/packages/d8/Jcl.rc
trunk/jcl/packages/d8/JclBaseExpert.bdsproj
trunk/jcl/packages/d8/JclBaseExpert.rc
trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.bdsproj
trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d8/JclVersionControlExpertDLL.bdsproj
trunk/jcl/packages/d8/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d8/template.bdsproj
trunk/jcl/packages/d8/template.rc
trunk/jcl/packages/d9/Jcl.bdsproj
trunk/jcl/packages/d9/Jcl.rc
trunk/jcl/packages/d9/JclBaseExpert.bdsproj
trunk/jcl/packages/d9/JclBaseExpert.rc
trunk/jcl/packages/d9/JclDebugExpert.bdsproj
trunk/jcl/packages/d9/JclDebugExpert.rc
trunk/jcl/packages/d9/JclDebugExpertDLL.bdsproj
trunk/jcl/packages/d9/JclDebugExpertDLL.rc
trunk/jcl/packages/d9/JclFavoriteFoldersExpert.bdsproj
trunk/jcl/packages/d9/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.bdsproj
trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d9/JclProjectAnalysisExpert.bdsproj
trunk/jcl/packages/d9/JclProjectAnalysisExpert.rc
trunk/jcl/packages/d9/JclProjectAnalysisExpertDLL.bdsproj
trunk/jcl/packages/d9/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/d9/JclRepositoryExpert.bdsproj
trunk/jcl/packages/d9/JclRepositoryExpert.rc
trunk/jcl/packages/d9/JclRepositoryExpertDLL.bdsproj
trunk/jcl/packages/d9/JclRepositoryExpertDLL.rc
trunk/jcl/packages/d9/JclSIMDViewExpert.bdsproj
trunk/jcl/packages/d9/JclSIMDViewExpert.rc
trunk/jcl/packages/d9/JclSIMDViewExpertDLL.bdsproj
trunk/jcl/packages/d9/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/d9/JclThreadNameExpert.bdsproj
trunk/jcl/packages/d9/JclThreadNameExpert.rc
trunk/jcl/packages/d9/JclThreadNameExpertDLL.bdsproj
trunk/jcl/packages/d9/JclThreadNameExpertDLL.rc
trunk/jcl/packages/d9/JclVcl.bdsproj
trunk/jcl/packages/d9/JclVcl.rc
trunk/jcl/packages/d9/JclVersionControlExpert.bdsproj
trunk/jcl/packages/d9/JclVersionControlExpert.rc
trunk/jcl/packages/d9/JclVersionControlExpertDLL.bdsproj
trunk/jcl/packages/d9/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d9/template.bdsproj
trunk/jcl/packages/d9/template.rc
trunk/jcl/packages/d9.net/Jedi.Jcl.bdsproj
trunk/jcl/packages/d9.net/template.bdsproj
trunk/jcl/packages/k3/Jcl.rc
trunk/jcl/packages/k3/JclVClx.rc
trunk/jcl/packages/k3/template.rc
trunk/jcl/source/common/JclAnsiStrings.pas
trunk/jcl/source/common/JclFileUtils.pas
trunk/jcl/source/common/JclResources.pas
trunk/jcl/source/common/JclStrings.pas
trunk/jcl/source/common/JclSysInfo.pas
trunk/jcl/source/common/JclSysUtils.pas
trunk/jcl/source/windows/JclCommCtrlAdmin.manifest
trunk/jcl/source/windows/JclCommCtrlAsInvoker.manifest
trunk/jcl/source/windows/JclNoDepAdmin.manifest
trunk/jcl/source/windows/JclNoDepAsInvoker.manifest
trunk/jcl/source/windows/JclShell.pas
Modified: trunk/jcl/docs/Contributors.html
===================================================================
--- trunk/jcl/docs/Contributors.html 2007-06-04 19:46:33 UTC (rev 2021)
+++ trunk/jcl/docs/Contributors.html 2007-06-05 07:42:14 UTC (rev 2022)
@@ -1,11 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
- <link rel="stylesheet" href="..\DclStyle.css">
+
+
+ <link rel="stylesheet" href="..%5CDclStyle.css">
+
+
<title>JCL Contributors (code donators)</title>
</head>
+
<body>
- <h2>Contributors</h2>
- <p>
+
+
+<h2>Contributors</h2>
+
+
+<p>
Following is a list of all people that donated, or gave permission to use their,
code in the JEDI Code Library. Be sure that you read the Contacting Authors page
in the JCL helpfile before contacting these people. Note that JCL is continously
@@ -13,187 +23,374 @@
even half way! Therefore it is very well possible that you donated code but it's
not in the JCL yet. However, if you're name is not in the list below then it's
likely that something has gone wrong. In that event, please
- <a href="mailto:jc...@de...?subject=JCL Donations">contact us</a>.
+ <a href="mailto:jc...@de...?subject=JCL%20Donations">contact us</a>.
</p>
- <p>
- <table>
+
+
+<p>
+
+<table>
+
+ <tbody>
+ <tr valign="top">
+
+ <td width="25%"><a href="mailto:aa...@bi...">aa</a></td>
+
+ <td width="25%"><a href="mailto:ala...@ao...">Alan Lloyd</a></td>
+
+ <td width="25%">Alex Denissov</td>
+
+ <td width="25%"><a href="mailto:al...@mt...">Alex Konshin</a></td>
+
+ </tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:aa...@bi...">aa</a></td>
- <td width=25%><a href="mailto:ala...@ao...">Alan Lloyd</a></td>
- <td width=25%>Alex Denissov</td>
- <td width=25%><a href="mailto:al...@mt...">Alex Konshin</a></td>
+
+ <td width="25%"><a href="mailto:ra...@ch...">Alexander Radchenko</a></td>
+
+ <td width="25%">Alexei Koudinov</td>
+
+ <td width="25%">Allan Lyons</td>
+
+ <td width="25%">Anders Melander</td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:ra...@ch...">Alexander Radchenko</a></td>
- <td width=25%>Alexei Koudinov</td>
- <td width=25%>Allan Lyons</td>
- <td width=25%>Anders Melander</td>
+
+ <td width="25%"><a href="mailto:asn...@us...">André Snepvangers</a></td>
+
+ <td width="25%"><a href="mailto:ah...@us...">Andreas Hausladen</a></td>
+
+ <td width="25%"><a href="mailto:Jak...@ad...">Andreas Jakobsche</a></td>
+
+ <td width="25%"><a href="mailto:ajo...@rp...">Angus Johnson</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:asn...@us...">Andr\xE9 Snepvangers</a></td>
- <td width=25%><a href="mailto:ah...@us...">Andreas Hausladen</a></td>
- <td width=25%><a href="mailto:Jak...@ad...">Andreas Jakobsche</a></td>
- <td width=25%><a href="mailto:ajo...@rp...">Angus Johnson</a></td>
+
+ <td width="25%"><a href="mailto:as...@ia...">Anthony Steele</a></td>
+
+ <td width="25%"><a href="mailto:az...@at...">Azret Botash</a></td>
+
+ <td width="25%">Barry Kelly</td>
+
+ <td width="25%"><a href="mailto:HB...@Er...">Bender Heri</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:as...@ia...">Anthony Steele</a></td>
- <td width=25%><a href="mailto:az...@at...">Azret Botash</a></td>
- <td width=25%>Barry Kelly</td>
- <td width=25%><a href="mailto:HB...@Er...">Bender Heri</a></td>
+
+ <td width="25%"><a href="mailto:ber...@ya...">Bernhard Berger</a></td>
+
+ <td width="25%"><a href="mailto:or...@bm...">Bryan Coutch</a></td>
+
+ <td width="25%"><a href="mailto:ca...@ca...">Carl Clark</a></td>
+
+ <td width="25%"><a href="mailto:ce...@ma...">Cenon Del Rosario</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:ber...@ya...">Bernhard Berger</a></td>
- <td width=25%><a href="mailto:or...@bm...">Bryan Coutch</a></td>
- <td width=25%><a href="mailto:ca...@ca...">Carl Clark</a></td>
- <td width=25%><a href="mailto:ce...@ma...">Cenon Del Rosario</a></td>
+
+ <td width="25%"><a href="mailto:cca...@in...">Charlie Calvert</a></td>
+
+ <td width="25%">Chris Morris</td>
+
+ <td width="25%">Clayton Collie</td>
+
+ <td width="25%"><a href="mailto:sa...@ia...">Corrie Engelbrecht</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:cca...@in...">Charlie Calvert</a></td>
- <td width=25%>Chris Morris</td>
- <td width=25%>Clayton Collie</td>
- <td width=25%><a href="mailto:sa...@ia...">Corrie Engelbrecht</a></td>
+
+ <td width="25%"><a href="mailto:Cyb...@ya...">Cybertron_549672</a></td>
+
+ <td width="25%"><a href="mailto:dj...@sg...">Daniel Møller</a></td>
+
+ <td width="25%"><a href="mailto:david@e.co.za">David Butler</a></td>
+
+ <td width="25%"><a href="mailto:dhe...@Pi...">David Hervieux</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:Cyb...@ya...">Cybertron_549672</a></td>
- <td width=25%><a href="mailto:dj...@sg...">Daniel M\xF8ller</a></td>
- <td width=25%><a href="mailto:david@e.co.za">David Butler</a></td>
- <td width=25%><a href="mailto:dhe...@Pi...">David Hervieux</a></td>
+
+ <td width="25%"><a href="mailto:de...@da...">Deian Ivanov</a></td>
+
+ <td width="25%"><a href="mailto:de...@em...">Dewald Hess</a></td>
+
+ <td width="25%"><a href="mailto:rm...@fe...">Dick Maley (Advanced Delphi Systems)</a></td>
+
+ <td width="25%"><a href="mailto:dy...@in...">Dylan Thomas</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:de...@da...">Deian Ivanov</a></td>
- <td width=25%><a href="mailto:de...@em...">Dewald Hess</a></td>
- <td width=25%><a href="mailto:rm...@fe...">Dick Maley (Advanced Delphi Systems)</a></td>
- <td width=25%><a href="mailto:dy...@in...">Dylan Thomas</a></td>
+
+ <td width="25%"><a href="mailto:Ear...@at...">Earl F. Glynn</a></td>
+
+ <td width="25%">Eric S. Fisher</td>
+
+ <td width="25%">Ernesto Benestante</td>
+
+ <td width="25%">ESB Consultancy</td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:Ear...@at...">Earl F. Glynn</a></td>
- <td width=25%>Eric S. Fisher</td>
- <td width=25%>Ernesto Benestante</td>
- <td width=25%>ESB Consultancy</td>
+
+ <td width="25%"><a href="mailto:ftf...@di...">Felipe de Toledo Farias</a></td>
+
+ <td width="25%"><a href="mailto:fl...@us...">Flier Lu</a></td>
+
+ <td width="25%"><a href="mailto:ouc...@la...">Florent Ouchet</a></td>
+
+ <td width="25%"><a href="mailto:hal...@c2...">Hallvard Vassbotn</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:ftf...@di...">Felipe de Toledo Farias</a></td>
- <td width=25%><a href="mailto:fl...@us...">Flier Lu</a></td>
- <td width=25%><a href="mailto:ouc...@la...">Florent Ouchet</a></td>
- <td width=25%><a href="mailto:hal...@c2...">Hallvard Vassbotn</a></td>
+
+ <td width="25%"><a href="mailto:he...@us...">Heinz Zastrau</a></td>
+
+ <td width="25%"><a href="mailto:he...@wr...">Helen Borrie</a></td>
+
+ <td width="25%">Heri Bender</td>
+
+ <td width="25%">Huanlin Tsai</td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:he...@us...">Heinz Zastrau</a></td>
- <td width=25%><a href="mailto:he...@wr...">Helen Borrie</a></td>
- <td width=25%>Heri Bender</td>
- <td width=25%>Huanlin Tsai</td>
+
+ <td width="25%"><a href="mailto:ba...@oz...">Ivo Bauer</a></td>
+
+ <td width="25%"><a href="mailto:Jac...@On...">Jack Bombeeck</a></td>
+
+ <td width="25%"><a href="mailto:ja...@eu...">Jack N.A. Bakker</a></td>
+
+ <td width="25%"><a href="mailto:su...@ja...">James Azarja</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:ba...@oz...">Ivo Bauer</a></td>
- <td width=25%><a href="mailto:Jac...@On...">Jack Bombeeck</a></td>
- <td width=25%><a href="mailto:ja...@eu...">Jack N.A. Bakker</a></td>
- <td width=25%><a href="mailto:su...@ja...">James Azarja</a></td>
+
+ <td width="25%">Jean Debord</td>
+
+ <td width="25%"><a href="mailto:cyc...@wa...">Jean-Fabien Connault</a></td>
+
+ <td width="25%"><a href="mailto:rd...@us...">Jean-Philippe BEMPEL</a></td>
+
+ <td width="25%">Jeroen Speldekamp</td>
+
</tr>
+
<tr valign="top">
- <td width=25%>Jean Debord</td>
- <td width=25%>Jean-Fabien Connault</td>
- <td width=25%><a href="mailto:rd...@us...">Jean-Philippe BEMPEL</a></td>
- <td width=25%>Jeroen Speldekamp</td>
+
+ <td width="25%"><a href="mailto:joh...@gm...">Johannes Berg</a></td>
+
+ <td width="25%"><a href="mailto:ja...@ho...">John C Molyneux</a></td>
+
+ <td width="25%"><a href="mailto:jud...@mi...">Jud McCranie</a></td>
+
+ <td width="25%"><a href="mailto:j.f...@ne...">Julien Ferraro</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:joh...@gm...">Johannes Berg</a></td>
- <td width=25%><a href="mailto:ja...@ho...">John C Molyneux</a></td>
- <td width=25%><a href="mailto:jud...@mi...">Jud McCranie</a></td>
- <td width=25%><a href="mailto:j.f...@ne...">Julien Ferraro</a></td>
+
+ <td width="25%"><a href="mailto:gal...@te...">Kevin S. Gallagher</a></td>
+
+ <td width="25%"><a href="mailto:la...@ci...">Lasse Vågsæther Karlsen</a></td>
+
+ <td width="25%">Leonard Wennekers</td>
+
+ <td width="25%"><a href="mailto:lir...@ho...">Liran Shahar</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:gal...@te...">Kevin S. Gallagher</a></td>
- <td width=25%><a href="mailto:la...@ci...">Lasse V\xE5gs\xE6ther Karlsen</a></td>
- <td width=25%>Leonard Wennekers</td>
- <td width=25%><a href="mailto:lir...@ho...">Liran Shahar</a></td>
+
+ <td width="25%"><a href="mailto:ll...@in...">Lloyd Kinsella</a></td>
+
+ <td width="25%"><a href="mailto:lu...@us...">Lucjan Lukasik</a></td>
+
+ <td width="25%"><a href="mailto:mav...@cs...">M.H. Avegaart</a></td>
+
+ <td width="25%"><a href="mailto:ed...@cc...">Malcolm Edgar</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:ll...@in...">Lloyd Kinsella</a></td>
- <td width=25%><a href="mailto:lu...@us...">Lucjan Lukasik</a></td>
- <td width=25%><a href="mailto:mav...@cs...">M.H. Avegaart</a></td>
- <td width=25%><a href="mailto:ed...@cc...">Malcolm Edgar</a></td>
+
+ <td width="25%"><a href="mailto:ma...@us...">Manlio Laschena</a></td>
+
+ <td width="25%">Marc Convents</td>
+
+ <td width="25%"><a href="mailto:ma...@ze...">Marcel Bestebroer</a></td>
+
+ <td width="25%"><a href="mailto:br...@ba...">Marcel van Brakel</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:ma...@us...">Manlio Laschena</a></td>
- <td width=25%>Marc Convents</td>
- <td width=25%><a href="mailto:ma...@ze...">Marcel Bestebroer</a></td>
- <td width=25%><a href="mailto:br...@ba...">Marcel van Brakel</a></td>
+
+ <td width="25%"><a href="mailto:wi...@po...">Marcin Wieczorek</a></td>
+
+ <td width="25%"><a href="mailto:Don...@gm...">Marco Klemm</a></td>
+
+ <td width="25%"><a href="mailto:oc...@ya...">Mario R. Carro</a></td>
+
+ <td width="25%"><a href="mailto:ma...@ca...">Marius le Roux</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:wi...@po...">Marcin Wieczorek</a></td>
- <td width=25%><a href="mailto:Don...@gm...">Marco Klemm</a></td>
- <td width=25%><a href="mailto:oc...@ya...">Mario R. Carro</a></td>
- <td width=25%><a href="mailto:ma...@ca...">Marius le Roux</a></td>
+
+ <td width="25%">Mark Vaughan</td>
+
+ <td width="25%">Martin Kimmings</td>
+
+ <td width="25%">Martin Kubecka</td>
+
+ <td width="25%"><a href="mailto:ni...@da...">Massimo Maria Ghisalberti</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%>Mark Vaughan</td>
- <td width=25%>Martin Kimmings</td>
- <td width=25%>Martin Kubecka</td>
- <td width=25%><a href="mailto:ni...@da...">Massimo Maria Ghisalberti</a></td>
+
+ <td width="25%"><a href="mailto:MHa...@bu...">Matt Hamilton</a></td>
+
+ <td width="25%"><a href="mailto:mt...@us...">Matthias Thoma</a></td>
+
+ <td width="25%"><a href="mailto:mic...@oz...">Michael Rynn</a></td>
+
+ <td width="25%"><a href="mailto:msc...@bs...">Michael Schnell</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:MHa...@bu...">Matt Hamilton</a></td>
- <td width=25%><a href="mailto:mt...@us...">Matthias Thoma</a></td>
- <td width=25%><a href="mailto:mic...@oz...">Michael Rynn</a></td>
- <td width=25%><a href="mailto:msc...@bs...">Michael Schnell</a></td>
+
+ <td width="25%"><a href="mailto:ea...@ms...">Michael Tsai</a></td>
+
+ <td width="25%">Michael Winter</td>
+
+ <td width="25%"><a href="mailto:pu...@li...">Mike Lischke</a></td>
+
+ <td width="25%"><a href="mailto:nh...@ic...">Nick Hodges</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:ea...@ms...">Michael Tsai</a></td>
- <td width=25%>Michael Winter</td>
- <td width=25%><a href="mailto:pu...@li...">Mike Lischke</a></td>
- <td width=25%><a href="mailto:nh...@ic...">Nick Hodges</a></td>
+
+ <td width="25%"><a href="mailto:n....@si...">Nils Haeck</a></td>
+
+ <td width="25%"><a href="mailto:ass...@us...">Oliver Schneider</a></td>
+
+ <td width="25%"><a href="mailto:ob...@us...">Olivier Sannier</a></td>
+
+ <td width="25%"><a href="mailto:pat...@ie...">Patrick van Laake</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:n....@si...">Nils Haeck</a></td>
- <td width=25%><a href="mailto:ass...@us...">Oliver Schneider</a></td>
- <td width=25%><a href="mailto:ob...@us...">Olivier Sannier</a></td>
- <td width=25%><a href="mailto:pat...@ie...">Patrick van Laake</a></td>
+
+ <td width="25%"><a href="mailto:pc...@at...">Pavel Cisar</a></td>
+
+ <td width="25%"><a href="mailto:pel...@fi...">Pelle Liljendal</a></td>
+
+ <td width="25%"><a href="mailto:fr...@gm...">Peter Friese</a></td>
+
+ <td width="25%"><a href="mailto:fm...@kc...">Peter McMahon</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:pc...@at...">Pavel Cisar</a></td>
- <td width=25%><a href="mailto:pel...@fi...">Pelle Liljendal</a></td>
- <td width=25%><a href="mailto:fr...@gm...">Peter Friese</a></td>
- <td width=25%><a href="mailto:fm...@kc...">Peter McMahon</a></td>
+
+ <td width="25%"><a href="mailto:pet...@ao...">Peter Panino</a></td>
+
+ <td width="25%"><a href="mailto:pe...@us...">Peter Thörnquist</a></td>
+
+ <td width="25%"><a href="mailto:pv...@us...">Petr Vones</a></td>
+
+ <td width="25%">Python</td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:pet...@ao...">Peter Panino</a></td>
- <td width=25%><a href="mailto:pe...@us...">Peter Th\xF6rnquist</a></td>
- <td width=25%><a href="mailto:pv...@us...">Petr Vones</a></td>
- <td width=25%>Python</td>
+
+ <td width="25%"><a href="mailto:ral...@gm...">Ralf Junker</a></td>
+
+ <td width="25%"><a href="mailto:ray...@us...">Raymond Alexander</a></td>
+
+ <td width="25%"><a href="mailto:rik...@us...">Rik Barker</a></td>
+
+ <td width="25%"><a href="mailto:rh...@nw...">Robert Lee</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:ral...@gm...">Ralf Junker</a></td>
- <td width=25%><a href="mailto:ray...@us...">Raymond Alexander</a></td>
- <td width=25%><a href="mailto:rik...@us...">Rik Barker</a></td>
- <td width=25%><a href="mailto:rh...@nw...">Robert Lee</a></td>
+
+ <td width="25%"><a href="mailto:mar...@us...">Robert Marquardt</a></td>
+
+ <td width="25%"><a href="mailto:rob...@ko...">Robert R. Marsh</a></td>
+
+ <td width="25%"><a href="mailto:Rob...@us...">Robert Rossmair</a></td>
+
+ <td width="25%"><a href="mailto:rve...@gm...">Rudy Velthuis</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:mar...@us...">Robert Marquardt</a></td>
- <td width=25%><a href="mailto:rob...@ko...">Robert R. Marsh</a></td>
- <td width=25%><a href="mailto:Rob...@us...">Robert Rossmair</a></td>
- <td width=25%><a href="mailto:rve...@gm...">Rudy Velthuis</a></td>
+
+ <td width="25%"><a href="mailto:sco...@us...">Scott Price</a></td>
+
+ <td width="25%"><a href="mailto:an...@so...">SouthEaster</a></td>
+
+ <td width="25%"><a href="mailto:ste...@01...">Stefan Kirschner</a></td>
+
+ <td width="25%"><a href="mailto:sf...@if...">Stephane Fillon</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:sco...@us...">Scott Price</a></td>
- <td width=25%><a href="mailto:an...@so...">SouthEaster</a></td>
- <td width=25%><a href="mailto:ste...@01...">Stefan Kirschner</a></td>
- <td width=25%><a href="mailto:sf...@if...">Stephane Fillon</a></td>
+
+ <td width="25%"><a href="mailto:Ste...@Bi...">Sterling Butts</a></td>
+
+ <td width="25%"><a href="mailto:be...@ot...">Theo Bebekis</a></td>
+
+ <td width="25%"><a href="mailto:ti...@th...">Tim Yates</a></td>
+
+ <td width="25%"><a href="mailto:to...@us...">Tom Hahn</a></td>
+
</tr>
+
<tr valign="top">
- <td width=25%><a href="mailto:Ste...@Bi...">Sterling Butts</a></td>
- <td width=25%><a href="mailto:be...@ot...">Theo Bebekis</a></td>
- <td width=25%><a href="mailto:ti...@th...">Tim Yates</a></td>
- <td width=25%><a href="mailto:to...@us...">Tom Hahn</a></td>
+
+ <td width="25%"><a href="mailto:usc...@us...">Uwe Schuster</a></td>
+
+ <td width="25%"><a href="mailto:jon...@sk...">Wim De Cleen</a></td>
+
+ <td width="25%"><a href="mailto:yg...@ne...">Yaniv Golan</a></td>
+
+ <td width="25%"><a href="mailto:">Your name here?</a></td>
+
</tr>
- <tr valign="top">
- <td width=25%><a href="mailto:usc...@us...">Uwe Schuster</a></td>
- <td width=25%><a href="mailto:jon...@sk...">Wim De Cleen</a></td>
- <td width=25%><a href="mailto:yg...@ne...">Yaniv Golan</a></td>
- <td width=25%><a href="mailto:">Your name here?</a></td>
- </table>
+ </tbody>
+</table>
+
</p>
- <p>
- <div class="footer">Built on 2005-03-14</div>
+
+
+<p>
</p>
+<div class="footer">Built on 2005-03-14</div>
+
+
+<p></p>
+
</body>
</html>
Modified: trunk/jcl/docs/Contributors.txt
===================================================================
--- trunk/jcl/docs/Contributors.txt 2007-06-04 19:46:33 UTC (rev 2021)
+++ trunk/jcl/docs/Contributors.txt 2007-06-05 07:42:14 UTC (rev 2022)
@@ -47,7 +47,7 @@
Jack N.A. Bak...@eu...
James Aza...@ja...
Jean Debord=
-Jean-Fabien Connault=
+Jean-Fabien Con...@wa...
Jean-Philippe BEM...@us...
Jeroen Speldekamp=
Johannes Ber...@gm...
Modified: trunk/jcl/docs/Experts.html
===================================================================
--- trunk/jcl/docs/Experts.html 2007-06-04 19:46:33 UTC (rev 2021)
+++ trunk/jcl/docs/Experts.html 2007-06-05 07:42:14 UTC (rev 2022)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en-us">
<head>
- <title>Jedi Code Library Release 1.98</title>
+ <title>JEDI Code Library Release 1.98</title>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
<link rel="stylesheet" type="text/css" href="styles/default.css">
<meta content="Project JEDI" name="author">
@@ -9,7 +9,7 @@
<body>
<hr><br>
-<h1>Jedi Code Library</h1>
+<h1>JEDI Code Library</h1>
<p>Release 1.98<br>
Build 2509<br>
13-January-2007</p>
Modified: trunk/jcl/docs/Readme.html
===================================================================
--- trunk/jcl/docs/Readme.html 2007-06-04 19:46:33 UTC (rev 2021)
+++ trunk/jcl/docs/Readme.html 2007-06-05 07:42:14 UTC (rev 2022)
@@ -1,152 +1,257 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en-us">
<head>
- <title>Jedi Code Library Release 1.98</title>
+
+
+
+ <title>JEDI Code Library Release 1.98</title>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
+
+
<link rel="stylesheet" type="text/css" href="styles/default.css">
+
+
<meta content="Project JEDI" name="author">
</head>
+
+
<body>
+
<hr><br>
-<h1>Jedi Code Library</h1>
+
+<h1>JEDI Code Library</h1>
+
<p>Release 1.99<br>
+
Build 2551
24-Februray-2007</p>
+
<hr><br>
+
<h3>Content of this file</h3>
+
<ul>
+
<li><a href="#about">About this release</a></li>
+
<li><a href="#targets">Supported tools</a></li>
+
<li><a href="#notes">Installation notes</a></li>
+
<li><a href="#manual">Manual installation</a></li>
+
<li><a href="#files">Distribution content</a></li>
+
<li><a href="#feedback">Giving your feedback</a></li>
+
<li><a href="#issues">Reporting bugs</a></li>
+
<li><a href="#releases">Downloads of stable sources</a></li>
+
<li><a href="#development">Development sources</a></li>
+
<li><a href="#contribute">Getting involved in JCL development</a></li>
+
</ul>
+
<hr><br>
+
<h3><a name="about">About this release</a></h3>
+
<p>JCL release 1.99 provide an updated support for all targets (including CodeGear Delphi 2007 for Win32).</p>
+
<p>As always, multiple bugs have been fixed; for detailed change logs,
use the facilities of our Subversion repository at Sourceforge.net
<a href="http://sourceforge.net/projects/jcl/">http://sourceforge.net/projects/jcl/</a>
, see below.</p>
-<p><span style="FONT-WEIGHT: bold">Head changes:</span>
+
+<p><span style="font-weight: bold;">Head changes:</span>
</p>
+
<ul>
+
<li>JclPeImage is significantly updated: it now supports 64-bit applications and libraries.
+ </li>
+
+ <li>JclDebug is significantly updated: .jdbg files contain
+informations about all segments of code. A new option was added to
+limit exception handling to the main thread of the application.
</li>
- <li>JclDebug is significantly updated: .jdbg files contain informations about all segments of code. A new option was added to limit exception handling to the main thread of the application.
+
+ <li>PCRE (<a href="http://www.pcre.org/">http://www.pcre.org/</a>)
+updated to version 7.0. PCRE code can be included in the application
+not requiring "pcre.dll" anymore (experimental - read the comments at
+the beginning of source\common\pcre.pas for details and modifications
+to enable this feature).
</li>
- <li>PCRE (http://www.pcre.org/) updated to version 7.0. PCRE code can be included in the application not requiring "pcre.dll" anymore (experimental - read the comments at the beginning of source\common\pcre.pas for details and modifications to enable this feature).
-</li>
+
<li>JclMail : different file names can be specified for attachements
+ </li>
+
+ <li>Collection of stream classes to make basic operations easier
+(getting random data, multiplexing several streams, buffering an other
+stream, being notifyed on changes, reading common data types, scoping a
+stream, delegating read/write/seek operations.
</li>
- <li>Collection of stream classes to make basic operations easier (getting random data, multiplexing several streams,
- buffering an other stream, being notifyed on changes, reading common data types, scoping a stream, delegating read/write/seek operations.
-</li>
+
<li>Integration of the JCL help into the help system of Delphi 2005, BDS 2006, Turbo Delphi and Delphi 2007 for Win32.
-</li>
+ </li>
+
<li>New IDE expert to have TortoiseSVN (<a href="http://tortoisesvn.tigris.org/">http://tortoisesvn.tigris.org/</a>) and TortoiseCVS (<a href="http://tortoisecvs.sourceforge.net/">http://tortoisecvs.sourceforge.net/</a>) commands integrated in all supportted IDE.</li>
+
</ul>
-<p><span style="FONT-WEIGHT: bold">Important:</span>
+
+<p><span style="font-weight: bold;">Important:</span>
</p>
+
<ul>
- <li><p>Note that the package naming has changed: the same package name is used by
+
+ <li>
+ <p>Note that the package naming has changed: the same package name is used by
all versions of the compiler supporting suffixes (C++Builder 6, Delphi 6,
Delphi 7, C#Builder 1, Delphi 8, Delphi 2005 and BDS 2006); a different suffix
is added for each target to the BPL file name (for BDS 2006, the library file is named jcl100.bpl).
The installer tries to remove old packages. 3rd party packages requiring old DJcl* resp. CJcl* packages need to be changed
-to accomodate the new naming scheme or they will cause conflicts in the IDE at load time.</p></li>
- <li><p>DCP files are now created in the lib\target subdirectory of the JCL
+to accomodate the new naming scheme or they will cause conflicts in the IDE at load time.</p>
+ </li>
+
+ <li>
+ <p>DCP files are now created in the lib\target subdirectory of the JCL
installation. 3rd party packages requiring JCL packages need to have this path
-in their "browse path" option to compile.</p></li>
+in their "browse path" option to compile.</p>
+ </li>
+
</ul>
-<p><span style="FONT-WEIGHT: bold">(Windows only) Installation options:</span></p>
+
+<p><span style="font-weight: bold;">(Windows only) Installation options:</span></p>
+
<p>Packages compiled by the JCL installer don't contain any debug
informations to keep their size as small as possible.</p>
-<p>The Jedi Code Library packages are required by some 3rd party packages
-(including the Jedi Visual Component Library - JVCL), the installer generates
+
+<p>The JEDI Code Library packages are required by some 3rd party packages
+(including the JEDI Visual Component Library - JVCL), the installer generates
them if the "Packages" node is checked.</p>
+
<p>The installer can generate MAP informations for each package. These informations
can be linked into binaries to become JCL debug data or be converted to .jdbg files.
Once linked MAP files could be deleted. These options are subnodes of the "Packages" node.</p>
+
<p>For BDS 2006, the compiler introduced a new option to make the same packages available in C++,
by checking the "Dual packages" option of the "Packages" node, you will be able to call functions
of the JCL from C++ code.</p>
-<p><span style="FONT-WEIGHT: bold">.net Framework support:</span></p>
+
+<p><span style="font-weight: bold;">.net Framework support:</span></p>
+
<p>A subset of JCL units was worked over to support Delphi.Net (Delphi 2005
& BDS 2006). The packages belong to the Jedi.Jcl namespace. The installer can generate these
packages for Delphi 2005 and BDS 2006, it displays an other tab to configure options and directory.
The installation process is similar to the native targets.</p>
+
<hr><br>
+
<h3><a name="targets">Supported Tools</a></h3>
-<p>The Jedi Code Library can be compiled and installed in the following environments</p>
-<p><span style="FONT-WEIGHT: bold">Only runtime support:</span></p>
+
+<p>The JEDI Code Library can be compiled and installed in the following environments</p>
+
+<p><span style="font-weight: bold;">Only runtime support:</span></p>
+
<ul>
+
<li>Kylix 3 (cf <a href="#notes">Installation notes</a>)</li>
+
</ul>
-<p><span style="FONT-WEIGHT: bold">Only design-time support (only experts):</span></p>
+
+<p><span style="font-weight: bold;">Only design-time support (only experts):</span></p>
+
<ul>
+
<li>C#Builder 1 (cf <a href="#notes">Installation notes</a>).
-</li>
+ </li>
+
<li>Delphi 8.net (cf <a href="#notes">Installation notes</a>).</li>
+
</ul>
-<p><span style="FONT-WEIGHT: bold">Both supports (run time and design time):</span></p>
+
+<p><span style="font-weight: bold;">Both supports (run time and design time):</span></p>
+
<ul>
+
<li>Delphi version 5, 6, 7.
-</li>
+ </li>
+
<li>C++Builder version 5 & 6.
-</li>
+ </li>
+
<li>Delphi 2005 (Delphi Win32 and Delphi.net personalities).
-</li>
+ </li>
+
<li>Borland Developer Studio 2006 (Delphi Win32, C++ Builder Win32, Delphi.net and C#Builder personalities).
-</li>
+ </li>
+
<li>Turbo Delphi (explorer and professional - cf <a href="#notes">Installation notes</a>).
-</li>
+ </li>
+
<li>CodeGear Delphi 2007 for Win32.</li>
+
</ul>
+
<hr><br>
+
<h3><a name="notes">Installation notes</a></h3>
+
<ul>
+
<li>Not every unit supports all tools. Look out for <tt>*.exc</tt>
files in the tool-specific <tt>lib/</tt>subdirectories for a list of units
excluded from compilation.
-</li>
+ </li>
+
<li>Kylix 3 Delphi/C++ installation is back but specific code has not been tested with the latest
versions of the kernel. Please ensure you use the flavor of the JCL with Unix EOL.
-</li>
+ </li>
+
<li>Free Pascal (<a href="http://www.freepascal.org/">http://www.freepascal.org/</a>)
support has not been updated for this release; most units from
source/common should work with FP 2.0, as tests with a 2.0 beta (1.9.8)
indicated, but this has not been verified. Note that there are no plans
to support FP versions from the 1.0 branch.</li>
+
</ul>
-<p><span style="FONT-WEIGHT: bold">Installation for Turbo Delphi</span></p>
-<p>The Jedi Code Library can be compiled targetting Turbo Delphi Explorer and Turbo Delphi Professional.
+
+<p><span style="font-weight: bold;">Installation for Turbo Delphi</span></p>
+
+<p>The JEDI Code Library can be compiled targetting Turbo Delphi Explorer and Turbo Delphi Professional.
Turbo Delphi Professional is recognized as BDS 2006, you have to download its command line compiler from
CodeGear website at <a href="http://www.codegear.com/Default.aspx?tabid=160">http://www.codegear.com/Default.aspx?tabid=160</a>
to install the full JCL on this tool.</p>
+
<p>To install the JCL targetting Turbo Delphi Explorer, consider the following checks:</p>
+
<ul>
+
<li>If you have an other supported version of Delphi/C++Builder on this computer, it should automatically be
detected and the installer will process as usual.
-</li>
+ </li>
+
<li>If you only have Turbo Delphi Explorer (and no other tools) on the computer, the installer cannot be
compiled. You have to use the Turbo Explorer flavor of the JCL that contains a precompiled installer. However,
you will not be able to install any experts.</li>
+
</ul>
-<p><span style="FONT-WEIGHT: bold">Installation on C#Builder 1 and Delphi 8:</span></p>
+
+<p><span style="font-weight: bold;">Installation on C#Builder 1 and Delphi 8:</span></p>
+
<ul>
+
<li>These products cannot be used to build the JCL installer, you need an
other supported product to install JCL experts on these products.
-</li>
+ </li>
+
<li>These products are not able to use the JCL library as a runtime library.
You cannot write managed applications and managed packages based on the JCL.
-</li>
+ </li>
+
<li>These products are not shipped with their native compilers, you have to
download it from codecentral (<a href="http://cc.codegear.com/">http://cc.codegear.com/</a>).
The item (<a href="http://codecentral.codegear.com/Download.aspx?id=21333">http://codecentral.codegear.com/Download.aspx?id=21333</a>)
@@ -154,130 +259,149 @@
The item (<a href="http://codecentral.codegear.com/Download.aspx?id=21334">http://codecentral.codegear.com/Download.aspx?id=21334</a>)
contains the native compiler to be installed in C#Builder 1.
These zip files have to be extracted in the products directory using the standard pattern:</li>
+
</ul>
-<pre> Executable files (exe and dll) - BDS\X.0\bin
- Compiler files (dcp and dcu) - BDS\X.0\lib
- Toolsapi source files - BDS\X.0\source\ToolsAPI
-</pre>
-<p><span style="FONT-WEIGHT: bold">Default installation</span></p>
+
+<pre> Executable files (exe and dll) - BDS\X.0\bin<br> Compiler files (dcp and dcu) - BDS\X.0\lib<br> Toolsapi source files - BDS\X.0\source\ToolsAPI<br></pre>
+
+<p><span style="font-weight: bold;">Default installation</span></p>
+
<p>For all others versions of Delphi, C++Builder and BDS, simply launch Install.bat
and the installer window will let you configure options and install the library.</p>
+
<hr><br>
+
<h3><a name="manual">Manual Installation</a></h3>
+
<p>Although it is not recommended, a manual installation is possible. You will have
to manually configure options for the library. That is done by modifying an included
file.
+</p>
<p>
+</p>
<p>For each tool you want to install the JCL in, repeat the following steps:</p>
+
<ol>
- <li>Open and edit included file to customize options:</li><ul>
+
+ <li>Open and edit included file to customize options:</li>
+ <ul>
+
<li>For Kylix 3 (Delphi): source\jclkd3.inc
-</li>
+ </li>
+
<li>For Kylix 3 (C++Builder): source\jclkc3.inc
-</li>
+ </li>
+
<li>For C++Builder 5: source\jclc5.inc
-</li>
+ </li>
+
<li>For C++Builder 6: source\jclc6.inc
-</li>
+ </li>
+
<li>For Delphi 5: source\jcld5.inc
-</li>
+ </li>
+
<li>For Delphi 6: source\jcld6.inc
-</li>
+ </li>
+
<li>For Delphi 7: source\jcld7.inc
-</li>
+ </li>
+
<li>For Delphi 2005: source\jcld9.inc
-</li>
+ </li>
+
<li>For Delphi.net 2005: source\jcld9.net.inc
-</li>
+ </li>
+
<li>For BDS 2006 (Delphi and C++Builder) and CodeGear Delphi 2007 for Win32 : source\jcld10.inc
-</li>
+ </li>
+
<li>For Delphi.net 2006: source\jcld10.net.inc</li>
+
+
</ul>
+
<li>In the IDE, open and compile package Jcl.dpk (or Jcl.bpk for C++Builder)
located in a subdirectory of the "packages" directory matching your version of
the IDE. This package doesn't have to be installed since it doesn't provide
any components.
-</li>
+ </li>
+
<li>If you want to install experts, open package JclBaseExpert.dpk and compile it,
then you can install all the experts you want (packages are located in the same
directory).</li>
+
</ol>
+
<hr><br>
+
<h3><a name="files">Distribution content</a></h3>
-<pre>Install.bat - Compile and run VCL version of the JCL Installer (Win32)
-QInstall.bat - Compile and run CLX version of JCL Installer (Win32)
-install.sh - Compile and run JCL Installer (Linux)
-bin - Common place for sample application EXE files
-lib - Common place for compiled units.
-docs - Readme (this file) and other documents
-docs\Readme.html - This file
-docs\Experts.html - Readme file about the experts
-docs\MPL-1.1.txt - The Mozilla Public Licence (MPL) version 1.1
-docs\MPL FAQ.html - Frequently Asked Questions about the MPL
-docs\cps.html - Cross Platform Strategy
-experts - JCL IDE experts source code
-experts\debug - JCL Debug IDE expert for using JclDebug unit
-experts\debug\dialog - Application exception dialog replacement
-experts\debug\simdview - Low-level debug window for XMM registers
-experts\debug\threadnames - IDE expert showing class names for debugged threads
-experts\debug\tools - Tools for creating files with JCL debug information
-experts\favfolders - Favorite folders combobox in IDE open/save file dialogs
-experts\projectanalyzer - Project Analyzer IDE expert
-experts\useswizard - JCL uses wizard
-experts\versioncontrol - Integration of TortoiseCVS and TortoiseSVN in the IDE
-examples - JCL example applications
-examples\common - CLX and Win32 example applications in Delphi
-examples\dotnet - JCL example applications for Delphi.net
-examples\windows - JCL example applications for Delphi.Win32
-examples\windows\delphitools - Collection of system tools using JCL
-help - Help file (distributed in a separate archive)
-install - Installer source code
-packages - JCL package sources
-source - JCL source code
-</pre>
+
+<pre>Install.bat - Compile and run VCL version of the JCL Installer (Win32)<br>QInstall.bat - Compile and run CLX version of JCL Installer (Win32)<br>install.sh - Compile and run JCL Installer (Linux)<br>bin - Common place for sample application EXE files<br>lib - Common place for compiled units.<br>docs - Readme (this file) and other documents<br>docs\Readme.html - This file<br>docs\Experts.html - Readme file about the experts<br>docs\MPL-1.1.txt - The Mozilla Public Licence (MPL) version 1.1<br>docs\MPL FAQ.html - Frequently Asked Questions about the MPL<br>docs\cps.html - Cross Platform Strategy<br>experts - JCL IDE experts source code<br>experts\debug - JCL Debug IDE expert for using JclDebug unit<br>experts\debug\dialog - Application exception dialog replacement<br>experts\debug\simdview - Low-level debug window for XMM registers<br>experts\debug\threadnames - IDE expert showing class names for debugged threads<br>experts\debug\tools - Tools for creating files with JCL debug information<br>experts\favfolders - Favorite folders combobox in IDE open/save file dialogs<br>experts\projectanalyzer - Project Analyzer IDE expert<br>experts\useswizard - JCL uses wizard<br>experts\versioncontrol - Integration of TortoiseCVS and TortoiseSVN in the IDE<br>examples - JCL example applications<br>examples\common - CLX and Win32 example applications in Delphi<br>examples\dotnet - JCL example applications for Delphi.net<br>examples\windows - JCL example applications for Delphi.Win32<br>examples\windows\delphitools - Collection of system tools using JCL<br>help - Help file (distributed in a separate archive)<br>install - Installer source code<br>packages - JCL package sources<br>source - JCL source code<br></pre>
+
<hr><br>
+
<h3><a name="feedback">Giving your feedback</a></h3>
+
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:
<ul>
+
<li>Newsgroup is the recommended way to contact other JCL users and the team itself.
They are hosted at <a href="news://forums.talkto.net/jedi.jcl">news://forums.talkto.net/jedi.jcl</a>.
-</li>
+ </li>
+
<li>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.
-</li>
+ </li>
+
<li>If you want to keep up to date about JCL then you can join the
JCL mailing list by going to <a href="http://tech.groups.yahoo.com/group/JEDI-JCL/">http://tech.groups.yahoo.com/group/JEDI-JCL/</a>
You can also use this list to voice your opinion, comments or suggestions.</li>
+
</ul>
+
<hr>
<h3><a name="issues">Reporting bugs</a></h3>
+
<p>The general rule is: <b><font color="#ff0000">If you want to get a
bug fixed you need to log it!</font></b></p>
+
<p>An issue tracking tool can be accessed via ('Code Library' category):
<a href="http://homepages.codegear.com/jedi/issuetracker/">http://homepages.codegear.com/jedi/issuetracker/</a></p>
+
<p>Please be aware that you are allowed there to enter feature request and code donations as well.</p>
+
<p>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></p>
+
<hr><br>
+
<h3><a name="releases">Downloads of stable sources</a></h3>
+
<p>These sources are official JCL releases and file status can be considered as
stable for use in final applications. During the past years, there have been around 2
or 3 releases per year.</p>
-<p>Jedi Code Library: File List on SourceForge:
+
+<p>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>
</p>
+
<hr><br>
+
<h3><a name="development">Development sources</a></h3>
+
<p>These files are under active development and may cause some incompatibilities
and some conflicts with existing code. You should not use these files in final
applications. The JCL development team provides these files for testing and
feedback from users.</p>
+
<p>You can download snapshots of the Subversion repository updated every day in the JCL daily page
<a href="http://jcl.sourceforge.net/daily/">http://jcl.sourceforge.net/daily/</a></p>
+
<p>To always have access to the most recent changes in the JCL, you
should install a Subversion client (we recommend TortoiseSVN <a href="http://tortoisesvn.tigris.org/">http://tortoisesvn.tigris.org/</a>
and RapidSVN <a href="http://rapidsvn.tigris.org/">http://rapidsvn.tigris.org/</a>) and download the
@@ -285,34 +409,47 @@
<a href="http://homepages.codegear.com/jedi/wiki/index.php?title=Repository">http://homepages.codegear.com/jedi/wiki/index.php?title=Repository</a>
With the SVN client, you can update your local repository at any time.
You can also view the repository online via the web interface at <a href="http://jcl.svn.sourceforge.net/">http://jcl.svn.sourceforge.net/</a></p>
+
<hr><br>
+
<h3><a name="contribute">Getting involved in JCL development</a></h3>
+
If you want to help out making JCL better or bigger or just plain
cooler, there are several ways in which you can help out. Here are some of the
things we need your help on:
<ul>
+
<li>Donate source code
-</li>
+ </li>
+
<li>Donate time writing help
-</li>
+ </li>
+
<li>Donate time writing demos
-</li>
+ </li>
+
<li>Donate time fixing bugs</li>
+
<li>Share your experience by helping users in newsgroups and mailing lists</li>
+
</ul>
+
<p>JCL accepts donations from developers as long as the source fullfills the
requirements set up by the JEDI and JCL teams. To read more about these
-requirements, visit the page http://homepages.codegear.com/jedi/jcl</p>
+requirements, visit the page <a href="http://homepages.codegear.com/jedi/jcl">http://homepages.codegear.com/jedi/jcl</a></p>
+
<p>You can also donate your time by writing help for the source already
in JCL. We currently use Doc-o-Matic to create the finished help files but
the actual help sources are plain text files in a simple to understand format.
We can provide you with auto-generated templates with all classes, properties,
types etc already inserted. The "only" thing left to do is fill in the actual
help text for the help items. If you are interested in writing help, contact us.</p>
+
<p>If you want to help fix bugs in JCL, go to Mantis and check the bug report
there. You can post replies as well as fixes directly in the bug report. One of the
JCL developers will pick up the report/fix and update the Subversion repository if the fi
is satisfactory. If you report and fix a lot of bugs, you might even get developer
access to SVN so you can update the JCL files directly.</p>
+
</body>
</html>
Modified: trunk/jcl/docs/Readme.txt
===================================================================
--- trunk/jcl/docs/Readme.txt 2007-06-04 19:46:33 UTC (rev 2021)
+++ trunk/jcl/docs/Readme.txt 2007-06-05 07:42:14 UTC (rev 2022)
@@ -1,6 +1,6 @@
--------------------------------------------------------------------------------
-Jedi Code Library
+JEDI Code Library
Release 1.99
Build 2551
24-Februray-2007
@@ -71,8 +71,8 @@
Packages compiled by the JCL installer don't contain any debug informations to
keep their size as small as possible.
- The Jedi Code Library packages are required by some 3rd party packages
-(including the Jedi Visual Component Library - JVCL), the installer generates
+ The JEDI Code Library packages are required by some 3rd party packages
+(including the JEDI Visual Component Library - JVCL), the installer generates
them if the "Packages" node is checked.
The installer can generate MAP informations for each package. These
@@ -131,7 +131,7 @@
Installation for Turbo Delphi
-The Jedi Code Library can be compiled targetting Turbo Delphi Explorer and Turbo
+The JEDI Code Library can be compiled targetting Turbo Delphi Explorer and Turbo
Delphi Professional. Turbo Delphi Professional is recognized as BDS 2006, you
have to download its command line compiler from CodeGear website at
http://www.codegear.com/Default.aspx?tabid=160 to install the full JCL on this
@@ -274,7 +274,7 @@
stable for use in final applications. During the past years, there have been
around 2 or 3 releases per year.
-Jedi Code Library: File List on SourceForge:
+JEDI Code Library: File List on SourceForge:
http://sourceforge.net/project/showfiles.php?group_id=47514
---------------------------------------------------...
[truncated message content] |
|
From: <ah...@us...> - 2007-06-03 11:31:47
|
Revision: 2020
http://svn.sourceforge.net/jcl/?rev=2020&view=rev
Author: ahuser
Date: 2007-06-03 04:31:44 -0700 (Sun, 03 Jun 2007)
Log Message:
-----------
Fixed StrICompW delaration and implementation
Modified Paths:
--------------
trunk/jcl/source/common/JclWideStrings.pas
Modified: trunk/jcl/source/common/JclWideStrings.pas
===================================================================
--- trunk/jcl/source/common/JclWideStrings.pas 2007-05-29 22:14:52 UTC (rev 2019)
+++ trunk/jcl/source/common/JclWideStrings.pas 2007-06-03 11:31:44 UTC (rev 2020)
@@ -251,7 +251,7 @@
function StrCatW(Dest: PWideChar; const Source: PWideChar): PWideChar;
function StrLCatW(Dest: PWideChar; const Source: PWideChar; MaxLen: Cardinal): PWideChar;
function StrCompW(const Str1, Str2: PWideChar): Integer;
-function StrICompW(const Str1, Str2: PWideChar; MaxLen: Cardinal): Integer;
+function StrICompW(const Str1, Str2: PWideChar): Integer;
function StrLCompW(const Str1, Str2: PWideChar; MaxLen: Cardinal): Integer;
function StrLICompW(const Str1, Str2: PWideChar; MaxLen: Cardinal): Integer;
function StrLICompW2(const Str1, Str2: PWideChar; MaxLen: Cardinal): Integer;
@@ -473,9 +473,13 @@
Result := 0;
end;
-function StrICompW(const Str1, Str2: PWideChar; MaxLen: Cardinal): Integer;
+function StrICompW(const Str1, Str2: PWideChar): Integer;
+var
+ S1, S2: WideString;
begin
- Result := StrLICompW(Str1, Str2, Max(StrLenW(Str1), StrLenW(Str2)));
+ S1 := Str1;
+ S2 := Str2;
+ Result := WideCompareText(Str1, Str2);
end;
function StrPosW(const Str, SubStr: PWideChar): PWideChar;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <usc...@us...> - 2007-05-29 22:14:54
|
Revision: 2019
http://svn.sourceforge.net/jcl/?rev=2019&view=rev
Author: uschuster
Date: 2007-05-29 15:14:52 -0700 (Tue, 29 May 2007)
Log Message:
-----------
changed PUInt64 to PInt64 as workaround for QC 9411 and QC 46671
Modified Paths:
--------------
branches/compression/jcl/source/common/JclBase.pas
branches/compression/jcl/source/common/JclCompression.pas
branches/compression/jcl/source/windows/sevenzip.pas
Modified: branches/compression/jcl/source/common/JclBase.pas
===================================================================
--- branches/compression/jcl/source/common/JclBase.pas 2007-05-27 19:55:38 UTC (rev 2018)
+++ branches/compression/jcl/source/common/JclBase.pas 2007-05-29 22:14:52 UTC (rev 2019)
@@ -133,6 +133,7 @@
{$ENDIF ~COMPILER7_UP}
PUInt64 = ^UInt64;
PPUInt64 = ^PUInt64;
+ PPInt64 = ^PInt64;
// Interface compatibility
{$IFDEF SUPPORTS_INTERFACE}
Modified: branches/compression/jcl/source/common/JclCompression.pas
===================================================================
--- branches/compression/jcl/source/common/JclCompression.pas 2007-05-27 19:55:38 UTC (rev 2018)
+++ branches/compression/jcl/source/common/JclCompression.pas 2007-05-29 22:14:52 UTC (rev 2019)
@@ -3045,7 +3045,7 @@
// ISequentialOutStream
function Write(Data: Pointer; Size: Cardinal; ProcessedSize: PCardinal): HRESULT; stdcall;
// IOutStream
- function Seek(Offset: Int64; SeekOrigin: Cardinal; NewPosition: PUInt64): HRESULT; stdcall;
+ function Seek(Offset: Int64; SeekOrigin: Cardinal; NewPosition: PInt64): HRESULT; stdcall;
function SetSize(NewSize: Int64): HRESULT; stdcall;
property Stream: TStream read FStream;
@@ -3070,7 +3070,7 @@
end;
function TJclSevenzipOutStream.Seek(Offset: Int64; SeekOrigin: Cardinal;
- NewPosition: PUInt64): HRESULT;
+ NewPosition: PInt64): HRESULT;
var
NewPos: Integer;
begin
@@ -3114,9 +3114,9 @@
// ISequentialInStream
function Read(Data: Pointer; Size: Cardinal; ProcessedSize: PCardinal): HRESULT; stdcall;
// IInStream
- function Seek(Offset: Int64; SeekOrigin: Cardinal; NewPosition: PUInt64): HRESULT; stdcall;
+ function Seek(Offset: Int64; SeekOrigin: Cardinal; NewPosition: PInt64): HRESULT; stdcall;
// IStreamGetSize
- function GetSize(Size: PUInt64): HRESULT; stdcall;
+ function GetSize(Size: PInt64): HRESULT; stdcall;
property Stream: TStream read FStream;
end;
@@ -3139,7 +3139,7 @@
inherited Destroy;
end;
-function TJclSevenzipInStream.GetSize(Size: PUInt64): HRESULT;
+function TJclSevenzipInStream.GetSize(Size: PInt64): HRESULT;
begin
if Assigned(Size) then
Size^ := Stream.Size;
@@ -3158,7 +3158,7 @@
end;
function TJclSevenzipInStream.Seek(Offset: Int64; SeekOrigin: Cardinal;
- NewPosition: PUInt64): HRESULT;
+ NewPosition: PInt64): HRESULT;
var
NewPos: Int64;
begin
@@ -3181,7 +3181,7 @@
public
constructor Create(ACompressionArchive: TJclSevenzipCompressArchive);
// IProgress
- function SetCompleted(CompleteValue: PUInt64): HRESULT; stdcall;
+ function SetCompleted(CompleteValue: PInt64): HRESULT; stdcall;
function SetTotal(Total: UInt64): HRESULT; stdcall;
// IArchiveUpdateCallback
function GetProperty(Index: Cardinal; PropID: Cardinal; out Value: tagPROPVARIANT): HRESULT; stdcall;
@@ -3190,7 +3190,7 @@
NewProperties: PInteger; IndexInArchive: PCardinal): HRESULT; stdcall;
function SetOperationResult(OperationResult: Integer): HRESULT; stdcall;
// IArchiveUpdateCallback2
- function GetVolumeSize(Index: Cardinal; Size: PUInt64): HRESULT; stdcall;
+ function GetVolumeSize(Index: Cardinal; Size: PInt64): HRESULT; stdcall;
function GetVolumeStream(Index: Cardinal;
out VolumeStream: ISequentialOutStream): HRESULT; stdcall;
// ICryptoGetTextPassword2
@@ -3337,7 +3337,7 @@
end;
function TJclSevenzipUpdateCallback.GetVolumeSize(Index: Cardinal;
- Size: PUInt64): HRESULT;
+ Size: PInt64): HRESULT;
begin
if Assigned(Size) then
Size^ := 0;
@@ -3352,7 +3352,7 @@
end;
function TJclSevenzipUpdateCallback.SetCompleted(
- CompleteValue: PUInt64): HRESULT;
+ CompleteValue: PInt64): HRESULT;
begin
if Assigned(CompleteValue) then
FCompressionArchive.DoProgress(CompleteValue^, FCompressionArchive.FProgressMax);
@@ -3393,8 +3393,8 @@
public
constructor Create(ADecompressionArchive: TJclSevenzipDecompressArchive);
// IArchiveOpenCallback
- function SetCompleted(Files: PUInt64; Bytes: PUInt64): HRESULT; stdcall;
- function SetTotal(Files: PUInt64; Bytes: PUInt64): HRESULT; stdcall;
+ function SetCompleted(Files: PInt64; Bytes: PInt64): HRESULT; stdcall;
+ function SetTotal(Files: PInt64; Bytes: PInt64): HRESULT; stdcall;
// ICryptoGetTextPassword
function CryptoGetTextPassword(password: PBStr): HRESULT; stdcall;
end;
@@ -3414,14 +3414,14 @@
Result := S_OK;
end;
-function TJclSevenzipOpenCallback.SetCompleted(Files, Bytes: PUInt64): HRESULT;
+function TJclSevenzipOpenCallback.SetCompleted(Files, Bytes: PInt64): HRESULT;
begin
if Assigned(Files) then
FDecompressionArchive.DoProgress(Files^, FDecompressionArchive.FProgressMax);
Result := S_OK;
end;
-function TJclSevenzipOpenCallback.SetTotal(Files, Bytes: PUInt64): HRESULT;
+function TJclSevenzipOpenCallback.SetTotal(Files, Bytes: PInt64): HRESULT;
begin
if Assigned(Files) then
FDecompressionArchive.FProgressMax := Files^;
@@ -3444,7 +3444,7 @@
function PrepareOperation(askExtractMode: Cardinal): HRESULT; stdcall;
function SetOperationResult(resultEOperationResult: Integer): HRESULT; stdcall;
// IProgress
- function SetCompleted(CompleteValue: PUInt64): HRESULT; stdcall;
+ function SetCompleted(CompleteValue: PInt64): HRESULT; stdcall;
function SetTotal(Total: UInt64): HRESULT; stdcall;
// ICryptoGetTextPassword
function CryptoGetTextPassword(password: PBStr): HRESULT; stdcall;
@@ -3494,7 +3494,7 @@
end;
function TJclSevenzipExtractCallback.SetCompleted(
- CompleteValue: PUInt64): HRESULT;
+ CompleteValue: PInt64): HRESULT;
begin
if Assigned(CompleteValue) then
FDecompressionArchive.DoProgress(CompleteValue^, FDecompressionArchive.FProgressMax);
Modified: branches/compression/jcl/source/windows/sevenzip.pas
===================================================================
--- branches/compression/jcl/source/windows/sevenzip.pas 2007-05-27 19:55:38 UTC (rev 2018)
+++ branches/compression/jcl/source/windows/sevenzip.pas 2007-05-29 22:14:52 UTC (rev 2019)
@@ -75,18 +75,18 @@
IInStream = interface(ISequentialInStream)
['{23170F69-40C1-278A-0000-000300030000}']
- function Seek(Offset: Int64; SeekOrigin: Cardinal; NewPosition: PUInt64): HRESULT; stdcall;
+ function Seek(Offset: Int64; SeekOrigin: Cardinal; NewPosition: PInt64): HRESULT; stdcall;
end;
IOutStream = interface(ISequentialOutStream)
['{23170F69-40C1-278A-0000-000300040000}']
- function Seek(Offset: Int64; SeekOrigin: Cardinal; NewPosition: PUInt64): HRESULT; stdcall;
+ function Seek(Offset: Int64; SeekOrigin: Cardinal; NewPosition: PInt64): HRESULT; stdcall;
function SetSize(NewSize: Int64): HRESULT; stdcall;
end;
IStreamGetSize = interface(IUnknown)
['{23170F69-40C1-278A-0000-000300060000}']
- function GetSize(Size: PUInt64): HRESULT; stdcall;
+ function GetSize(Size: PInt64): HRESULT; stdcall;
end;
IOutStreamFlush = interface(IUnknown)
@@ -141,13 +141,13 @@
type
ICompressProgressInfo = interface(IUnknown)
['{23170F69-40C1-278A-0000-000400040000}']
- function SetRatioInfo(InSize: PUInt64; OutSize: PUInt64): HRESULT; stdcall;
+ function SetRatioInfo(InSize: PInt64; OutSize: PInt64): HRESULT; stdcall;
end;
ICompressCoder = interface(IUnknown)
['{23170F69-40C1-278A-0000-000400050000}']
function Code(InStream: ISequentialInStream; OutStream: ISequentialOutStream;
- InSize, OutSize: PUInt64; Progress: ICompressProgressInfo): HRESULT; stdcall;
+ InSize, OutSize: PInt64; Progress: ICompressProgressInfo): HRESULT; stdcall;
end;
PISequentialInStream = ^ISequentialInStream;
@@ -155,8 +155,8 @@
ICompressCoder2 = interface(IUnknown)
['{23170F69-40C1-278A-0000-000400180000}']
- function Code(InStreams: PISequentialInStream; InSizes: PPUInt64; NumInStreams: Cardinal;
- OutStreams: PISequentialOutStream; OutSizes: PPUInt64; NumOutStreams: Cardinal;
+ function Code(InStreams: PISequentialInStream; InSizes: PPInt64; NumInStreams: Cardinal;
+ OutStreams: PISequentialOutStream; OutSizes: PPInt64; NumOutStreams: Cardinal;
Progress: ICompressProgressInfo): HRESULT; stdcall;
end;
@@ -195,7 +195,7 @@
ICompressGetInStreamProcessedSize = interface(IUnknown)
['{23170F69-40C1-278A-0000-000400240000}']
- function GetInStreamProcessedSize(Value: PUInt64): HRESULT; stdcall;
+ function GetInStreamProcessedSize(Value: PInt64): HRESULT; stdcall;
end;
ICompressSetCoderMt = interface(IUnknown)
@@ -222,12 +222,12 @@
ICompressSetInStreamSize = interface(IUnknown)
['{23170F69-40C1-278A-0000-000400330000}']
- function SetInStreamSize(InSize: PUInt64): HRESULT; stdcall;
+ function SetInStreamSize(InSize: PInt64): HRESULT; stdcall;
end;
ICompressSetOutStreamSize = interface(IUnknown)
['{23170F69-40C1-278A-0000-000400340000}']
- function SetOutStreamSize(OutSize: PUInt64): HRESULT; stdcall;
+ function SetOutStreamSize(OutSize: PInt64): HRESULT; stdcall;
end;
ICompressFilter = interface(IUnknown)
@@ -286,7 +286,7 @@
IProgress = interface(IUnknown)
['{23170F69-40C1-278A-0000-000000050000}']
function SetTotal(Total: UInt64): HRESULT; stdcall;
- function SetCompleted(CompleteValue: PUInt64): HRESULT; stdcall;
+ function SetCompleted(CompleteValue: PInt64): HRESULT; stdcall;
end;
// IArchive.h
@@ -324,8 +324,8 @@
// "23170F69-40C1-278A-0000-000600xx0000"
IArchiveOpenCallback = interface(IUnknown)
['{23170F69-40C1-278A-0000-000600100000}']
- function SetTotal(Files: PUInt64; Bytes: PUInt64): HRESULT; stdcall;
- function SetCompleted(Files: PUInt64; Bytes: PUInt64): HRESULT; stdcall;
+ function SetTotal(Files: PInt64; Bytes: PInt64): HRESULT; stdcall;
+ function SetCompleted(Files: PInt64; Bytes: PInt64): HRESULT; stdcall;
end;
IArchiveExtractCallback = interface(IProgress)
@@ -355,7 +355,7 @@
IInArchive = interface(IUnknown)
['{23170F69-40C1-278A-0000-000600600000}']
- function Open(Stream: IInStream; MaxCheckStartPosition: PUInt64;
+ function Open(Stream: IInStream; MaxCheckStartPosition: PInt64;
OpenArchiveCallback: IArchiveOpenCallback): HRESULT; stdcall;
function Close: HRESULT; stdcall;
function GetNumberOfItems(NumItems: PCardinal): HRESULT; stdcall;
@@ -391,7 +391,7 @@
IArchiveUpdateCallback2 = interface(IArchiveUpdateCallback)
['{23170F69-40C1-278A-0000-000600820000}']
- function GetVolumeSize(Index: Cardinal; Size: PUInt64): HRESULT; stdcall;
+ function GetVolumeSize(Index: Cardinal; Size: PInt64): HRESULT; stdcall;
function GetVolumeStream(Index: Cardinal; out VolumeStream: ISequentialOutStream): HRESULT; stdcall;
end;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-05-27 19:55:43
|
Revision: 2018
http://svn.sourceforge.net/jcl/?rev=2018&view=rev
Author: outchy
Date: 2007-05-27 12:55:38 -0700 (Sun, 27 May 2007)
Log Message:
-----------
Reworking one-line compression to/from gzip/bzip2: added function to compress/decompress streams using one function.
Adding a new stream class (TJclSplitStream) with 2 implementors: TJclStaticSplitStream and TJclDynamicSplitStream
Adding wrapper for Sevenzip code (http://sevenzip.sourceforge.net/): jcl/source/windows/sevenzip.pas This code requires 7z.dll which is part of the Sevenzip redistribution.
Reworking compression classes for archive:
- root class TJclCompressionArchive handling item storage and exposing common properties
- ancestor class for compression: TJclCompressArchive
- ancestor class for decompression: TJclDecompressArchive
- ancestor class for compression handled by Sevenzip: TJclSevenzipCompressArchive
- ancestor class for decompression handled by Sevenzip: TJclSevenzipDecompressArchive
- one child class per format and operation: TJclZipCompressArchive, TJcl7zCompressArchive ...
Adding an example about archives and JclCompression.pas: file manager to compress/decompress archive in few clicks based on new classes of JclCompression.pas.
Modifying packages, included files and installer to configure these new imports.
Modified Paths:
--------------
branches/compression/jcl/install/JclInstall.pas
branches/compression/jcl/lib/d10.net/windows.exc
branches/compression/jcl/lib/d9.net/windows.exc
branches/compression/jcl/packages/c5/JclC50.bpk
branches/compression/jcl/packages/c5/JclC50.cpp
branches/compression/jcl/packages/c5/JclC50.dpk
branches/compression/jcl/packages/c6/Jcl.bpk
branches/compression/jcl/packages/c6/Jcl.dpk
branches/compression/jcl/packages/cs1/Jcl.dpk
branches/compression/jcl/packages/d10/Jcl.dpk
branches/compression/jcl/packages/d11/Jcl.dpk
branches/compression/jcl/packages/d5/JclD50.dpk
branches/compression/jcl/packages/d6/Jcl.dpk
branches/compression/jcl/packages/d7/Jcl.dpk
branches/compression/jcl/packages/d8/Jcl.dpk
branches/compression/jcl/packages/d9/Jcl.dpk
branches/compression/jcl/packages/xml/Jcl-R.xml
branches/compression/jcl/source/common/JclBase.pas
branches/compression/jcl/source/common/JclCompression.pas
branches/compression/jcl/source/common/JclResources.pas
branches/compression/jcl/source/common/JclStreams.pas
branches/compression/jcl/source/jcl.inc
branches/compression/jcl/source/jcl.template.inc
Added Paths:
-----------
branches/compression/jcl/examples/windows/compression/
branches/compression/jcl/examples/windows/compression/archive/
branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.dof
branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.dpr
branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.res
branches/compression/jcl/examples/windows/compression/archive/UMain.dfm
branches/compression/jcl/examples/windows/compression/archive/UMain.pas
branches/compression/jcl/source/windows/obj/sevenzip/
branches/compression/jcl/source/windows/obj/sevenzip/dirinfo.txt
branches/compression/jcl/source/windows/sevenzip.pas
Property Changed:
----------------
branches/compression/jcl/source/windows/obj/bzip2/
branches/compression/jcl/source/windows/obj/pcre/
Property changes on: branches/compression/jcl/examples/windows/compression
___________________________________________________________________
Name: bugtraq:url
+ http://homepages.codegear.com/jedi/issuetracker/view.php?id=%BUGID%
Name: bugtraq:message
+ (Mantis #%BUGID%)
Name: svn:ignore
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
*.dcu
Name: bugtraq:logregex
+ [Mm]antis #?(\d+)(,? ?#?(\d+))+
(\d+)
Property changes on: branches/compression/jcl/examples/windows/compression/archive
___________________________________________________________________
Name: bugtraq:url
+ http://homepages.codegear.com/jedi/issuetracker/view.php?id=%BUGID%
Name: bugtraq:message
+ (Mantis #%BUGID%)
Name: svn:ignore
+ makefile.mak
*.identcache
*.local
*.cfg
*.drc
*.dcu
Name: bugtraq:logregex
+ [Mm]antis #?(\d+)(,? ?#?(\d+))+
(\d+)
Added: branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.dof
===================================================================
--- branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.dof (rev 0)
+++ branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.dof 2007-05-27 19:55:38 UTC (rev 2018)
@@ -0,0 +1,3 @@
+[Directories]
+OutputDir=..\..\..\..\bin
+
Property changes on: branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.dof
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Name: svn:eol-style
+ native
Added: branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.dpr
===================================================================
--- branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.dpr (rev 0)
+++ branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.dpr 2007-05-27 19:55:38 UTC (rev 2018)
@@ -0,0 +1,14 @@
+program ArchiveDemo;
+
+uses
+ Forms,
+ UMain in 'UMain.pas' {Form1};
+
+{$R *.res}
+
+begin
+ Application.Initialize;
+ Application.MainFormOnTaskbar := True;
+ Application.CreateForm(TForm1, Form1);
+ Application.Run;
+end.
Property changes on: branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.dpr
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Name: svn:eol-style
+ native
Added: branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.res
===================================================================
(Binary files differ)
Property changes on: branches/compression/jcl/examples/windows/compression/archive/ArchiveDemo.res
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/compression/jcl/examples/windows/compression/archive/UMain.dfm
===================================================================
--- branches/compression/jcl/examples/windows/compression/archive/UMain.dfm (rev 0)
+++ branches/compression/jcl/examples/windows/compression/archive/UMain.dfm 2007-05-27 19:55:38 UTC (rev 2018)
@@ -0,0 +1,242 @@
+object Form1: TForm1
+ Left = 0
+ Top = 0
+ Caption = 'Form1'
+ ClientHeight = 301
+ ClientWidth = 691
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ OldCreateOrder = False
+ OnDestroy = FormDestroy
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 691
+ Height = 49
+ Align = alTop
+ TabOrder = 0
+ object Bevel1: TBevel
+ Left = 271
+ Top = -1
+ Width = 2
+ Height = 50
+ Shape = bsLeftLine
+ end
+ object ButtonOpen: TButton
+ Left = 8
+ Top = 13
+ Width = 75
+ Height = 25
+ Action = ActionOpen
+ TabOrder = 0
+ end
+ object ButtonExtractSelected: TButton
+ Left = 89
+ Top = 13
+ Width = 96
+ Height = 25
+ Action = ActionExtractSelected
+ TabOrder = 1
+ end
+ object ButtonExtractAll: TButton
+ Left = 191
+ Top = 13
+ Width = 75
+ Height = 25
+ Action = ActionExtractAll
+ TabOrder = 2
+ end
+ object ButtonNew: TButton
+ Left = 279
+ Top = 13
+ Width = 75
+ Height = 25
+ Action = ActionNew
+ TabOrder = 3
+ end
+ object ButtonAddFile: TButton
+ Left = 360
+ Top = 13
+ Width = 75
+ Height = 25
+ Action = ActionAddFile
+ TabOrder = 4
+ end
+ object ButtonAddDirectory: TButton
+ Left = 441
+ Top = 13
+ Width = 75
+ Height = 25
+ Action = ActionAddDirectory
+ TabOrder = 5
+ end
+ object ButtonSave: TButton
+ Left = 522
+ Top = 13
+ Width = 75
+ Height = 25
+ Action = ActionSave
+ TabOrder = 6
+ end
+ end
+ object ListView1: TListView
+ Left = 0
+ Top = 49
+ Width = 691
+ Height = 236
+ Align = alClient
+ Columns = <
+ item
+ Caption = 'Local name'
+ Width = 150
+ end
+ item
+ Caption = 'Archive name'
+ Width = 150
+ end
+ item
+ Caption = 'Size'
+ Width = 30
+ end
+ item
+ Caption = 'Compressed'
+ Width = 30
+ end
+ item
+ Caption = 'Creation'
+ end
+ item
+ Caption = 'Last access'
+ end
+ item
+ Caption = 'Last write'
+ end
+ item
+ Caption = 'Comment'
+ Width = 30
+ end
+ item
+ Caption = 'OS'
+ Width = 20
+ end
+ item
+ Caption = 'FS'
+ Width = 20
+ end
+ item
+ Caption = 'User'
+ Width = 20
+ end
+ item
+ Caption = 'Group'
+ Width = 20
+ end
+ item
+ Caption = 'CRC'
+ end>
+ MultiSelect = True
+ OwnerData = True
+ RowSelect = True
+ TabOrder = 1
+ ViewStyle = vsReport
+ OnData = ListView1Data
+ ExplicitHeight = 252
+ end
+ object ProgressBar1: TProgressBar
+ Left = 0
+ Top = 285
+ Width = 691
+ Height = 16
+ Align = alBottom
+ TabOrder = 2
+ ExplicitLeft = 440
+ ExplicitTop = 272
+ ExplicitWidth = 150
+ end
+ object ActionList1: TActionList
+ Left = 128
+ Top = 80
+ object ActionOpen: TAction
+ Category = 'Decompress'
+ Caption = '&Open'
+ OnExecute = ActionOpenExecute
+ OnUpdate = ActionAlwaysEnabled
+ end
+ object ActionExtractSelected: TAction
+ Category = 'Decompress'
+ Caption = '&Extract selected'
+ OnExecute = ActionExtractSelectedExecute
+ OnUpdate = ActionExtractSelectedUpdate
+ end
+ object ActionExtractAll: TAction
+ Category = 'Decompress'
+ Caption = 'Extract &all'
+ OnExecute = ActionExtractAllExecute
+ OnUpdate = ActionExtractAllUpdate
+ end
+ object ActionNew: TAction
+ Category = 'Compression'
+ Caption = '&New'
+ OnExecute = ActionNewExecute
+ OnUpdate = ActionAlwaysEnabled
+ end
+ object ActionAddFile: TAction
+ Category = 'Compression'
+ Caption = 'Add &file'
+ OnExecute = ActionAddFileExecute
+ OnUpdate = ActionAddFileUpdate
+ end
+ object ActionAddDirectory: TAction
+ Category = 'Compression'
+ Caption = 'Add &directory'
+ OnExecute = ActionAddDirectoryExecute
+ OnUpdate = ActionAddDirectoryUpdate
+ end
+ object ActionSave: TAction
+ Category = 'Compression'
+ Caption = '&Save'
+ OnExecute = ActionSaveExecute
+ OnUpdate = ActionSaveUpdate
+ end
+ end
+ object OpenDialogArchive: TOpenDialog
+ Filter =
+ 'Zip archive (*.zip)|*.zip|BZip2 archive (*.bz2)|*.bz2|Sevenzip a' +
+ 'rchive (*.7z)|*.7z|Tar archive (*.tar)|*.tar|GZip archive (*.gz)' +
+ '|*.gz|Rar archive (*.rar)|*.rar|Arj archive (*.arj)|*.arj|Z arch' +
+ 'ive (*.z)|*.z|Lzh archive (*.lzh)|*.lzh|Nsis archive (*.nsis)|*.' +
+ 'nsis|Iso image (*.iso)|*.iso|Cab archive (*.cab)|*.cab|Chm file ' +
+ '(*.chm)|*.chm|Rpm archive (*.rpm)|*.rpm|Deb archive (*.deb)|*.de' +
+ 'b|Cpio archive (*.cpio)|*.cpio|Split archive (*.001)|*.001'
+ FilterIndex = 0
+ Options = [ofPathMustExist, ofFileMustExist, ofEnableSizing]
+ Title = 'Open an archive'
+ Left = 168
+ Top = 80
+ end
+ object SaveDialogArchive: TSaveDialog
+ DefaultExt = '*.zip'
+ Filter =
+ 'Zip archive (*.zip)|*.zip|BZip2 archive (*.bz2)|*.bz2|Sevenzip a' +
+ 'rchive (*.7z)|*.7z|Tar archive (*.tar)|*.tar|GZip archive (*.gz)' +
+ '|*.gz|Splitted archive (*.001)|*.001'
+ FilterIndex = 0
+ Options = [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist, ofCreatePrompt, ofNoReadOnlyReturn, ofEnableSizing]
+ Title = 'Create a new archive'
+ Left = 208
+ Top = 80
+ end
+ object OpenDialogFile: TOpenDialog
+ Filter = 'All files (*.*)|*.*'
+ FilterIndex = 0
+ Options = [ofHideReadOnly, ofPathMustExist, ofFileMustExist, ofEnableSizing]
+ Left = 168
+ Top = 120
+ end
+end
Property changes on: branches/compression/jcl/examples/windows/compression/archive/UMain.dfm
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Name: svn:eol-style
+ native
Added: branches/compression/jcl/examples/windows/compression/archive/UMain.pas
===================================================================
--- branches/compression/jcl/examples/windows/compression/archive/UMain.pas (rev 0)
+++ branches/compression/jcl/examples/windows/compression/archive/UMain.pas 2007-05-27 19:55:38 UTC (rev 2018)
@@ -0,0 +1,361 @@
+unit UMain;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
+ Dialogs, StdCtrls, ExtCtrls, ActnList, ComCtrls, ImgList, JclCompression;
+
+type
+ TForm1 = class(TForm)
+ Panel1: TPanel;
+ ActionList1: TActionList;
+ ActionOpen: TAction;
+ ActionExtractSelected: TAction;
+ ActionExtractAll: TAction;
+ ActionNew: TAction;
+ ActionAddFile: TAction;
+ ActionAddDirectory: TAction;
+ ActionSave: TAction;
+ Bevel1: TBevel;
+ ListView1: TListView;
+ OpenDialogArchive: TOpenDialog;
+ SaveDialogArchive: TSaveDialog;
+ ButtonOpen: TButton;
+ ButtonExtractSelected: TButton;
+ ButtonExtractAll: TButton;
+ ButtonNew: TButton;
+ ButtonAddFile: TButton;
+ ButtonAddDirectory: TButton;
+ ButtonSave: TButton;
+ OpenDialogFile: TOpenDialog;
+ ProgressBar1: TProgressBar;
+ procedure ActionAlwaysEnabled(Sender: TObject);
+ procedure ActionExtractSelectedUpdate(Sender: TObject);
+ procedure ActionExtractAllUpdate(Sender: TObject);
+ procedure ActionAddFileUpdate(Sender: TObject);
+ procedure ActionAddDirectoryUpdate(Sender: TObject);
+ procedure ActionSaveUpdate(Sender: TObject);
+ procedure ActionNewExecute(Sender: TObject);
+ procedure FormDestroy(Sender: TObject);
+ procedure ActionAddFileExecute(Sender: TObject);
+ procedure ActionAddDirectoryExecute(Sender: TObject);
+ procedure ActionSaveExecute(Sender: TObject);
+ procedure ActionOpenExecute(Sender: TObject);
+ procedure ListView1Data(Sender: TObject; Item: TListItem);
+ procedure ActionExtractAllExecute(Sender: TObject);
+ procedure ActionExtractSelectedExecute(Sender: TObject);
+ private
+ FArchive: TJclCompressionArchive;
+ procedure CloseArchive;
+ procedure ArchiveProgress(Sender: TObject; const Value, MaxValue: Int64);
+ public
+ end;
+
+var
+ Form1: TForm1;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ JclAnsiStrings, Sevenzip, FileCtrl;
+
+function FileTimeToString(const FileTime: TFileTime): string;
+var
+ LocalFileTime: TFileTime;
+ SystemTime: TSystemTime;
+begin
+ if FileTimeToLocalFileTime(FileTime, LocalFileTime)
+ and FileTimeToSystemTime(LocalFileTime, SystemTime) then
+ Result := DateTimeToStr(EncodeDate(SystemTime.wYear, SystemTime.wMonth, SystemTime.wDay)
+ + EncodeTime(SystemTime.wHour, SystemTime.wMinute, SystemTime.wSecond, SystemTime.wMilliseconds))
+ else
+ Result := '';
+end;
+
+procedure TForm1.ActionAddDirectoryExecute(Sender: TObject);
+var
+ Directory: string;
+begin
+ if FileCtrl.SelectDirectory('Select directory', '', Directory, [sdNewUI], Self) then
+ begin
+ (FArchive as TJclCompressArchive).AddDirectory(ExtractFileName(Directory), Directory, True, True);
+ ListView1.Items.BeginUpdate;
+ try
+ while ListView1.Items.Count < FArchive.FileCount do
+ ListView1.Items.Add;
+ finally
+ ListView1.Items.EndUpdate;
+ end;
+ end;
+end;
+
+procedure TForm1.ActionAddDirectoryUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := (FArchive is TJclZipCompressArchive)
+ or (FArchive is TJcl7zCompressArchive) or (FArchive is TJclTarCompressArchive);
+end;
+
+procedure TForm1.ActionAddFileExecute(Sender: TObject);
+begin
+ if OpenDialogFile.Execute then
+ begin
+ (FArchive as TJclCompressArchive).AddFile(ExtractFileName(OpenDialogFile.FileName), OpenDialogFile.FileName);
+ ListView1.Items.Add;
+ end;
+end;
+
+procedure TForm1.ActionAddFileUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := (FArchive is TJclZipCompressArchive)
+ or (FArchive is TJcl7zCompressArchive) or (FArchive is TJclTarCompressArchive)
+ or ((ListView1.Items.Count = 0) and (FArchive is TJclCompressionArchive));
+end;
+
+procedure TForm1.ActionAlwaysEnabled(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := True;
+end;
+
+procedure TForm1.ActionExtractAllExecute(Sender: TObject);
+var
+ Directory: string;
+begin
+ if FileCtrl.SelectDirectory('Target directory', '', Directory, [sdNewUI], Self) then
+ (FArchive as TJclDecompressArchive).ExtractAll(Directory, True);
+end;
+
+procedure TForm1.ActionExtractAllUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := FArchive is TJclDecompressArchive;
+end;
+
+procedure TForm1.ActionExtractSelectedExecute(Sender: TObject);
+var
+ Directory: string;
+ Index: Integer;
+begin
+ if FileCtrl.SelectDirectory('Target directory', '', Directory, [sdNewUI], Self) then
+ begin
+ for Index := 0 to ListView1.Items.Count - 1 do
+ FArchive.Selected[Index] := ListView1.Items.Item[Index].Selected;
+
+ (FArchive as TJclDecompressArchive).ExtractSelected(Directory, True);
+ end;
+end;
+
+procedure TForm1.ActionExtractSelectedUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := (FArchive is TJclDecompressArchive) and (ListView1.SelCount > 0);
+end;
+
+procedure TForm1.ActionNewExecute(Sender: TObject);
+var
+ ArchiveFileName, ArchiveExt, VolumeSizeStr, Password: string;
+ VolumeSize: Int64;
+ Code: Integer;
+begin
+ if SaveDialogArchive.Execute then
+ begin
+ CloseArchive;
+
+ ArchiveFileName := SaveDialogArchive.FileName;
+ VolumeSizeStr := '0';
+ repeat
+ if InputQuery('Split archive?', 'Volume size in byte:', VolumeSizeStr) then
+ Val(VolumeSizeStr, VolumeSize, Code)
+ else
+ begin
+ VolumeSize := 0;
+ Code := 0;
+ end;
+ until Code = 0;
+
+ InputQuery('Archive password', 'Value', Password);
+
+ ArchiveExt := ExtractFileExt(ArchiveFileName);
+ if VolumeSize <> 0 then
+ ArchiveFileName := ArchiveFileName + '.%d';
+
+ if AnsiSameText(ArchiveExt, '.zip') then
+ FArchive := TJclZipCompressArchive.Create(ArchiveFileName, VolumeSize, VolumeSize <> 0)
+ else
+ if AnsiSameText(ArchiveExt, '.tar') then
+ FArchive := TJclTarCompressArchive.Create(ArchiveFileName, VolumeSize, VolumeSize <> 0)
+ else
+ if AnsiSameText(ArchiveExt, '.7z') then
+ FArchive := TJcl7zCompressArchive.Create(ArchiveFileName, VolumeSize, VolumeSize <> 0)
+ else
+ if AnsiSameText(ArchiveExt, '.bz2') then
+ FArchive := TJclBZ2CompressArchive.Create(ArchiveFileName, VolumeSize, VolumeSize <> 0)
+ else
+ if AnsiSameText(ArchiveExt, '.gz') then
+ FArchive := TJclGZipCompressArchive.Create(ArchiveFileName, VolumeSize, VolumeSize <> 0);
+
+ if Assigned(FArchive) then
+ begin
+ FArchive.Password := Password;
+ FArchive.OnProgress := ArchiveProgress;
+ end;
+ end;
+end;
+
+procedure TForm1.ActionOpenExecute(Sender: TObject);
+var
+ ArchiveFileName, ArchiveFileExt, Password: string;
+ SplitArchive: Boolean;
+begin
+ if OpenDialogArchive.Execute then
+ begin
+ CloseArchive;
+
+ ArchiveFileName := OpenDialogArchive.FileName;
+ ArchiveFileExt := ExtractFileExt(ArchiveFileName);
+ SplitArchive := AnsiSameText(ArchiveFileExt, '.001');
+ if SplitArchive then
+ begin
+ ArchiveFileName := ChangeFileExt(ArchiveFileName, '');
+ ArchiveFileExt := ExtractFileExt(ArchiveFileName);
+ ArchiveFileName := ArchiveFileName + '.%d';
+ end;
+
+ InputQuery('Archive password', 'Value', Password);
+
+ if AnsiSameText(ArchiveFileExt, '.zip') then
+ FArchive := TJclZipDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.bz2') then
+ FArchive := TJclBZ2DecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.rar') then
+ FArchive := TJclRarDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.arj') then
+ FArchive := TJclArjDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.z') then
+ FArchive := TJclZDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.lzh') then
+ FArchive := TJclLzhDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.7z') then
+ FArchive := TJcl7zDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.nsis') then
+ FArchive := TJclNsisDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.iso') then
+ FArchive := TJclIsoDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.cab') then
+ FArchive := TJclCabDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.chm') then
+ FArchive := TJclChmDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.rpm') then
+ FArchive := TJclRpmDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.deb') then
+ FArchive := TJclDebDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.cpio') then
+ FArchive := TJclCpioDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.tar') then
+ FArchive := TJclTarDecompressArchive.Create(ArchiveFileName, 0, SplitArchive)
+ else
+ if AnsiSameText(ArchiveFileExt, '.gz') then
+ FArchive := TJclGZipDecompressArchive.Create(ArchiveFileName, 0, SplitArchive);
+
+ if Assigned(FArchive) then
+ begin
+ FArchive.Password := Password;
+ FArchive.OnProgress := ArchiveProgress;
+ (FArchive as TJclDecompressArchive).ListFiles;
+ ListView1.Items.BeginUpdate;
+ try
+ while ListView1.Items.Count < FArchive.FileCount do
+ ListView1.Items.Add;
+ finally
+ ListView1.Items.EndUpdate;
+ end;
+ end;
+ end;
+end;
+
+procedure TForm1.ActionSaveExecute(Sender: TObject);
+begin
+ (FArchive as TJclCompressArchive).Compress;
+ CloseArchive;
+end;
+
+procedure TForm1.ActionSaveUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := (FArchive is TJclCompressArchive) and (ListView1.Items.Count > 0);
+end;
+
+procedure TForm1.ArchiveProgress(Sender: TObject; const Value, MaxValue: Int64);
+var
+ MyValue, MyMaxValue: Int64;
+begin
+ MyValue := Value;
+ MyMaxValue := MaxValue;
+
+ while MyMaxValue > High(Word) do
+ begin
+ MyMaxValue := MyMaxValue shr 8;
+ MyValue := MyValue shr 8;
+ end;
+ ProgressBar1.Max := MyMaxValue;
+ ProgressBar1.Position := MyValue;
+end;
+
+procedure TForm1.CloseArchive;
+begin
+ FreeAndNil(FArchive);
+ ListView1.Items.Clear;
+end;
+
+procedure TForm1.FormDestroy(Sender: TObject);
+begin
+ CloseArchive;
+end;
+
+procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
+var
+ Index: Integer;
+begin
+ if not Assigned(FArchive) then
+ begin
+ Item.Caption := '';
+ Item.SubItems.Clear;
+ Exit;
+ end;
+
+ Index := Item.Index;
+ Item.Caption := FArchive.DiskFileNames[Index];
+ Item.SubItems.Clear;
+ Item.SubItems.Add(FArchive.ArchiveFileNames[Index]);
+ Item.SubItems.Add(IntToStr(FArchive.FileSizes[Index]));
+ Item.SubItems.Add(IntToStr(FArchive.FilePackedSizes[Index]));
+ Item.SubItems.Add(FileTimeToString(FArchive.FileCreationTimes[Index]));
+ Item.SubItems.Add(FileTimeToString(FArchive.FileLastAccessTimes[Index]));
+ Item.SubItems.Add(FileTimeToString(FArchive.FileLastWriteTime[Index]));
+ Item.SubItems.Add(FArchive.FileComments[Index]);
+ Item.SubItems.Add(FArchive.FileHostOS[Index]);
+ Item.SubItems.Add(FArchive.FileHostFS[Index]);
+ Item.SubItems.Add(FArchive.FileUsers[Index]);
+ Item.SubItems.Add(FArchive.FileGroups[Index]);
+ Item.SubItems.Add(IntToHex(FArchive.FileCRC[Index], 8));
+end;
+
+initialization
+
+ if not Load7Zip then
+ raise EJclCompressionError.Create('Cannot load sevenzip library');
+
+end.
Property changes on: branches/compression/jcl/examples/windows/compression/archive/UMain.pas
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Name: svn:eol-style
+ native
Modified: branches/compression/jcl/install/JclInstall.pas
===================================================================
--- branches/compression/jcl/install/JclInstall.pas 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/install/JclInstall.pas 2007-05-27 19:55:38 UTC (rev 2018)
@@ -43,6 +43,7 @@
joDefEDI,
joDefPCRE,
joDefBZip2,
+ joDef7z,
joDefThreadSafe,
joDefDropObsoleteCode,
joDefUnitVersioning,
@@ -63,6 +64,9 @@
joDefBZip2StaticLink,
joDefBZip2LinkDLL,
joDefBZip2LinkOnRequest,
+ joDef7zStaticLink,
+ joDef7zLinkDLL,
+ joDef7zLinkOnRequest,
joEnvironment,
joEnvLibPath,
joEnvBrowsingPath,
@@ -370,6 +374,11 @@
RsCaptionDefBZip2StaticLink = 'Static link to BZip2 code (experimental)';
RsCaptionDefBZip2LinkDLL = 'Static bind to bzip2.dll';
RsCaptionDefBZip2LinkOnRequest = 'Late bind to bzip2.dll';
+ // 7Z options
+ RsCaptionDef7z = 'Sevenzip options';
+ RsCaptionDef7zStaticLink = 'Static link to Sevenzip code (not supported yet)';
+ RsCaptionDef7zLinkDLL = 'Static bind to 7z.dll';
+ RsCaptionDef7zLinkOnRequest = 'Late bind to 7z.dll';
// post compilation
RsCaptionPdbCreate = 'Create PDB debug information';
@@ -461,7 +470,12 @@
RsHintDefBZip2 = 'BZip2 specific options (bzip2.pas)';
RsHintDefBZip2StaticLink = 'Code from BZip2 is linked into JCL binaries';
RsHintDefBZip2LinkDLL = 'JCL binaries require bzip2.dll to be present';
- RsHintDefBZip2LinkOnRequest = 'JCL binaries require bzip2.dll when calling PCRE functions';
+ RsHintDefBZip2LinkOnRequest = 'JCL binaries require bzip2.dll when calling BZip2 functions';
+ // 7Z options
+ RsHintDef7z = 'Sevenzip specific options (sevenzip.pas)';
+ RsHintDef7zStaticLink = 'Code from Sevenzip is linked into JCL binaries';
+ RsHintDef7zLinkDLL = 'JCL binaries require 7z.dll to be present';
+ RsHintDef7zLinkOnRequest = 'JCL binaries require 7z.dll when calling Sevenzip functions';
// post compilation
RsHintPdbCreate = 'Create detailed debug information for libraries';
@@ -555,6 +569,7 @@
(Id: -1; Caption: RsCaptionDefEDI; Hint: RsHintDefEDI), // joDefEDI
(Id: -1; Caption: RsCaptionDefPCRE; Hint: RsHintDefPCRE), // joDefPCRE
(Id: -1; Caption: RsCaptionDefBZip2; Hint: RsHintDefBZip2), // joDefBZip2
+ (Id: -1; Caption: RsCaptionDef7z; Hint: RsHintDef7z), // joDef7z
(Id: -1; Caption: RsCaptionDefThreadSafe; Hint: RsHintDefThreadSafe), // joDefThreadSafe
(Id: -1; Caption: RsCaptionDefDropObsoleteCode; Hint: RsHintDefDropObsoleteCode), // joDefDropObsoleteCode
(Id: -1; Caption: RsCaptionDefUnitVersioning; Hint: RsHintDefUnitVersioning), // joDefUnitVersioning
@@ -575,6 +590,9 @@
(Id: -1; Caption: RsCaptionDefBZip2StaticLink; Hint: RsHintDefBZip2StaticLink), // joDefBZip2StaticLink
(Id: -1; Caption: RsCaptionDefBZip2LinkDLL; Hint: RsHintDefBZip2LinkDLL), // joDefBZip2LinkDLL
(Id: -1; Caption: RsCaptionDefBZip2LinkOnRequest; Hint: RsHintDefBZip2LinkOnRequest), // joDefBZip2LinkOnRequest
+ (Id: -1; Caption: RsCaptionDef7zStaticLink; Hint: RsHintDef7zStaticLink), // joDef7zStaticLink
+ (Id: -1; Caption: RsCaptionDef7zLinkDLL; Hint: RsHintDef7zLinkDLL), // joDef7zLinkDLL
+ (Id: -1; Caption: RsCaptionDef7zLinkOnRequest; Hint: RsHintDef7zLinkOnRequest), // joDef7zLinkOnRequest
(Id: -1; Caption: RsCaptionEnvironment; Hint: RsHintEnvironment), // joEnvironment
(Id: -1; Caption: RsCaptionEnvLibPath; Hint: RsHintEnvLibPath), // joEnvLibPath
(Id: -1; Caption: RsCaptionEnvBrowsingPath; Hint: RsHintEnvBrowsingPath), // joEnvBrowsingPath
@@ -938,6 +956,11 @@
{$ENDIF MSWINDOWS}
AddOption(joDefBZip2LinkOnRequest, [goRadioButton, goChecked], joDefBZip2);
AddOption(joDefBZip2LinkDLL, [goRadioButton], joDefBZip2);
+ // Sevenzip options
+ AddOption(joDef7z, [goChecked], Parent);
+ //AddOption(joDef7zStaticLink, [goRadioButton], joDef7z);
+ AddOption(joDef7zLinkOnRequest, [goRadioButton, goChecked], joDef7z);
+ AddOption(joDef7zLinkDLL, [goRadioButton], joDef7z);
end;
end;
@@ -1376,14 +1399,15 @@
end;
const
- DefineNames: array [joDefThreadSafe..joDefBZip2LinkOnRequest] of string =
+ DefineNames: array [joDefThreadSafe..joDef7zLinkOnRequest] of string =
( 'THREADSAFE', 'DROP_OBSOLETE_CODE', 'UNITVERSIONING',
'MATH_SINGLE_PRECISION', 'MATH_DOUBLE_PRECISION', 'MATH_EXTENDED_PRECISION',
'MATH_EXT_EXTREMEVALUES', 'HOOK_DLL_EXCEPTIONS',
'DEBUG_NO_BINARY', 'DEBUG_NO_TD32', 'DEBUG_NO_MAP', 'DEBUG_NO_EXPORTS',
'DEBUG_NO_SYMBOLS', 'EDI_WEAK_PACKAGE_UNITS', 'PCRE_STATICLINK',
'PCRE_LINKDLL', 'PCRE_LINKONREQUEST', 'BZIP2_STATICLINK',
- 'BZIP2_LINKDLL', 'BZIP2_LINKONREQUEST' );
+ 'BZIP2_LINKDLL', 'BZIP2_LINKONREQUEST', '7ZIP_STATICLINK', '7ZIP_LINKDLL',
+ '7ZIP_LINKONREQUEST' );
var
Option: TJclOption;
Defines: TStrings;
Modified: branches/compression/jcl/lib/d10.net/windows.exc
===================================================================
--- branches/compression/jcl/lib/d10.net/windows.exc 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/lib/d10.net/windows.exc 2007-05-27 19:55:38 UTC (rev 2018)
@@ -33,5 +33,6 @@
mscorlib_TLB.pas
MSHelpServices_TLB.pas
MSTask.pas
+Sevenzip.pas
Snmp.pas
zlibh.pas
\ No newline at end of file
Modified: branches/compression/jcl/lib/d9.net/windows.exc
===================================================================
--- branches/compression/jcl/lib/d9.net/windows.exc 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/lib/d9.net/windows.exc 2007-05-27 19:55:38 UTC (rev 2018)
@@ -33,5 +33,6 @@
mscorlib_TLB.pas
MSHelpServices_TLB.pas
MSTask.pas
+Sevenzip.pas
Snmp.pas
zlibh.pas
\ No newline at end of file
Modified: branches/compression/jcl/packages/c5/JclC50.bpk
===================================================================
--- branches/compression/jcl/packages/c5/JclC50.bpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/c5/JclC50.bpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -5,7 +5,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:41 UTC
+ Last generated: 27-05-2007 19:28:47 UTC
*****************************************************************************
-->
<PROJECT>
@@ -98,6 +98,7 @@
..\..\lib\c5\JclWinMIDI.obj
..\..\lib\c5\MSHelpServices_TLB.obj
..\..\lib\c5\MSTask.obj
+ ..\..\lib\c5\sevenzip.obj
..\..\lib\c5\Snmp.obj
..\..\lib\c5\zlibh.obj
..\..\lib\c5\JclGraphics.obj
Modified: branches/compression/jcl/packages/c5/JclC50.cpp
===================================================================
--- branches/compression/jcl/packages/c5/JclC50.cpp 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/c5/JclC50.cpp 2007-05-27 19:55:38 UTC (rev 2018)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:41 UTC
+ Last generated: 27-05-2007 19:28:47 UTC
-----------------------------------------------------------------------------
*/
@@ -95,6 +95,7 @@
USEUNIT("..\..\source\windows\JclWinMIDI.pas");
USEUNIT("..\..\source\windows\MSHelpServices_TLB.pas");
USEUNIT("..\..\source\windows\MSTask.pas");
+USEUNIT("..\..\source\windows\sevenzip.pas");
USEUNIT("..\..\source\windows\Snmp.pas");
USEUNIT("..\..\source\windows\zlibh.pas");
USEUNIT("..\..\source\vcl\JclGraphics.pas");
Modified: branches/compression/jcl/packages/c5/JclC50.dpk
===================================================================
--- branches/compression/jcl/packages/c5/JclC50.dpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/c5/JclC50.dpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:42 UTC
+ Last generated: 27-05-2007 19:28:47 UTC
-----------------------------------------------------------------------------
}
@@ -124,6 +124,7 @@
JclWinMIDI in '..\..\source\windows\JclWinMIDI.pas' ,
MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ,
MSTask in '..\..\source\windows\MSTask.pas' ,
+ sevenzip in '..\..\source\windows\sevenzip.pas' ,
Snmp in '..\..\source\windows\Snmp.pas' ,
zlibh in '..\..\source\windows\zlibh.pas' ,
JclGraphics in '..\..\source\vcl\JclGraphics.pas' ,
Modified: branches/compression/jcl/packages/c6/Jcl.bpk
===================================================================
--- branches/compression/jcl/packages/c6/Jcl.bpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/c6/Jcl.bpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -5,7 +5,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:42 UTC
+ Last generated: 27-05-2007 19:28:47 UTC
*****************************************************************************
-->
<PROJECT>
@@ -98,6 +98,7 @@
..\..\lib\c6\obj\JclWinMIDI.obj
..\..\lib\c6\obj\MSHelpServices_TLB.obj
..\..\lib\c6\obj\MSTask.obj
+ ..\..\lib\c6\obj\sevenzip.obj
..\..\lib\c6\obj\Snmp.obj
..\..\lib\c6\obj\zlibh.obj
"/>
@@ -235,6 +236,7 @@
<FILE FILENAME="..\..\source\windows\JclWinMIDI.pas" FORMNAME="" UNITNAME="JclWinMIDI" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="..\..\source\windows\MSHelpServices_TLB.pas" FORMNAME="" UNITNAME="MSHelpServices_TLB" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="..\..\source\windows\MSTask.pas" FORMNAME="" UNITNAME="MSTask" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="..\..\source\windows\sevenzip.pas" FORMNAME="" UNITNAME="sevenzip" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="..\..\source\windows\Snmp.pas" FORMNAME="" UNITNAME="Snmp" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="..\..\source\windows\zlibh.pas" FORMNAME="" UNITNAME="zlibh" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
</FILELIST>
Modified: branches/compression/jcl/packages/c6/Jcl.dpk
===================================================================
--- branches/compression/jcl/packages/c6/Jcl.dpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/c6/Jcl.dpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:43 UTC
+ Last generated: 27-05-2007 19:28:47 UTC
-----------------------------------------------------------------------------
}
@@ -123,6 +123,7 @@
JclWinMIDI in '..\..\source\windows\JclWinMIDI.pas' ,
MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ,
MSTask in '..\..\source\windows\MSTask.pas' ,
+ sevenzip in '..\..\source\windows\sevenzip.pas' ,
Snmp in '..\..\source\windows\Snmp.pas' ,
zlibh in '..\..\source\windows\zlibh.pas'
;
Modified: branches/compression/jcl/packages/cs1/Jcl.dpk
===================================================================
--- branches/compression/jcl/packages/cs1/Jcl.dpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/cs1/Jcl.dpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:46 UTC
+ Last generated: 27-05-2007 19:28:48 UTC
-----------------------------------------------------------------------------
}
@@ -124,6 +124,7 @@
JclWinMIDI in '..\..\source\windows\JclWinMIDI.pas' ,
MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ,
MSTask in '..\..\source\windows\MSTask.pas' ,
+ sevenzip in '..\..\source\windows\sevenzip.pas' ,
Snmp in '..\..\source\windows\Snmp.pas' ,
zlibh in '..\..\source\windows\zlibh.pas'
;
Modified: branches/compression/jcl/packages/d10/Jcl.dpk
===================================================================
--- branches/compression/jcl/packages/d10/Jcl.dpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/d10/Jcl.dpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:48 UTC
+ Last generated: 27-05-2007 19:28:48 UTC
-----------------------------------------------------------------------------
}
@@ -128,6 +128,7 @@
mscorlib_TLB in '..\..\source\windows\mscorlib_TLB.pas' ,
MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ,
MSTask in '..\..\source\windows\MSTask.pas' ,
+ sevenzip in '..\..\source\windows\sevenzip.pas' ,
Snmp in '..\..\source\windows\Snmp.pas' ,
zlibh in '..\..\source\windows\zlibh.pas'
;
Modified: branches/compression/jcl/packages/d11/Jcl.dpk
===================================================================
--- branches/compression/jcl/packages/d11/Jcl.dpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/d11/Jcl.dpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:49 UTC
+ Last generated: 27-05-2007 19:28:48 UTC
-----------------------------------------------------------------------------
}
@@ -128,6 +128,7 @@
mscorlib_TLB in '..\..\source\windows\mscorlib_TLB.pas' ,
MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ,
MSTask in '..\..\source\windows\MSTask.pas' ,
+ sevenzip in '..\..\source\windows\sevenzip.pas' ,
Snmp in '..\..\source\windows\Snmp.pas' ,
zlibh in '..\..\source\windows\zlibh.pas'
;
Modified: branches/compression/jcl/packages/d5/JclD50.dpk
===================================================================
--- branches/compression/jcl/packages/d5/JclD50.dpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/d5/JclD50.dpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:44 UTC
+ Last generated: 27-05-2007 19:28:47 UTC
-----------------------------------------------------------------------------
}
@@ -128,6 +128,7 @@
mscorlib_TLB in '..\..\source\windows\mscorlib_TLB.pas' ,
MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ,
MSTask in '..\..\source\windows\MSTask.pas' ,
+ sevenzip in '..\..\source\windows\sevenzip.pas' ,
Snmp in '..\..\source\windows\Snmp.pas' ,
zlibh in '..\..\source\windows\zlibh.pas' ,
JclGraphics in '..\..\source\vcl\JclGraphics.pas' ,
Modified: branches/compression/jcl/packages/d6/Jcl.dpk
===================================================================
--- branches/compression/jcl/packages/d6/Jcl.dpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/d6/Jcl.dpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:44 UTC
+ Last generated: 27-05-2007 19:28:47 UTC
-----------------------------------------------------------------------------
}
@@ -128,6 +128,7 @@
mscorlib_TLB in '..\..\source\windows\mscorlib_TLB.pas' ,
MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ,
MSTask in '..\..\source\windows\MSTask.pas' ,
+ sevenzip in '..\..\source\windows\sevenzip.pas' ,
Snmp in '..\..\source\windows\Snmp.pas' ,
zlibh in '..\..\source\windows\zlibh.pas'
;
Modified: branches/compression/jcl/packages/d7/Jcl.dpk
===================================================================
--- branches/compression/jcl/packages/d7/Jcl.dpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/d7/Jcl.dpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:45 UTC
+ Last generated: 27-05-2007 19:28:47 UTC
-----------------------------------------------------------------------------
}
@@ -128,6 +128,7 @@
mscorlib_TLB in '..\..\source\windows\mscorlib_TLB.pas' ,
MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ,
MSTask in '..\..\source\windows\MSTask.pas' ,
+ sevenzip in '..\..\source\windows\sevenzip.pas' ,
Snmp in '..\..\source\windows\Snmp.pas' ,
zlibh in '..\..\source\windows\zlibh.pas'
;
Modified: branches/compression/jcl/packages/d8/Jcl.dpk
===================================================================
--- branches/compression/jcl/packages/d8/Jcl.dpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/d8/Jcl.dpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:46 UTC
+ Last generated: 27-05-2007 19:28:48 UTC
-----------------------------------------------------------------------------
}
@@ -128,6 +128,7 @@
mscorlib_TLB in '..\..\source\windows\mscorlib_TLB.pas' ,
MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ,
MSTask in '..\..\source\windows\MSTask.pas' ,
+ sevenzip in '..\..\source\windows\sevenzip.pas' ,
Snmp in '..\..\source\windows\Snmp.pas' ,
zlibh in '..\..\source\windows\zlibh.pas'
;
Modified: branches/compression/jcl/packages/d9/Jcl.dpk
===================================================================
--- branches/compression/jcl/packages/d9/Jcl.dpk 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/d9/Jcl.dpk 2007-05-27 19:55:38 UTC (rev 2018)
@@ -4,7 +4,7 @@
DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR
ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml)
- Last generated: 20-04-2007 16:14:47 UTC
+ Last generated: 27-05-2007 19:28:48 UTC
-----------------------------------------------------------------------------
}
@@ -128,6 +128,7 @@
mscorlib_TLB in '..\..\source\windows\mscorlib_TLB.pas' ,
MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ,
MSTask in '..\..\source\windows\MSTask.pas' ,
+ sevenzip in '..\..\source\windows\sevenzip.pas' ,
Snmp in '..\..\source\windows\Snmp.pas' ,
zlibh in '..\..\source\windows\zlibh.pas'
;
Modified: branches/compression/jcl/packages/xml/Jcl-R.xml
===================================================================
--- branches/compression/jcl/packages/xml/Jcl-R.xml 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/packages/xml/Jcl-R.xml 2007-05-27 19:55:38 UTC (rev 2018)
@@ -105,6 +105,7 @@
<File Name="..\..\source\windows\mscorlib_TLB.pas" Targets="DelphiDev" Formname="" Condition=""/>
<File Name="..\..\source\windows\MSHelpServices_TLB.pas" Targets="WinDev" Formname="" Condition=""/>
<File Name="..\..\source\windows\MSTask.pas" Targets="WinDev" Formname="" Condition=""/>
+ <File Name="..\..\source\windows\sevenzip.pas" Targets="WinDev" Formname="" Condition=""/>
<File Name="..\..\source\windows\Snmp.pas" Targets="WinDev" Formname="" Condition=""/>
<File Name="..\..\source\windows\zlibh.pas" Targets="WinDev" Formname="" Condition=""/>
<File Name="..\..\source\vcl\JclGraphics.pas" Targets="c5,d5" Formname="" Condition=""/>
Modified: branches/compression/jcl/source/common/JclBase.pas
===================================================================
--- branches/compression/jcl/source/common/JclBase.pas 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/source/common/JclBase.pas 2007-05-27 19:55:38 UTC (rev 2018)
@@ -124,12 +124,15 @@
{$ELSE ~RTL140_UP}
PBoolean = ^Boolean;
PByte = Windows.PByte;
+ PPWideChar = ^PWideChar;
{$ENDIF ~RTL140_UP}
{$ENDIF FPC}
PCardinal = ^Cardinal;
{$IFNDEF COMPILER7_UP}
UInt64 = Int64;
{$ENDIF ~COMPILER7_UP}
+ PUInt64 = ^UInt64;
+ PPUInt64 = ^PUInt64;
// Interface compatibility
{$IFDEF SUPPORTS_INTERFACE}
Modified: branches/compression/jcl/source/common/JclCompression.pas
===================================================================
--- branches/compression/jcl/source/common/JclCompression.pas 2007-05-27 18:51:24 UTC (rev 2017)
+++ branches/compression/jcl/source/common/JclCompression.pas 2007-05-27 19:55:38 UTC (rev 2018)
@@ -52,7 +52,7 @@
JclUnitVersioning,
{$ENDIF UNITVERSIONING}
{$IFDEF MSWINDOWS}
- Windows,
+ Windows, Sevenzip,
{$ENDIF MSWINDOWS}
{$IFDEF UNIX}
Types,
@@ -64,25 +64,59 @@
zlibh, bzip2,
JclBase, JclStreams;
-{**************************************************************************************************}
-{
- TJclCompressionStream
- - -
- ----------------------- --------------------------
- - -
- TJclCompressStream TJclDecompressStream
- - -
- --------------------------------- ---------------------------------
- - - - - - -
- - - - - - -
- TJclZLibCompressStream - TBZIP2CompressStram TJclZLibDecompressStream - TBZIP2DeCompressStream
- - -
- - TGZDecompressStream
- TGZCompressStream
+{**************************************************************************************************
+ Class hierarchy
- }
-{**************************************************************************************************}
+ TJclCompressionStream
+ |
+ |-- TJclCompressStream
+ | |
+ | |-- TJclZLibCompressStream handled by zlib http://www.zlib.net/
+ | |-- TJclBZIP2CompressStream handled by bzip2 http://www.bzip.net/
+ | |-- TJclGZIPCompressStream handled by zlib http://www.zlib.net/ + JCL
+ |
+ |-- TJclDecompressStream
+ |
+ |-- TJclZLibDecompressStream handled by zlib http://www.zlib.net/
+ |-- TBZIP2DecompressStream handled by bzip2 http://www.bzip.net/
+ |-- TGZIPDecompressStream handled by zlib http://www.zlib.net/ + JCL
+ TJclCompressionArchive
+ |
+ |-- TJclCompressArchive
+ | |
+ | |-- TJclSevenzipCompressArchive
+ | |
+ | |-- TJclZipCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ | |-- TJclBZ2CompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ | |-- TJcl7zCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ | |-- TJclTarCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ | |-- TJclGZipCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |
+ |-- TJclDecompressArchive
+ |
+ |-- TJclSevenZipDecompressArchive
+ |
+ |-- TJclZipDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclBZ2DecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclRarDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclArjDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclZDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclLzhDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJcl7zDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclNsisDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclIsoDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclCabDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclChmDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclSplitDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclRpmDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclDebDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclCpioDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclTarDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+ |-- TJclGZipDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/
+
+**************************************************************************************************}
+
type
TJclCompressionStream = class(TJclStream)
private
@@ -343,20 +377,6 @@
property OriginalDataSize: Cardinal read GetOriginalDataSize;
end;
- // RAR Support
- TJclRARCompressionStream = class(TJclCompressionStream)
- end;
-
- TJclRARDecompressionStream = class(TJclDecompressStream)
- end;
-
- // TAR Support
- TJclTARCompressionStream = class(TJclCompressionStream)
- end;
-
- TJclTARDecompressionStream = class(TJclDecompressStream)
- end;
-
// BZIP2 Support
TJclBZIP2CompressionStream = class(TJclCompressStream)
private
@@ -399,12 +419,437 @@
ProgressCallback: TJclCompressStreamProgressCallback = nil; UserData: Pointer = nil): Boolean;
function UnGZipFile(SourceFile, DestinationFile: string;
ProgressCallback: TJclCompressStreamProgressCallback = nil; UserData: Pointer = nil): Boolean;
+procedure GZipStream(SourceStream, DestinationStream: TStream; CompressionLevel: Integer = Z_DEFAULT_COMPRESSION;
+ ProgressCallback: TJclCompressStreamProgressCallback = nil; UserData: Pointer = nil);
+procedure UnGZipStream(SourceStream, DestinationStream: TStream;
+ ProgressCallback: TJclCompressStreamProgressCallback = nil; UserData: Pointer = nil);
function BZip2File(SourceFile, DestinationFile: string; CompressionLevel: Integer = 5;
ProgressCallback: TJclCompressStreamProgressCallback = nil; UserData: Pointer = nil): Boolean;
function UnBZip2File(SourceFile, DestinationFile: string;
ProgressCallback: TJclCompressStreamProgressCallback = nil; UserData: Pointer = nil): Boolean;
+procedure BZip2Stream(SourceStream, DestinationStream: TStream; CompressionLevel: Integer = 5;
+ ProgressCallback: TJclCompressStreamProgressCallback = nil; UserData: Pointer = nil);
+procedure UnBZip2Stream(SourceStream, DestinationStream: TStream;
+ ProgressCallback: TJclCompressStreamProgressCallback = nil; UserData: Pointer = nil);
+// archive ancestor classes
+{$IFDEF MSWINDOWS}
+type
+ TJclCompressionVolumeEvent = procedure(Sender: TObject; Index: Integer;
+ var AFileName: string; var AStream: TStream; var AOwnStream: Boolean) of object;
+ TJclCompressionVolumeMaxSizeEvent = procedure(Sender: TObject; Index: Integer;
+ var AVolumeMaxSize: Int64) of object;
+ TJclCompressionProgressEvent = procedure(Sender: TObject; const Value, MaxValue: Int64) of object;
+
+ TJclCompressionProperties = set of (cpFileSize, cpFilePackedSize, cpFileAttributes,
+ cpFileCreationTime, cpFileLastAccessTime, cpFileLastWriteTime, cpFileComment,
+ cpFileHostOS, cpFileHostFS, cpFileUser, cpFileGroup);
+
+ TJclCompressionOperationSuccess = (osNoOperation, osOK, osUnsupportedMethod,
+ osDataError, osCRCError, osUnknownError);
+
+ TCompressFileRec = record
+ RelName: WideString;
+ FileName: string;
+ Stream: TStream;
+ OwnStream: Boolean;
+ Kind: (kFile, kDirectory);
+ Size: Int64;
+ PackedSize: Int64;
+ Attributes: Cardinal;
+ CreationTime: TFileTime;
+ LastAccessTime: TFileTime;
+ LastWriteTime: TFileTime;
+ Comment: WideString;
+ HostOS: WideString;
+ HostFS: WideString;
+ User: WideString;
+ Group: WideString;
+ CRC: Cardinal;
+ Selected: Boolean;
+ OperationSuccess: TJclCompressionOperationSuccess;
+ IndexInArchive: Integer;
+ end;
+ PCompressFileRec = ^TCompressFileRec;
+
+ TCompressVolumeRec = record
+ FileName: string;
+ Stream: TStream;
+ OwnStream: Boolean;
+ VolumeMaxSize: Int64;
+ end;
+ PCompressVolumeRec = ^TCompressVolumeRec;
+
+ TJclCompressionArchive = class
+ private
+ FOnProgress: TJclCompressionProgressEvent;
+ FOnVolume: TJclCompressionVolumeEvent;
+ FOnVolumeMaxSize: TJclCompressionVolumeMaxSizeEvent;
+ FPassword: WideString;
+ FVolumeIndex: Integer;
+ FVolumeIndexOffset: Integer;
+ FVolumeMaxSize: Int64;
+ FVolumeNameMask: string;
+ FVolumes: TList;
+ FFiles: TList;
+ protected
+ procedure CreateCompressionObject; virtual;
+ procedure FreeCompressionObject; virtual;
+
+ function GetFileCount: Integer;
+ function GetArchiveFileName(Index: Integer): WideString; virtual;
+ function GetDiskFileName(Index: Integer): string; virtual;
+ function GetStream(Index: Integer): TStream; virtual; abstract;
+ function GetFileRec(Index: Integer): PCompressFileRec;
+ procedure ClearFiles; virtual;
+
+ function GetVolumeCount: Integer;
+ function GetVolumeName(Index: Integer): string;
+ function GetVolumeMaxSize(Index: Integer): Int64;
+ procedure ClearVolumes; virtual;
+
+ function GetSelected(Index: Integer): Boolean; virtual;
+ procedure SetSelected(Index: Integer; Value: Boolean); virtual;
+ function GetOperationSuccess(Index: Integer): TJclCompressionOperationSuccess; virtual;
+ procedure SetOperationSuccess(Index: Integer; Value: TJclCompressionOperationSuccess); virtual;
+ procedure ClearAllOperationSuccess;
+
+ function GetIsDirectory(Index: Integer): Boolean; virtual;
+ function GetFileSize(Index: Integer): Int64; virtual;
+ procedure SetFileSize(Index: Integer; const Value: Int64); virtual;
+ function GetFileAttributes(Index: Integer): Cardinal; virtual;
+ procedure SetFileAttributes(Index: Integer; Value: Cardinal); virtual;
+ function GetFilePackedSize(Index: Integer): Int64; virtual;
+ function GetFileCreationTime(Index: Integer): TFileTime; virtual;
+ procedure SetFileCreationTime(Index: Integer; const Value: TFileTime); virtual;
+ function GetFileLastAccessTime(Index: Integer): TFileTime; virtual;
+ procedure SetFileLastAccessTime(Index: Integer; const Value: TFileTime); virtual;
+ function GetFileLastWriteTime(Index: Integer): TFileTime; virtual;
+ procedure SetFileLastWriteTime(Index: Integer; const Value: TFileTime); virtual;
+ function GetFileComment(Index: Integer): WideString; virtual;
+ procedure SetFileComment(Index: Integer; const Value: WideString); virtual;
+ function GetFileCRC(Index: Integer): Cardinal; virtual;
+ function GetFileHostOS(Index: Integer): WideString; virtual;
+ procedure SetFileHostOS(Index: Integer; const Value: WideString); virtual;
+ function GetFileHostFS(Index: Integer): WideString; virtual;
+ procedure SetFileHostFS(Index: Integer; const Value: WideString); virtual;
+ function GetFileUser(Index: Integer): WideString; virtual;
+ procedure SetFileUser(Index: Integer; const Value: WideString); virtual;
+ function GetFileGroup(Index: Integer): WideString; virtual;
+ procedure SetFileGroup(Index: Integer; const Value: WideString); virtual;
+
+ function OpenVolume(const FileName: string): TStream; virtual; abstract;
+
+ procedure DoProgress(const Value, MaxValue: Int64);
+ function NeedVolume(Index: Integer): TStream;
+ function NeedVolumeMaxSize(Index: Integer): Int64;
+ public
+ constructor Create(Volume0: TStream; AVolumeMaxSize: Int64 = 0;
+ AOwnVolume: Boolean = False); overload;
+ constructor Create(const VolumeName: string; AVolumeMaxSize: Int64 = 0;
+ VolumeMask: Boolean = False); overload;
+ // if VolumeMask is true then VolumeName represents a mask to get volume file names
+ // "myfile%d.zip" "myfile.zip.%.3d" ...
+ destructor Destroy; override;
+
+ procedure AddVolume(const VolumeName: string; AVolumeMaxSize: Int64 = 0); overload; virtual;
+ procedure AddVolume(VolumeStream: TStream; AVolumeMaxSize: Int64 = 0;
+ AOwnStream: Boolean = False); overload; virtual;
+
+ procedure CheckOperationSuccess;
+
+ procedure SelectAll;
+ procedure UnselectAll;
+
+ property FileCount: Integer read GetFileCount;
+ property ArchiveFileNames[Index: Integer]: WideString read GetArchiveFileName;
+ property DiskFileNames[Index: Integer]: string read GetDiskFileName;
+ property Streams[Index: Integer]: TStream read GetStream;
+ property Directories[Index: Integer]: Boolean read GetIsDirectory;
+ property FileSizes[Index: Integer]: Int64 read GetFileSize write SetFileSize;
+ property FilePackedSizes[Index: Integer]: Int64 read GetFilePackedSize;
+ property FileAttributes[Index: Integer]: Cardinal read GetFileAttributes write SetFileAttributes;
+ property FileCreationTimes[Index: Integer]: TFileTime read GetFileCreationTime write SetFileCreationTime;
+ property FileLastAccessTimes[Index: Integer]: TFileTime read GetFileLastAccessTime write SetFileLastAccessTime;
+ property FileLastWriteTime[Index: Integer]: TFileTime read GetFileLastWriteTime write SetFileLastWriteTime;
+ property FileComments[Index: Integer]: WideString read GetFileComment write SetFileComment;
+ //kpidEncrypted
+ property FileCRC[Index: Integer]: Cardinal re...
[truncated message content] |
|
From: <ou...@us...> - 2007-05-27 18:51:26
|
Revision: 2017
http://svn.sourceforge.net/jcl/?rev=2017&view=rev
Author: outchy
Date: 2007-05-27 11:51:24 -0700 (Sun, 27 May 2007)
Log Message:
-----------
New branch for archive compression
Added Paths:
-----------
branches/compression/
Copied: branches/compression (from rev 2016, trunk)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-05-27 18:49:16
|
Revision: 2016
http://svn.sourceforge.net/jcl/?rev=2016&view=rev
Author: outchy
Date: 2007-05-27 11:49:13 -0700 (Sun, 27 May 2007)
Log Message:
-----------
merged to trunk
Removed Paths:
-------------
branches/PE_64/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mo...@us...> - 2007-05-25 11:08:14
|
Revision: 2015
http://svn.sourceforge.net/jcl/?rev=2015&view=rev
Author: morrac
Date: 2007-05-25 04:08:11 -0700 (Fri, 25 May 2007)
Log Message:
-----------
- Make Captures and NamedCaptures writable.
- A new property named Result, returns the result of applying the
changes written to Captures and NamedCaptures to Subject.
- Fix off-by-one errors in GetCaptureRange.
- Use specific types for members FCode and FExtra of TJclAnsiRegEx.
- A new global function named StrReplaceRegEx.
Modified Paths:
--------------
trunk/jcl/source/common/JclPCRE.pas
Modified: trunk/jcl/source/common/JclPCRE.pas
===================================================================
--- trunk/jcl/source/common/JclPCRE.pas 2007-05-23 09:32:18 UTC (rev 2014)
+++ trunk/jcl/source/common/JclPCRE.pas 2007-05-25 11:08:11 UTC (rev 2015)
@@ -82,20 +82,24 @@
LastPos: Integer;
end;
- TJclAnsiRegExCallout = procedure (Sender: TJclAnsiRegEx;
+ TJclAnsiRegExCallout = procedure (Sender: TJclAnsiRegEx;
Index, MatchStart, SubjectPos, LastCapture, PatternPos, NextItemLength: Integer;
var ErrorCode: Integer) of object;
TPCRECalloutIndex = 0 .. 255;
TJclAnsiRegEx = class(TObject)
private
- FCode: Pointer;
- FExtra: Pointer;
+ FCode: PPCRE;
+ FExtra: PPCREExtra;
FOptions: TJclAnsiRegExOptions;
FPattern: AnsiString;
FDfaMode: Boolean;
FSubject: AnsiString;
+ FViewChanges: Boolean;
+ FChangedCaptures: TList;
+ FResultValues: array of String;
+
FErrorCode: Integer;
FErrorMessage: AnsiString;
FErrorOffset: Integer;
@@ -106,9 +110,12 @@
FOnCallout: TJclAnsiRegExCallout;
+ function GetResult: AnsiString;
function GetCapture(Index: Integer): AnsiString;
+ procedure SetCapture(Index: Integer; const Value: AnsiString);
function GetCaptureRange(Index: Integer): TJclAnsiCaptureRange;
function GetNamedCapture(const Name: AnsiString): AnsiString;
+ procedure SetNamedCapture(const Name, Value: Ansistring);
function GetCaptureNameCount: Integer;
function GetCaptureName(Index: Integer): String;
function GetAPIOptions(RunTime: Boolean): Integer;
@@ -124,12 +131,15 @@
property DfaMode: Boolean read FDfaMode write FDfaMode;
function Match(const Subject: AnsiString; StartOffset: Cardinal = 1): Boolean;
property Subject: AnsiString read FSubject;
+ property Result: AnsiString read GetResult;
+ property ViewChanges: Boolean read FViewChanges write FViewChanges;
property CaptureCount: Integer read FCaptureCount write FCaptureCount;
- property Captures[Index: Integer]: AnsiString read GetCapture;
+ property Captures[Index: Integer]: AnsiString read GetCapture write SetCapture;
property CaptureRanges[Index: Integer]: TJclAnsiCaptureRange read GetCaptureRange;
- property NamedCaptures[const Name: AnsiString]: AnsiString read GetNamedCapture;
+ property NamedCaptures[const Name: AnsiString]: AnsiString
+ read GetNamedCapture write SetNamedCapture;
property CaptureNameCount: Integer read GetCaptureNameCount;
property CaptureNames[Index: Integer]: AnsiString read GetCaptureName;
function IndexOfName(const Name: String): Integer;
@@ -146,6 +156,10 @@
procedure InitializeLocaleSupport;
procedure TerminateLocaleSupport;
+// Args is an array of pairs (CaptureIndex, Value) or (CaptureName, Value).
+// For example: NewIp := StrReplaceRegEx(DirIP, '(\d+)\.(\d+)\.(\d+)\.(\d+)', [3, '128', 4, '254']);
+function StrReplaceRegEx(const Subject, Pattern: AnsiString; Args: array of const): AnsiString;
+
{$IFDEF UNITVERSIONING}
const
UnitVersioning: TUnitVersionInfo = (
@@ -159,6 +173,7 @@
implementation
uses
+ SysConst,
JclResources;
var
@@ -250,6 +265,8 @@
CallPCREFree(FExtra);
if Assigned(FVector) then
FreeMem(FVector);
+ if Assigned(FChangedCaptures) then
+ FChangedCaptures.Free;
inherited Destroy;
end;
@@ -338,6 +355,33 @@
end;
end;
+function TJclAnsiRegEx.GetResult: AnsiString;
+var
+ Index, CaptureIndex, Pos: Integer;
+ Range: TJclAnsiCaptureRange;
+begin
+ if Assigned(FChangedCaptures) and (FChangedCaptures.Count > 0) then
+ begin
+ Pos := 1;
+ Result := '';
+ for Index := 0 to FChangedCaptures.Count - 1 do
+ begin
+ CaptureIndex := Integer(FChangedCaptures[Index]);
+ Range := GetCaptureRange(CaptureIndex);
+
+ Result := Result +
+ Copy(FSubject, Pos, Range.FirstPos - Pos) +
+ FResultValues[CaptureIndex];
+
+ Pos := Range.LastPos + 1;
+ end;
+ if Pos <= Length(FSubject) then
+ Result := Result + Copy(FSubject, Pos, Length(FSubject) - Pos + 1);
+ end
+ else
+ Result := FSubject;
+end;
+
function TJclAnsiRegEx.GetCapture(Index: Integer): AnsiString;
var
From, Len: Integer;
@@ -346,6 +390,12 @@
PCRECheck(PCRE_ERROR_NOSUBSTRING)
else
begin
+ if FViewChanges and (FChangedCaptures.IndexOf(Pointer(Index)) >= 0) then
+ begin
+ Result := FResultValues[Index];
+ Exit;
+ end;
+
Index := Index * 2;
From := FVector^[Index];
Len := FVector^[Index + 1] - From;
@@ -354,6 +404,28 @@
end;
end;
+procedure TJclAnsiRegEx.SetCapture(Index: Integer; const Value: String);
+begin
+ if (Index < 0) or (Index >= FCaptureCount) then
+ PCRECheck(PCRE_ERROR_NOSUBSTRING)
+ else
+ begin
+ if (not Assigned(FChangedCaptures)) or (FChangedCaptures.Count = 0) then
+ begin
+ if not Assigned(FChangedCaptures) then
+ FChangedCaptures := TList.Create;
+
+ // Always resize to the max length to avoid repeated allocations.
+ FChangedCaptures.Capacity := FCaptureCount;
+ SetLength(FResultValues, FCaptureCount);
+ end;
+
+ if FChangedCaptures.IndexOf(Pointer(Index)) < 0 then
+ FChangedCaptures.Add(Pointer(Index));
+ FResultValues[Index] := Value;
+ end;
+end;
+
function TJclAnsiRegEx.GetCaptureRange(Index: Integer): TJclAnsiCaptureRange;
begin
if (Index < 0) or (Index >= FCaptureCount) then
@@ -361,8 +433,8 @@
else
begin
Index := Index * 2;
- Result.FirstPos := FVector^[Index];
- Result.LastPos := FVector^[Index + 1] - 1;
+ Result.FirstPos := FVector^[Index] + 1;
+ Result.LastPos := FVector^[Index + 1];
end;
end;
@@ -376,6 +448,16 @@
Result := GetCapture(Index);
end;
+procedure TJclAnsiRegEx.SetNamedCapture(const Name, Value: String);
+var
+ Index: Integer;
+begin
+ Index := pcre_get_stringnumber(FCode, PChar(Name));
+ PCRECheck(Index);
+
+ SetCapture(Index, Value);
+end;
+
function TJclAnsiRegEx.GetCaptureNameCount: Integer;
begin
PCRECheck(pcre_fullinfo(FCode, FExtra, PCRE_INFO_NAMECOUNT, @Result));
@@ -441,6 +523,8 @@
end;
FSubject := Subject;
+ if Assigned(FChangedCaptures) then
+ FChangedCaptures.Clear;
if FDfaMode then
begin
ExecRslt := pcre_dfa_exec(FCode, Extra, PChar(FSubject), Length(FSubject),
@@ -490,6 +574,55 @@
end;
end;
+// TODO: Better/specific error messages, show index when available.
+function StrReplaceRegEx(const Subject, Pattern: AnsiString; Args: array of const): AnsiString;
+
+ function ArgToString(Index: Integer): AnsiString;
+ begin
+ // TODO: Any other type?
+ case TVarRec(Args[Index]).VType of
+ vtString: Result := TVarRec(Args[Index]).VString^;
+ vtPChar: Result := TVarRec(Args[Index]).VPChar;
+ vtAnsiString: Result := AnsiString(TVarRec(Args[Index]).VAnsiString);
+ else
+ raise EConvertError.Create(SInvalidFormat);
+ end;
+ end;
+
+var
+ Re: TJclAnsiRegEx;
+ Index, ArgIndex: Integer;
+ Value: AnsiString;
+begin
+ if Odd(Length(Args)) then
+ raise EConvertError.Create(SArgumentMissing)
+ else
+ begin
+ Re := TJclAnsiRegEx.Create;
+ try
+ if Re.Compile(Pattern, False) and Re.Match(Subject) then
+ begin
+ for Index := 0 to Length(Args) div 2 - 1 do
+ begin
+ ArgIndex := Index * 2;
+ Value := ArgToString(ArgIndex + 1);
+
+ if TVarRec(Args[ArgIndex]).VType = vtInteger then
+ Re.Captures[TVarRec(Args[ArgIndex]).VInteger] := Value
+ else
+ Re.NamedCaptures[ArgToString(ArgIndex)] := Value;
+ end;
+
+ Result := Re.Result;
+ end
+ else
+ raise EConvertError.Create(SInvalidFormat);
+ finally
+ Re.Free;
+ end;
+ end;
+end;
+
//=== { EPCREError } =========================================================
constructor EPCREError.CreateRes(ResStringRec: PResStringRec; ErrorCode: Integer);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sch...@us...> - 2007-05-23 09:32:26
|
Revision: 2014
http://svn.sourceforge.net/jcl/?rev=2014&view=rev
Author: schuettecarsten
Date: 2007-05-23 02:32:18 -0700 (Wed, 23 May 2007)
Log Message:
-----------
ExceptDlg now uses AppEvnts to add itself to TApplication.OnException.
Modified Paths:
--------------
trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas
trunk/jcl/experts/debug/dialog/ExceptDlg.pas
trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas
Modified: trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas
===================================================================
--- trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas 2007-05-22 19:58:20 UTC (rev 2013)
+++ trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas 2007-05-23 09:32:18 UTC (rev 2014)
@@ -29,7 +29,7 @@
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ExtCtrls,
+ Dialogs, StdCtrls, ExtCtrls, AppEvnts,
JclSysUtils,%if SendEMail JclMapi,%endif JclDebug;
const
@@ -665,29 +665,39 @@
// Exception handler initialization code
//==================================================================================================
+var
+ AppEvents: TApplicationEvents = nil;
+
procedure InitializeHandler;
begin
-%repeatline IgnoredExceptionsCount AddIgnoredException(%IgnoredExceptions);
-%if TraceEAbort RemoveIgnoredException(EAbort);%endif
-%if TraceAllExceptions JclStackTrackingOptions := JclStackTrackingOptions + [stTraceAllExceptions];%endif
-%if RawData JclStackTrackingOptions := JclStackTrackingOptions + [stRawMode];%endif
-%if HookDll JclStackTrackingOptions := JclStackTrackingOptions + [stStaticModuleList];%endif
-%if DelayedTrace JclStackTrackingOptions := JclStackTrackingOptions + [stDelayedTrace];%endif
- JclDebugThreadList.OnSyncException := T%FORMNAME%.ExceptionThreadHandler;
- JclStartExceptionTracking;
-%if HookDll if HookTApplicationHandleException then
- JclTrackExceptionsFromLibraries;%endif
- Application.OnException := T%FORMNAME%.ExceptionHandler;
+ if AppEvents = nil then
+ begin
+ AppEvents := TApplicationEvents.Create(nil);
+ AppEvents.OnException := T%FORMNAME%.ExceptionHandler;
+%repeatline IgnoredExceptionsCount AddIgnoredException(%IgnoredExceptions);
+%if TraceEAbort RemoveIgnoredException(EAbort);%endif
+%if TraceAllExceptions JclStackTrackingOptions := JclStackTrackingOptions + [stTraceAllExceptions];%endif
+%if RawData JclStackTrackingOptions := JclStackTrackingOptions + [stRawMode];%endif
+%if HookDll JclStackTrackingOptions := JclStackTrackingOptions + [stStaticModuleList];%endif
+%if DelayedTrace JclStackTrackingOptions := JclStackTrackingOptions + [stDelayedTrace];%endif
+ JclDebugThreadList.OnSyncException := T%FORMNAME%.ExceptionThreadHandler;
+ JclStartExceptionTracking;
+%if HookDll if HookTApplicationHandleException then
+ JclTrackExceptionsFromLibraries;%endif
+ end;
end;
//--------------------------------------------------------------------------------------------------
procedure UnInitializeHandler;
begin
- Application.OnException := nil;
- JclDebugThreadList.OnSyncException := nil;
- JclUnhookExceptions;
- JclStopExceptionTracking;
+ if AppEvents <> nil then
+ begin
+ FreeAndNil(AppEvents);
+ JclDebugThreadList.OnSyncException := nil;
+ JclUnhookExceptions;
+ JclStopExceptionTracking;
+ end;
end;
//--------------------------------------------------------------------------------------------------
Modified: trunk/jcl/experts/debug/dialog/ExceptDlg.pas
===================================================================
--- trunk/jcl/experts/debug/dialog/ExceptDlg.pas 2007-05-22 19:58:20 UTC (rev 2013)
+++ trunk/jcl/experts/debug/dialog/ExceptDlg.pas 2007-05-23 09:32:18 UTC (rev 2014)
@@ -29,7 +29,7 @@
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ExtCtrls,
+ Dialogs, StdCtrls, ExtCtrls, AppEvnts,
JclSysUtils, JclDebug;
const
@@ -609,29 +609,39 @@
// Exception handler initialization code
//==================================================================================================
+var
+ AppEvents: TApplicationEvents = nil;
+
procedure InitializeHandler;
begin
+ if AppEvents = nil then
+ begin
+ AppEvents := TApplicationEvents.Create(nil);
+ AppEvents.OnException := TExceptionDialog.ExceptionHandler;
- JclStackTrackingOptions := JclStackTrackingOptions + [stRawMode];
- JclStackTrackingOptions := JclStackTrackingOptions + [stStaticModuleList];
- JclStackTrackingOptions := JclStackTrackingOptions + [stDelayedTrace];
- JclDebugThreadList.OnSyncException := TExceptionDialog.ExceptionThreadHandler;
- JclStartExceptionTracking;
- if HookTApplicationHandleException then
- JclTrackExceptionsFromLibraries;
- Application.OnException := TExceptionDialog.ExceptionHandler;
+ JclStackTrackingOptions := JclStackTrackingOptions + [stRawMode];
+ JclStackTrackingOptions := JclStackTrackingOptions + [stStaticModuleList];
+ JclStackTrackingOptions := JclStackTrackingOptions + [stDelayedTrace];
+ JclDebugThreadList.OnSyncException := TExceptionDialog.ExceptionThreadHandler;
+ JclStartExceptionTracking;
+ if HookTApplicationHandleException then
+ JclTrackExceptionsFromLibraries;
+ end;
end;
//--------------------------------------------------------------------------------------------------
procedure UnInitializeHandler;
begin
- Application.OnException := nil;
- JclDebugThreadList.OnSyncException := nil;
- JclUnhookExceptions;
- JclStopExceptionTracking;
+ if AppEvents <> nil then
+ begin
+ FreeAndNil(AppEvents);
+ JclDebugThreadList.OnSyncException := nil;
+ JclUnhookExceptions;
+ JclStopExceptionTracking;
+ end;
end;
//--------------------------------------------------------------------------------------------------
Modified: trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas
===================================================================
--- trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas 2007-05-22 19:58:20 UTC (rev 2013)
+++ trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas 2007-05-23 09:32:18 UTC (rev 2014)
@@ -29,7 +29,7 @@
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ExtCtrls,
+ Dialogs, StdCtrls, ExtCtrls, AppEvnts,
JclSysUtils, JclMapi, JclDebug;
const
@@ -629,29 +629,39 @@
// Exception handler initialization code
//==================================================================================================
+var
+ AppEvents: TApplicationEvents = nil;
+
procedure InitializeHandler;
begin
+ if AppEvents = nil then
+ begin
+ AppEvents := TApplicationEvents.Create(nil);
+ AppEvents.OnException := TExceptionDialogMail.ExceptionHandler;
- JclStackTrackingOptions := JclStackTrackingOptions + [stRawMode];
- JclStackTrackingOptions := JclStackTrackingOptions + [stStaticModuleList];
- JclStackTrackingOptions := JclStackTrackingOptions + [stDelayedTrace];
- JclDebugThreadList.OnSyncException := TExceptionDialogMail.ExceptionThreadHandler;
- JclStartExceptionTracking;
- if HookTApplicationHandleException then
- JclTrackExceptionsFromLibraries;
- Application.OnException := TExceptionDialogMail.ExceptionHandler;
+ JclStackTrackingOptions := JclStackTrackingOptions + [stRawMode];
+ JclStackTrackingOptions := JclStackTrackingOptions + [stStaticModuleList];
+ JclStackTrackingOptions := JclStackTrackingOptions + [stDelayedTrace];
+ JclDebugThreadList.OnSyncException := TExceptionDialogMail.ExceptionThreadHandler;
+ JclStartExceptionTracking;
+ if HookTApplicationHandleException then
+ JclTrackExceptionsFromLibraries;
+ end;
end;
//--------------------------------------------------------------------------------------------------
procedure UnInitializeHandler;
begin
- Application.OnException := nil;
- JclDebugThreadList.OnSyncException := nil;
- JclUnhookExceptions;
- JclStopExceptionTracking;
+ if AppEvents <> nil then
+ begin
+ FreeAndNil(AppEvents);
+ JclDebugThreadList.OnSyncException := nil;
+ JclUnhookExceptions;
+ JclStopExceptionTracking;
+ end;
end;
//--------------------------------------------------------------------------------------------------
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ah...@us...> - 2007-05-22 19:58:22
|
Revision: 2013
http://svn.sourceforge.net/jcl/?rev=2013&view=rev
Author: ahuser
Date: 2007-05-22 12:58:20 -0700 (Tue, 22 May 2007)
Log Message:
-----------
Fixed Mantis #4125: Memory leak in GetLocationInfo
(Mantis #4125)
Modified Paths:
--------------
trunk/jcl/source/windows/JclDebug.pas
Modified: trunk/jcl/source/windows/JclDebug.pas
===================================================================
--- trunk/jcl/source/windows/JclDebug.pas 2007-05-22 16:43:49 UTC (rev 2012)
+++ trunk/jcl/source/windows/JclDebug.pas 2007-05-22 19:58:20 UTC (rev 2013)
@@ -2709,6 +2709,7 @@
var
Item: TJclDebugInfoSource;
begin
+ Finalize(Info);
FillChar(Info, SizeOf(Info), #0);
Item := ItemFromModule[ModuleFromAddr(Addr)];
if Item <> nil then
@@ -3317,6 +3318,7 @@
DebugInfoCritSect.Leave;
end;
except
+ Finalize(Result);
FillChar(Result, SizeOf(Result), #0);
end;
end;
@@ -4192,6 +4194,52 @@
StoreToList(StackInfo);
end;
+function SearchForStackPtrManipulation(StackPtr: Pointer; Proc: Pointer): Pointer;
+{$IFDEF SUPPORTS_INLINE}
+inline;
+{$ENDIF SUPPORTS_INLINE}
+{var
+ Addr: PByteArray;}
+begin
+{ Addr := Proc;
+ while (Addr <> nil) and (Cardinal(Addr) > Cardinal(Proc) - $100) and not IsBadReadPtr(Addr, 6) do
+ begin
+ if (Addr[0] = $55) and // push ebp
+ (Addr[1] = $8B) and (Addr[2] = $EC) then // mov ebp,esp
+ begin
+ if (Addr[3] = $83) and (Addr[4] = $C4) then // add esp,c8
+ begin
+ Result := Pointer(Integer(StackPtr) - ShortInt(Addr[5]));
+ Exit;
+ end;
+ Break;
+ end;
+
+ if (Addr[0] = $C2) and // ret $xxxx
+ (((Addr[3] = $90) and (Addr[4] = $90) and (Addr[5] = $90)) or // nop
+ ((Addr[3] = $CC) and (Addr[4] = $CC) and (Addr[5] = $CC))) then // int 3
+ Break;
+
+ if (Addr[0] = $C3) and // ret
+ (((Addr[1] = $90) and (Addr[2] = $90) and (Addr[3] = $90)) or // nop
+ ((Addr[1] = $CC) and (Addr[2] = $CC) and (Addr[3] = $CC))) then // int 3
+ Break;
+
+ if (Addr[0] = $E9) and // jmp rel-far
+ (((Addr[5] = $90) and (Addr[6] = $90) and (Addr[7] = $90)) or // nop
+ ((Addr[5] = $CC) and (Addr[6] = $CC) and (Addr[7] = $CC))) then // int 3
+ Break;
+
+ if (Addr[0] = $EB) and // jmp rel-near
+ (((Addr[2] = $90) and (Addr[3] = $90) and (Addr[4] = $90)) or // nop
+ ((Addr[2] = $CC) and (Addr[3] = $CC) and (Addr[4] = $CC))) then // int 3
+ Break;
+
+ Dec(Cardinal(Addr));
+ end;}
+ Result := StackPtr;
+end;
+
procedure TJclStackInfoList.TraceStackRaw;
var
StackInfo: TStackInfo;
@@ -4219,6 +4267,9 @@
StackTop := TopOfStack;
+ if Count > 0 then
+ StackPtr := SearchForStackPtrManipulation(StackPtr, Pointer(Items[0].StackInfo.CallerAdr));
+
// We will not be able to fill in all the fields in the StackInfo record,
// so just blank it all out first
FillChar(StackInfo, SizeOf(StackInfo), 0);
@@ -4238,6 +4289,7 @@
Inc(StackInfo.Level);
// then report it back to our caller
StoreToList(StackInfo);
+ StackPtr := SearchForStackPtrManipulation(StackPtr, Pointer(StackInfo.CallerAdr));
end;
// Look at the next DWORD on the stack
Inc(StackPtr);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ah...@us...> - 2007-05-22 16:43:51
|
Revision: 2012
http://svn.sourceforge.net/jcl/?rev=2012&view=rev
Author: ahuser
Date: 2007-05-22 09:43:49 -0700 (Tue, 22 May 2007)
Log Message:
-----------
Fixed buffer overlow that caused random access violations
Modified Paths:
--------------
trunk/jcl/source/common/JclBorlandTools.pas
Modified: trunk/jcl/source/common/JclBorlandTools.pas
===================================================================
--- trunk/jcl/source/common/JclBorlandTools.pas 2007-05-20 04:45:22 UTC (rev 2011)
+++ trunk/jcl/source/common/JclBorlandTools.pas 2007-05-22 16:43:49 UTC (rev 2012)
@@ -1131,6 +1131,14 @@
MsBuildWin32DLLOutputPathNodeName = 'Win32DLLOutputPath';
MsBuildPropertyGroupNodeName = 'PropertyGroup';
+function AnsiStartsText(const SubStr, S: string): Boolean;
+begin
+ if Length(SubStr) <= Length(S) then
+ Result := AnsiStrLIComp(PChar(S), PChar(SubStr), Length(SubStr)) = 0
+ else
+ Result := False;
+end;
+
procedure GetDPRFileInfo(const DPRFileName: string; out BinaryExtension: string;
const LibSuffix: PString = nil);
var
@@ -1153,14 +1161,14 @@
for Index := 0 to DPRFile.Count - 1 do
begin
S := TrimRight(DPRFile.Strings[Index]);
- if (AnsiStrLIComp(PChar(S), ProgramText, Length(ProgramText)) = 0) and (BinaryExtension = '') then
+ if AnsiStartsText(ProgramText, S) and (BinaryExtension = '') then
BinaryExtension := BinaryExtensionExecutable;
- if (AnsiStrLIComp(PChar(S), LibraryText, Length(LibraryText)) = 0) and (BinaryExtension = '') then
+ if AnsiStartsText(LibraryText, S) and (BinaryExtension = '') then
BinaryExtension := BinaryExtensionLibrary;
- if AnsiStrLIComp(PChar(S), DelphiBinaryExtOption, Length(DelphiBinaryExtOption)) = 0 then
+ if AnsiStartsText(DelphiBinaryExtOption, S) then
BinaryExtension := StrTrimQuotes(Copy(S, Length(DelphiBinaryExtOption), Length(S) - Length(DelphiBinaryExtOption)));
if Assigned(LibSuffix) and
- (AnsiStrLIComp(PChar(S), DelphiLibSuffixOption, Length(DelphiLibSuffixOption)) = 0) then
+ AnsiStartsText(DelphiLibSuffixOption, S) then
LibSuffix^ := StrTrimQuotes(Copy(S, Length(DelphiLibSuffixOption), Length(S) - Length(DelphiLibSuffixOption)));
end;
finally
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mar...@us...> - 2007-05-20 04:45:25
|
Revision: 2011
http://svn.sourceforge.net/jcl/?rev=2011&view=rev
Author: marquardt
Date: 2007-05-19 21:45:22 -0700 (Sat, 19 May 2007)
Log Message:
-----------
minor resourcestring move
Modified Paths:
--------------
trunk/jcl/source/common/JclResources.pas
trunk/jcl/source/common/JclSysInfo.pas
Modified: trunk/jcl/source/common/JclResources.pas
===================================================================
--- trunk/jcl/source/common/JclResources.pas 2007-05-18 20:16:19 UTC (rev 2010)
+++ trunk/jcl/source/common/JclResources.pas 2007-05-20 04:45:22 UTC (rev 2011)
@@ -1749,6 +1749,8 @@
RsIntelCacheDescrF0 = '64-Byte Prefetching';
RsIntelCacheDescrF1 = '128-Byte Prefetching';
+ RsUnknownAMDModel = 'Unknown AMD (Model %d)';
+
RsOSVersionWin95 = 'Windows 95';
RsOSVersionWin95OSR2 = 'Windows 95 OSR2';
RsOSVersionWin98 = 'Windows 98';
Modified: trunk/jcl/source/common/JclSysInfo.pas
===================================================================
--- trunk/jcl/source/common/JclSysInfo.pas 2007-05-18 20:16:19 UTC (rev 2010)
+++ trunk/jcl/source/common/JclSysInfo.pas 2007-05-20 04:45:22 UTC (rev 2011)
@@ -4034,9 +4034,6 @@
end;
{$ENDIF MSWINDOWS}
-resourcestring
- RsUnknownAMDModel = 'Unknown AMD (Model %d)';
-
function CPUID: TCpuInfo;
function HasCPUIDInstruction: Boolean;
const
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-05-18 20:16:29
|
Revision: 2010
http://svn.sourceforge.net/jcl/?rev=2010&view=rev
Author: outchy
Date: 2007-05-18 13:16:19 -0700 (Fri, 18 May 2007)
Log Message:
-----------
Windows Longhorn is officially released as Windows Server 2008.
Modified Paths:
--------------
trunk/jcl/install/JclInstall.pas
trunk/jcl/source/common/JclResources.pas
trunk/jcl/source/common/JclSysInfo.pas
Modified: trunk/jcl/install/JclInstall.pas
===================================================================
--- trunk/jcl/install/JclInstall.pas 2007-05-15 08:06:05 UTC (rev 2009)
+++ trunk/jcl/install/JclInstall.pas 2007-05-18 20:16:19 UTC (rev 2010)
@@ -3337,11 +3337,11 @@
// step 3: inform the user and execute RegHelper
// simple dialog explaining user why we need credentials
- if Assigned(GUI) and ((not IsAdministrator) or (IsWinVista or IsWinLonghorn)) then
+ if Assigned(GUI) and ((not IsAdministrator) or (IsWinVista or IsWinServer2008)) then
GUI.Dialog(RsHTMLHelp2Credentials, dtInformation, [drOK]);
// RegHelper.exe manifest requires elevation on Vista
- if IsAdministrator or IsWinVista or IsWinLonghorn then
+ if IsAdministrator or IsWinVista or IsWinServer2008 then
Verb := 'open'
else
Verb := 'runas';
Modified: trunk/jcl/source/common/JclResources.pas
===================================================================
--- trunk/jcl/source/common/JclResources.pas 2007-05-15 08:06:05 UTC (rev 2009)
+++ trunk/jcl/source/common/JclResources.pas 2007-05-18 20:16:19 UTC (rev 2010)
@@ -1749,20 +1749,20 @@
RsIntelCacheDescrF0 = '64-Byte Prefetching';
RsIntelCacheDescrF1 = '128-Byte Prefetching';
- RsOSVersionWin95 = 'Windows 95';
- RsOSVersionWin95OSR2 = 'Windows 95 OSR2';
- RsOSVersionWin98 = 'Windows 98';
- RsOSVersionWin98SE = 'Windows 98 SE';
- RsOSVersionWinME = 'Windows ME';
- RsOSVersionWinNT3 = 'Windows NT 3.%u';
- RsOSVersionWinNT4 = 'Windows NT 4.%u';
- RsOSVersionWin2000 = 'Windows 2000';
- RsOSVersionWinXP = 'Windows XP';
- RsOSVersionWin2003 = 'Windows Server 2003';
- RsOSVersionWin2003R2 = 'Windows Server 2003 "R2"';
- RsOSVersionWinXP64 = 'Windows XP x64';
- RsOSVersionWinVista = 'Windows Vista';
- RsOSVersionWinLonghorn = 'Windows Server "Longhorn"';
+ RsOSVersionWin95 = 'Windows 95';
+ RsOSVersionWin95OSR2 = 'Windows 95 OSR2';
+ RsOSVersionWin98 = 'Windows 98';
+ RsOSVersionWin98SE = 'Windows 98 SE';
+ RsOSVersionWinME = 'Windows ME';
+ RsOSVersionWinNT3 = 'Windows NT 3.%u';
+ RsOSVersionWinNT4 = 'Windows NT 4.%u';
+ RsOSVersionWin2000 = 'Windows 2000';
+ RsOSVersionWinXP = 'Windows XP';
+ RsOSVersionWin2003 = 'Windows Server 2003';
+ RsOSVersionWin2003R2 = 'Windows Server 2003 "R2"';
+ RsOSVersionWinXP64 = 'Windows XP x64';
+ RsOSVersionWinVista = 'Windows Vista';
+ RsOSVersionWinServer2008 = 'Windows Server 2008';
RsProductTypeWorkStation = 'Workstation';
RsProductTypeServer = 'Server';
Modified: trunk/jcl/source/common/JclSysInfo.pas
===================================================================
--- trunk/jcl/source/common/JclSysInfo.pas 2007-05-15 08:06:05 UTC (rev 2009)
+++ trunk/jcl/source/common/JclSysInfo.pas 2007-05-18 20:16:19 UTC (rev 2010)
@@ -267,7 +267,7 @@
TWindowsVersion =
(wvUnknown, wvWin95, wvWin95OSR2, wvWin98, wvWin98SE, wvWinME,
wvWinNT31, wvWinNT35, wvWinNT351, wvWinNT4, wvWin2000, wvWinXP,
- wvWin2003, wvWinXP64, wvWin2003R2, wvWinVista, wvWinLonghorn);
+ wvWin2003, wvWinXP64, wvWin2003R2, wvWinVista, wvWinServer2008);
TNtProductType =
(ptUnknown, ptWorkStation, ptServer, ptAdvancedServer,
ptPersonal, ptProfessional, ptDatacenterServer, ptEnterprise, ptWebEdition);
@@ -296,7 +296,7 @@
IsWinXP64: Boolean = False;
IsWin2003R2: Boolean = False;
IsWinVista: Boolean = False;
- IsWinLonghorn: Boolean = False;
+ IsWinServer2008: Boolean = False;
const
PROCESSOR_ARCHITECTURE_INTEL = 0;
@@ -2581,7 +2581,7 @@
else
begin
if IsWin2k or IsWinXP or IsWin2003 or IsWin2003R2 or IsWinXP64 or
- IsWinVista or IsWinLonghorn then
+ IsWinVista or IsWinServer2008 then
begin
FileName := ProcessFileName(ProcEntry.th32ProcessID);
if FileName = '' then
@@ -3169,7 +3169,7 @@
if GetVersionEx(OSVersionInfoEx) and (OSVersionInfoEx.wProductType = VER_NT_WORKSTATION) then
Result := wvWinVista
else
- Result := wvWinLonghorn;
+ Result := wvWinServer2008;
end;
end;
end;
@@ -3246,7 +3246,7 @@
end;
end
else
- if IsWinXP or IsWinVista or IsWinLonghorn then // workstation
+ if IsWinXP or IsWinVista or IsWinServer2008 then // workstation
begin
if GetVersionEx(OSVersionInfo) then
begin
@@ -3304,8 +3304,8 @@
Result := RsOSVersionWin2003R2;
wvWinXP64:
Result := RsOSVersionWinXP64;
- wvWinLonghorn:
- Result := RsOSVersionWinLonghorn;
+ wvWinServer2008:
+ Result := RsOSVersionWinServer2008;
wvWinVista:
Result := RsOSVersionWinVista;
else
@@ -3345,7 +3345,7 @@
VersionInfo: TOSVersionInfoEx;
begin
Result := 0;
- if IsWin2K or IsWinXP or IsWin2003 or IsWinXP64 or IsWin2003R2 or IsWinVista or IsWinLonghorn then
+ if IsWin2K or IsWinXP or IsWin2003 or IsWinXP64 or IsWin2003R2 or IsWinVista or IsWinServer2008 then
begin
FillChar(VersionInfo, SizeOf(VersionInfo), 0);
VersionInfo.dwOSVersionInfoSize := SizeOf(VersionInfo);
@@ -5295,8 +5295,8 @@
IsWin2003R2 := True;
wvWinVista:
IsWinVista := True;
- wvWinLonghorn:
- IsWinLonghorn := True;
+ wvWinServer2008:
+ IsWinServer2008 := True;
end;
end;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mar...@us...> - 2007-05-15 08:06:10
|
Revision: 2009
http://svn.sourceforge.net/jcl/?rev=2009&view=rev
Author: marquardt
Date: 2007-05-15 01:06:05 -0700 (Tue, 15 May 2007)
Log Message:
-----------
modifications for FPC
Modified Paths:
--------------
trunk/jcl/source/common/JclFileUtils.pas
trunk/jcl/source/common/JclSysInfo.pas
trunk/jcl/source/common/JclWideStrings.pas
Modified: trunk/jcl/source/common/JclFileUtils.pas
===================================================================
--- trunk/jcl/source/common/JclFileUtils.pas 2007-05-15 06:49:51 UTC (rev 2008)
+++ trunk/jcl/source/common/JclFileUtils.pas 2007-05-15 08:06:05 UTC (rev 2009)
@@ -16,10 +16,10 @@
{ Portions created by Marcel van Brakel are Copyright (C) Marcel van Brakel. All rights reserved. }
{ }
{ Contributors: }
-{ Andr\xE9 Snepvangers (asnepvangers) }
+{ Andre Snepvangers (asnepvangers) }
{ Andreas Hausladen (ahuser) }
{ Anthony Steele }
-{ Rik Barker (rikbarker) }
+{ Rik Barker (rikbarker) }
{ Azret Botash }
{ Charlie Calvert }
{ David Hervieux }
@@ -1570,14 +1570,14 @@
while P < FEnd do
begin
case P^ of
- AnsiLineFeed :
+ AnsiLineFeed:
begin
Inc(FLineCount);
Inc(P);
if (P < FEnd) and (P^ = AnsiCarriageReturn) then
Inc(P);
end;
- AnsiCarriageReturn :
+ AnsiCarriageReturn:
begin
Inc(FLineCount);
Inc(P);
@@ -1680,14 +1680,14 @@
while (Result < FEnd) and (LineOffset > 0) do
begin
case Result^ of
- AnsiLineFeed :
+ AnsiLineFeed:
begin
Dec(LineOffset);
Inc(Result);
if (Result < FEnd) and (Result^ = AnsiCarriageReturn) then
Inc(Result);
end;
- AnsiCarriageReturn :
+ AnsiCarriageReturn:
begin
Dec(LineOffset);
Inc(Result);
@@ -1695,7 +1695,7 @@
Inc(Result);
end;
else
- Inc(Result);
+ Inc(Result);
end;
end;
end
@@ -1707,7 +1707,7 @@
begin
Dec(Result);
case Result^ of
- AnsiLineFeed :
+ AnsiLineFeed:
begin
Inc(LineOffset);
if LineOffset >= 1 then
@@ -1716,7 +1716,7 @@
if (Result > FContent) and ((Result-1)^ = AnsiCarriageReturn) then
Dec(Result);
end;
- AnsiCarriageReturn :
+ AnsiCarriageReturn:
begin
Inc(LineOffset);
if LineOffset >= 1 then
@@ -1769,18 +1769,18 @@
if P < FEnd then
begin
case P^ of
- AnsiLineFeed :
+ AnsiLineFeed:
begin
Inc(P);
if (P < FEnd) and (P^ = AnsiCarriageReturn) then
Inc(P);
end;
- AnsiCarriageReturn :
+ AnsiCarriageReturn:
begin
Inc(P);
if (P < FEnd) and (P^ = AnsiLineFeed) then
Inc(P);
- end;
+ end;
end;
end;
StartPos := P;
@@ -2441,7 +2441,7 @@
if realpath(PChar(Path), PChar(FullPath)) = nil then
RaiseLastOSError;
StrResetLength(FullPath);
-
+
FsTypes := TStringList.Create;
try
GetAvailableFileSystems(FsTypes);
@@ -2689,10 +2689,11 @@
List.Add(SearchRec.Name);
Break;
end;
-
+
case FindNext(SearchRec) of
- 0 : ;
- ERROR_NO_MORE_FILES :
+ 0:
+ ;
+ ERROR_NO_MORE_FILES:
Break;
else
Result := False;
@@ -3237,12 +3238,14 @@
{$ENDIF UNIX}
{$ENDIF ~CLR}
+{$IFDEF MSWINDOWS}
{$IFDEF FPC}
{ TODO : Move this over to JclWin32 when JclWin32 gets overhauled. }
function GetTempFileName(lpPathName, lpPrefixString: PChar;
uUnique: UINT; lpTempFileName: PChar): UINT; stdcall;
external kernel32 name 'GetTempFileNameA';
{$ENDIF FPC}
+{$ENDIF MSWINDOWS}
function FileGetTempName(const Prefix: string): string;
{$IFDEF CLR}
@@ -3752,12 +3755,16 @@
begin
L := MAX_PATH + 1;
SetLength(Result, L);
-{$IFDEF MSWINDOWS}
+ {$IFDEF MSWINDOWS}
L := Windows.GetModuleFileName(Module, Pointer(Result), L);
-{$ENDIF MSWINDOWS}
-{$IFDEF UNIX}
+ {$ENDIF MSWINDOWS}
+ {$IFDEF UNIX}
+ {$IFDEF FPC}
+ L := 0; // FIXME
+ {$ELSE}
L := GetModuleFileName(Module, Pointer(Result), L);
-{$ENDIF UNIX}
+ {$ENDIF FPC}
+ {$ENDIF UNIX}
SetLength(Result, L);
end;
{$ENDIF ~CLR}
@@ -5488,7 +5495,11 @@
Priority := tpIdle;
{$ENDIF MSWINDOWS}
{$IFDEF UNIX}
+ {$IFDEF FPC}
+ Priority := tpIdle;
+ {$ELSE}
Priority := 0;
+ {$ENDIF FPC}
{$ENDIF UNIX}
{$ENDIF ~CLR}
FreeOnTerminate := True;
@@ -6100,7 +6111,7 @@
for IndexNew := 0 to NewItems.Count - 1 do
begin
Item := NewItems.Strings[IndexNew];
-
+
Duplicate := False;
for IndexList := 0 to StrList.Count - 1 do
if SamePath(Item, StrList.Strings[IndexList]) then
Modified: trunk/jcl/source/common/JclSysInfo.pas
===================================================================
--- trunk/jcl/source/common/JclSysInfo.pas 2007-05-15 06:49:51 UTC (rev 2008)
+++ trunk/jcl/source/common/JclSysInfo.pas 2007-05-15 08:06:05 UTC (rev 2009)
@@ -17,7 +17,7 @@
{ }
{ Contributors: }
{ Alexander Radchenko }
-{ Andr\xE9 Snepvangers (asnepvangers) }
+{ Andre Snepvangers (asnepvangers) }
{ Azret Botash }
{ Bryan Coutch }
{ Carl Clark }
@@ -32,7 +32,7 @@
{ Nick Hodges }
{ Olivier Sannier (obones) }
{ Peter Friese }
-{ Peter Th\xF6rnquist (peter3) }
+{ Peter Thornquist (peter3) }
{ Petr Vones (pvones) }
{ Rik Barker }
{ Robert Marquardt (marquardt) }
@@ -138,7 +138,9 @@
function GetStartmenuFolder: string;
function GetDesktopDirectoryFolder: string;
{$IFNDEF CLR}
+{$IFNDEF FPC}
function GetCommonDocumentsFolder: string;
+{$ENDIF ~FPC}
function GetNethoodFolder: string;
function GetFontsFolder: string;
function GetCommonStartmenuFolder: string;
@@ -418,7 +420,7 @@
LinePerSector: Byte; // for L3 Normal Cache
Entries: Cardinal; // for TLB
I: string;
- end;
+ end;
TFreqInfo = record
RawFreq: Cardinal;
@@ -664,7 +666,7 @@
EINTEL64_BIT_26 = BIT_26; // Reserved, do not count on value
EINTEL64_BIT_27 = BIT_27; // Reserved, do not count on value
EINTEL64_BIT_28 = BIT_28; // Reserved, do not count on value
- EINTEL64_EM64T = BIT_29; // Intel\xAE Extended Memory 64 Technology
+ EINTEL64_EM64T = BIT_29; // Intel Extended Memory 64 Technology
EINTEL64_BIT_30 = BIT_30; // Reserved, do not count on value
EINTEL64_BIT_31 = BIT_31; // Reserved, do not count on value
@@ -1312,7 +1314,9 @@
JclBase, JclFileUtils, JclStrings;
{$IFDEF FPC}
+{$IFDEF MSWINDOWS}
{$I JclSysInfo.fpc}
+{$ENDIF MSWINDOWS}
{$ENDIF FPC}
//=== Environment ============================================================
@@ -1445,13 +1449,13 @@
end;
{$ENDIF UNIX}
-{$IFDEF MSWINDOWS}
-
function GetEnvironmentVars(const Vars: TStrings): Boolean;
begin
Result := GetEnvironmentVars(Vars, True);
end;
+{$IFDEF MSWINDOWS}
+
function GetEnvironmentVars(const Vars: TStrings; Expand: Boolean): Boolean;
{$IFDEF CLR}
var
@@ -1661,7 +1665,11 @@
StrResetLength(Result);
Exit;
end;
+ {$IFDEF FPC}
+ if GetLastOSError <> ERANGE then
+ {$ELSE}
if GetLastError <> ERANGE then
+ {$ENDIF FPC}
RaiseLastOSError;
Size := Size * 2;
end;
@@ -1843,10 +1851,12 @@
end;
{$IFNDEF CLR}
+{$IFNDEF FPC}
function GetCommonDocumentsFolder: string;
begin
Result := GetSpecialFolderLocation(CSIDL_COMMON_DOCUMENTS);
end;
+{$ENDIF ~FPC}
{$ENDIF ~CLR}
{$IFNDEF CLR}
@@ -2171,13 +2181,22 @@
while IfList^.if_index <> 0 do
begin
//copy in the interface name to look up address of
+ {$IFDEF FPC}
+ strncpy(IfReq.ifr_ifrn.ifrn_name, IfList^.if_name, IFNAMSIZ);
+ {$ELSE}
strncpy(IfReq.ifrn_name, IfList^.if_name, IFNAMSIZ);
+ {$ENDIF FPC}
//get the address for this interface
if ioctl(Sock, SIOCGIFADDR, @IfReq) <> 0 then
RaiseLastOSError;
//print out the address
+ {$IFDEF FPC}
+ SockAddrPtr := PSockAddrIn(@IfReq.ifr_ifru.ifru_addr);
+ Results.Add(Format('%s=%s', [IfReq.ifr_ifrn.ifrn_name, inet_ntoa(SockAddrPtr^.sin_addr)]));
+ {$ELSE}
SockAddrPtr := PSockAddrIn(@IfReq.ifru_addr);
Results.Add(Format('%s=%s', [IfReq.ifrn_name, inet_ntoa(SockAddrPtr^.sin_addr)]));
+ {$ENDIF FPC}
Inc(IfList);
end;
finally
@@ -2422,8 +2441,13 @@
if ProcDir <> nil then
begin
PtrDirEnt := nil;
+ {$IFDEF FPC}
+ if readdir_r(ProcDir, @Scratch, @PtrDirEnt) <> 0 then
+ Exit;
+ {$ELSE}
if readdir_r(ProcDir, @Scratch, PtrDirEnt) <> 0 then
Exit;
+ {$ENDIF FPC}
List.BeginUpdate;
try
while PtrDirEnt <> nil do
@@ -2455,8 +2479,13 @@
List.AddObject(FileName, Pointer(ProcID));
end;
+ {$IFDEF FPC}
+ if readdir_r(ProcDir, @Scratch, @PtrDirEnt) <> 0 then
+ Break;
+ {$ELSE}
if readdir_r(ProcDir, @Scratch, PtrDirEnt) <> 0 then
Break;
+ {$ENDIF FPC}
end;
finally
List.EndUpdate;
@@ -2921,7 +2950,7 @@
if GetWindowThreadProcessId(Wnd, @PID) <> 0 then
Result := TerminateApp(PID, Timeout)
else
- Result := taError;
+ Result := taError;
end;
function GetProcessNameFromWnd(Wnd: THandle): string;
@@ -4052,7 +4081,7 @@
POP EDI
end;
end;
-
+
procedure ProcessStandard(var CPUInfo: TCpuInfo; HiVal: Cardinal);
var
VersionInfo, AdditionalInfo, ExFeatures: Cardinal;
@@ -4141,36 +4170,36 @@
if IntelCacheDescription[J].D = CPUInfo.IntelSpecific.CacheDescriptors[I] then
with IntelCacheDescription[J] do
case Family of
- //cfInstructionTLB :
- //cfDataTLB :
- cfL1InstructionCache :
+ //cfInstructionTLB:
+ //cfDataTLB:
+ cfL1InstructionCache:
begin
Inc(CPUInfo.L1InstructionCacheSize,Size);
CPUInfo.L1InstructionCacheLineSize := LineSize;
CPUInfo.L1InstructionCacheAssociativity := WaysOfAssoc;
end;
- cfL1DataCache :
+ cfL1DataCache:
begin
Inc(CPUInfo.L1DataCacheSize,Size);
CPUInfo.L1DataCacheLineSize := LineSize;
CPUInfo.L1DataCacheAssociativity := WaysOfAssoc;
end;
- cfL2Cache :
+ cfL2Cache:
if (CPUInfo.IntelSpecific.L2Cache = 0) then
begin
Inc(CPUInfo.L2CacheSize,Size);
CPUInfo.L2CacheLineSize := LineSize;
CPUInfo.L2CacheAssociativity := WaysOfAssoc;
end;
- cfL3Cache :
+ cfL3Cache:
begin
Inc(CPUInfo.L3CacheSize,Size);
CPUInfo.L3CacheLineSize := LineSize;
CPUInfo.L3CacheAssociativity := WaysOfAssoc;
CPUInfo.L3LinesPerSector := LinePerSector;
end;
- //cfTrace : // no numeric informations
- //cfOther :
+ //cfTrace: // no numeric informations
+ //cfOther:
end;
end;
if not CPUInfo.HasExtendedInfo then
@@ -4402,7 +4431,7 @@
10:
CPUInfo.CpuName := 'AMD Athlon\x99 XP (Model 10)';
else
- StrFmt(CPUInfo.CpuName,PChar(RsUnknownAMDModel),[CPUInfo.Model]);
+ StrFmt(CPUInfo.CpuName, PChar(RsUnknownAMDModel), [CPUInfo.Model]);
end;
8:
@@ -4428,7 +4457,7 @@
CPUInfo.Is64Bits := CPUInfo.HasExtendedInfo and ((CPUInfo.AMDSpecific.ExFeatures and EAMD_LONG) <> 0);
CPUInfo.DEPCapable := CPUInfo.HasExtendedInfo and ((CPUInfo.AMDSpecific.ExFeatures and EAMD_NX) <> 0);
end;
-
+
procedure ProcessCyrix(var CPUInfo: TCpuInfo; HiVal: Cardinal);
var
ExHiVal, Unused, VersionInfo, AdditionalInfo: Cardinal;
@@ -4546,7 +4575,7 @@
else CPUInfo.SSE := 0;
CPUInfo._3DNow := (CPUInfo.Features and VIA_3DNOW) <> 0;
end;
-
+
procedure ProcessTransmeta(var CPUInfo: TCpuInfo; HiVal: Cardinal);
var
ExHiVal, Unused, VersionInfo: Cardinal;
@@ -4629,14 +4658,14 @@
end;
CPUInfo.MMX := (CPUInfo.Features and TRANSMETA_MMX) <> 0;
end;
-
+
var
HiVal: Cardinal;
begin
FillChar(Result, sizeof(Result), 0);
Result.LogicalCore := 1;
Result.PhysicalCore := 1;
-
+
if HasCPUIDInstruction then
begin
Result.HasInstruction := True;
@@ -4874,7 +4903,11 @@
var
SystemInf: TSysInfo ;
begin
+ {$IFDEF FPC}
+ SysInfo(@SystemInf);
+ {$ELSE}
SysInfo(SystemInf);
+ {$ENDIF FPC}
with SystemInf do
Result := 100 - Round(100 * freeram / totalram);
end;
@@ -4895,7 +4928,11 @@
var
SystemInf: TSysInfo;
begin
+ {$IFDEF FPC}
+ SysInfo(@SystemInf);
+ {$ELSE}
SysInfo(SystemInf);
+ {$ENDIF FPC}
Result := SystemInf.totalswap;
end;
{$ENDIF UNIX}
@@ -4916,7 +4953,11 @@
var
SystemInf: TSysInfo;
begin
+ {$IFDEF FPC}
+ SysInfo(@SystemInf);
+ {$ELSE}
SysInfo(SystemInf);
+ {$ENDIF FPC}
with SystemInf do
Result := 100 - Trunc(100 * FreeSwap / TotalSwap);
end;
@@ -4941,7 +4982,11 @@
var
SystemInf: TSysInfo;
begin
+ {$IFDEF FPC}
+ SysInfo(@SystemInf);
+ {$ELSE}
SysInfo(SystemInf);
+ {$ENDIF FPC}
Result := SystemInf.totalram;
end;
{$ENDIF UNIX}
@@ -4961,7 +5006,11 @@
var
SystemInf: TSysInfo;
begin
+ {$IFDEF FPC}
+ SysInfo(@SystemInf);
+ {$ELSE}
SysInfo(SystemInf);
+ {$ENDIF FPC}
Result := SystemInf.freeram;
end;
{$ENDIF UNIX}
@@ -5078,7 +5127,7 @@
@MyGetFreeSystemResources := GetProcAddress(ResmeterLibHandle, '_MyGetFreeSystemResources32@4');
if not Assigned(MyGetFreeSystemResources) then
UnloadSystemResourcesMeterLib;
- end;
+ end;
end;
begin
Modified: trunk/jcl/source/common/JclWideStrings.pas
===================================================================
--- trunk/jcl/source/common/JclWideStrings.pas 2007-05-15 06:49:51 UTC (rev 2008)
+++ trunk/jcl/source/common/JclWideStrings.pas 2007-05-15 08:06:05 UTC (rev 2009)
@@ -111,7 +111,7 @@
procedure DefineProperties(Filer: TFiler); override;
function ExtractName(const S: WideString): WideString;
function GetP(Index: Integer): PWideString; virtual; abstract;
- function Get(Index: Integer): WideString;
+ function Get(Index: Integer): WideString;
function GetCapacity: Integer; virtual;
function GetCount: Integer; virtual; abstract;
function GetObject(Index: Integer): TObject; virtual;
@@ -288,8 +288,10 @@
function TrimLeftLengthW(const S: WideString): Integer;
function TrimRightLengthW(const S: WideString): Integer;
+{$IFNDEF FPC}
function WideStartsText(const SubStr, S: WideString): Boolean;
function WideStartsStr(const SubStr, S: WideString): Boolean;
+{$ENDIF ~FPC}
{$IFDEF UNITVERSIONING}
const
@@ -995,8 +997,12 @@
Result := CompareStringW(LOCALE_USER_DEFAULT, 0,
PWideChar(S1), Length(S1), PWideChar(S2), Length(S2)) - 2;
{$ELSE ~MSWINDOWS}
- { TODO : Don't cheat here }
- Result := CompareString(S1, S2);
+ {$IFDEF FPC}
+ Result := SysUtils.WideCompareStr(S1, S2);
+ {$ELSE}
+ { TODO : Don't cheat here }
+ Result := CompareString(S1, S2);
+ {$ENDIF FPC}
{$ENDIF ~MSWINDOWS}
end;
@@ -1044,6 +1050,8 @@
Dec(Result);
end;
+{$IFNDEF FPC}
+
function WideStartsText(const SubStr, S: WideString): Boolean;
var
Len: Integer;
@@ -1060,6 +1068,7 @@
Result := (Len <= Length(S)) and (StrLCompW(PWideChar(SubStr), PWideChar(S), Len) = 0);
end;
+{$ENDIF ~FPC}
//=== { TWStrings } ==========================================================
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|