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: <rro...@us...> - 2009-10-08 04:55:18
|
Revision: 3042 http://jcl.svn.sourceforge.net/jcl/?rev=3042&view=rev Author: rrossmair Date: 2009-10-08 04:55:10 +0000 (Thu, 08 Oct 2009) Log Message: ----------- additions to complex number code Modified Paths: -------------- trunk/jcl/source/common/JclMath.pas Modified: trunk/jcl/source/common/JclMath.pas =================================================================== --- trunk/jcl/source/common/JclMath.pas 2009-10-05 17:06:06 UTC (rev 3041) +++ trunk/jcl/source/common/JclMath.pas 2009-10-08 04:55:10 UTC (rev 3042) @@ -693,31 +693,11 @@ { Complex numbers } type - TPolarComplex = record - Radius: Float; - Angle: Float; - {$IFDEF SUPPORTS_CLASS_OPERATORS} - class operator Implicit(const Value: Float): TPolarComplex; - class operator Equal(const Z1, Z2: TPolarComplex): Boolean; - class operator NotEqual(const Z1, Z2: TPolarComplex): Boolean; - class operator Add(const Z1, Z2: TPolarComplex): TPolarComplex; - class operator Subtract(const Z1, Z2: TPolarComplex): TPolarComplex; - class operator Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; - class operator Divide(const Z1, Z2: TPolarComplex): TPolarComplex; - class operator Negative(const Z: TPolarComplex): TPolarComplex; - {$ENDIF SUPPORTS_CLASS_OPERATORS} - end; - TRectComplex = record Re: Float; Im: Float; {$IFDEF SUPPORTS_CLASS_OPERATORS} class operator Implicit(const Value: Float): TRectComplex; - class operator Implicit(const Z: TPolarComplex): TRectComplex; - class operator Implicit(const Z: TRectComplex): TPolarComplex; - // OK with Delphi, but will yield errors in .hpp files: - // class operator Explicit(const Z: TPolarComplex): TRectComplex; - // class operator Explicit(const Z: TRectComplex): TPolarComplex; class operator Equal(const Z1, Z2: TRectComplex): Boolean; class operator NotEqual(const Z1, Z2: TRectComplex): Boolean; class operator Add(const Z1, Z2: TRectComplex): TRectComplex; @@ -725,11 +705,60 @@ class operator Multiply(const Z1, Z2: TRectComplex): TRectComplex; class operator Divide(const Z1, Z2: TRectComplex): TRectComplex; class operator Negative(const Z: TRectComplex): TRectComplex; - // added in rev. 1482; what does it offer over function Exp below?? - class function Exp(const Z: TRectComplex): TPolarComplex; static; inline; + class operator Positive(const Z: TRectComplex): TRectComplex; + function AsString: string; + function Conjugate: TRectComplex; + function IsZero: Boolean; + function IsInfinite: Boolean; {$ENDIF SUPPORTS_CLASS_OPERATORS} end; + TPolarComplex = record + Radius: Float; + Angle: Float; + {$IFDEF SUPPORTS_CLASS_OPERATORS} + class operator Implicit(const Value: Float): TPolarComplex; + class operator Implicit(const Z: TPolarComplex): TRectComplex; + class operator Implicit(const Z: TRectComplex): TPolarComplex; + {$IFNDEF CPPBUILDER} + // OK with Delphi, but will yield errors in .hpp files: + class operator Explicit(const Z: TPolarComplex): TRectComplex; + class operator Explicit(const Z: TRectComplex): TPolarComplex; + {$ENDIF CPPBUILDER} + class operator Equal(const Z1, Z2: TPolarComplex): Boolean; + class operator NotEqual(const Z1, Z2: TPolarComplex): Boolean; + class operator Add(const Z1, Z2: TPolarComplex): TRectComplex; + class operator Subtract(const Z1, Z2: TPolarComplex): TRectComplex; + class operator Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; + class operator Divide(const Z1, Z2: TPolarComplex): TPolarComplex; + class operator Negative(const Z: TPolarComplex): TPolarComplex; + class operator Positive(const Z: TPolarComplex): TPolarComplex; + function AsString: string; + function Conjugate: TPolarComplex; + function IsZero: Boolean; + function IsInfinite: Boolean; + function Power(const Exponent: TRectComplex): TPolarComplex; overload; + function Power(const Exponent: Float): TPolarComplex; overload; + function Power(const Exponent: Integer): TPolarComplex; overload; + // computes the kth nth root, k in 1..n + function Root(const K, N: Cardinal): TPolarComplex; + {$ENDIF SUPPORTS_CLASS_OPERATORS} + end; + +{$IFDEF DEBUG} +var + // accumulated count of (computational costly) TRectComplex <-> TPolarComplex conversions + ComplexTypeConversions: Cardinal; +{$ENDIF DEBUG} + +// sets format string for ComplexToStr(TRectComplex) and TRectComplex.AsString +procedure SetRectComplexFormatStr(const S: string); +// sets format string for ComplexToStr(TPolarComplex) and TPolarComplex.AsString +procedure SetPolarComplexFormatStr(const S: string); + +function ComplexToStr(const Z: TRectComplex): string; overload; +function ComplexToStr(const Z: TPolarComplex): string; overload; + function RectComplex(const Re: Float; const Im: Float = 0): TRectComplex; overload; function RectComplex(const Z: TPolarComplex): TRectComplex; overload; function PolarComplex(const Radius: Float; const Angle: Float = 0): TPolarComplex; overload; @@ -759,6 +788,7 @@ function Diff(const Z1, Z2: TRectComplex): TRectComplex; function Product(const Z1, Z2: TRectComplex): TRectComplex; overload; function Product(const Z1, Z2: TPolarComplex): TPolarComplex; overload; +function Product(const Z: array of TPolarComplex): TPolarComplex; overload; function Quotient(const Z1, Z2: TRectComplex): TRectComplex; overload; function Quotient(const Z1, Z2: TPolarComplex): TPolarComplex; overload; @@ -767,6 +797,8 @@ function Power(const Z: TPolarComplex; const Exponent: TRectComplex): TPolarComplex; overload; function Power(const Z: TPolarComplex; const Exponent: Float): TPolarComplex; overload; function PowerInt(const Z: TPolarComplex; const Exponent: Integer): TPolarComplex; overload; +// a complex number has n different nth roots in the complex plane +// Root() computes the kth nth root, k in 1..n function Root(const Z: TPolarComplex; const K, N: Cardinal): TPolarComplex; function Cos(const Z: TRectComplex): TRectComplex; overload; @@ -4064,8 +4096,31 @@ const RectOne: TRectComplex = (Re: 1.0; Im: 0.0); RectZero: TRectComplex = (Re: 0.0; Im: 0.0); - //RectInfinity: TRectComplex = (Re: Infinity; Im: Infinity); +var + RectComplexFormatStr: string = '%g + %gi'; + PolarComplexFormatStr: string = '%g e^%gi'; + +procedure SetRectComplexFormatStr(const S: string); +begin + RectComplexFormatStr := S; +end; + +procedure SetPolarComplexFormatStr(const S: string); +begin + PolarComplexFormatStr := S; +end; + +function ComplexToStr(const Z: TRectComplex): string; +begin + Result := Format(RectComplexFormatStr, [Z.Re, Z.Im]); +end; + +function ComplexToStr(const Z: TPolarComplex): string; +begin + Result := Format(PolarComplexFormatStr, [Z.Radius, Z.Angle]); +end; + function RectComplex(const Re: Float; const Im: Float = 0): TRectComplex; begin Result.Re := Re; @@ -4076,6 +4131,9 @@ var ASin, ACos: Float; begin + {$IFDEF DEBUG} + Inc(ComplexTypeConversions); + {$ENDIF DEBUG} SinCos(Z.Angle, ASin, ACos); Result.Re := Z.Radius * ACos; Result.Im := Z.Radius * ASin; @@ -4085,7 +4143,7 @@ begin if Radius < 0 then begin - Result.Radius := Abs(Radius); + Result.Radius := -Radius; Result.Angle := Pi; end else @@ -4097,6 +4155,9 @@ function PolarComplex(const Z: TRectComplex): TPolarComplex; begin + {$IFDEF DEBUG} + Inc(ComplexTypeConversions); + {$ENDIF DEBUG} Result.Radius := Norm(Z); Result.Angle := ArcTan2(Z.Im, Z.Re); end; @@ -4152,13 +4213,13 @@ Result := Sqr(Z.Radius); end; -function Conjugate(const Z: TRectComplex): TRectComplex; overload; +function Conjugate(const Z: TRectComplex): TRectComplex; begin Result.Re := Z.Re; Result.Im := -Z.Im; end; -function Conjugate(const Z: TPolarComplex): TPolarComplex; overload; +function Conjugate(const Z: TPolarComplex): TPolarComplex; begin Result.Radius := Z.Radius; Result.Angle := -Z.Angle; @@ -4179,13 +4240,13 @@ Result.Angle := - Z.Angle; end; -function Neg(const Z: TRectComplex): TRectComplex; overload; +function Neg(const Z: TRectComplex): TRectComplex; begin Result.Re := -Z.Re; Result.Im := -Z.Im; end; -function Neg(const Z: TPolarComplex): TPolarComplex; overload; +function Neg(const Z: TPolarComplex): TPolarComplex; begin Result.Radius := Z.Radius; Result.Angle := NormalizeAngle(Z.Angle + Pi); @@ -4227,6 +4288,21 @@ Result.Angle := NormalizeAngle(Z1.Angle + Z2.Angle); end; +function Product(const Z: array of TPolarComplex): TPolarComplex; +var + I: Integer; +begin + Result.Radius := 1.0; + Result.Angle := 0; + for I := Low(Z) to High(Z) do + begin + Result.Radius := Result.Radius * Z[I].Radius; + Result.Angle := Result.Angle + Z[I].Angle; + end; + Result.Angle := NormalizeAngle(Result.Angle); +end; + + function Quotient(const Z1, Z2: TRectComplex): TRectComplex; var Denom: Float; @@ -4383,115 +4459,182 @@ {$IFDEF SUPPORTS_CLASS_OPERATORS} -{ TPolarComplex } +{ TRectComplex } -class operator TPolarComplex.Implicit(const Value: Float): TPolarComplex; +class operator TRectComplex.Implicit(const Value: Float): TRectComplex; begin - Result := PolarComplex(Value); + Result := RectComplex(Value); end; -class operator TPolarComplex.Equal(const Z1, Z2: TPolarComplex): Boolean; +class operator TRectComplex.Equal(const Z1, Z2: TRectComplex): Boolean; begin Result := Equal(Z1, Z2); end; -class operator TPolarComplex.NotEqual(const Z1, Z2: TPolarComplex): Boolean; +class operator TRectComplex.NotEqual(const Z1, Z2: TRectComplex): Boolean; begin Result := not Equal(Z1, Z2); end; -class operator TPolarComplex.Add(const Z1, Z2: TPolarComplex): TPolarComplex; +class operator TRectComplex.Add(const Z1, Z2: TRectComplex): TRectComplex; begin Result := Sum(Z1, Z2); end; -class operator TPolarComplex.Subtract(const Z1, Z2: TPolarComplex): TPolarComplex; +class operator TRectComplex.Subtract(const Z1, Z2: TRectComplex): TRectComplex; begin Result := Diff(Z1, Z2); end; -class operator TPolarComplex.Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; +class operator TRectComplex.Multiply(const Z1, Z2: TRectComplex): TRectComplex; begin Result := Product(Z1, Z2); end; -class operator TPolarComplex.Divide(const Z1, Z2: TPolarComplex): TPolarComplex; +class operator TRectComplex.Divide(const Z1, Z2: TRectComplex): TRectComplex; begin Result := Quotient(Z1, Z2); end; -class operator TPolarComplex.Negative(const Z: TPolarComplex): TPolarComplex; +class operator TRectComplex.Negative(const Z: TRectComplex): TRectComplex; begin Result := Neg(Z); end; -{ TRectComplex } +class operator TRectComplex.Positive(const Z: TRectComplex): TRectComplex; +begin + Result := Z; +end; -class operator TRectComplex.Implicit(const Value: Float): TRectComplex; +function TRectComplex.AsString: string; begin - Result := RectComplex(Value); + Result := ComplexToStr(Self); end; -class operator TRectComplex.Implicit(const Z: TPolarComplex): TRectComplex; +function TRectComplex.Conjugate: TRectComplex; begin + Result := JclMath.Conjugate(Self); +end; + +function TRectComplex.IsZero: Boolean; +begin + Result := JclMath.IsZero(Self); +end; + +function TRectComplex.IsInfinite: Boolean; +begin + Result := JclMath.IsInfinite(Self); +end; + +{ TPolarComplex } + +class operator TPolarComplex.Implicit(const Value: Float): TPolarComplex; +begin + Result := PolarComplex(Value); +end; + +class operator TPolarComplex.Implicit(const Z: TPolarComplex): TRectComplex; +begin Result := RectComplex(Z); end; -class operator TRectComplex.Implicit(const Z: TRectComplex): TPolarComplex; +class operator TPolarComplex.Implicit(const Z: TRectComplex): TPolarComplex; begin Result := PolarComplex(Z); end; -{ -class operator TRectComplex.Explicit(const Z: TPolarComplex): TRectComplex; + +{$IFNDEF CPPBUILDER} +class operator TPolarComplex.Explicit(const Z: TPolarComplex): TRectComplex; begin Result := RectComplex(Z); end; -class operator TRectComplex.Explicit(const Z: TRectComplex): TPolarComplex; +class operator TPolarComplex.Explicit(const Z: TRectComplex): TPolarComplex; begin Result := PolarComplex(Z); end; -} -class operator TRectComplex.Equal(const Z1, Z2: TRectComplex): Boolean; +{$ENDIF CPPBUILDER} + +class operator TPolarComplex.Equal(const Z1, Z2: TPolarComplex): Boolean; begin Result := Equal(Z1, Z2); end; -class operator TRectComplex.NotEqual(const Z1, Z2: TRectComplex): Boolean; +class operator TPolarComplex.NotEqual(const Z1, Z2: TPolarComplex): Boolean; begin Result := not Equal(Z1, Z2); end; -class operator TRectComplex.Add(const Z1, Z2: TRectComplex): TRectComplex; +class operator TPolarComplex.Add(const Z1, Z2: TPolarComplex): TRectComplex; begin Result := Sum(Z1, Z2); end; -class operator TRectComplex.Subtract(const Z1, Z2: TRectComplex): TRectComplex; +class operator TPolarComplex.Subtract(const Z1, Z2: TPolarComplex): TRectComplex; begin Result := Diff(Z1, Z2); end; -class operator TRectComplex.Multiply(const Z1, Z2: TRectComplex): TRectComplex; +class operator TPolarComplex.Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; begin Result := Product(Z1, Z2); end; -class operator TRectComplex.Divide(const Z1, Z2: TRectComplex): TRectComplex; +class operator TPolarComplex.Divide(const Z1, Z2: TPolarComplex): TPolarComplex; begin Result := Quotient(Z1, Z2); end; -class operator TRectComplex.Negative(const Z: TRectComplex): TRectComplex; +class operator TPolarComplex.Negative(const Z: TPolarComplex): TPolarComplex; begin Result := Neg(Z); end; -class function TRectComplex.Exp(const Z: TRectComplex): TPolarComplex; +class operator TPolarComplex.Positive(const Z: TPolarComplex): TPolarComplex; begin - Result := JclMath.Exp(Z); + Result := Z; end; +function TPolarComplex.AsString: string; +begin + Result := ComplexToStr(Self); +end; + +function TPolarComplex.Conjugate: TPolarComplex; +begin + Result := JclMath.Conjugate(Self); +end; + +function TPolarComplex.IsZero: Boolean; +begin + Result := JclMath.IsZero(Self); +end; + +function TPolarComplex.IsInfinite: Boolean; +begin + Result := JclMath.IsInfinite(Self); +end; + +function TPolarComplex.Power(const Exponent: TRectComplex): TPolarComplex; +begin + Result := JclMath.Power(Self, Exponent); +end; + +function TPolarComplex.Power(const Exponent: Float): TPolarComplex; +begin + Result := JclMath.Power(Self, Exponent); +end; + +function TPolarComplex.Power(const Exponent: Integer): TPolarComplex; +begin + Result := JclMath.PowerInt(Self, Exponent); +end; + +function TPolarComplex.Root(const K, N: Cardinal): TPolarComplex; +begin + Result := JclMath.Root(Self, K, N); +end; + {$ENDIF SUPPORTS_CLASS_OPERATORS} {$IFDEF UNITVERSIONING} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-10-05 17:06:21
|
Revision: 3041 http://jcl.svn.sourceforge.net/jcl/?rev=3041&view=rev Author: outchy Date: 2009-10-05 17:06:06 +0000 (Mon, 05 Oct 2009) Log Message: ----------- wrong argument order for calls to function IsFileNameMatch. Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2009-10-05 14:48:33 UTC (rev 3040) +++ trunk/jcl/source/common/JclCompression.pas 2009-10-05 17:06:06 UTC (rev 3041) @@ -2084,7 +2084,7 @@ AFormat := CompressFormats[IndexFormat]; StrTokenToStrings(AFormat.StreamExtensions, DirSeparator, Filters); for IndexFilter := 0 to Filters.Count - 1 do - if IsFileNameMatch(Filters.Strings[IndexFilter], AFileName) then + if IsFileNameMatch(AFileName, Filters.Strings[IndexFilter]) then begin Result := AFormat; Break; @@ -2111,7 +2111,7 @@ AFormat := DecompressFormats[IndexFormat]; StrTokenToStrings(AFormat.StreamExtensions, DirSeparator, Filters); for IndexFilter := 0 to Filters.Count - 1 do - if IsFileNameMatch(Filters.Strings[IndexFilter], AFileName) then + if IsFileNameMatch(AFileName, Filters.Strings[IndexFilter]) then begin Result := AFormat; Break; @@ -3983,7 +3983,7 @@ AFormat := CompressFormats[IndexFormat]; StrTokenToStrings(AFormat.ArchiveExtensions, DirSeparator, Filters); for IndexFilter := 0 to Filters.Count - 1 do - if IsFileNameMatch(Filters.Strings[IndexFilter], AFileName) then + if IsFileNameMatch(AFileName, Filters.Strings[IndexFilter]) then begin Result := AFormat; Break; @@ -4010,7 +4010,7 @@ AFormat := DecompressFormats[IndexFormat]; StrTokenToStrings(AFormat.ArchiveExtensions, DirSeparator, Filters); for IndexFilter := 0 to Filters.Count - 1 do - if IsFileNameMatch(Filters.Strings[IndexFilter], AFileName) then + if IsFileNameMatch(AFileName, Filters.Strings[IndexFilter]) then begin Result := AFormat; Break; @@ -4037,7 +4037,7 @@ AFormat := UpdateFormats[IndexFormat]; StrTokenToStrings(AFormat.ArchiveExtensions, DirSeparator, Filters); for IndexFilter := 0 to Filters.Count - 1 do - if StrMatches(Filters.Strings[IndexFilter], AFileName) then + if IsFileNameMatch(AFileName, Filters.Strings[IndexFilter]) then begin Result := AFormat; Break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-10-05 14:48:41
|
Revision: 3040 http://jcl.svn.sourceforge.net/jcl/?rev=3040&view=rev Author: outchy Date: 2009-10-05 14:48:33 +0000 (Mon, 05 Oct 2009) Log Message: ----------- new location of the JCL page at sourceforge. Modified Paths: -------------- trunk/thirdparty/makedist/winscp-jcl-daily.txt Modified: trunk/thirdparty/makedist/winscp-jcl-daily.txt =================================================================== --- trunk/thirdparty/makedist/winscp-jcl-daily.txt 2009-10-05 14:47:30 UTC (rev 3039) +++ trunk/thirdparty/makedist/winscp-jcl-daily.txt 2009-10-05 14:48:33 UTC (rev 3040) @@ -2,6 +2,6 @@ option confirm off option transfer binary open jcl.web.sourceforge.net -synchronize remote -delete C:\dev\jcl\website\daily /home/groups/j/jc/jcl/htdocs/daily +synchronize remote -delete C:\dev\jcl\website\sourceforge\daily /home/groups/j/jc/jcl/htdocs/daily close exit \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-10-05 14:47:37
|
Revision: 3039 http://jcl.svn.sourceforge.net/jcl/?rev=3039&view=rev Author: outchy Date: 2009-10-05 14:47:30 +0000 (Mon, 05 Oct 2009) Log Message: ----------- Support for 7z 9.7.0 archive classes. Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas trunk/jcl/source/common/JclResources.pas trunk/jcl/source/windows/sevenzip.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2009-10-03 22:41:34 UTC (rev 3038) +++ trunk/jcl/source/common/JclCompression.pas 2009-10-05 14:47:30 UTC (rev 3039) @@ -101,6 +101,7 @@ | |-- TJclTarCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclGZipCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclXzCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclSwfcCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclDecompressArchive | | @@ -141,7 +142,10 @@ | |-- TJclFatDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclMbrDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclVhdDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ - + | |-- TJclMslzDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclFlvDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclSwfDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclSwfcDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclUpdateArchive | @@ -153,7 +157,8 @@ |-- TJclTarUpdateArchive handled by sevenzip http://sevenzip.sourceforge.net/ |-- TJclGZipUpdateArchive handled by sevenzip http://sevenzip.sourceforge.net/ |-- TJclXzUpdateArchive handled by sevenzip http://sevenzip.sourceforge.net/ - + |-- TJclSwfcUpdateArchive handled by sevenzip http://sevenzip.sourceforge.net/ + **************************************************************************************************} type @@ -1316,6 +1321,14 @@ procedure SetCompressionMethod(Value: TJclCompressionMethod); end; + TJclSwfcCompressArchive = class(TJclSevenzipCompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + // sevenzip classes for decompression type TJclSevenzipDecompressArchive = class(TJclDecompressArchive, IInterface) @@ -1668,6 +1681,38 @@ class function ArchiveName: string; override; end; + TJclMslzDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + + TJclFlvDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + + TJclSwfDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + + TJclSwfcDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + //sevenzip classes for updates (read and write) type TJclSevenzipUpdateArchive = class(TJclOutOfPlaceUpdateArchive, IInterface) @@ -1873,6 +1918,15 @@ function GetSupportedCompressionMethods: TJclCompressionMethods; procedure SetCompressionMethod(Value: TJclCompressionMethod); end; + + TJclSwfcUpdateArchive = class(TJclSevenzipUpdateArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + {$ENDIF MSWINDOWS} {$IFDEF UNITVERSIONING} @@ -3852,12 +3906,15 @@ FCompressFormats := TList.Create; FDecompressFormats := TList.Create; FUpdateFormats := TList.Create; + // register compression archives RegisterFormat(TJclZipCompressArchive); RegisterFormat(TJclBZ2CompressArchive); RegisterFormat(TJcl7zCompressArchive); RegisterFormat(TJclTarCompressArchive); RegisterFormat(TJclGZipCompressArchive); RegisterFormat(TJclXzCompressArchive); + RegisterFormat(TJclSwfcCompressArchive); + // register decompression archives RegisterFormat(TJclZipDecompressArchive); RegisterFormat(TJclBZ2DecompressArchive); RegisterFormat(TJclRarDecompressArchive); @@ -3891,11 +3948,17 @@ RegisterFormat(TJclFatDecompressArchive); RegisterFormat(TJclMbrDecompressArchive); RegisterFormat(TJclVhdDecompressArchive); + RegisterFormat(TJclMslzDecompressArchive); + RegisterFormat(TJclFlvDecompressArchive); + RegisterFormat(TJclSwfDecompressArchive); + RegisterFormat(TJclSwfcDecompressArchive); + // register update archives RegisterFormat(TJclZipUpdateArchive); RegisterFormat(TJclBZ2UpdateArchive); RegisterFormat(TJcl7zUpdateArchive); RegisterFormat(TJclTarUpdateArchive); RegisterFormat(TJclGZipUpdateArchive); + RegisterFormat(TJclSwfcUpdateArchive); end; destructor TJclCompressionArchiveFormats.Destroy; @@ -6527,6 +6590,23 @@ FCompressionMethod := Value; end; +//=== { TJclSwfcCompressArchive } ============================================ + +class function TJclSwfcCompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionSwfcExtensions); +end; + +class function TJclSwfcCompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionSwfcName); +end; + +function TJclSwfcCompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatSwfc; +end; + //=== { TJclSevenzipOpenCallback } =========================================== type @@ -7645,6 +7725,74 @@ Result := CLSID_CFormatVhd; end; +//=== { TJclMslzDecompressArchive } ========================================== + +class function TJclMslzDecompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionMslzExtensions); +end; + +class function TJclMslzDecompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionMslzName); +end; + +function TJclMslzDecompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatMslz; +end; + +//=== { TJclFlvDecompressArchive } =========================================== + +class function TJclFlvDecompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionFlvExtensions); +end; + +class function TJclFlvDecompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionFlvName); +end; + +function TJclFlvDecompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatFlv; +end; + +//=== { TJclSwfDecompressArchive } =========================================== + +class function TJclSwfDecompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionSwfExtensions); +end; + +class function TJclSwfDecompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionSwfName); +end; + +function TJclSwfDecompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatSwf; +end; + +//=== { TJclSwfcDecompressArchive } ========================================== + +class function TJclSwfcDecompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionSwfcExtensions); +end; + +class function TJclSwfcDecompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionSwfcName); +end; + +function TJclSwfcDecompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatSwfc; +end; + //=== { TJclSevenzipUpdateArchive } ========================================== destructor TJclSevenzipUpdateArchive.Destroy; @@ -8590,6 +8738,23 @@ FCompressionMethod := Value; end; +//=== { TJclSwfcUpdateArchive } ============================================== + +class function TJclSwfcUpdateArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionSwfcExtensions); +end; + +class function TJclSwfcUpdateArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionSwfcName); +end; + +function TJclSwfcUpdateArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatSwfc; +end; + {$ENDIF MSWINDOWS} initialization Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2009-10-03 22:41:34 UTC (rev 3038) +++ trunk/jcl/source/common/JclResources.pas 2009-10-05 14:47:30 UTC (rev 3039) @@ -1110,8 +1110,7 @@ RsCompressionLzma86Name = 'Lzma86 archive'; RsCompressionLzma86Extensions = '*.lzma86'; RsCompressionPeName = 'Pe archive'; - // TODO: extension might be *.*, but then TJclCompressionStreamFormats.FindDecompressFormat can fail - RsCompressionPeExtensions = '*.'; + RsCompressionPeExtensions = '*.exe;*.dll;*.sys;*.bpl'; RsCompressionElfName = 'Elf archive'; // TODO: extension might be *.*, but then TJclCompressionStreamFormats.FindDecompressFormat can fail RsCompressionElfExtensions = '*.'; @@ -1130,7 +1129,7 @@ RsCompressionDmgName = 'Dmg archive'; RsCompressionDmgExtensions = '*.dmg'; RsCompressionCompoundName = 'Compound archive'; - RsCompressionCompoundExtensions = '*.msi;*.doc;*.xls;*.ppt'; + RsCompressionCompoundExtensions = '*.msi;*.msp;*.doc;*.xls;*.ppt'; RsCompressionWimName = 'Wim archive'; RsCompressionWimExtensions = '*.wim;*.swm'; RsCompressionIsoName = 'Iso archive'; @@ -1149,7 +1148,7 @@ RsCompressionTarExtensions = '*.tar'; RsCompressionGZipName = 'GZip archive'; RsCompressionGZipExtensions = '*.gz;*.gzip;*.tgz;*.tpz'; - RsCompressionXzName = 'xz archive'; + RsCompressionXzName = 'Xz archive'; RsCompressionXzExtensions = '*.xz;*.txz'; RsCompressionNtfsName = 'Ntfs archive'; RsCompressionNtfsExtensions = '*.ntfs;*.img'; @@ -1159,6 +1158,15 @@ RsCompressionMbrExtensions = '*.mbr'; RsCompressionVhdName = 'Vhd archive'; RsCompressionVhdExtensions = '*.vhd;*.mbr'; + RsCompressionFlvName = 'Flv archive'; + RsCompressionFlvExtensions = '*.flv'; + RsCompressionMsLZName = 'MsLZ archive'; + // TODO: extension might be *.*, but then TJclCompressionStreamFormats.FindDecompressFormat can fail + RsCompressionMsLZExtensions = '*.'; + RsCompressionSwfName = 'Swf archive'; + RsCompressionSwfExtensions = '*.swf'; + RsCompressionSwfcName = 'Swf archive'; + RsCompressionSwfcExtensions = '*.swf'; RsCompressionDuplicate = 'The file %s already exists in the archive'; RsCompressionReplaceError = 'At least one compression volumes could not be replaced after an archive out-of-place update'; Modified: trunk/jcl/source/windows/sevenzip.pas =================================================================== --- trunk/jcl/source/windows/sevenzip.pas 2009-10-03 22:41:34 UTC (rev 3038) +++ trunk/jcl/source/windows/sevenzip.pas 2009-10-05 14:47:30 UTC (rev 3039) @@ -99,6 +99,10 @@ CLSID_CFormatLzma : TGUID = '{23170F69-40C1-278A-1000-0001100A0000}'; CLSID_CFormatLzma86 : TGUID = '{23170F69-40C1-278A-1000-0001100B0000}'; CLSID_CFormatXz : TGUID = '{23170F69-40C1-278A-1000-0001100C0000}'; + CLSID_CFormatMslz : TGUID = '{23170F69-40C1-278A-1000-000110D50000}'; + CLSID_CFormatFlv : TGUID = '{23170F69-40C1-278A-1000-000110D60000}'; + CLSID_CFormatSwf : TGUID = '{23170F69-40C1-278A-1000-000110D70000}'; + CLSID_CFormatSwfc : TGUID = '{23170F69-40C1-278A-1000-000110D80000}'; CLSID_CFormatNtfs : TGUID = '{23170F69-40C1-278A-1000-000110D90000}'; CLSID_CFormatFat : TGUID = '{23170F69-40C1-278A-1000-000110DA0000}'; CLSID_CFormatMbr : TGUID = '{23170F69-40C1-278A-1000-000110DB0000}'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rro...@us...> - 2009-10-03 22:41:48
|
Revision: 3038 http://jcl.svn.sourceforge.net/jcl/?rev=3038&view=rev Author: rrossmair Date: 2009-10-03 22:41:34 +0000 (Sat, 03 Oct 2009) Log Message: ----------- Modified Paths: -------------- trunk/jcl/source/common/JclMath.pas Modified: trunk/jcl/source/common/JclMath.pas =================================================================== --- trunk/jcl/source/common/JclMath.pas 2009-10-03 22:32:41 UTC (rev 3037) +++ trunk/jcl/source/common/JclMath.pas 2009-10-03 22:41:34 UTC (rev 3038) @@ -697,14 +697,14 @@ Radius: Float; Angle: Float; {$IFDEF SUPPORTS_CLASS_OPERATORS} - class operator Implicit(const Value: Float): TPolarComplex; // inline; - class operator Equal(const Z1, Z2: TPolarComplex): Boolean; // inline; - class operator NotEqual(const Z1, Z2: TPolarComplex): Boolean; // inline; - class operator Add(const Z1, Z2: TPolarComplex): TPolarComplex; // inline; - class operator Subtract(const Z1, Z2: TPolarComplex): TPolarComplex; // inline; - class operator Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; // inline; - class operator Divide(const Z1, Z2: TPolarComplex): TPolarComplex; // inline; - class operator Negative(const Z: TPolarComplex): TPolarComplex; // inline; + class operator Implicit(const Value: Float): TPolarComplex; + class operator Equal(const Z1, Z2: TPolarComplex): Boolean; + class operator NotEqual(const Z1, Z2: TPolarComplex): Boolean; + class operator Add(const Z1, Z2: TPolarComplex): TPolarComplex; + class operator Subtract(const Z1, Z2: TPolarComplex): TPolarComplex; + class operator Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; + class operator Divide(const Z1, Z2: TPolarComplex): TPolarComplex; + class operator Negative(const Z: TPolarComplex): TPolarComplex; {$ENDIF SUPPORTS_CLASS_OPERATORS} end; @@ -712,19 +712,19 @@ Re: Float; Im: Float; {$IFDEF SUPPORTS_CLASS_OPERATORS} - class operator Implicit(const Value: Float): TRectComplex; // inline; - class operator Implicit(const Z: TPolarComplex): TRectComplex; // inline; - class operator Implicit(const Z: TRectComplex): TPolarComplex; // inline; + class operator Implicit(const Value: Float): TRectComplex; + class operator Implicit(const Z: TPolarComplex): TRectComplex; + class operator Implicit(const Z: TRectComplex): TPolarComplex; // OK with Delphi, but will yield errors in .hpp files: - // class operator Explicit(const Z: TPolarComplex): TRectComplex; // inline; - // class operator Explicit(const Z: TRectComplex): TPolarComplex; // inline; - class operator Equal(const Z1, Z2: TRectComplex): Boolean; // inline; - class operator NotEqual(const Z1, Z2: TRectComplex): Boolean; // inline; - class operator Add(const Z1, Z2: TRectComplex): TRectComplex; // inline; - class operator Subtract(const Z1, Z2: TRectComplex): TRectComplex; // inline; - class operator Multiply(const Z1, Z2: TRectComplex): TRectComplex; // inline; - class operator Divide(const Z1, Z2: TRectComplex): TRectComplex; // inline; - class operator Negative(const Z: TRectComplex): TRectComplex; // inline; + // class operator Explicit(const Z: TPolarComplex): TRectComplex; + // class operator Explicit(const Z: TRectComplex): TPolarComplex; + class operator Equal(const Z1, Z2: TRectComplex): Boolean; + class operator NotEqual(const Z1, Z2: TRectComplex): Boolean; + class operator Add(const Z1, Z2: TRectComplex): TRectComplex; + class operator Subtract(const Z1, Z2: TRectComplex): TRectComplex; + class operator Multiply(const Z1, Z2: TRectComplex): TRectComplex; + class operator Divide(const Z1, Z2: TRectComplex): TRectComplex; + class operator Negative(const Z: TRectComplex): TRectComplex; // added in rev. 1482; what does it offer over function Exp below?? class function Exp(const Z: TRectComplex): TPolarComplex; static; inline; {$ENDIF SUPPORTS_CLASS_OPERATORS} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rro...@us...> - 2009-10-03 22:32:52
|
Revision: 3037 http://jcl.svn.sourceforge.net/jcl/?rev=3037&view=rev Author: rrossmair Date: 2009-10-03 22:32:41 +0000 (Sat, 03 Oct 2009) Log Message: ----------- fixed inv2Pi precision restored ArcTan, ArcTan2, ArcSinH for 64 bit Modified Paths: -------------- trunk/jcl/source/common/JclMath.pas Modified: trunk/jcl/source/common/JclMath.pas =================================================================== --- trunk/jcl/source/common/JclMath.pas 2009-10-03 10:20:22 UTC (rev 3036) +++ trunk/jcl/source/common/JclMath.pas 2009-10-03 22:32:41 UTC (rev 3037) @@ -30,9 +30,9 @@ { } {**************************************************************************************************} { } -{ Various mathematics classes and routines. Includes prime numbers, rational } -{ numbers, generic floating point routines, hyperbolic and transcendenatal } -{ routines, NAN and INF support and more. } +{ Various mathematics classes and routines. Includes prime numbers, rational numbers, } +{ complex numbers, generic floating point routines, hyperbolic and transcendenatal routines, } +{ NAN and INF support and more. } { } {**************************************************************************************************} { } @@ -86,7 +86,7 @@ LogE: Float = 0.43429448190325182765112891891661; // Log10(E) E: Float = 2.7182818284590452353602874713527; // Natural constant hLn2Pi: Float = 0.91893853320467274178032973640562; // Ln(2*PI)/2 - inv2Pi: Float = 0.159154943091895; // 0.5 / Pi + inv2Pi: Float = 0.15915494309189533576888376337251436203445964574046; // 0.5 / Pi TwoToPower63: Float = 9223372036854775808.0; // 2^63 GoldenMean: Float = 1.618033988749894848204586834365638; // GoldenMean EulerMascheroni: Float = 0.5772156649015328606065120900824; // Euler GAMMA @@ -697,14 +697,14 @@ Radius: Float; Angle: Float; {$IFDEF SUPPORTS_CLASS_OPERATORS} - class operator Implicit(const Value: Float): TPolarComplex; - class operator Equal(const Z1, Z2: TPolarComplex): Boolean; - class operator NotEqual(const Z1, Z2: TPolarComplex): Boolean; - class operator Add(const Z1, Z2: TPolarComplex): TPolarComplex; - class operator Subtract(const Z1, Z2: TPolarComplex): TPolarComplex; - class operator Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; - class operator Divide(const Z1, Z2: TPolarComplex): TPolarComplex; - class operator Negative(const Z: TPolarComplex): TPolarComplex; + class operator Implicit(const Value: Float): TPolarComplex; // inline; + class operator Equal(const Z1, Z2: TPolarComplex): Boolean; // inline; + class operator NotEqual(const Z1, Z2: TPolarComplex): Boolean; // inline; + class operator Add(const Z1, Z2: TPolarComplex): TPolarComplex; // inline; + class operator Subtract(const Z1, Z2: TPolarComplex): TPolarComplex; // inline; + class operator Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; // inline; + class operator Divide(const Z1, Z2: TPolarComplex): TPolarComplex; // inline; + class operator Negative(const Z: TPolarComplex): TPolarComplex; // inline; {$ENDIF SUPPORTS_CLASS_OPERATORS} end; @@ -712,20 +712,21 @@ Re: Float; Im: Float; {$IFDEF SUPPORTS_CLASS_OPERATORS} - class operator Implicit(const Value: Float): TRectComplex; - class operator Implicit(const Z: TPolarComplex): TRectComplex; - class operator Implicit(const Z: TRectComplex): TPolarComplex; - - class operator Equal(const Z1, Z2: TRectComplex): Boolean; - class operator NotEqual(const Z1, Z2: TRectComplex): Boolean; - - class operator Add(const Z1, Z2: TRectComplex): TRectComplex; - class operator Subtract(const Z1, Z2: TRectComplex): TRectComplex; - class operator Multiply(const Z1, Z2: TRectComplex): TRectComplex; - class operator Divide(const Z1, Z2: TRectComplex): TRectComplex; - class operator Negative(const Z: TRectComplex): TRectComplex; - - class function Exp(const Z: TRectComplex): TPolarComplex; static; + class operator Implicit(const Value: Float): TRectComplex; // inline; + class operator Implicit(const Z: TPolarComplex): TRectComplex; // inline; + class operator Implicit(const Z: TRectComplex): TPolarComplex; // inline; + // OK with Delphi, but will yield errors in .hpp files: + // class operator Explicit(const Z: TPolarComplex): TRectComplex; // inline; + // class operator Explicit(const Z: TRectComplex): TPolarComplex; // inline; + class operator Equal(const Z1, Z2: TRectComplex): Boolean; // inline; + class operator NotEqual(const Z1, Z2: TRectComplex): Boolean; // inline; + class operator Add(const Z1, Z2: TRectComplex): TRectComplex; // inline; + class operator Subtract(const Z1, Z2: TRectComplex): TRectComplex; // inline; + class operator Multiply(const Z1, Z2: TRectComplex): TRectComplex; // inline; + class operator Divide(const Z1, Z2: TRectComplex): TRectComplex; // inline; + class operator Negative(const Z: TRectComplex): TRectComplex; // inline; + // added in rev. 1482; what does it offer over function Exp below?? + class function Exp(const Z: TRectComplex): TPolarComplex; static; inline; {$ENDIF SUPPORTS_CLASS_OPERATORS} end; @@ -1213,6 +1214,7 @@ end; end; +{$IFDEF CPU32} function ArcTan(X: Float): Float; assembler; asm FLD X @@ -1220,7 +1222,22 @@ FPATAN FWAIT end; +{$ENDIF CPU32} +{$IFDEF CPU64} +function ArcTan(X: Float): Float; +begin + asm + FLD X + FLD1 + FPATAN + FWAIT + FSTP Result + end; +end; +{$ENDIF CPU64} + +{$IFDEF CPU32} function ArcTan2(Y, X: Float): Float; assembler; asm FLD Y @@ -1228,7 +1245,21 @@ FPATAN FWAIT end; +{$ENDIF CPU32} +{$IFDEF CPU64} +function ArcTan2(Y, X: Float): Float; +begin + asm + FLD Y + FLD X + FPATAN + FWAIT + FSTP Result + end; +end; +{$ENDIF CPU64} + function Cos(X: Float): Float; begin DomainCheck(Abs(X) > MaxAngle); @@ -1431,6 +1462,7 @@ Result := System.Ln((Sqrt(1.0 - Sqr(X)) + 1.0) / X); end; +{$IFDEF CPU32} function ArcSinH(X: Float): Float; assembler; asm FLDLN2 @@ -1443,7 +1475,26 @@ FADDP ST(1), ST(0) FYL2X end; +{$ENDIF CPU32} +{$IFDEF CPU64} +function ArcSinH(X: Float): Float; +begin + asm + FLDLN2 + FLD X + FLD ST(0) + FMUL ST(0), ST(0) + FLD1 + FADDP ST(1), ST(0) + FSQRT + FADDP ST(1), ST(0) + FYL2X + FSTP Result + end; +end; +{$ENDIF CPU64} + function ArcTanH(X: Float): Float; begin DomainCheck(Abs(X) >= 1.0); @@ -2164,6 +2215,9 @@ function NormalizeAngle(const Angle: Float): Float; begin Result := Angle; + if Result = 0 then + Exit; + {$IFDEF MATH_ANGLE_DEGREES} Result := DegToRad(Result); {$ENDIF MATH_ANGLE_DEGREES} @@ -2171,15 +2225,16 @@ Result := GradToRad(Result); {$ENDIF MATH_ANGLE_GRADS} - Result := Frac(Result * Inv2Pi); - if Result < -0.5 then - Result := Result + 1.0 - else - if Result >= 0.5 then - Result := Result - 1.0; + if (Result < -Pi) or (Result >= Pi) then + begin + Result := Frac(Result * Inv2Pi); + if Result < 0 then + Result := Result + 1.0 + else + Result := Result - 1.0; + Result := Result * TwoPi; + end; - Result := Result * TwoPi; - {$IFDEF MATH_ANGLE_DEGREES} Result := RadToDeg(Result); {$ENDIF MATH_ANGLE_DEGREES} @@ -4386,7 +4441,17 @@ begin Result := PolarComplex(Z); end; +{ +class operator TRectComplex.Explicit(const Z: TPolarComplex): TRectComplex; +begin + Result := RectComplex(Z); +end; +class operator TRectComplex.Explicit(const Z: TRectComplex): TPolarComplex; +begin + Result := PolarComplex(Z); +end; +} class operator TRectComplex.Equal(const Z1, Z2: TRectComplex): Boolean; begin Result := Equal(Z1, Z2); @@ -4424,7 +4489,7 @@ class function TRectComplex.Exp(const Z: TRectComplex): TPolarComplex; begin - Result := Exp(Z); + Result := JclMath.Exp(Z); end; {$ENDIF SUPPORTS_CLASS_OPERATORS} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-10-03 10:20:34
|
Revision: 3036 http://jcl.svn.sourceforge.net/jcl/?rev=3036&view=rev Author: outchy Date: 2009-10-03 10:20:22 +0000 (Sat, 03 Oct 2009) Log Message: ----------- Mantis 4967: EnumWinProc Unicode bug. Modified Paths: -------------- trunk/jcl/source/windows/JclAppInst.pas Modified: trunk/jcl/source/windows/JclAppInst.pas =================================================================== --- trunk/jcl/source/windows/JclAppInst.pas 2009-10-03 10:13:30 UTC (rev 3035) +++ trunk/jcl/source/windows/JclAppInst.pas 2009-10-03 10:20:22 UTC (rev 3036) @@ -441,7 +441,7 @@ PID: DWORD; Found: Boolean; begin - if (GetClassName(Wnd, ClassName, SizeOf(ClassName)) > 0) and + if (GetClassName(Wnd, ClassName, Length(ClassName) - 1) > 0) and (StrComp(ClassName, Data.WindowClassName) = 0) then begin GetWindowThreadProcessId(Wnd, @PID); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-10-03 10:13:44
|
Revision: 3035 http://jcl.svn.sourceforge.net/jcl/?rev=3035&view=rev Author: outchy Date: 2009-10-03 10:13:30 +0000 (Sat, 03 Oct 2009) Log Message: ----------- Mantis 4962: "Favorite folder" - dialog addon expert doesn't load its saved settings. Modified Paths: -------------- trunk/jcl/source/vcl/JclOpenDialogHooks.pas Modified: trunk/jcl/source/vcl/JclOpenDialogHooks.pas =================================================================== --- trunk/jcl/source/vcl/JclOpenDialogHooks.pas 2009-10-03 09:34:58 UTC (rev 3034) +++ trunk/jcl/source/vcl/JclOpenDialogHooks.pas 2009-10-03 10:13:30 UTC (rev 3035) @@ -238,6 +238,7 @@ FParentWnd := GetParent(FHandle); if IsWin2k or IsWinXP then FOldParentWndInstance := Pointer(SetWindowLongPtr(FParentWnd, GWLP_WNDPROC, LONG_PTR(FParentWndInstance))); + DoShow; end; procedure TJclOpenDialogHook.DoClose; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-10-03 09:53:47
|
Revision: 3033 http://jcl.svn.sourceforge.net/jcl/?rev=3033&view=rev Author: outchy Date: 2009-10-03 09:32:18 +0000 (Sat, 03 Oct 2009) Log Message: ----------- SysUtils' FileOpen, FileCreate and FileClose functions have integer typed handles. Modified Paths: -------------- trunk/jcl/source/common/JclSysUtils.pas Modified: trunk/jcl/source/common/JclSysUtils.pas =================================================================== --- trunk/jcl/source/common/JclSysUtils.pas 2009-10-03 09:21:03 UTC (rev 3032) +++ trunk/jcl/source/common/JclSysUtils.pas 2009-10-03 09:32:18 UTC (rev 3033) @@ -617,7 +617,7 @@ TJclSimpleLog = class (TObject) private FDateTimeFormatStr: String; - FLogFileHandle: THandle; + FLogFileHandle: {$IFDEF DELPHI}Integer{$ELSE}THandle{$ENDIF}; FLogFileName: string; FLoggingActive: Boolean; FLogWasEmpty: Boolean; @@ -3245,7 +3245,11 @@ FLogFileName := CreateDefaultFileName else FLogFileName := ALogFileName; + {$IFDEF DELPHI} + FLogFileHandle := Integer(INVALID_HANDLE_VALUE); + {$ELSE ~DELPHI} FLogFileHandle := INVALID_HANDLE_VALUE; + {$ENDIF ~DELPHI} FLoggingActive := True; end; @@ -3281,7 +3285,11 @@ if LogOpen then begin FileClose(FLogFileHandle); + {$IFDEF DELPHI} + FLogFileHandle := Integer(INVALID_HANDLE_VALUE); + {$ELSE ~DELPHI} FLogFileHandle := INVALID_HANDLE_VALUE; + {$ENDIF ~DELPHI} FLogWasEmpty := False; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-10-03 09:35:06
|
Revision: 3034 http://jcl.svn.sourceforge.net/jcl/?rev=3034&view=rev Author: outchy Date: 2009-10-03 09:34:58 +0000 (Sat, 03 Oct 2009) Log Message: ----------- C++Builder has the same problem as Delphi regarding FileOpen's handle type. Modified Paths: -------------- trunk/jcl/source/common/JclSysUtils.pas Modified: trunk/jcl/source/common/JclSysUtils.pas =================================================================== --- trunk/jcl/source/common/JclSysUtils.pas 2009-10-03 09:32:18 UTC (rev 3033) +++ trunk/jcl/source/common/JclSysUtils.pas 2009-10-03 09:34:58 UTC (rev 3034) @@ -617,7 +617,7 @@ TJclSimpleLog = class (TObject) private FDateTimeFormatStr: String; - FLogFileHandle: {$IFDEF DELPHI}Integer{$ELSE}THandle{$ENDIF}; + FLogFileHandle: {$IFDEF BORLAND}Integer{$ELSE}THandle{$ENDIF}; FLogFileName: string; FLoggingActive: Boolean; FLogWasEmpty: Boolean; @@ -3245,11 +3245,11 @@ FLogFileName := CreateDefaultFileName else FLogFileName := ALogFileName; - {$IFDEF DELPHI} + {$IFDEF BORLAND} FLogFileHandle := Integer(INVALID_HANDLE_VALUE); - {$ELSE ~DELPHI} + {$ELSE ~BORLAND} FLogFileHandle := INVALID_HANDLE_VALUE; - {$ENDIF ~DELPHI} + {$ENDIF ~BORLAND} FLoggingActive := True; end; @@ -3285,11 +3285,11 @@ if LogOpen then begin FileClose(FLogFileHandle); - {$IFDEF DELPHI} + {$IFDEF BORLAND} FLogFileHandle := Integer(INVALID_HANDLE_VALUE); - {$ELSE ~DELPHI} + {$ELSE ~BORLAND} FLogFileHandle := INVALID_HANDLE_VALUE; - {$ENDIF ~DELPHI} + {$ENDIF ~BORLAND} FLogWasEmpty := False; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-10-03 09:21:12
|
Revision: 3032 http://jcl.svn.sourceforge.net/jcl/?rev=3032&view=rev Author: outchy Date: 2009-10-03 09:21:03 +0000 (Sat, 03 Oct 2009) Log Message: ----------- As of Delphi 2005, the compiler accepts long file names. Modified Paths: -------------- trunk/jcl/install/JclInstall.pas trunk/jcl/source/common/JclBorlandTools.pas Modified: trunk/jcl/install/JclInstall.pas =================================================================== --- trunk/jcl/install/JclInstall.pas 2009-10-03 00:07:26 UTC (rev 3031) +++ trunk/jcl/install/JclInstall.pas 2009-10-03 09:21:03 UTC (rev 3032) @@ -1570,9 +1570,11 @@ MarkOptionBegin(Option); if Option = joJCLExpertsDsgnPackages then // nothing, default value - else if Option = joJCLExpertsDLL then + else + if Option = joJCLExpertsDLL then DLLExperts := OptionChecked[Option] - else if DLLExperts then + else + if DLLExperts then begin ProjectFileName := Distribution.JclPath + FullLibraryFileName(ATarget, SupportedExperts[Option]); Result := ATarget.RegisterExpert(ProjectFileName, GetBplPath, PathExtractFileNameNoExt(ProjectFileName)); @@ -1837,7 +1839,11 @@ VersionStr: string; begin VersionStr := Target.VersionNumberStr; - Result := PathGetShortName(Format(FormatStr, [VersionStr])); + Result := Format(FormatStr, [VersionStr]); + {$IFDEF MSWINDOWS} + if (Target.RadToolKind <> brBorlandDevStudio) or (Target.VersionNumber < 3) then + Result := PathGetShortName(Result); + {$ENDIF MSWINDOWS} end; function TJclInstallation.RemoveSettings: Boolean; @@ -2183,9 +2189,10 @@ else Result := Target.BPLOutputPath; end; - //{$IFDEF MSWINDOWS} - //Result := PathGetShortName(Result); - //{$ENDIF MSWINDOWS} + {$IFDEF MSWINDOWS} + if (Target.RadToolKind <> brBorlandDevStudio) or (Target.VersionNumber < 3) then + Result := PathGetShortName(Result); + {$ENDIF MSWINDOWS} end; function TJclInstallation.GetDcpPath: string; @@ -2202,9 +2209,10 @@ else Result := FJclDcpPath; end; - //{$IFDEF MSWINDOWS} - //Result := PathGetShortName(Result); - //{$ENDIF MSWINDOWS} + {$IFDEF MSWINDOWS} + if (Target.RadToolKind <> brBorlandDevStudio) or (Target.VersionNumber < 3) then + Result := PathGetShortName(Result); + {$ENDIF MSWINDOWS} end; procedure TJclInstallation.Close; @@ -2558,7 +2566,7 @@ if clProj2Mak in Target.CommandLineTools then begin Target.Bpr2Mak.Options.Clear; - Target.Bpr2Mak.Options.Add('-t' + ExtractRelativePath(PackageDirectory,Distribution.JclPath + Bcb2MakTemplate)); + Target.Bpr2Mak.AddPathOption('t', ExtractRelativePath(PackageDirectory,Distribution.JclPath + Bcb2MakTemplate)); end; if clMake in Target.CommandLineTools then begin @@ -2997,9 +3005,6 @@ InstallerFileName := ParamStr(0); FJclPath := PathAddSeparator(ExpandFileName(PathExtractFileDirFixed(InstallerFileName) + '..')); - {$IFDEF MSWINDOWS} - FJclPath := PathGetShortName(FJclPath); - {$ENDIF MSWINDOWS} FLibReleaseDirMask := Format('%slib' + VersionDirExp, [FJclPath]); FLibDebugDirMask := FLibReleaseDirMask + DirDelimiter + 'debug'; FJclBinDir := FJclPath + 'bin'; @@ -3199,7 +3204,7 @@ LogFileName := JclBinDir + '\RegHelper.log'; if FileExists(LogFileName) then FileDelete(LogFileName); - Parameters := '-c -o' + LogFileName; + Parameters := Format('-c -o"%s"', [LogFileName]); for Index := 0 to FRegHelpCommands.Count - 1 do begin case Integer(FRegHelpCommands.Objects[Index]) of Modified: trunk/jcl/source/common/JclBorlandTools.pas =================================================================== --- trunk/jcl/source/common/JclBorlandTools.pas 2009-10-03 00:07:26 UTC (rev 3031) +++ trunk/jcl/source/common/JclBorlandTools.pas 2009-10-03 09:21:03 UTC (rev 3032) @@ -2323,7 +2323,7 @@ var S: string; - {$IFDEF MSWINDOWS} + // path before Delphi 2005 must be shortened // to avoid the 126 character limit of DCC32 (and eventually other command line tools) // which shows up with misleading error messages ("Fatal: System.pas not found") or // might even cause AVs @@ -2332,24 +2332,25 @@ List: TStringList; I: Integer; begin - List := TStringList.Create; - try - StrToStrings(Paths, PathSep, List); - for I := 0 to List.Count - 1 do - List[I] := PathGetShortName(List[I]); - Paths := StringsToStr(List, PathSep); - finally - List.Free; + {$IFDEF MSWINDOWS} + if (Installation.RadToolKind <> brBorlandDevStudio) or (Installation.VersionNumber < 3) then + begin + List := TStringList.Create; + try + StrToStrings(Paths, PathSep, List); + for I := 0 to List.Count - 1 do + List[I] := PathGetShortName(List[I]); + Paths := StringsToStr(List, PathSep); + finally + List.Free; + end; end; + {$ENDIF MSWINDOWS} end; - {$ENDIF MSWINDOWS} begin S := PathRemoveSeparator(Path); - {$IFDEF MSWINDOWS} - S := LowerCase(S); // file names are case insensitive ConvertToShortPathNames(S); - {$ENDIF MSWINDOWS} { TODO : If we were sure that options are always case-insensitive for Borland tools, we could use UpperCase(Option) below. } S := Format('-%s"%s"', [Option, S]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <SF...@us...> - 2009-10-03 00:07:38
|
Revision: 3031 http://jcl.svn.sourceforge.net/jcl/?rev=3031&view=rev Author: SFarrow Date: 2009-10-03 00:07:26 +0000 (Sat, 03 Oct 2009) Log Message: ----------- Free pascal should now compile again. Modified Paths: -------------- trunk/jcl/source/common/JclFileUtils.pas Modified: trunk/jcl/source/common/JclFileUtils.pas =================================================================== --- trunk/jcl/source/common/JclFileUtils.pas 2009-10-02 20:10:17 UTC (rev 3030) +++ trunk/jcl/source/common/JclFileUtils.pas 2009-10-03 00:07:26 UTC (rev 3031) @@ -640,7 +640,11 @@ constructor Attach(VersionInfoData: Pointer; Size: Integer); constructor Create(const FileName: string); overload; {$IFDEF MSWINDOWS} + {$IFDEF FPC} + constructor Create(const Window: HWND; Dummy: Pointer = nil); overload; + {$ELSE} constructor Create(const Window: HWND); overload; + {$ENDIF} constructor Create(const Module: HMODULE); overload; {$ENDIF MSWINDOWS} destructor Destroy; override; @@ -4804,7 +4808,11 @@ end; {$IFDEF MSWINDOWS} +{$IFDEF FPC} +constructor TJclFileVersionInfo.Create(const Window: HWND; Dummy: Pointer = nil); +{$ELSE} constructor TJclFileVersionInfo.Create(const Window: HWND); +{$ENDIF} type {$IFDEF SUPPORTS_UNICODE} TGetModuleFileNameEx =function(hProcess: THandle; hModule: HMODULE; FileName: PWideChar; nSize: DWORD): DWORD; stdcall; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <SF...@us...> - 2009-10-02 20:34:51
|
Revision: 3030 http://jcl.svn.sourceforge.net/jcl/?rev=3030&view=rev Author: SFarrow Date: 2009-10-02 20:10:17 +0000 (Fri, 02 Oct 2009) Log Message: ----------- Remove the dummy point from the TJclfilevesioninfo.Create overload that takes a windows handle as a parameter. Modified Paths: -------------- trunk/jcl/source/common/JclFileUtils.pas Modified: trunk/jcl/source/common/JclFileUtils.pas =================================================================== --- trunk/jcl/source/common/JclFileUtils.pas 2009-10-02 14:40:56 UTC (rev 3029) +++ trunk/jcl/source/common/JclFileUtils.pas 2009-10-02 20:10:17 UTC (rev 3030) @@ -640,7 +640,7 @@ constructor Attach(VersionInfoData: Pointer; Size: Integer); constructor Create(const FileName: string); overload; {$IFDEF MSWINDOWS} - constructor Create(const Window: HWND; Dummy: Pointer = nil); overload; + constructor Create(const Window: HWND); overload; constructor Create(const Module: HMODULE); overload; {$ENDIF MSWINDOWS} destructor Destroy; override; @@ -4804,7 +4804,7 @@ end; {$IFDEF MSWINDOWS} -constructor TJclFileVersionInfo.Create(const Window: HWND; Dummy: Pointer); +constructor TJclFileVersionInfo.Create(const Window: HWND); type {$IFDEF SUPPORTS_UNICODE} TGetModuleFileNameEx =function(hProcess: THandle; hModule: HMODULE; FileName: PWideChar; nSize: DWORD): DWORD; stdcall; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rro...@us...> - 2009-10-02 14:41:08
|
Revision: 3029 http://jcl.svn.sourceforge.net/jcl/?rev=3029&view=rev Author: rrossmair Date: 2009-10-02 14:40:56 +0000 (Fri, 02 Oct 2009) Log Message: ----------- complex numbers code cleaned up. Modified Paths: -------------- trunk/jcl/source/common/JclMath.pas Modified: trunk/jcl/source/common/JclMath.pas =================================================================== --- trunk/jcl/source/common/JclMath.pas 2009-10-02 13:28:06 UTC (rev 3028) +++ trunk/jcl/source/common/JclMath.pas 2009-10-02 14:40:56 UTC (rev 3029) @@ -698,10 +698,10 @@ Angle: Float; {$IFDEF SUPPORTS_CLASS_OPERATORS} class operator Implicit(const Value: Float): TPolarComplex; - class operator Implicit(const Value: Integer): TPolarComplex; - class operator Implicit(const Value: Int64): TPolarComplex; class operator Equal(const Z1, Z2: TPolarComplex): Boolean; class operator NotEqual(const Z1, Z2: TPolarComplex): Boolean; + class operator Add(const Z1, Z2: TPolarComplex): TPolarComplex; + class operator Subtract(const Z1, Z2: TPolarComplex): TPolarComplex; class operator Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; class operator Divide(const Z1, Z2: TPolarComplex): TPolarComplex; class operator Negative(const Z: TPolarComplex): TPolarComplex; @@ -713,8 +713,6 @@ Im: Float; {$IFDEF SUPPORTS_CLASS_OPERATORS} class operator Implicit(const Value: Float): TRectComplex; - class operator Implicit(const Value: Integer): TRectComplex; - class operator Implicit(const Value: Int64): TRectComplex; class operator Implicit(const Z: TPolarComplex): TRectComplex; class operator Implicit(const Z: TRectComplex): TPolarComplex; @@ -760,7 +758,8 @@ function Diff(const Z1, Z2: TRectComplex): TRectComplex; function Product(const Z1, Z2: TRectComplex): TRectComplex; overload; function Product(const Z1, Z2: TPolarComplex): TPolarComplex; overload; -function Quotient(const Z1, Z2: TRectComplex): TRectComplex; +function Quotient(const Z1, Z2: TRectComplex): TRectComplex; overload; +function Quotient(const Z1, Z2: TPolarComplex): TPolarComplex; overload; function Ln(const Z: TPolarComplex): TRectComplex; function Exp(const Z: TRectComplex): TPolarComplex; overload; @@ -4043,7 +4042,7 @@ function PolarComplex(const Z: TRectComplex): TPolarComplex; begin - Result.Radius := Sqrt(Sqr(Z.Re) + Sqr(Z.Im)); + Result.Radius := Norm(Z); Result.Angle := ArcTan2(Z.Im, Z.Re); end; @@ -4054,7 +4053,8 @@ function Equal(const Z1, Z2: TPolarComplex): Boolean; begin - Result := (Z1.Radius = Z2.Radius) and IsFloatZero(NormalizeAngle(Z1.Angle - Z2.Angle)); + Result := (Z1.Radius = Z2.Radius) + and ((Z1.Radius = 0) or IsFloatZero(NormalizeAngle(Z1.Angle - Z2.Angle))); end; function IsZero(const Z: TRectComplex): Boolean; @@ -4169,7 +4169,7 @@ function Product(const Z1, Z2: TPolarComplex): TPolarComplex; begin Result.Radius := Z1.Radius * Z2.Radius; - Result.Angle := Z1.Angle + Z2.Angle; + Result.Angle := NormalizeAngle(Z1.Angle + Z2.Angle); end; function Quotient(const Z1, Z2: TRectComplex): TRectComplex; @@ -4181,6 +4181,12 @@ Result.Im := (Z1.Im * Z2.Re - Z1.Re * Z2.Im) / Denom; end; +function Quotient(const Z1, Z2: TPolarComplex): TPolarComplex; +begin + Result.Radius := Z1.Radius / Z2.Radius; + Result.Angle := NormalizeAngle(Z1.Angle - Z2.Angle); +end; + function Ln(const Z: TPolarComplex): TRectComplex; begin Result.Re := System.Ln(Z.Radius); @@ -4321,85 +4327,69 @@ end; {$IFDEF SUPPORTS_CLASS_OPERATORS} + +{ TPolarComplex } + class operator TPolarComplex.Implicit(const Value: Float): TPolarComplex; begin Result := PolarComplex(Value); end; -class operator TPolarComplex.Implicit(const Value: Integer): TPolarComplex; +class operator TPolarComplex.Equal(const Z1, Z2: TPolarComplex): Boolean; begin - Result := PolarComplex(Value); + Result := Equal(Z1, Z2); end; -class operator TPolarComplex.Implicit(const Value: Int64): TPolarComplex; +class operator TPolarComplex.NotEqual(const Z1, Z2: TPolarComplex): Boolean; begin - Result := PolarComplex(Value); + Result := not Equal(Z1, Z2); end; -class operator TPolarComplex.Equal(const Z1, Z2: TPolarComplex): Boolean; +class operator TPolarComplex.Add(const Z1, Z2: TPolarComplex): TPolarComplex; begin - Result := (Z1.Radius = Z2.Radius) and (Z1.Angle = Z2.Angle); + Result := Sum(Z1, Z2); end; -class operator TPolarComplex.NotEqual(const Z1, Z2: TPolarComplex): Boolean; +class operator TPolarComplex.Subtract(const Z1, Z2: TPolarComplex): TPolarComplex; begin - Result := not Equal(Z1, Z2); + Result := Diff(Z1, Z2); end; class operator TPolarComplex.Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; begin - Result.Radius := Z1.Radius * Z2.Radius; - Result.Angle := NormalizeAngle(Z1.Angle + Z2.Angle); + Result := Product(Z1, Z2); end; class operator TPolarComplex.Divide(const Z1, Z2: TPolarComplex): TPolarComplex; begin - Result.Radius := Z1.Radius / Z2.Radius; - Result.Angle := Z1.Angle - Z2.Angle; + Result := Quotient(Z1, Z2); end; class operator TPolarComplex.Negative(const Z: TPolarComplex): TPolarComplex; begin - Result.Radius := Z.Radius; - Result.Angle := NormalizeAngle(Z.Angle + Pi); + Result := Neg(Z); end; +{ TRectComplex } + class operator TRectComplex.Implicit(const Value: Float): TRectComplex; begin - Result.Re := Value; - Result.Im := 0.0; + Result := RectComplex(Value); end; -class operator TRectComplex.Implicit(const Value: Integer): TRectComplex; -begin - Result.Re := Value; - Result.Im := 0.0; -end; - -class operator TRectComplex.Implicit(const Value: Int64): TRectComplex; -begin - Result.Re := Value; - Result.Im := 0.0; -end; - class operator TRectComplex.Implicit(const Z: TPolarComplex): TRectComplex; -var - ASin, ACos: Float; begin - SinCos(Z.Angle, ASin, ACos); - Result.Re := Z.Radius * ACos; - Result.Im := Z.Radius * ASin; + Result := RectComplex(Z); end; class operator TRectComplex.Implicit(const Z: TRectComplex): TPolarComplex; begin - Result.Radius := Sqrt(Z.Re * Z.Re + Z.Im * Z.Im); - Result.Angle := ArcTan2(Z.Im, Z.Re); + Result := PolarComplex(Z); end; class operator TRectComplex.Equal(const Z1, Z2: TRectComplex): Boolean; begin - Result := (Z1.Re = Z2.Re) and (Z1.Im = Z2.Im); + Result := Equal(Z1, Z2); end; class operator TRectComplex.NotEqual(const Z1, Z2: TRectComplex): Boolean; @@ -4409,41 +4399,32 @@ class operator TRectComplex.Add(const Z1, Z2: TRectComplex): TRectComplex; begin - Result.Re := Z1.Re + Z2.Re; - Result.Im := Z1.Im + Z2.Im; + Result := Sum(Z1, Z2); end; class operator TRectComplex.Subtract(const Z1, Z2: TRectComplex): TRectComplex; begin - Result.Re := Z1.Re - Z2.Re; - Result.Im := Z1.Im - Z2.Im; + Result := Diff(Z1, Z2); end; class operator TRectComplex.Multiply(const Z1, Z2: TRectComplex): TRectComplex; begin - Result.Re := Z1.Re * Z2.Re - Z1.Im * Z2.Im; - Result.Im := Z1.Re * Z2.Im + Z1.Im * Z2.Re; + Result := Product(Z1, Z2); end; class operator TRectComplex.Divide(const Z1, Z2: TRectComplex): TRectComplex; -var - Denom: Float; begin - Denom := Sqr(Z2.Re) + Sqr(Z2.Im); - Result.Re := (Z1.Re * Z2.Re + Z1.Im * Z2.Im) / Denom; - Result.Im := (Z1.Im * Z2.Re - Z1.Re * Z2.Im) / Denom; + Result := Quotient(Z1, Z2); end; class operator TRectComplex.Negative(const Z: TRectComplex): TRectComplex; begin - Result.Re := -Z.Re; - Result.Im := -Z.Im; + Result := Neg(Z); end; class function TRectComplex.Exp(const Z: TRectComplex): TPolarComplex; begin - Result.Radius := System.Exp(Z.Re); - Result.Angle := Z.Im; + Result := Exp(Z); end; {$ENDIF SUPPORTS_CLASS_OPERATORS} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rro...@us...> - 2009-10-02 13:28:13
|
Revision: 3028 http://jcl.svn.sourceforge.net/jcl/?rev=3028&view=rev Author: rrossmair Date: 2009-10-02 13:28:06 +0000 (Fri, 02 Oct 2009) Log Message: ----------- more work on complex number code Modified Paths: -------------- trunk/jcl/source/common/JclMath.pas Modified: trunk/jcl/source/common/JclMath.pas =================================================================== --- trunk/jcl/source/common/JclMath.pas 2009-10-01 22:38:31 UTC (rev 3027) +++ trunk/jcl/source/common/JclMath.pas 2009-10-02 13:28:06 UTC (rev 3028) @@ -704,6 +704,7 @@ class operator NotEqual(const Z1, Z2: TPolarComplex): Boolean; class operator Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; class operator Divide(const Z1, Z2: TPolarComplex): TPolarComplex; + class operator Negative(const Z: TPolarComplex): TPolarComplex; {$ENDIF SUPPORTS_CLASS_OPERATORS} end; @@ -4028,8 +4029,16 @@ function PolarComplex(const Radius: Float; const Angle: Float = 0): TPolarComplex; begin - Result.Radius := Radius; - Result.Angle := Angle; + if Radius < 0 then + begin + Result.Radius := Abs(Radius); + Result.Angle := Pi; + end + else + begin + Result.Radius := Radius; + Result.Angle := 0.0; + end; end; function PolarComplex(const Z: TRectComplex): TPolarComplex; @@ -4314,20 +4323,17 @@ {$IFDEF SUPPORTS_CLASS_OPERATORS} class operator TPolarComplex.Implicit(const Value: Float): TPolarComplex; begin - Result.Radius := Value; - Result.Angle := 0.0; + Result := PolarComplex(Value); end; class operator TPolarComplex.Implicit(const Value: Integer): TPolarComplex; begin - Result.Radius := Value; - Result.Angle := 0.0; + Result := PolarComplex(Value); end; class operator TPolarComplex.Implicit(const Value: Int64): TPolarComplex; begin - Result.Radius := Value; - Result.Angle := 0.0; + Result := PolarComplex(Value); end; class operator TPolarComplex.Equal(const Z1, Z2: TPolarComplex): Boolean; @@ -4352,6 +4358,12 @@ Result.Angle := Z1.Angle - Z2.Angle; end; +class operator TPolarComplex.Negative(const Z: TPolarComplex): TPolarComplex; +begin + Result.Radius := Z.Radius; + Result.Angle := NormalizeAngle(Z.Angle + Pi); +end; + class operator TRectComplex.Implicit(const Value: Float): TRectComplex; begin Result.Re := Value; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rro...@us...> - 2009-10-01 22:38:47
|
Revision: 3027 http://jcl.svn.sourceforge.net/jcl/?rev=3027&view=rev Author: rrossmair Date: 2009-10-01 22:38:31 +0000 (Thu, 01 Oct 2009) Log Message: ----------- SinCos() variants for all floating point data types (except Real48), as to not enforce result type; complex numbers code fixed and extended; uniform usage of the assembler directive, as it seems a requirement of FPC. Modified Paths: -------------- trunk/jcl/source/common/JclMath.pas Modified: trunk/jcl/source/common/JclMath.pas =================================================================== --- trunk/jcl/source/common/JclMath.pas 2009-09-29 20:00:11 UTC (rev 3026) +++ trunk/jcl/source/common/JclMath.pas 2009-10-01 22:38:31 UTC (rev 3027) @@ -219,7 +219,11 @@ function Haversine(X: Float): Float; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} function Sec(X: Float): Float; overload; function Sin(X: Float): Float; overload; -procedure SinCos(X: Float; out Sin, Cos: Float); +procedure SinCos(X: Single; out Sin, Cos: Single); overload; +procedure SinCos(X: Double; out Sin, Cos: Double); overload; +{$IFDEF SUPPORTS_EXTENDED} +procedure SinCos(X: Extended; out Sin, Cos: Extended); overload; +{$ENDIF SUPPORTS_EXTENDED} function Tan(X: Float): Float; overload; function Versine(X: Float): Float; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} @@ -692,6 +696,15 @@ TPolarComplex = record Radius: Float; Angle: Float; + {$IFDEF SUPPORTS_CLASS_OPERATORS} + class operator Implicit(const Value: Float): TPolarComplex; + class operator Implicit(const Value: Integer): TPolarComplex; + class operator Implicit(const Value: Int64): TPolarComplex; + class operator Equal(const Z1, Z2: TPolarComplex): Boolean; + class operator NotEqual(const Z1, Z2: TPolarComplex): Boolean; + class operator Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; + class operator Divide(const Z1, Z2: TPolarComplex): TPolarComplex; + {$ENDIF SUPPORTS_CLASS_OPERATORS} end; TRectComplex = record @@ -702,11 +715,12 @@ class operator Implicit(const Value: Integer): TRectComplex; class operator Implicit(const Value: Int64): TRectComplex; class operator Implicit(const Z: TPolarComplex): TRectComplex; + class operator Implicit(const Z: TRectComplex): TPolarComplex; class operator Equal(const Z1, Z2: TRectComplex): Boolean; class operator NotEqual(const Z1, Z2: TRectComplex): Boolean; - class operator Add(const Z1, Z2: TRectComplex): TRectComplex; inline; + class operator Add(const Z1, Z2: TRectComplex): TRectComplex; class operator Subtract(const Z1, Z2: TRectComplex): TRectComplex; class operator Multiply(const Z1, Z2: TRectComplex): TRectComplex; class operator Divide(const Z1, Z2: TRectComplex): TRectComplex; @@ -792,6 +806,9 @@ JclResources, JclSynch; +// Note (rrossmair): Usage of the "assembler" directive seems to be an Free Pascal requirement +// (it's obsolete in Delphi since v. 2 I believe). + // Internal helper routines // Linux: Get Global Offset Table (GOT) adress for Position Independent Code // (PIC, used by shared objects) @@ -1196,26 +1213,20 @@ end; end; -function ArcTan(X: Float): Float; -begin - asm +function ArcTan(X: Float): Float; assembler; +asm FLD X FLD1 FPATAN FWAIT - FSTP Result - end; end; -function ArcTan2(Y, X: Float): Float; -begin - asm +function ArcTan2(Y, X: Float): Float; assembler; +asm FLD Y FLD X FPATAN FWAIT - FSTP Result - end; end; function Cos(X: Float): Float; @@ -1295,7 +1306,8 @@ end; end; -procedure SinCos(X: Float; out Sin, Cos: Float); +{$IFDEF SUPPORTS_EXTENDED} +procedure SinCos(X: Extended; out Sin, Cos: Extended); begin DomainCheck(Abs(X) > MaxAngle); asm @@ -1304,20 +1316,67 @@ MOV EDX, Cos MOV EAX, Sin FSINCOS - FSTP Float PTR [EDX] - FSTP Float PTR [EAX] + FSTP Extended PTR [EDX] + FSTP Extended PTR [EAX] {$ENDIF CPU32} {$IFDEF CPU64} MOV RDX, Cos MOV RAX, Sin FSINCOS - FSTP Float PTR [RDX] - FSTP Float PTR [RAX] + FSTP Extended PTR [RDX] + FSTP Extended PTR [RAX] {$ENDIF CPU64} FWAIT end; end; +{$ENDIF SUPPORTS_EXTENDED} +procedure SinCos(X: Double; out Sin, Cos: Double); +begin + DomainCheck(Abs(X) > MaxAngle); + asm + FLD X + {$IFDEF CPU32} + MOV EDX, Cos + MOV EAX, Sin + FSINCOS + FSTP Double PTR [EDX] + FSTP Double PTR [EAX] + {$ENDIF CPU32} + {$IFDEF CPU64} + MOV RDX, Cos + MOV RAX, Sin + FSINCOS + FSTP Double PTR [RDX] + FSTP Double PTR [RAX] + {$ENDIF CPU64} + FWAIT + end; +end; + +procedure SinCos(X: Single; out Sin, Cos: Single); +begin + DomainCheck(Abs(X) > MaxAngle); + asm + FLD X + {$IFDEF CPU32} + MOV EDX, Cos + MOV EAX, Sin + FSINCOS + FSTP Single PTR [EDX] + FSTP Single PTR [EAX] + {$ENDIF CPU32} + {$IFDEF CPU64} + MOV RDX, Cos + MOV RAX, Sin + FSINCOS + FSTP Single PTR [RDX] + FSTP Single PTR [RAX] + {$ENDIF CPU64} + FWAIT + end; +end; + function Tan(X: Float): Float; begin DomainCheck(Abs(X) > MaxAngle); @@ -1372,9 +1431,8 @@ Result := System.Ln((Sqrt(1.0 - Sqr(X)) + 1.0) / X); end; -function ArcSinH(X: Float): Float; -begin - asm +function ArcSinH(X: Float): Float; assembler; +asm FLDLN2 FLD X FLD ST(0) @@ -1384,8 +1442,6 @@ FSQRT FADDP ST(1), ST(0) FYL2X - FSTP Result - end; end; function ArcTanH(X: Float): Float; @@ -2522,7 +2578,7 @@ { Rabin-Miller Strong Primality Test } -function IsPrimeRM(N: Cardinal): Boolean; +function IsPrimeRM(N: Cardinal): Boolean; assembler; asm // 32 --> EAX N // <-- AL Result @@ -2706,7 +2762,7 @@ // C2 in Bit 1 of EAX // C3 in Bit 2 of EAX -function _C3C2C0: TC3C2C0; +function _C3C2C0: TC3C2C0; assembler; // In: ST(0) Value to examine asm FXAM @@ -2723,20 +2779,20 @@ MOV EAX, EDX end; -function C3C2C0(const Value: Single): TC3C2C0; overload; +function C3C2C0(const Value: Single): TC3C2C0; overload; assembler; asm FLD Value CALL _C3C2C0 end; -function C3C2C0(const Value: Double): TC3C2C0; overload; +function C3C2C0(const Value: Double): TC3C2C0; overload; assembler; asm FLD Value CALL _C3C2C0 end; {$IFDEF SUPPORTS_EXTENDED} -function C3C2C0(const Value: Extended): TC3C2C0; overload; +function C3C2C0(const Value: Extended): TC3C2C0; overload; assembler; asm FLD Value CALL _C3C2C0 @@ -4256,21 +4312,62 @@ end; {$IFDEF SUPPORTS_CLASS_OPERATORS} +class operator TPolarComplex.Implicit(const Value: Float): TPolarComplex; +begin + Result.Radius := Value; + Result.Angle := 0.0; +end; +class operator TPolarComplex.Implicit(const Value: Integer): TPolarComplex; +begin + Result.Radius := Value; + Result.Angle := 0.0; +end; + +class operator TPolarComplex.Implicit(const Value: Int64): TPolarComplex; +begin + Result.Radius := Value; + Result.Angle := 0.0; +end; + +class operator TPolarComplex.Equal(const Z1, Z2: TPolarComplex): Boolean; +begin + Result := (Z1.Radius = Z2.Radius) and (Z1.Angle = Z2.Angle); +end; + +class operator TPolarComplex.NotEqual(const Z1, Z2: TPolarComplex): Boolean; +begin + Result := not Equal(Z1, Z2); +end; + +class operator TPolarComplex.Multiply(const Z1, Z2: TPolarComplex): TPolarComplex; +begin + Result.Radius := Z1.Radius * Z2.Radius; + Result.Angle := NormalizeAngle(Z1.Angle + Z2.Angle); +end; + +class operator TPolarComplex.Divide(const Z1, Z2: TPolarComplex): TPolarComplex; +begin + Result.Radius := Z1.Radius / Z2.Radius; + Result.Angle := Z1.Angle - Z2.Angle; +end; + class operator TRectComplex.Implicit(const Value: Float): TRectComplex; begin Result.Re := Value; - Result.Im := 0; + Result.Im := 0.0; end; class operator TRectComplex.Implicit(const Value: Integer): TRectComplex; begin Result.Re := Value; + Result.Im := 0.0; end; class operator TRectComplex.Implicit(const Value: Int64): TRectComplex; begin Result.Re := Value; + Result.Im := 0.0; end; class operator TRectComplex.Implicit(const Z: TPolarComplex): TRectComplex; @@ -4282,6 +4379,12 @@ Result.Im := Z.Radius * ASin; end; +class operator TRectComplex.Implicit(const Z: TRectComplex): TPolarComplex; +begin + Result.Radius := Sqrt(Z.Re * Z.Re + Z.Im * Z.Im); + Result.Angle := ArcTan2(Z.Im, Z.Re); +end; + class operator TRectComplex.Equal(const Z1, Z2: TRectComplex): Boolean; begin Result := (Z1.Re = Z2.Re) and (Z1.Im = Z2.Im); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-29 20:00:22
|
Revision: 3026 http://jcl.svn.sourceforge.net/jcl/?rev=3026&view=rev Author: outchy Date: 2009-09-29 20:00:11 +0000 (Tue, 29 Sep 2009) Log Message: ----------- reported in JVCL discussion forums at SF: wrong parameters for CreatePolygonRgn and CreatePolyPolygonRgn. Modified Paths: -------------- trunk/jcl/source/prototypes/_Graphics.pas trunk/jcl/source/vcl/JclGraphics.pas Modified: trunk/jcl/source/prototypes/_Graphics.pas =================================================================== --- trunk/jcl/source/prototypes/_Graphics.pas 2009-09-27 00:41:54 UTC (rev 3025) +++ trunk/jcl/source/prototypes/_Graphics.pas 2009-09-29 20:00:11 UTC (rev 3026) @@ -2308,9 +2308,9 @@ begin case FillMode of fmAlternate: - Create(CreatePolygonRgn(Points, Count, ALTERNATE), True); + Create(CreatePolygonRgn(Points[0], Count, ALTERNATE), True); fmWinding: - Create(CreatePolygonRgn(Points, Count, WINDING), True); + Create(CreatePolygonRgn(Points[0], Count, WINDING), True); end; end; @@ -2319,9 +2319,9 @@ begin case FillMode of fmAlternate: - Create(CreatePolyPolygonRgn(Points, Vertex, Count, ALTERNATE), True); + Create(CreatePolyPolygonRgn(Points[0], Vertex[0], Count, ALTERNATE), True); fmWinding: - Create(CreatePolyPolygonRgn(Points, Vertex, Count, WINDING), True); + Create(CreatePolyPolygonRgn(Points[0], Vertex[0], Count, WINDING), True); end; end; Modified: trunk/jcl/source/vcl/JclGraphics.pas =================================================================== --- trunk/jcl/source/vcl/JclGraphics.pas 2009-09-27 00:41:54 UTC (rev 3025) +++ trunk/jcl/source/vcl/JclGraphics.pas 2009-09-29 20:00:11 UTC (rev 3026) @@ -2306,9 +2306,9 @@ begin case FillMode of fmAlternate: - Create(CreatePolygonRgn(Points, Count, ALTERNATE), True); + Create(CreatePolygonRgn(Points[0], Count, ALTERNATE), True); fmWinding: - Create(CreatePolygonRgn(Points, Count, WINDING), True); + Create(CreatePolygonRgn(Points[0], Count, WINDING), True); end; end; @@ -2317,9 +2317,9 @@ begin case FillMode of fmAlternate: - Create(CreatePolyPolygonRgn(Points, Vertex, Count, ALTERNATE), True); + Create(CreatePolyPolygonRgn(Points[0], Vertex[0], Count, ALTERNATE), True); fmWinding: - Create(CreatePolyPolygonRgn(Points, Vertex, Count, WINDING), True); + Create(CreatePolyPolygonRgn(Points[0], Vertex[0], Count, WINDING), True); end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rro...@us...> - 2009-09-27 00:42:04
|
Revision: 3025 http://jcl.svn.sourceforge.net/jcl/?rev=3025&view=rev Author: rrossmair Date: 2009-09-27 00:41:54 +0000 (Sun, 27 Sep 2009) Log Message: ----------- FloatingPointClass code reworked to avoid PIC and x86_64 complications Modified Paths: -------------- trunk/jcl/source/common/JclMath.pas Modified: trunk/jcl/source/common/JclMath.pas =================================================================== --- trunk/jcl/source/common/JclMath.pas 2009-09-26 19:04:00 UTC (rev 3024) +++ trunk/jcl/source/common/JclMath.pas 2009-09-27 00:41:54 UTC (rev 3025) @@ -2685,8 +2685,11 @@ //=== Floating point value classification ==================================== +type + TC3C2C0 = 0..6; + const - FPClasses: array [0..6] of TFloatingPointClass = + FPClasses: array [TC3C2C0] of TFloatingPointClass = ( fpInvalid, fpNaN, @@ -2697,21 +2700,17 @@ fpDenormal ); -{$IFDEF PIC} -{ TODO : BUG!! In newer Delphi version asm sections inside a function - (as in the FloatingPointClass functions) are expected to leave EAX unchanged! } +// _C3C2C0 returns the set of condition code flags C0, C2, and C3 of the FPU status word +// to indicate the class of value or number in register ST(0) as follows: +// C0 in Bit 0 of EAX +// C2 in Bit 1 of EAX +// C3 in Bit 2 of EAX -function _FPClass: TFloatingPointClass; +function _C3C2C0: TC3C2C0; // In: ST(0) Value to examine -// ECX/RCX address of GOT (PIC only) asm FXAM - {$IFDEF CPU32} XOR EDX, EDX - {$ENDIF CPU32} - {$IFDEF CPU64} - XOR RDX, RDX - {$ENDIF CPU64} FNSTSW AX FFREE ST(0) FINCSTP @@ -2721,121 +2720,46 @@ RCL EDX, 1 BT EAX, 8 // C0 RCL EDX, 1 - {$IFDEF CPU32} - MOVZX EAX, TFloatingPointClass([ECX].FPClasses[EDX]) - {$ENDIF CPU32} - {$IFDEF CPU64} - MOVZX EAX, TFloatingPointClass([RCX].FPClasses[RDX]) - {$ENDIF CPU64} + MOV EAX, EDX end; -function FloatingPointClass(const Value: Single): TFloatingPointClass; overload; -begin - asm - {$IFDEF PIC} - CALL GetGOT - {$IFDEF CPU32} - MOV ECX, EAX - {$ENDIF CPU32} - {$IFDEF CPU64} - MOV RCX, RAX - {$ENDIF CPU64} - {$ENDIF PIC} - FLD Value - CALL _FPClass - MOV Result, AL - end; +function C3C2C0(const Value: Single): TC3C2C0; overload; +asm + FLD Value + CALL _C3C2C0 end; -function FloatingPointClass(const Value: Double): TFloatingPointClass; overload; -begin - asm - {$IFDEF PIC} - CALL GetGOT - {$IFDEF CPU32} - MOV ECX, EAX - {$ENDIF CPU32} - {$IFDEF CPU64} - MOV RCX, RAX - {$ENDIF CPU64} - {$ENDIF PIC} - FLD Value - CALL _FPClass - MOV Result, AL - end; +function C3C2C0(const Value: Double): TC3C2C0; overload; +asm + FLD Value + CALL _C3C2C0 end; {$IFDEF SUPPORTS_EXTENDED} -function FloatingPointClass(const Value: Extended): TFloatingPointClass; overload; -begin - asm - {$IFDEF PIC} - CALL GetGOT - {$IFDEF CPU32} - MOV ECX, EAX - {$ENDIF CPU32} - {$IFDEF CPU64} - MOV RCX, RAX - {$ENDIF CPU64} - {$ENDIF PIC} - FLD Value - CALL _FPClass - MOV Result, AL - end; +function C3C2C0(const Value: Extended): TC3C2C0; overload; +asm + FLD Value + CALL _C3C2C0 end; {$ENDIF SUPPORTS_EXTENDED} -{$ELSE ~PIC} - -function _FPClass: TFloatingPointClass; -// In: ST(0) Value to examine -asm - FXAM - {$IFDEF CPU32} - XOR EDX, EDX - {$ENDIF CPU32} - {$IFDEF CPU64} - XOR RDX, RDX - {$ENDIF CPU64} - FNSTSW AX - FFREE ST(0) - FINCSTP - BT EAX, 14 // C3 - RCL EDX, 1 - BT EAX, 10 // C2 - RCL EDX, 1 - BT EAX, 8 // C0 - RCL EDX, 1 - {$IFDEF CPU32} - MOVZX EAX, TFloatingPointClass(FPClasses[EDX]) - {$ENDIF CPU32} - {$IFDEF CPU64} - MOVZX EAX, TFloatingPointClass(FPClasses[RDX]) - {$ENDIF CPU64} -end; - function FloatingPointClass(const Value: Single): TFloatingPointClass; overload; -asm - FLD Value - CALL _FPClass +begin + Result := FPClasses[C3C2C0(Value)]; end; function FloatingPointClass(const Value: Double): TFloatingPointClass; overload; -asm - FLD Value - CALL _FPClass +begin + Result := FPClasses[C3C2C0(Value)]; end; {$IFDEF SUPPORTS_EXTENDED} function FloatingPointClass(const Value: Extended): TFloatingPointClass; overload; -asm - FLD Value - CALL _FPClass +begin + Result := FPClasses[C3C2C0(Value)]; end; {$ENDIF SUPPORTS_EXTENDED} -{$ENDIF ~PIC} - //=== NaN and Infinity support =============================================== function IsInfinite(const Value: Single): Boolean; overload; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rro...@us...> - 2009-09-26 19:04:18
|
Revision: 3024 http://jcl.svn.sourceforge.net/jcl/?rev=3024&view=rev Author: rrossmair Date: 2009-09-26 19:04:00 +0000 (Sat, 26 Sep 2009) Log Message: ----------- fixed (for non-PIC code) FloatingPointClass access violation. Not tested for correct results! Modified Paths: -------------- trunk/jcl/source/common/JclMath.pas Modified: trunk/jcl/source/common/JclMath.pas =================================================================== --- trunk/jcl/source/common/JclMath.pas 2009-09-24 09:31:10 UTC (rev 3023) +++ trunk/jcl/source/common/JclMath.pas 2009-09-26 19:04:00 UTC (rev 3024) @@ -2697,6 +2697,10 @@ fpDenormal ); +{$IFDEF PIC} +{ TODO : BUG!! In newer Delphi version asm sections inside a function + (as in the FloatingPointClass functions) are expected to leave EAX unchanged! } + function _FPClass: TFloatingPointClass; // In: ST(0) Value to examine // ECX/RCX address of GOT (PIC only) @@ -2718,24 +2722,11 @@ BT EAX, 8 // C0 RCL EDX, 1 {$IFDEF CPU32} - {$IFDEF PIC} - {$IFDEF CPU32} MOVZX EAX, TFloatingPointClass([ECX].FPClasses[EDX]) {$ENDIF CPU32} {$IFDEF CPU64} MOVZX EAX, TFloatingPointClass([RCX].FPClasses[RDX]) {$ENDIF CPU64} - {$ELSE ~PIC} - MOVZX EAX, TFloatingPointClass(FPClasses[EDX]) - {$ENDIF ~PIC} - {$ENDIF CPU32} - {$IFDEF CPU64} - {$IFDEF PIC} - MOVZX EAX, TFloatingPointClass([RCX].FPClasses[RDX]) - {$ELSE ~PIC} - MOVZX EAX, TFloatingPointClass(FPClasses[RDX]) - {$ENDIF ~PIC} - {$ENDIF CPU64} end; function FloatingPointClass(const Value: Single): TFloatingPointClass; overload; @@ -2794,6 +2785,57 @@ end; {$ENDIF SUPPORTS_EXTENDED} +{$ELSE ~PIC} + +function _FPClass: TFloatingPointClass; +// In: ST(0) Value to examine +asm + FXAM + {$IFDEF CPU32} + XOR EDX, EDX + {$ENDIF CPU32} + {$IFDEF CPU64} + XOR RDX, RDX + {$ENDIF CPU64} + FNSTSW AX + FFREE ST(0) + FINCSTP + BT EAX, 14 // C3 + RCL EDX, 1 + BT EAX, 10 // C2 + RCL EDX, 1 + BT EAX, 8 // C0 + RCL EDX, 1 + {$IFDEF CPU32} + MOVZX EAX, TFloatingPointClass(FPClasses[EDX]) + {$ENDIF CPU32} + {$IFDEF CPU64} + MOVZX EAX, TFloatingPointClass(FPClasses[RDX]) + {$ENDIF CPU64} +end; + +function FloatingPointClass(const Value: Single): TFloatingPointClass; overload; +asm + FLD Value + CALL _FPClass +end; + +function FloatingPointClass(const Value: Double): TFloatingPointClass; overload; +asm + FLD Value + CALL _FPClass +end; + +{$IFDEF SUPPORTS_EXTENDED} +function FloatingPointClass(const Value: Extended): TFloatingPointClass; overload; +asm + FLD Value + CALL _FPClass +end; +{$ENDIF SUPPORTS_EXTENDED} + +{$ENDIF ~PIC} + //=== NaN and Infinity support =============================================== function IsInfinite(const Value: Single): Boolean; overload; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-24 09:31:18
|
Revision: 3023 http://jcl.svn.sourceforge.net/jcl/?rev=3023&view=rev Author: outchy Date: 2009-09-24 09:31:10 +0000 (Thu, 24 Sep 2009) Log Message: ----------- raise EConvertError rather than an access violation. Modified Paths: -------------- trunk/jcl/examples/windows/debug/framestrack/FramesTrackDemoMain.pas Modified: trunk/jcl/examples/windows/debug/framestrack/FramesTrackDemoMain.pas =================================================================== --- trunk/jcl/examples/windows/debug/framestrack/FramesTrackDemoMain.pas 2009-09-23 13:16:08 UTC (rev 3022) +++ trunk/jcl/examples/windows/debug/framestrack/FramesTrackDemoMain.pas 2009-09-24 09:31:10 UTC (rev 3023) @@ -143,7 +143,7 @@ begin mmLog.Lines.Add(TButton(Sender).Caption); try - PChar(nil)^ := 'a'; + ShowMessage(IntToStr(StrToInt('a'))); except on E: EConvertError do ShowMessage('EConvertError or descendant'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-23 13:16:16
|
Revision: 3022 http://jcl.svn.sourceforge.net/jcl/?rev=3022&view=rev Author: outchy Date: 2009-09-23 13:16:08 +0000 (Wed, 23 Sep 2009) Log Message: ----------- Mantis 4919: File extension for the archive is case sensitive. Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2009-09-22 23:04:05 UTC (rev 3021) +++ trunk/jcl/source/common/JclCompression.pas 2009-09-23 13:16:08 UTC (rev 3022) @@ -2030,7 +2030,7 @@ AFormat := CompressFormats[IndexFormat]; StrTokenToStrings(AFormat.StreamExtensions, DirSeparator, Filters); for IndexFilter := 0 to Filters.Count - 1 do - if StrMatches(Filters.Strings[IndexFilter], StrLower(AFileName)) then + if IsFileNameMatch(Filters.Strings[IndexFilter], AFileName) then begin Result := AFormat; Break; @@ -2057,7 +2057,7 @@ AFormat := DecompressFormats[IndexFormat]; StrTokenToStrings(AFormat.StreamExtensions, DirSeparator, Filters); for IndexFilter := 0 to Filters.Count - 1 do - if StrMatches(Filters.Strings[IndexFilter], AFileName) then + if IsFileNameMatch(Filters.Strings[IndexFilter], AFileName) then begin Result := AFormat; Break; @@ -3920,7 +3920,7 @@ AFormat := CompressFormats[IndexFormat]; StrTokenToStrings(AFormat.ArchiveExtensions, DirSeparator, Filters); for IndexFilter := 0 to Filters.Count - 1 do - if StrMatches(Filters.Strings[IndexFilter], AFileName) then + if IsFileNameMatch(Filters.Strings[IndexFilter], AFileName) then begin Result := AFormat; Break; @@ -3947,7 +3947,7 @@ AFormat := DecompressFormats[IndexFormat]; StrTokenToStrings(AFormat.ArchiveExtensions, DirSeparator, Filters); for IndexFilter := 0 to Filters.Count - 1 do - if StrMatches(Filters.Strings[IndexFilter], AFileName) then + if IsFileNameMatch(Filters.Strings[IndexFilter], AFileName) then begin Result := AFormat; Break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-22 23:04:18
|
Revision: 3021 http://jcl.svn.sourceforge.net/jcl/?rev=3021&view=rev Author: outchy Date: 2009-09-22 23:04:05 +0000 (Tue, 22 Sep 2009) Log Message: ----------- Mantis 4951: On IDE when clicking on Tools->JCL options, it brings up exception dialog The properties named Explicit* and DesignSize do not exist in D6 and D7. Modified Paths: -------------- trunk/jcl/experts/common/JclOtaActionConfigureSheet.dfm trunk/jcl/experts/common/JclOtaExceptionForm.dfm trunk/jcl/experts/common/JclOtaUnitVersioningSheet.dfm Modified: trunk/jcl/experts/common/JclOtaActionConfigureSheet.dfm =================================================================== --- trunk/jcl/experts/common/JclOtaActionConfigureSheet.dfm 2009-09-22 22:01:46 UTC (rev 3020) +++ trunk/jcl/experts/common/JclOtaActionConfigureSheet.dfm 2009-09-22 23:04:05 UTC (rev 3021) @@ -6,9 +6,6 @@ Anchors = [akLeft, akTop, akRight, akBottom] TabOrder = 0 TabStop = True - DesignSize = ( - 369 - 375) object LabelActions: TLabel Left = 16 Top = 16 Modified: trunk/jcl/experts/common/JclOtaExceptionForm.dfm =================================================================== --- trunk/jcl/experts/common/JclOtaExceptionForm.dfm 2009-09-22 22:01:46 UTC (rev 3020) +++ trunk/jcl/experts/common/JclOtaExceptionForm.dfm 2009-09-22 23:04:05 UTC (rev 3021) @@ -14,9 +14,6 @@ OldCreateOrder = False Position = poScreenCenter OnCreate = FormCreate - DesignSize = ( - 551 - 423) PixelsPerInch = 96 TextHeight = 13 object LabelURL: TLabel Modified: trunk/jcl/experts/common/JclOtaUnitVersioningSheet.dfm =================================================================== --- trunk/jcl/experts/common/JclOtaUnitVersioningSheet.dfm 2009-09-22 22:01:46 UTC (rev 3020) +++ trunk/jcl/experts/common/JclOtaUnitVersioningSheet.dfm 2009-09-22 23:04:05 UTC (rev 3021) @@ -6,9 +6,6 @@ Anchors = [akLeft, akTop, akRight, akBottom] TabOrder = 0 TabStop = True - DesignSize = ( - 369 - 375) object MemoUnitVersioning: TMemo Left = 8 Top = 8 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-22 22:01:57
|
Revision: 3020 http://jcl.svn.sourceforge.net/jcl/?rev=3020&view=rev Author: outchy Date: 2009-09-22 22:01:46 +0000 (Tue, 22 Sep 2009) Log Message: ----------- Move open dialog hook code from the open dialog favorite expert to JclVcl runtime code. Modified Paths: -------------- trunk/jcl/experts/common/JclOtaConsts.pas trunk/jcl/experts/common/JclOtaResources.pas trunk/jcl/experts/favfolders/IdeOpenDlgFavoriteUnit.pas trunk/jcl/packages/c6/JclFavoriteFoldersExpert.bpk trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpf trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpr trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.dof trunk/jcl/packages/c6/JclVcl.bpk trunk/jcl/packages/c6/JclVcl.dpk trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d10/JclFavoriteFoldersExpert.bdsproj trunk/jcl/packages/d10/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d10/JclVcl.dpk trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dproj trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dproj trunk/jcl/packages/d11/JclVcl.dpk trunk/jcl/packages/d11/JclVcl.dproj trunk/jcl/packages/d12/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d12/JclFavoriteFoldersExpert.dproj trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dproj trunk/jcl/packages/d12/JclVcl.dpk trunk/jcl/packages/d12/JclVcl.dproj trunk/jcl/packages/d14/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d14/JclFavoriteFoldersExpert.dproj trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dproj trunk/jcl/packages/d14/JclVcl.dpk trunk/jcl/packages/d14/JclVcl.dproj trunk/jcl/packages/d6/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d6/JclFavoriteFoldersExpertDLL.dof trunk/jcl/packages/d6/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d6/JclVcl.dpk trunk/jcl/packages/d7/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d7/JclFavoriteFoldersExpertDLL.dof trunk/jcl/packages/d7/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d7/JclVcl.dpk trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d9/JclFavoriteFoldersExpert.bdsproj trunk/jcl/packages/d9/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d9/JclVcl.dpk trunk/jcl/packages/xml/JclFavoriteFoldersExpert-D.xml trunk/jcl/packages/xml/JclFavoriteFoldersExpertDLL-L.xml trunk/jcl/packages/xml/JclVcl-R.xml trunk/jcl/source/vcl/JclVclResources.pas Added Paths: ----------- trunk/jcl/source/vcl/JclOpenDialog.rc trunk/jcl/source/vcl/JclOpenDialog.res trunk/jcl/source/vcl/JclOpenDialogFavorites.pas trunk/jcl/source/vcl/JclOpenDialogHooks.pas Removed Paths: ------------- trunk/jcl/experts/favfolders/FavDlg.rc trunk/jcl/experts/favfolders/FavDlg.res trunk/jcl/experts/favfolders/OpenDlgFavAdapter.pas Modified: trunk/jcl/experts/common/JclOtaConsts.pas =================================================================== --- trunk/jcl/experts/common/JclOtaConsts.pas 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/experts/common/JclOtaConsts.pas 2009-09-22 22:01:46 UTC (rev 3020) @@ -107,8 +107,6 @@ JclFavoritesListSubKey = 'Favorites'; PictDialogFolderItemName = 'PictureDialogPath'; BorlandImagesPath = 'Borland Shared\Images'; - FavDialogTemplateName = 'FAVDLGTEMPLATE'; - OpenPictDialogTemplateName = 'DLGTEMPLATE'; //=== Threads Expert ======================================================= JclThreadsExpertName = 'JclThreadsExpert'; Modified: trunk/jcl/experts/common/JclOtaResources.pas =================================================================== --- trunk/jcl/experts/common/JclOtaResources.pas 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/experts/common/JclOtaResources.pas 2009-09-22 22:01:46 UTC (rev 3020) @@ -195,14 +195,6 @@ RsTraceEAbort = 'Trace &EAbort and its descendants'; RsIgnoredExceptions = '&Ancestor exception classes to ignore (one per line)'; -//=== OpenDlgFavAdapter.pas ================================================== -resourcestring - RsAdd = '<- Add'; - RsDelete = '&Delete'; - RsFavorites = '&Favorites'; - RsConfirmation = 'Confirmation'; - RsDelConfirm = 'Are you sure to delete "%s" from favorite folders?'; - //=== JclUsesDialog.pas ====================================================== resourcestring RsActionSkip = 'Skip'; Deleted: trunk/jcl/experts/favfolders/FavDlg.rc =================================================================== --- trunk/jcl/experts/favfolders/FavDlg.rc 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/experts/favfolders/FavDlg.rc 2009-09-22 22:01:46 UTC (rev 3020) @@ -1,5 +0,0 @@ -FAVDLGTEMPLATE DIALOG 0, 0, 340, 20 -STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_CONTROL -FONT 8, "Courier New" -BEGIN -END Deleted: trunk/jcl/experts/favfolders/FavDlg.res =================================================================== (Binary files differ) Modified: trunk/jcl/experts/favfolders/IdeOpenDlgFavoriteUnit.pas =================================================================== --- trunk/jcl/experts/favfolders/IdeOpenDlgFavoriteUnit.pas 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/experts/favfolders/IdeOpenDlgFavoriteUnit.pas 2009-09-22 22:01:46 UTC (rev 3020) @@ -31,7 +31,7 @@ uses SysUtils, - ToolsAPI, OpenDlgFavAdapter, + ToolsAPI, JclOpenDialogFavorites, {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} @@ -40,7 +40,7 @@ type TJclOpenDialogsFavoriteExpert = class(TJclOTAExpert) private - FFavOpenDialog: TFavOpenDialog; + FOpenDialog: TJclOpenDialogFavoritesHook; procedure DialogClose(Sender: TObject); procedure DialogShow(Sender: TObject); public @@ -130,30 +130,31 @@ procedure TJclOpenDialogsFavoriteExpert.DialogClose(Sender: TObject); begin - Settings.SaveStrings(JclFavoritesListSubKey, FFavOpenDialog.FavoriteFolders); - Settings.SaveString(PictDialogFolderItemName, FFavOpenDialog.PictureDialogLastFolder); + Settings.SaveStrings(JclFavoritesListSubKey, FOpenDialog.FavoriteFolders); + Settings.SaveString(PictDialogFolderItemName, FOpenDialog.PictureDialogLastFolder); end; procedure TJclOpenDialogsFavoriteExpert.DialogShow(Sender: TObject); begin - Settings.LoadStrings(JclFavoritesListSubKey, FFavOpenDialog.FavoriteFolders); + Settings.LoadStrings(JclFavoritesListSubKey, FOpenDialog.FavoriteFolders); end; procedure TJclOpenDialogsFavoriteExpert.RegisterCommands; begin inherited RegisterCommands; - FFavOpenDialog := InitializeFavOpenDialog; - FFavOpenDialog.DisableHelpButton := True; - FFavOpenDialog.HookDialogs; - FFavOpenDialog.OnClose := DialogClose; - FFavOpenDialog.OnShow := DialogShow; - FFavOpenDialog.PictureDialogLastFolder := Settings.LoadString(PictDialogFolderItemName, + FOpenDialog := InitializeOpenDialogFavorites; + FOpenDialog.DisableHelpButton := True; + FOpenDialog.HookDialogs; + FOpenDialog.OnClose := DialogClose; + FOpenDialog.OnShow := DialogShow; + FOpenDialog.PictureDialogLastFolder := Settings.LoadString(PictDialogFolderItemName, PathAddSeparator(GetCommonFilesFolder) + BorlandImagesPath); end; procedure TJclOpenDialogsFavoriteExpert.UnregisterCommands; begin - FFavOpenDialog.UnhookDialogs; + FOpenDialog.UnhookDialogs; + FinalizeOpenDialogFavorites; inherited UnregisterCommands; end; Deleted: trunk/jcl/experts/favfolders/OpenDlgFavAdapter.pas =================================================================== --- trunk/jcl/experts/favfolders/OpenDlgFavAdapter.pas 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/experts/favfolders/OpenDlgFavAdapter.pas 2009-09-22 22:01:46 UTC (rev 3020) @@ -1,554 +0,0 @@ -{**************************************************************************************************} -{ } -{ 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 OpenDlgFavAdapter.pas. } -{ } -{ The Initial Developer of the Original Code is Petr Vones. } -{ Portions created by Petr Vones are Copyright (C) Petr Vones. All rights reserved. } -{ } -{ Contributor(s): } -{ Salvatore Besso } -{ } -{**************************************************************************************************} -{ } -{ Last modified: $Date:: $ } -{ Revision: $Rev:: $ } -{ Author: $Author:: $ } -{ } -{**************************************************************************************************} - -unit OpenDlgFavAdapter; - -interface - -{$I jcl.inc} - -uses - Windows, Messages, Classes, SysUtils, Controls, StdCtrls, ExtCtrls, - {$IFDEF UNITVERSIONING} - JclUnitVersioning, - {$ENDIF UNITVERSIONING} - JclPeImage, JclWin32; - -type - TFavOpenDialog = class (TObject) - private - FAddButton: TButton; - FDeleteMode: Boolean; - FDisableHelpButton: Boolean; - FDisablePlacesBar: Boolean; - FFavoriteComboBox: TComboBox; - FFavoriteFolders: TStrings; - FFavoritePanel: TPanel; - FHandle: HWND; - FHooks: TJclPeMapImgHooks; - FIsOpenPictDialog: Boolean; - FParentWnd: HWND; - FParentWndInstance: Pointer; - FOldParentWndInstance: Pointer; - FPictureDialogLastFolder: string; - FWndInstance: Pointer; - FOldWndInstance: Pointer; - FOnClose: TNotifyEvent; - FOnShow: TNotifyEvent; - procedure AddButtonClick(Sender: TObject); - procedure FavoriteComboBoxClick(Sender: TObject); - function GetCurrentFolder: string; - function GetFileNameEditWnd: HWND; - procedure SetCurrentFolder(const Value: string); - procedure SetDeleteMode(const Value: Boolean); - protected - procedure AdjustControlPos; - procedure DialogFolderChange; - procedure DialogShow; - procedure DoClose; - procedure DoShow; - procedure ParentWndProc(var Message: TMessage); virtual; - procedure WndProc(var Message: TMessage); virtual; - property CurrentFolder: string read GetCurrentFolder write SetCurrentFolder; - property DeleteMode: Boolean read FDeleteMode write SetDeleteMode; - property FileNameEditWnd: HWND read GetFileNameEditWnd; - public - constructor Create; - destructor Destroy; override; - procedure HookDialogs; - procedure LoadFavorites(const FileName: string); - procedure UnhookDialogs; - property DisableHelpButton: Boolean read FDisableHelpButton write FDisableHelpButton; - property DisablePlacesBar: Boolean read FDisablePlacesBar write FDisablePlacesBar; - property FavoriteFolders: TStrings read FFavoriteFolders; - property IsOpenPictDialog: Boolean read FIsOpenPictDialog; - property PictureDialogLastFolder: string read FPictureDialogLastFolder write FPictureDialogLastFolder; - property OnClose: TNotifyEvent read FOnClose write FOnClose; - property OnShow: TNotifyEvent read FOnShow write FOnShow; - end; - -function InitializeFavOpenDialog: TFavOpenDialog; - -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL$'; - Revision: '$Revision$'; - Date: '$Date$'; - LogPath: 'JCL\experts\favfolders'; - Extra: ''; - Data: nil - ); -{$ENDIF UNITVERSIONING} - -implementation - -uses - CommDlg, Dlgs, - JclBase, JclFileUtils, JclStrings, JclSysInfo, JclSysUtils, - JclOtaConsts, JclOtaResources, JclOtaUtils; - -{$R FavDlg.res} - -type - TGetOpenFileName = function (var OpenFile: TOpenFilename): Bool; stdcall; - -var - OldGetOpenFileName: TGetOpenFileName; - OldGetSaveFileName: TGetOpenFileName; - OldExplorerHook: function(Wnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall; - FavOpenDialog: TFavOpenDialog; - -function NewExplorerHook(Wnd: HWnd; Msg: UINT; WParam: WPARAM; LParam: LPARAM): UINT; stdcall; -begin - Result := OldExplorerHook(Wnd, Msg, WParam, LParam); - if (Msg = WM_INITDIALOG) and Assigned(FavOpenDialog) then - begin - FavOpenDialog.FHandle := Wnd; - FavOpenDialog.FOldWndInstance := Pointer(SetWindowLongPtr(Wnd, GWLP_WNDPROC, LONG_PTR(FavOpenDialog.FWndInstance))); - CallWindowProc(FavOpenDialog.FWndInstance, Wnd, Msg, WParam, LParam); - end; -end; - -procedure InitOpenFileStruct(var OpenFile: TOpenFilename); -var - InitDir: string; -begin - with OpenFile do - if Flags and OFN_EXPLORER <> 0 then - begin - if Assigned(FavOpenDialog) then - FavOpenDialog.FIsOpenPictDialog := False; - if Flags and OFN_ENABLETEMPLATE = 0 then - begin - OldExplorerHook := lpfnHook; - lpfnHook := NewExplorerHook; - lpTemplateName := FavDialogTemplateName; - hInstance := FindResourceHInstance(FindClassHInstance(TFavOpenDialog)); - Flags := Flags or OFN_ENABLETEMPLATE; - if Assigned(FavOpenDialog) then - begin - if FavOpenDialog.DisableHelpButton then - Flags := Flags and (not OFN_SHOWHELP); - if FavOpenDialog.DisablePlacesBar and (lStructSize = SizeOf(TOpenFilename)) then - FlagsEx := FlagsEx or OFN_EX_NOPLACESBAR; - end; - end - else - if (StrIComp(lpTemplateName, OpenPictDialogTemplateName) = 0) and Assigned(FavOpenDialog) then - begin - FavOpenDialog.FIsOpenPictDialog := True; - OldExplorerHook := lpfnHook; - lpfnHook := NewExplorerHook; - InitDir := FavOpenDialog.PictureDialogLastFolder; - if DirectoryExists(InitDir) then - lpstrInitialDir := PChar(FavOpenDialog.PictureDialogLastFolder) - else - FavOpenDialog.PictureDialogLastFolder := ''; - end; - end; -end; - -function NewGetOpenFileName(var OpenFile: TOpenFilename): Bool; stdcall; -begin - InitOpenFileStruct(OpenFile); - Result := OldGetOpenFileName(OpenFile); -end; - -function NewGetSaveFileName(var OpenFile: TOpenFilename): Bool; stdcall; -begin - InitOpenFileStruct(OpenFile); - Result := OldGetSaveFileName(OpenFile); -end; - -function InitializeFavOpenDialog: TFavOpenDialog; -begin - if not Assigned(FavOpenDialog) then - FavOpenDialog := TFavOpenDialog.Create; - Result := FavOpenDialog; -end; - -//=== { TFavOpenDialog } ===================================================== - -constructor TFavOpenDialog.Create; -begin - inherited Create; - FFavoriteFolders := TStringList.Create; - FHooks := TJclPeMapImgHooks.Create; - FParentWndInstance := MakeObjectInstance(ParentWndProc); - FWndInstance := MakeObjectInstance(WndProc); - FFavoritePanel := TPanel.Create(nil); - with FFavoritePanel do - begin - Name := 'FavoritePanel'; - BevelOuter := bvNone; - Caption := ''; - FullRepaint := False; - FFavoriteComboBox := TComboBox.Create(FFavoritePanel); - with FFavoriteComboBox do - begin - SetBounds(6, 14, 300, Height); - Style := csDropDownList; - Sorted := True; - OnClick := FavoriteComboBoxClick; - Parent := FFavoritePanel; - end; - with TStaticText.Create(FFavoritePanel) do - begin - AutoSize := False; - SetBounds(6, 0, 100, 14); - Caption := LoadResString(@RsFavorites); - FocusControl := FFavoriteComboBox; - Parent := FFavoritePanel; - end; - FAddButton := TButton.Create(FFavoritePanel); - with FAddButton do - begin - SetBounds(333, 14, 75, 23); - Caption := LoadResString(@RsAdd); - OnClick := AddButtonClick; - Parent := FFavoritePanel; - end; - end; -end; - -destructor TFavOpenDialog.Destroy; -begin - UnhookDialogs; - FreeObjectInstance(FParentWndInstance); - FreeObjectInstance(FWndInstance); - FreeAndNil(FFavoritePanel); - FreeAndNil(FFavoriteFolders); - FreeAndNil(FHooks); - inherited Destroy; -end; - -procedure TFavOpenDialog.AddButtonClick(Sender: TObject); -var - I: Integer; - Path: string; -begin - if DeleteMode then - begin - I := FFavoriteComboBox.ItemIndex; - Path := FFavoriteComboBox.Items[I]; - if MessageBox(FHandle, PChar(Format(LoadResString(@RsDelConfirm), [Path])), PChar(LoadResString(@RsConfirmation)), - MB_YESNO or MB_ICONQUESTION or MB_DEFBUTTON2) = ID_YES then - begin - FFavoriteComboBox.Items.Delete(I); - DeleteMode := False; - end; - end - else - begin - Path := CurrentFolder; - I := FFavoriteComboBox.Items.IndexOf(Path); - if I = -1 then - begin - FFavoriteComboBox.Items.Add(Path); - I := FFavoriteComboBox.Items.IndexOf(Path); - FFavoriteComboBox.ItemIndex := I; - DeleteMode := True; - end; - end; -end; - -procedure TFavOpenDialog.AdjustControlPos; -var - ParentRect, FileNameEditRect, OkButtonRect: TRect; - - procedure GetDlgItemRect(ItemID: Integer; var R: TRect); - begin - GetWindowRect(GetDlgItem(FParentWnd, ItemID), R); - MapWindowPoints(0, FParentWnd, R, 2); - end; - -begin - GetWindowRect(FParentWnd, ParentRect); - if GetDlgItem(FParentWnd, edt1) <> 0 then - GetDlgItemRect(edt1, FileNameEditRect) - else - GetDlgItemRect(cmb1, FileNameEditRect); - GetDlgItemRect(1, OkButtonRect); - -// Salvatore Besso: Changes to avoid truncation of Add button. I don't know why, but debugging I -// have discovered that ParentRect.Right was equal to 1024, ie Screen.Width. I also can't figure -// out why I can't preserve original help button that disappears using this expert. -// As visible in the changes, favorite panel width is just left of the original button column. - - if IsWin2k or IsWinXP then - FAddButton.Width := 65; - FFavoritePanel.Width := OkButtonRect.Left - 1; - FFavoriteComboBox.Width := FFavoritePanel.Width - FFavoriteComboBox.Left - FAddButton.Width - 16; - FAddButton.Left := FFavoriteComboBox.Width + 14; -end; - -procedure TFavOpenDialog.DialogFolderChange; -var - Path: string; -begin - Path := CurrentFolder; - with FFavoriteComboBox do - begin - ItemIndex := Items.IndexOf(Path); - DeleteMode := (ItemIndex <> -1); - end; -end; - -procedure TFavOpenDialog.DialogShow; -var - PreviewRect: TRect; -begin - FParentWnd := GetParent(FHandle); - if IsOpenPictDialog then - DoShow - else - begin - GetClientRect(FHandle, PreviewRect); - PreviewRect.Top := PreviewRect.Bottom - 43; - FFavoritePanel.BoundsRect := PreviewRect; - FFavoritePanel.ParentWindow := FHandle; - if IsWin2k or IsWinXP then - FOldParentWndInstance := Pointer(SetWindowLongPtr(FParentWnd, GWLP_WNDPROC, LONG_PTR(FParentWndInstance))); - AdjustControlPos; - try - DoShow; - finally - FFavoriteComboBox.Items.Assign(FavoriteFolders); - end; - end; -end; - -procedure TFavOpenDialog.DoClose; -begin - if Assigned(FOnClose) then - FOnClose(Self); -end; - -procedure TFavOpenDialog.DoShow; -begin - if Assigned(FOnShow) then - FOnShow(Self); -end; - -procedure TFavOpenDialog.FavoriteComboBoxClick(Sender: TObject); -begin - with FFavoriteComboBox do - if ItemIndex <> - 1 then - CurrentFolder := FFavoriteComboBox.Items[ItemIndex]; -end; - -function TFavOpenDialog.GetCurrentFolder: string; -var - Path: array [0..MAX_PATH] of Char; -begin - SetString(Result, Path, SendMessage(FParentWnd, CDM_GETFOLDERPATH, SizeOf(Path), Integer(@Path))); - StrResetLength(Result); -end; - -function TFavOpenDialog.GetFileNameEditWnd: HWND; -begin - Result := GetDlgItem(FParentWnd, edt1); - if Result = 0 then - Result := GetDlgItem(FParentWnd, cmb13); -end; - -procedure TFavOpenDialog.HookDialogs; - procedure HookImportsForModule(ModuleBase: Pointer); - const - comdlg32 = 'comdlg32.dll'; - begin - if ModuleBase <> nil then - begin - {$IFDEF UNICODE} - FHooks.HookImport(ModuleBase, comdlg32, 'GetOpenFileNameW', @NewGetOpenFileName, @OldGetOpenFileName); - FHooks.HookImport(ModuleBase, comdlg32, 'GetSaveFileNameW', @NewGetSaveFileName, @OldGetSaveFileName); - {$ELSE} - FHooks.HookImport(ModuleBase, comdlg32, 'GetOpenFileNameA', @NewGetOpenFileName, @OldGetOpenFileName); - FHooks.HookImport(ModuleBase, comdlg32, 'GetSaveFileNameA', @NewGetSaveFileName, @OldGetSaveFileName); - {$ENDIF UNICODE} - end; - end; -var - Pe: TJclPeImage; - I: Integer; - HookedModule: LongWord; -begin - { TODO : Hook all loaded modules } - Pe := TJclPeImage.Create(True); - try - HookedModule := FindClassHInstance(ClassType); - Pe.AttachLoadedModule(HookedModule); - if Pe.StatusOK then - begin - HookImportsForModule(Pointer(HookedModule)); - for I := 0 to Pe.ImportList.UniqueLibItemCount - 1 do - HookImportsForModule(Pointer(GetModuleHandle(PChar(Pe.ImportList.UniqueLibItems[I].FileName)))); - end; - finally - Pe.Free; - end; -end; - -procedure TFavOpenDialog.LoadFavorites(const FileName: string); -begin - if FileExists(FileName) then - FavoriteFolders.LoadFromFile(FileName) - else - FavoriteFolders.Clear; -end; - -procedure TFavOpenDialog.ParentWndProc(var Message: TMessage); -begin - with Message do - begin - Result := CallWindowProc(FOldParentWndInstance, FParentWnd, Msg, WParam, LParam); - if Msg = WM_SIZE then - AdjustControlPos; - end; -end; - -procedure TFavOpenDialog.SetCurrentFolder(const Value: string); -var - LastFocus: HWND; - FileNameBuffer: string; -begin - if (FParentWnd <> 0) and DirectoryExists(Value) then - begin - LastFocus := GetFocus; - FileNameBuffer := GetWindowCaption(FileNameEditWnd); - SendMessage(FParentWnd, CDM_SETCONTROLTEXT, edt1, LPARAM(PChar(Value))); - SendMessage(GetDlgItem(FParentWnd, 1), BM_CLICK, 0, 0); - SendMessage(FParentWnd, CDM_SETCONTROLTEXT, edt1, LPARAM(PChar(FileNameBuffer))); - SetFocus(LastFocus); - end; -end; - -procedure TFavOpenDialog.SetDeleteMode(const Value: Boolean); -begin - if FDeleteMode <> Value then - begin - FDeleteMode := Value; - if FDeleteMode then - FAddButton.Caption := LoadResString(@RsDelete) - else - FAddButton.Caption := LoadResString(@RsAdd); - FFavoriteComboBox.Invalidate; - end; -end; - -procedure TFavOpenDialog.UnhookDialogs; -var - I: Integer; -begin - I := 0; - while I < FHooks.Count do - if not FHooks[I].Unhook then - Inc(I); -end; - -procedure TFavOpenDialog.WndProc(var Message: TMessage); - - procedure Default; - begin - with Message do - Result := CallWindowProc(FOldWndInstance, FHandle, Msg, WParam, LParam); - end; - -begin - if FHandle <> 0 then - begin - case Message.Msg of - WM_NOTIFY: - begin - case (POFNotify(Message.LParam)^.hdr.code) of - CDN_INITDONE: - DialogShow; - CDN_FOLDERCHANGE: - if not IsOpenPictDialog then - DialogFolderChange; - CDN_FILEOK: - if IsOpenPictDialog then - FPictureDialogLastFolder := CurrentFolder; - end; - Default; - end; - WM_DESTROY: - begin - if not IsOpenPictDialog then - FavoriteFolders.Assign(FFavoriteComboBox.Items); - try - DoClose; - Default; - finally - if not IsOpenPictDialog then - FFavoritePanel.ParentWindow := 0; - FParentWnd := 0; - end; - end; - WM_NCDESTROY: - begin - Default; - FHandle := 0; - end; - else - Default; - end; - end; -end; - -initialization - -try - {$IFDEF UNITVERSIONING} - RegisterUnitVersion(HInstance, UnitVersioning); - {$ENDIF UNITVERSIONING} -except - on ExceptionObj: TObject do - begin - JclExpertShowExceptionDialog(ExceptionObj); - raise; - end; -end; - -finalization - -try - {$IFDEF UNITVERSIONING} - UnregisterUnitVersion(HInstance); - {$ENDIF UNITVERSIONING} - FreeAndNil(FavOpenDialog); -except - on ExceptionObj: TObject do - begin - JclExpertShowExceptionDialog(ExceptionObj); - raise; - end; -end; - -end. Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpert.bpk 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpert.bpk 2009-09-22 22:01:46 UTC (rev 3020) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpert-D.xml) - Last generated: 28-06-2009 20:45:12 UTC + Last generated: 22-09-2009 21:56:23 UTC ***************************************************************************** --> <PROJECT> @@ -15,7 +15,6 @@ <OBJFILES value=" ..\..\lib\c6\JclFavoriteFoldersExpert.obj ..\..\lib\c6\IdeOpenDlgFavoriteUnit.obj - ..\..\lib\c6\OpenDlgFavAdapter.obj "/> <RESFILES value="JclFavoriteFoldersExpert.res"/> <IDLFILES value=""/> @@ -32,6 +31,7 @@ vcl.bpi designide.bpi Jcl.bpi + JclVcl.bpi JclBaseExpert.bpi "/> <PATHCPP value=".;"/> @@ -45,7 +45,7 @@ <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> <MAINSOURCE value="JclFavoriteFoldersExpert.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> - <LIBPATH value="..\..\experts\favfolders;..\..\experts\favfolders;..\..\lib\c6;..\..\lib\c6;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(BCB)\lib\debug"/> + <LIBPATH value="..\..\experts\favfolders;..\..\lib\c6;..\..\lib\c6;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(BCB)\lib\debug"/> <WARNINGS value="-w-par"/> <OTHERFILES value=""/> </MACROS> @@ -73,9 +73,9 @@ <FILE FILENAME="vcl.bpi" FORMNAME="" UNITNAME="vcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="designide.bpi" FORMNAME="" UNITNAME="designide" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="Jcl.bpi" FORMNAME="" UNITNAME="Jcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="JclVcl.bpi" FORMNAME="" UNITNAME="JclVcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="JclBaseExpert.bpi" FORMNAME="" UNITNAME="JclBaseExpert" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas" FORMNAME="" UNITNAME="IdeOpenDlgFavoriteUnit" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\experts\favfolders\OpenDlgFavAdapter.pas" FORMNAME="" UNITNAME="OpenDlgFavAdapter" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> </FILELIST> <BUILDTOOLS> </BUILDTOOLS> Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dpk 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dpk 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpert-D.xml) - Last generated: 14-03-2009 14:35:13 UTC + Last generated: 22-09-2009 21:56:24 UTC ----------------------------------------------------------------------------- } @@ -43,10 +43,10 @@ vcl, designide, Jcl, + JclVcl, JclBaseExpert ; contains - IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' , - OpenDlgFavAdapter in '..\..\experts\favfolders\OpenDlgFavAdapter.pas' + IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' ; end. Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpf =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpf 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpf 2009-09-22 22:01:46 UTC (rev 3020) @@ -1,5 +1,4 @@ USEUNIT("..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas"); -USEUNIT("..\..\experts\favfolders\OpenDlgFavAdapter.pas"); USEDEF("JclFavoriteFoldersExpertDLL.def"); Project file DllEntryPoint Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpr =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpr 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpr 2009-09-22 22:01:46 UTC (rev 3020) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpertDLL-L.xml) - Last generated: 28-06-2009 20:45:12 UTC + Last generated: 22-09-2009 21:56:23 UTC ***************************************************************************** --> <PROJECT> @@ -15,7 +15,6 @@ <OBJFILES value=" ..\..\lib\c6\JclFavoriteFoldersExpertDLL.obj ..\..\lib\c6\IdeOpenDlgFavoriteUnit.obj - ..\..\lib\c6\OpenDlgFavAdapter.obj "/> <RESFILES value=""/> <IDLFILES value=""/> @@ -32,6 +31,7 @@ vcl.bpi designide.bpi Jcl.bpi + JclVcl.bpi JclBaseExpert.bpi "/> <PATHCPP value=".;"/> @@ -45,7 +45,7 @@ <SYSDEFINES value="NO_STRICT;_RTLDLL;USEPACKAGES"/> <MAINSOURCE value="JclFavoriteFoldersExpertDLL.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;$(BCB)\include;$(BCB)\include\vcl"/> - <LIBPATH value="..\..\experts\favfolders;..\..\experts\favfolders;..\..\lib\c6;..\..\lib\c6;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(BCB)\lib\debug"/> + <LIBPATH value="..\..\experts\favfolders;..\..\lib\c6;..\..\lib\c6;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(BCB)\lib\debug"/> <WARNINGS value="-w-par"/> <OTHERFILES value=""/> </MACROS> @@ -72,9 +72,9 @@ <FILE FILENAME="vcl.bpi" FORMNAME="" UNITNAME="vcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="designide.bpi" FORMNAME="" UNITNAME="designide" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="Jcl.bpi" FORMNAME="" UNITNAME="Jcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="JclVcl.bpi" FORMNAME="" UNITNAME="JclVcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="JclBaseExpert.bpi" FORMNAME="" UNITNAME="JclBaseExpert" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas" FORMNAME="" UNITNAME="IdeOpenDlgFavoriteUnit" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\experts\favfolders\OpenDlgFavAdapter.pas" FORMNAME="" UNITNAME="OpenDlgFavAdapter" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> </FILELIST> <BUILDTOOLS> </BUILDTOOLS> Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.dof =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.dof 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.dof 2009-09-22 22:01:46 UTC (rev 3020) @@ -5,5 +5,5 @@ [Compiler] PackageNoLink=1 [Linker] -Packages=rtl;vcl;designide;Jcl;JclBaseExpert +Packages=rtl;vcl;designide;Jcl;JclVcl;JclBaseExpert Modified: trunk/jcl/packages/c6/JclVcl.bpk =================================================================== --- trunk/jcl/packages/c6/JclVcl.bpk 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/c6/JclVcl.bpk 2009-09-22 22:01:46 UTC (rev 3020) @@ -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: 12-09-2009 20:46:31 UTC + Last generated: 22-09-2009 21:56:23 UTC ***************************************************************************** --> <PROJECT> @@ -18,6 +18,8 @@ ..\..\lib\c6\JclGraphUtils.obj ..\..\lib\c6\JclGraphics.obj ..\..\lib\c6\JclFont.obj + ..\..\lib\c6\JclOpenDialogHooks.obj + ..\..\lib\c6\JclOpenDialogFavorites.obj ..\..\lib\c6\JclVclResources.obj ..\..\lib\c6\JclVersionControl.obj ..\..\lib\c6\JclVersionCtrlCVSImpl.obj @@ -82,6 +84,8 @@ <FILE FILENAME="..\..\source\vcl\JclGraphUtils.pas" FORMNAME="" UNITNAME="JclGraphUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\vcl\JclGraphics.pas" FORMNAME="" UNITNAME="JclGraphics" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\vcl\JclFont.pas" FORMNAME="" UNITNAME="JclFont" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\source\vcl\JclOpenDialogHooks.pas" FORMNAME="" UNITNAME="JclOpenDialogHooks" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\source\vcl\JclOpenDialogFavorites.pas" FORMNAME="" UNITNAME="JclOpenDialogFavorites" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\vcl\JclVclResources.pas" FORMNAME="" UNITNAME="JclVclResources" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\vcl\JclVersionControl.pas" FORMNAME="" UNITNAME="JclVersionControl" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\vcl\JclVersionCtrlCVSImpl.pas" FORMNAME="" UNITNAME="JclVersionCtrlCVSImpl" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jcl/packages/c6/JclVcl.dpk =================================================================== --- trunk/jcl/packages/c6/JclVcl.dpk 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/c6/JclVcl.dpk 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 12-09-2009 20:46:31 UTC + Last generated: 22-09-2009 21:56:24 UTC ----------------------------------------------------------------------------- } @@ -49,6 +49,8 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclOpenDialogHooks in '..\..\source\vcl\JclOpenDialogHooks.pas' , + JclOpenDialogFavorites in '..\..\source\vcl\JclOpenDialogFavorites.pas' , JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , Modified: trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj =================================================================== --- trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj 2009-09-22 22:01:46 UTC (rev 3020) @@ -122,7 +122,7 @@ <Directories Name="PackageDLLOutputDir"></Directories> <Directories Name="PackageDCPOutputDir">..\..\lib\cs1</Directories> <Directories Name="SearchPath">..\..\lib\cs1;..\..\source\include</Directories> - <Directories Name="Packages">rtl;vcl;designide;Jcl;JclBaseExpert</Directories> + <Directories Name="Packages">rtl;vcl;designide;Jcl;JclVcl;JclBaseExpert</Directories> <Directories Name="Conditionals">RELEASE</Directories> <Directories Name="DebugSourceDirs"></Directories> <Directories Name="UsePackages">True</Directories> Modified: trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.dpr =================================================================== --- trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.dpr 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.dpr 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpertDLL-L.xml) - Last generated: 14-03-2009 14:35:14 UTC + Last generated: 22-09-2009 21:56:25 UTC ----------------------------------------------------------------------------- } @@ -37,8 +37,7 @@ uses ToolsAPI, - IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' , - OpenDlgFavAdapter in '..\..\experts\favfolders\OpenDlgFavAdapter.pas' + IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' ; exports Modified: trunk/jcl/packages/d10/JclFavoriteFoldersExpert.bdsproj =================================================================== --- trunk/jcl/packages/d10/JclFavoriteFoldersExpert.bdsproj 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d10/JclFavoriteFoldersExpert.bdsproj 2009-09-22 22:01:46 UTC (rev 3020) @@ -124,7 +124,7 @@ <Directories Name="OutputDir"></Directories> <Directories Name="PackageDLLOutputDir"></Directories> <Directories Name="PackageDCPOutputDir">..\..\lib\d10</Directories> - <Directories Name="Packages">rtl;vcl;designide;Jcl;JclBaseExpert</Directories> + <Directories Name="Packages">rtl;vcl;designide;Jcl;JclVcl;JclBaseExpert</Directories> <Directories Name="Conditionals">BCB;RELEASE</Directories> <Directories Name="DebugSourceDirs"></Directories> <Directories Name="UsePackages">True</Directories> Modified: trunk/jcl/packages/d10/JclFavoriteFoldersExpert.dpk =================================================================== --- trunk/jcl/packages/d10/JclFavoriteFoldersExpert.dpk 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d10/JclFavoriteFoldersExpert.dpk 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpert-D.xml) - Last generated: 14-03-2009 14:35:14 UTC + Last generated: 22-09-2009 21:56:26 UTC ----------------------------------------------------------------------------- } @@ -43,12 +43,12 @@ vcl, designide, Jcl, + JclVcl, JclBaseExpert ; contains - IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' , - OpenDlgFavAdapter in '..\..\experts\favfolders\OpenDlgFavAdapter.pas' + IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' ; end. Modified: trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.bdsproj =================================================================== --- trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.bdsproj 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.bdsproj 2009-09-22 22:01:46 UTC (rev 3020) @@ -124,7 +124,7 @@ <Directories Name="OutputDir"></Directories> <Directories Name="PackageDLLOutputDir"></Directories> <Directories Name="PackageDCPOutputDir">..\..\lib\d10</Directories> - <Directories Name="Packages">rtl;vcl;designide;Jcl;JclBaseExpert</Directories> + <Directories Name="Packages">rtl;vcl;designide;Jcl;JclVcl;JclBaseExpert</Directories> <Directories Name="Conditionals">BCB;RELEASE</Directories> <Directories Name="DebugSourceDirs"></Directories> <Directories Name="UsePackages">True</Directories> Modified: trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.dpr 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.dpr 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpertDLL-L.xml) - Last generated: 14-03-2009 14:35:14 UTC + Last generated: 22-09-2009 21:56:26 UTC ----------------------------------------------------------------------------- } @@ -39,8 +39,7 @@ uses ToolsAPI, - IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' , - OpenDlgFavAdapter in '..\..\experts\favfolders\OpenDlgFavAdapter.pas' + IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' ; exports Modified: trunk/jcl/packages/d10/JclVcl.dpk =================================================================== --- trunk/jcl/packages/d10/JclVcl.dpk 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d10/JclVcl.dpk 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 12-09-2009 20:46:33 UTC + Last generated: 22-09-2009 21:56:26 UTC ----------------------------------------------------------------------------- } @@ -50,6 +50,8 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclOpenDialogHooks in '..\..\source\vcl\JclOpenDialogHooks.pas' , + JclOpenDialogFavorites in '..\..\source\vcl\JclOpenDialogFavorites.pas' , JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , Modified: trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dpk =================================================================== --- trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dpk 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dpk 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpert-D.xml) - Last generated: 14-03-2009 14:35:14 UTC + Last generated: 22-09-2009 21:56:26 UTC ----------------------------------------------------------------------------- } @@ -43,12 +43,12 @@ vcl, designide, Jcl, + JclVcl, JclBaseExpert ; contains - IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' , - OpenDlgFavAdapter in '..\..\experts\favfolders\OpenDlgFavAdapter.pas' + IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' ; end. Modified: trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dproj =================================================================== --- trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dproj 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dproj 2009-09-22 22:01:46 UTC (rev 3020) @@ -5,7 +5,7 @@ <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_UsePackage>rtl;vcl;designide;Jcl;JclBaseExpert</DCC_UsePackage> + <DCC_UsePackage>rtl;vcl;designide;Jcl;JclVcl;JclBaseExpert</DCC_UsePackage> <DCC_Define>BCB;RELEASE</DCC_Define> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> @@ -89,8 +89,8 @@ <DCCReference Include="vcl.dcp" /> <DCCReference Include="designide.dcp" /> <DCCReference Include="Jcl.dcp" /> + <DCCReference Include="JclVcl.dcp" /> <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas" /> - <DCCReference Include="..\..\experts\favfolders\OpenDlgFavAdapter.pas" /> </ItemGroup> </Project> Modified: trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dpr 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dpr 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpertDLL-L.xml) - Last generated: 14-03-2009 14:35:14 UTC + Last generated: 22-09-2009 21:56:26 UTC ----------------------------------------------------------------------------- } @@ -39,8 +39,7 @@ uses ToolsAPI, - IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' , - OpenDlgFavAdapter in '..\..\experts\favfolders\OpenDlgFavAdapter.pas' + IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' ; exports Modified: trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dproj =================================================================== --- trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dproj 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dproj 2009-09-22 22:01:46 UTC (rev 3020) @@ -5,7 +5,7 @@ <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_UsePackage>rtl;vcl;designide;Jcl;JclBaseExpert</DCC_UsePackage> + <DCC_UsePackage>rtl;vcl;designide;Jcl;JclVcl;JclBaseExpert</DCC_UsePackage> <DCC_Define>BCB;RELEASE</DCC_Define> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> @@ -89,8 +89,8 @@ <DCCReference Include="vcl.dcp" /> <DCCReference Include="designide.dcp" /> <DCCReference Include="Jcl.dcp" /> + <DCCReference Include="JclVcl.dcp" /> <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas" /> - <DCCReference Include="..\..\experts\favfolders\OpenDlgFavAdapter.pas" /> </ItemGroup> </Project> Modified: trunk/jcl/packages/d11/JclVcl.dpk =================================================================== --- trunk/jcl/packages/d11/JclVcl.dpk 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d11/JclVcl.dpk 2009-09-22 22:01:46 UTC (rev 3020) @@ -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: 13-09-2009 18:42:22 UTC + Last generated: 22-09-2009 21:56:26 UTC ----------------------------------------------------------------------------- } @@ -51,6 +51,8 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclOpenDialogHooks in '..\..\source\vcl\JclOpenDialogHooks.pas' , + JclOpenDialogFavorites in '..\..\source\vcl\JclOpenDialogFavorites.pas' , JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , Modified: trunk/jcl/packages/d11/JclVcl.dproj =================================================================== --- trunk/jcl/packages/d11/JclVcl.dproj 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d11/JclVcl.dproj 2009-09-22 22:01:46 UTC (rev 3020) @@ -94,6 +94,8 @@ <DCCReference Include="..\..\source\vcl\JclGraphUtils.pas" /> <DCCReference Include="..\..\source\vcl\JclGraphics.pas" /> <DCCReference Include="..\..\source\vcl\JclFont.pas" /> + <DCCReference Include="..\..\source\vcl\JclOpenDialogHooks.pas" /> + <DCCReference Include="..\..\source\vcl\JclOpenDialogFavorites.pas" /> <DCCReference Include="..\..\source\vcl\JclVclResources.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionControl.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionCtrlCVSImpl.pas" /> Modified: trunk/jcl/packages/d12/JclFavoriteFoldersExpert.dpk =================================================================== --- trunk/jcl/packages/d12/JclFavoriteFoldersExpert.dpk 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d12/JclFavoriteFoldersExpert.dpk 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpert-D.xml) - Last generated: 14-03-2009 14:35:14 UTC + Last generated: 22-09-2009 21:56:27 UTC ----------------------------------------------------------------------------- } @@ -43,12 +43,12 @@ vcl, designide, Jcl, + JclVcl, JclBaseExpert ; contains - IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' , - OpenDlgFavAdapter in '..\..\experts\favfolders\OpenDlgFavAdapter.pas' + IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' ; end. Modified: trunk/jcl/packages/d12/JclFavoriteFoldersExpert.dproj =================================================================== --- trunk/jcl/packages/d12/JclFavoriteFoldersExpert.dproj 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d12/JclFavoriteFoldersExpert.dproj 2009-09-22 22:01:46 UTC (rev 3020) @@ -27,7 +27,7 @@ <GenDll>true</GenDll> <GenPackage>true</GenPackage> <DCC_ImageBase>$58040000</DCC_ImageBase> - <DCC_UsePackage>rtl;vcl;designide;Jcl;JclBaseExpert</DCC_UsePackage> + <DCC_UsePackage>rtl;vcl;designide;Jcl;JclVcl;JclBaseExpert</DCC_UsePackage> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_Release)'!=''"> <DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime> @@ -64,9 +64,9 @@ <DCCReference Include="vcl.dcp" /> <DCCReference Include="designide.dcp" /> <DCCReference Include="Jcl.dcp" /> + <DCCReference Include="JclVcl.dcp" /> <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas" /> - <DCCReference Include="..\..\experts\favfolders\OpenDlgFavAdapter.pas" /> <BuildConfiguration Include="Base"> <Key>Base</Key> </BuildConfiguration> Modified: trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dpr 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dpr 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpertDLL-L.xml) - Last generated: 14-03-2009 14:35:14 UTC + Last generated: 22-09-2009 21:56:27 UTC ----------------------------------------------------------------------------- } @@ -39,8 +39,7 @@ uses ToolsAPI, - IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' , - OpenDlgFavAdapter in '..\..\experts\favfolders\OpenDlgFavAdapter.pas' + IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' ; exports Modified: trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dproj =================================================================== --- trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dproj 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dproj 2009-09-22 22:01:46 UTC (rev 3020) @@ -27,7 +27,7 @@ <GenDll>true</GenDll> <GenPackage>true</GenPackage> <DCC_ImageBase>$58040000</DCC_ImageBase> - <DCC_UsePackage>rtl;vcl;designide;Jcl;JclBaseExpert</DCC_UsePackage> + <DCC_UsePackage>rtl;vcl;designide;Jcl;JclVcl;JclBaseExpert</DCC_UsePackage> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_Release)'!=''"> <DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime> @@ -64,9 +64,9 @@ <DCCReference Include="vcl.dcp" /> <DCCReference Include="designide.dcp" /> <DCCReference Include="Jcl.dcp" /> + <DCCReference Include="JclVcl.dcp" /> <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas" /> - <DCCReference Include="..\..\experts\favfolders\OpenDlgFavAdapter.pas" /> <BuildConfiguration Include="Base"> <Key>Base</Key> </BuildConfiguration> Modified: trunk/jcl/packages/d12/JclVcl.dpk =================================================================== --- trunk/jcl/packages/d12/JclVcl.dpk 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d12/JclVcl.dpk 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclVcl-R.xml) - Last generated: 12-09-2009 20:46:34 UTC + Last generated: 22-09-2009 21:56:27 UTC ----------------------------------------------------------------------------- } @@ -50,6 +50,8 @@ JclGraphUtils in '..\..\source\vcl\JclGraphUtils.pas' , JclGraphics in '..\..\source\vcl\JclGraphics.pas' , JclFont in '..\..\source\vcl\JclFont.pas' , + JclOpenDialogHooks in '..\..\source\vcl\JclOpenDialogHooks.pas' , + JclOpenDialogFavorites in '..\..\source\vcl\JclOpenDialogFavorites.pas' , JclVclResources in '..\..\source\vcl\JclVclResources.pas' , JclVersionControl in '..\..\source\vcl\JclVersionControl.pas' , JclVersionCtrlCVSImpl in '..\..\source\vcl\JclVersionCtrlCVSImpl.pas' , Modified: trunk/jcl/packages/d12/JclVcl.dproj =================================================================== --- trunk/jcl/packages/d12/JclVcl.dproj 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d12/JclVcl.dproj 2009-09-22 22:01:46 UTC (rev 3020) @@ -68,6 +68,8 @@ <DCCReference Include="..\..\source\vcl\JclGraphUtils.pas" /> <DCCReference Include="..\..\source\vcl\JclGraphics.pas" /> <DCCReference Include="..\..\source\vcl\JclFont.pas" /> + <DCCReference Include="..\..\source\vcl\JclOpenDialogHooks.pas" /> + <DCCReference Include="..\..\source\vcl\JclOpenDialogFavorites.pas" /> <DCCReference Include="..\..\source\vcl\JclVclResources.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionControl.pas" /> <DCCReference Include="..\..\source\vcl\JclVersionCtrlCVSImpl.pas" /> Modified: trunk/jcl/packages/d14/JclFavoriteFoldersExpert.dpk =================================================================== --- trunk/jcl/packages/d14/JclFavoriteFoldersExpert.dpk 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d14/JclFavoriteFoldersExpert.dpk 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpert-D.xml) - Last generated: 19-04-2009 17:51:55 UTC + Last generated: 22-09-2009 21:56:27 UTC ----------------------------------------------------------------------------- } @@ -43,12 +43,12 @@ vcl, designide, Jcl, + JclVcl, JclBaseExpert ; contains - IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' , - OpenDlgFavAdapter in '..\..\experts\favfolders\OpenDlgFavAdapter.pas' + IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' ; end. Modified: trunk/jcl/packages/d14/JclFavoriteFoldersExpert.dproj =================================================================== --- trunk/jcl/packages/d14/JclFavoriteFoldersExpert.dproj 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d14/JclFavoriteFoldersExpert.dproj 2009-09-22 22:01:46 UTC (rev 3020) @@ -29,7 +29,7 @@ <GenDll>true</GenDll> <GenPackage>true</GenPackage> <DCC_ImageBase>$58040000</DCC_ImageBase> - <DCC_UsePackage>rtl;vcl;designide;Jcl;JclBaseExpert</DCC_UsePackage> + <DCC_UsePackage>rtl;vcl;designide;Jcl;JclVcl;JclBaseExpert</DCC_UsePackage> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_Release)'!=''"> <DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime> @@ -66,9 +66,9 @@ <DCCReference Include="vcl.dcp" /> <DCCReference Include="designide.dcp" /> <DCCReference Include="Jcl.dcp" /> + <DCCReference Include="JclVcl.dcp" /> <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas" /> - <DCCReference Include="..\..\experts\favfolders\OpenDlgFavAdapter.pas" /> <BuildConfiguration Include="Base"> <Key>Base</Key> </BuildConfiguration> Modified: trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dpr 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dpr 2009-09-22 22:01:46 UTC (rev 3020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpertDLL-L.xml) - Last generated: 19-04-2009 17:51:55 UTC + Last generated: 22-09-2009 21:56:27 UTC ----------------------------------------------------------------------------- } @@ -39,8 +39,7 @@ uses ToolsAPI, - IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' , - OpenDlgFavAdapter in '..\..\experts\favfolders\OpenDlgFavAdapter.pas' + IdeOpenDlgFavoriteUnit in '..\..\experts\favfolders\IdeOpenDlgFavoriteUnit.pas' ; exports Modified: trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dproj =================================================================== --- trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dproj 2009-09-22 21:44:42 UTC (rev 3019) +++ trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dproj 2009-09-22 22:01:46 UTC (rev 3020) @@ -29,7 +29,7 @@ <GenDll>true</GenDll> <GenPackage>true</GenPackage> <DCC_ImageBase>$58040000</DCC_ImageBase> - <DCC_UsePackage>rtl;vcl;designide;Jcl;JclBaseExpert</DCC_UsePackage> + <DCC_UsePackage>rtl;vcl;designide;Jcl;JclVcl;JclBaseExpert</DCC_UsePackage> </Pro... [truncated message content] |
From: <ou...@us...> - 2009-09-22 21:44:49
|
Revision: 3019 http://jcl.svn.sourceforge.net/jcl/?rev=3019&view=rev Author: outchy Date: 2009-09-22 21:44:42 +0000 (Tue, 22 Sep 2009) Log Message: ----------- Mantis 4944: TJclBufferedStream wipes data on append. Modified Paths: -------------- trunk/jcl/source/common/JclStreams.pas Modified: trunk/jcl/source/common/JclStreams.pas =================================================================== --- trunk/jcl/source/common/JclStreams.pas 2009-09-22 21:41:26 UTC (rev 3018) +++ trunk/jcl/source/common/JclStreams.pas 2009-09-22 21:44:42 UTC (rev 3019) @@ -1199,6 +1199,7 @@ if Stream <> nil then FPosition := Stream.Position; BufferSize := StreamDefaultBufferSize; + LoadBuffer; end; destructor TJclBufferedStream.Destroy; @@ -1342,16 +1343,8 @@ Result := Count + Offset; while Count > 0 do begin - if not BufferHit then - begin - if (FBufferStart <= FPosition) and (FPosition < (FBufferStart + FBufferSize)) then - begin - if Length(FBuffer) <> FBufferSize then - SetLength(FBuffer, FBufferSize); - end - else - LoadBuffer; - end; + if (FBufferStart > FPosition) or (FPosition >= (FBufferStart + FBufferSize)) then + LoadBuffer; Dec(Count, WriteToBuffer(Buffer, Count, Result - Count)); end; Result := Result - Count - Offset; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-09-22 21:41:33
|
Revision: 3018 http://jcl.svn.sourceforge.net/jcl/?rev=3018&view=rev Author: outchy Date: 2009-09-22 21:41:26 +0000 (Tue, 22 Sep 2009) Log Message: ----------- Mantis 4951: On IDE when clicking on Tools->JCL options, it brings up exception dialog The properties named Explicit* and DesignSize do not exist in D6 and D7. Modified Paths: -------------- trunk/jcl/experts/common/JclOtaConfigurationForm.dfm trunk/jcl/experts/stacktraceviewer/APIExamples/FastMM/FastMMFreedObjectFrame.dfm trunk/jcl/experts/stacktraceviewer/APIExamples/FastMM/FastMMLeakSummaryFrame.dfm Modified: trunk/jcl/experts/common/JclOtaConfigurationForm.dfm =================================================================== --- trunk/jcl/experts/common/JclOtaConfigurationForm.dfm 2009-09-21 21:25:05 UTC (rev 3017) +++ trunk/jcl/experts/common/JclOtaConfigurationForm.dfm 2009-09-22 21:41:26 UTC (rev 3018) @@ -20,7 +20,6 @@ Left = 185 Top = 0 Height = 448 - ExplicitHeight = 450 end object PanelName: TPanel Left = 0 @@ -30,10 +29,6 @@ Align = alBottom BevelOuter = bvNone TabOrder = 0 - ExplicitTop = 450 - DesignSize = ( - 554 - 38) object LabelHomePage: TLabel Left = 8 Top = 8 @@ -80,10 +75,6 @@ Align = alLeft BevelOuter = bvNone TabOrder = 1 - ExplicitHeight = 450 - DesignSize = ( - 185 - 448) object TreeViewCategories: TTreeView Left = 8 Top = 8 @@ -106,7 +97,6 @@ Align = alClient BevelOuter = bvNone TabOrder = 2 - ExplicitHeight = 450 object LabelSelectPage: TLabel Left = 152 Top = 184 Modified: trunk/jcl/experts/stacktraceviewer/APIExamples/FastMM/FastMMFreedObjectFrame.dfm =================================================================== --- trunk/jcl/experts/stacktraceviewer/APIExamples/FastMM/FastMMFreedObjectFrame.dfm 2009-09-21 21:25:05 UTC (rev 3017) +++ trunk/jcl/experts/stacktraceviewer/APIExamples/FastMM/FastMMFreedObjectFrame.dfm 2009-09-22 21:41:26 UTC (rev 3018) @@ -83,26 +83,14 @@ object tsStack2: TTabSheet Caption = 'Stack (freed by)' ImageIndex = 1 - ExplicitLeft = 0 - ExplicitTop = 0 - ExplicitWidth = 0 - ExplicitHeight = 0 end object tsStack3: TTabSheet Caption = 'Stack (current)' ImageIndex = 2 - ExplicitLeft = 0 - ExplicitTop = 0 - ExplicitWidth = 0 - ExplicitHeight = 0 end object tsMemory: TTabSheet Caption = 'Memory Dump' ImageIndex = 3 - ExplicitLeft = 0 - ExplicitTop = 0 - ExplicitWidth = 0 - ExplicitHeight = 0 end end end Modified: trunk/jcl/experts/stacktraceviewer/APIExamples/FastMM/FastMMLeakSummaryFrame.dfm =================================================================== --- trunk/jcl/experts/stacktraceviewer/APIExamples/FastMM/FastMMLeakSummaryFrame.dfm 2009-09-21 21:25:05 UTC (rev 3017) +++ trunk/jcl/experts/stacktraceviewer/APIExamples/FastMM/FastMMLeakSummaryFrame.dfm 2009-09-22 21:41:26 UTC (rev 3018) @@ -11,9 +11,5 @@ Height = 240 Align = alClient TabOrder = 0 - ExplicitLeft = 72 - ExplicitTop = 80 - ExplicitWidth = 185 - ExplicitHeight = 89 end end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |