You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
(20) |
May
(48) |
Jun
(8) |
Jul
(23) |
Aug
(41) |
Sep
(42) |
Oct
(22) |
Nov
(17) |
Dec
(36) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(43) |
Feb
(42) |
Mar
(17) |
Apr
(39) |
May
(16) |
Jun
(35) |
Jul
(37) |
Aug
(47) |
Sep
(49) |
Oct
(9) |
Nov
(52) |
Dec
(37) |
2008 |
Jan
(48) |
Feb
(21) |
Mar
(7) |
Apr
(2) |
May
(5) |
Jun
(17) |
Jul
(17) |
Aug
(40) |
Sep
(58) |
Oct
(38) |
Nov
(19) |
Dec
(32) |
2009 |
Jan
(67) |
Feb
(46) |
Mar
(54) |
Apr
(34) |
May
(37) |
Jun
(52) |
Jul
(67) |
Aug
(72) |
Sep
(48) |
Oct
(35) |
Nov
(27) |
Dec
(12) |
2010 |
Jan
(56) |
Feb
(46) |
Mar
(19) |
Apr
(14) |
May
(21) |
Jun
(3) |
Jul
(13) |
Aug
(48) |
Sep
(34) |
Oct
(51) |
Nov
(16) |
Dec
(32) |
2011 |
Jan
(36) |
Feb
(14) |
Mar
(12) |
Apr
(3) |
May
(5) |
Jun
(24) |
Jul
(15) |
Aug
(30) |
Sep
(21) |
Oct
(4) |
Nov
(25) |
Dec
(23) |
2012 |
Jan
(45) |
Feb
(42) |
Mar
(19) |
Apr
(14) |
May
(13) |
Jun
(7) |
Jul
(3) |
Aug
(46) |
Sep
(21) |
Oct
(10) |
Nov
(2) |
Dec
|
2013 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ou...@us...> - 2010-01-06 16:49:43
|
Revision: 3117 http://jcl.svn.sourceforge.net/jcl/?rev=3117&view=rev Author: outchy Date: 2010-01-06 16:49:29 +0000 (Wed, 06 Jan 2010) Log Message: ----------- new option to trim white spaces that follow some text. Modified Paths: -------------- trunk/jcl/source/common/JclSimpleXml.pas Modified: trunk/jcl/source/common/JclSimpleXml.pas =================================================================== --- trunk/jcl/source/common/JclSimpleXml.pas 2010-01-06 16:37:11 UTC (rev 3116) +++ trunk/jcl/source/common/JclSimpleXml.pas 2010-01-06 16:49:29 UTC (rev 3117) @@ -421,7 +421,8 @@ end; TJclSimpleXMLOptions = set of (sxoAutoCreate, sxoAutoIndent, sxoAutoEncodeValue, - sxoAutoEncodeEntity, sxoDoNotSaveProlog, sxoTrimPrecedingTextWhitespace); + sxoAutoEncodeEntity, sxoDoNotSaveProlog, sxoTrimPrecedingTextWhitespace, + sxoTrimFollowingTextWhitespace); TJclSimpleXMLEncodeEvent = procedure(Sender: TObject; var Value: string) of object; TJclSimpleXMLEncodeStreamEvent = procedure(Sender: TObject; InStream, OutStream: TStream) of object; @@ -3051,15 +3052,12 @@ var Ch: Char; St: string; - lTrimWhiteSpace: Boolean; begin St := ''; if AParent <> nil then AParent.DoLoadProgress(StringStream.Stream.Position, StringStream.Stream.Size); - lTrimWhiteSpace := Assigned(SimpleXML) and (sxoTrimPrecedingTextWhitespace in SimpleXML.Options); - while StringStream.PeekChar(Ch) do case Ch of '<': @@ -3071,12 +3069,18 @@ St := St + Ch; end; end; - if GetSimpleXML <> nil then + + if Assigned(SimpleXML) then + begin GetSimpleXML.DoDecodeValue(St); - if lTrimWhiteSpace then - Value := TrimLeft(St) - else - Value := St; + + if sxoTrimPrecedingTextWhitespace in SimpleXML.Options then + St := TrimLeft(St); + if sxoTrimFollowingTextWhitespace in SimpleXML.Options then + St := TrimRight(St); + end; + + Value := St; Name := ''; if AParent <> nil then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-06 16:37:20
|
Revision: 3116 http://jcl.svn.sourceforge.net/jcl/?rev=3116&view=rev Author: outchy Date: 2010-01-06 16:37:11 +0000 (Wed, 06 Jan 2010) Log Message: ----------- Mantis 4917: Add support for processing instruction. Modified Paths: -------------- trunk/jcl/source/common/JclSimpleXml.pas Modified: trunk/jcl/source/common/JclSimpleXml.pas =================================================================== --- trunk/jcl/source/common/JclSimpleXml.pas 2010-01-06 15:14:58 UTC (rev 3115) +++ trunk/jcl/source/common/JclSimpleXml.pas 2010-01-06 16:37:11 UTC (rev 3116) @@ -384,35 +384,37 @@ procedure SaveToStringStream(StringStream: TJclStringStream; const Level: string = ''; AParent: TJclSimpleXML = nil); override; end; - TJclSimpleXMLElemHeader = class(TJclSimpleXMLElem) - private - FStandalone: Boolean; - FEncoding: string; - FVersion: string; + TJclSimpleXMLElemProcessingInstruction = class(TJclSimpleXMLElem) public - procedure Assign(Value: TJclSimpleXMLElem); override; - procedure LoadFromStringStream(StringStream: TJclStringStream; AParent: TJclSimpleXML = nil); override; procedure SaveToStringStream(StringStream: TJclStringStream; const Level: string = ''; AParent: TJclSimpleXML = nil); override; - property Version: string read FVersion write FVersion; - property StandAlone: Boolean read FStandalone write FStandalone; - property Encoding: string read FEncoding write FEncoding; - constructor Create(const AOwner: TJclSimpleXMLElem); override; end; - TJclSimpleXMLElemDocType = class(TJclSimpleXMLElem) + TJclSimpleXMLElemHeader = class(TJclSimpleXMLElemProcessingInstruction) + private + function GetEncoding: string; + function GetStandalone: Boolean; + function GetVersion: string; + procedure SetEncoding(const Value: string); + procedure SetStandalone(const Value: Boolean); + procedure SetVersion(const Value: string); public procedure LoadFromStringStream(StringStream: TJclStringStream; AParent: TJclSimpleXML = nil); override; procedure SaveToStringStream(StringStream: TJclStringStream; const Level: string = ''; AParent: TJclSimpleXML = nil); override; + property Version: string read GetVersion write SetVersion; + property StandAlone: Boolean read GetStandalone write SetStandalone; + property Encoding: string read GetEncoding write SetEncoding; end; - TJclSimpleXMLElemSheet = class(TJclSimpleXMLElem) - public - procedure LoadFromStringStream(StringStream: TJclStringStream; AParent: TJclSimpleXML = nil); override; - procedure SaveToStringStream(StringStream: TJclStringStream; const Level: string = ''; AParent: TJclSimpleXML = nil); override; + // for backward compatibility + TJclSimpleXMLElemSheet = class(TJclSimpleXMLElemProcessingInstruction) end; - TJclSimpleXMLElemMSOApplication = class(TJclSimpleXMLElem) + // for backward compatibility + TJclSimpleXMLElemMSOApplication = class(TJclSimpleXMLElemProcessingInstruction) + end; + + TJclSimpleXMLElemDocType = class(TJclSimpleXMLElem) public procedure LoadFromStringStream(StringStream: TJclStringStream; AParent: TJclSimpleXML = nil); override; procedure SaveToStringStream(StringStream: TJclStringStream; const Level: string = ''; AParent: TJclSimpleXML = nil); override; @@ -2069,8 +2071,14 @@ lElem := TJclSimpleXMLElemComment.Create(Parent); lPos := rsWaitingTag; St := ''; + end + else + if St = '<?' then + begin + lElem := TJclSimpleXMLElemProcessingInstruction.Create(Parent); + lPos := rsWaitingTag; + St := ''; end; - //<? end; end; @@ -3092,39 +3100,21 @@ AParent.DoSaveProgress; end; -//=== { TJclSimpleXMLElemHeader } ============================================ +//=== { TJclSimpleXMLElemProcessingInstruction } ============================= -procedure TJclSimpleXMLElemHeader.Assign(Value: TJclSimpleXMLElem); -begin - inherited Assign(Value); - if Value is TJclSimpleXMLElemHeader then - begin - FStandalone := TJclSimpleXMLElemHeader(Value).FStandalone; - FEncoding := TJclSimpleXMLElemHeader(Value).FEncoding; - FVersion := TJclSimpleXMLElemHeader(Value).FVersion; - end; -end; - -constructor TJclSimpleXMLElemHeader.Create(const AOwner: TJclSimpleXMLElem); -begin - inherited Create(AOwner); - FVersion := '1.0'; - FEncoding := 'iso-8859-1'; - FStandalone := False; -end; - -procedure TJclSimpleXMLElemHeader.LoadFromStringStream(StringStream: TJclStringStream; AParent: TJclSimpleXML); -//<?xml version="1.0" encoding="iso-xyzxx" standalone="yes"?> -const - CS_START_HEADER = '<?xml'; - CS_STOP_HEADER = ' ?>'; +procedure TJclSimpleXMLElemProcessingInstruction.LoadFromStringStream( + StringStream: TJclStringStream; AParent: TJclSimpleXML); +type + TReadStatus = (rsWaitingOpeningTag, rsOpeningTag, rsOpeningName, rsEndTag1, rsEndTag2); var - lPos: Integer; + lPos: TReadStatus; lOk: Boolean; + St, lName, lNameSpace: string; Ch: Char; - CodePage: Word; begin - lPos := 1; + St := ''; + lNameSpace := ''; + lPos := rsWaitingOpeningTag; lOk := False; if AParent <> nil then @@ -3133,55 +3123,122 @@ while StringStream.ReadChar(Ch) do begin case lPos of - 1..4: //<?xm - if Ch = CS_START_HEADER[lPos] then - Inc(lPos) + rsWaitingOpeningTag: // wait beginning of tag + if Ch = '<' then + lPos := rsOpeningTag else if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_START_HEADER[lPos], Ch, StringStream.PeekPosition]); - 5: //l - if Ch = CS_START_HEADER[lPos] then - begin - Properties.LoadFromStringStream(StringStream); - Inc(lPos); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedBeginningO), [Ch, StringStream.PeekPosition]); - // Use current value as default value, this will allow reading - // xml file that do not specify encoding. - FVersion := Properties.Value('version', FVersion); - FEncoding := Properties.Value('encoding', FEncoding); - FStandalone := Properties.Value('standalone') = 'yes'; + rsOpeningTag: + if Ch = '?' then + lPos := rsOpeningName // read name + else + FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]); - Properties.Clear; + rsOpeningName: + if CharIsValidIdentifierLetter(Ch) or (Ch = '-') or (Ch = '.') then + St := St + Ch + else + if (Ch = ':') and (lNameSpace = '') then + begin + lNameSpace := St; + St := ''; end else - FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_START_HEADER[lPos], Ch, StringStream.PeekPosition]); - 6: //? - if Ch = CS_STOP_HEADER[lPos] then - Inc(lPos) + if CharIsWhiteSpace(Ch) and (St = '') then + // whitespace after "<" (no name) + FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]) else if CharIsWhiteSpace(Ch) then - // spaces before ?> + begin + lName := St; + St := ''; + Properties.LoadFromStringStream(StringStream); + lPos := rsEndTag1; + end else - FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_STOP_HEADER[lPos], Ch, StringStream.PeekPosition]); - 7: //> - if Ch = CS_STOP_HEADER[lPos] then + if Ch = '?' then begin + lName := St; + lPos := rsEndTag2; + end + else + // other invalid characters + FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]); + + rsEndTag1: + if Ch = '?' then + lPos := rsEndTag2 + else + if not CharIsWhiteSpace(Ch) then + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); + + rsEndTag2: + if Ch = '>' then + begin lOk := True; - Break; //End if + Break; end else - FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_STOP_HEADER[lPos], Ch, StringStream.PeekPosition]); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); end; end; if not lOk then FmtError(LoadResString(@RsEInvalidCommentUnexpectedEndOfData), [StringStream.PeekPosition]); - Name := ''; + Name := lName; + NameSpace := lNameSpace; +end; - if FEncoding <> '' then - CodePage := CodePageFromCharsetName(FEncoding) +procedure TJclSimpleXMLElemProcessingInstruction.SaveToStringStream( + StringStream: TJclStringStream; const Level: string; AParent: TJclSimpleXML); +var + St: string; +begin + St := Level + '<?'; + if NameSpace <> '' then + St := St + NameSpace + ':' + Name else + St := St + Name; + StringStream.WriteString(St, 1, Length(St)); + Properties.SaveToStringStream(StringStream); + St := '?>' + sLineBreak; + StringStream.WriteString(St, 1, Length(St)); + if AParent <> nil then + AParent.DoSaveProgress; +end; + +//=== { TJclSimpleXMLElemHeader } ============================================ + +function TJclSimpleXMLElemHeader.GetEncoding: string; +begin + Result := Properties.Value('encoding', 'iso-8859-1'); +end; + +function TJclSimpleXMLElemHeader.GetStandalone: Boolean; +begin + Result := Properties.Value('standalone') = 'yes'; +end; + +function TJclSimpleXMLElemHeader.GetVersion: string; +begin + Result := Properties.Value('version', '1.0'); +end; + +procedure TJclSimpleXMLElemHeader.LoadFromStringStream(StringStream: TJclStringStream; AParent: TJclSimpleXML); +//<?xml version="1.0" encoding="iso-xyzxx" standalone="yes"?> +var + CodePage: Word; + EncodingProp: TJclSimpleXMLProp; +begin + inherited LoadFromStringStream(StringStream, AParent); + + EncodingProp := Properties.ItemNamed['encoding']; + if Assigned(EncodingProp) and (EncodingProp.Value <> '') then + CodePage := CodePageFromCharsetName(EncodingProp.Value) + else CodePage := CP_ACP; // set current stringstream codepage @@ -3195,22 +3252,50 @@ Error(LoadResString(@RsENoCharset)); end; -procedure TJclSimpleXMLElemHeader.SaveToStringStream(StringStream: TJclStringStream; - const Level: string; AParent: TJclSimpleXML); +procedure TJclSimpleXMLElemHeader.SaveToStringStream( + StringStream: TJclStringStream; const Level: string; AParent: TJclSimpleXML); +begin + SetEncoding(GetEncoding); + SetVersion(GetVersion); + SetStandalone(GetStandalone); + inherited SaveToStringStream(StringStream, Level, AParent); +end; + +procedure TJclSimpleXMLElemHeader.SetEncoding(const Value: string); var - St: string; + Prop: TJclSimpleXMLProp; begin - St := Level + '<?xml version="' + FVersion + '"'; - if Encoding <> '' then - St := St + ' encoding="' + Encoding + '"'; - if StandAlone then - St := St + ' standalone="yes"'; - St := St + '?>' + sLineBreak; - StringStream.WriteString(St, 1, Length(St)); - if AParent <> nil then - AParent.DoSaveProgress; + Prop := Properties.GetItemNamed('encoding'); + if Assigned(Prop) then + Prop.Value := Value + else + Properties.Add('encoding', Value); end; +procedure TJclSimpleXMLElemHeader.SetStandalone(const Value: Boolean); +var + Prop: TJclSimpleXMLProp; +const + BooleanValues: array [Boolean] of string = ('no', 'yes'); +begin + Prop := Properties.GetItemNamed('standalone'); + if Assigned(Prop) then + Prop.Value := BooleanValues[Value] + else + Properties.Add('standalone', BooleanValues[Value]); +end; + +procedure TJclSimpleXMLElemHeader.SetVersion(const Value: string); +var + Prop: TJclSimpleXMLProp; +begin + Prop := Properties.GetItemNamed('version'); + if Assigned(Prop) then + Prop.Value := Value + else + Properties.Add('version', Value); +end; + //=== { TJclSimpleXMLElemDocType } =========================================== procedure TJclSimpleXMLElemDocType.LoadFromStringStream(StringStream: TJclStringStream; AParent: TJclSimpleXML); @@ -3293,160 +3378,6 @@ AParent.DoSaveProgress; end; -//=== { TJclSimpleXMLElemSheet } ============================================= - -procedure TJclSimpleXMLElemSheet.LoadFromStringStream(StringStream: TJclStringStream; - AParent: TJclSimpleXML); -//<?xml-stylesheet alternate="yes" type="text/xsl" href="sheet.xsl"?> -const - CS_START_PI = '<?xml-stylesheet'; - CS_STOP_PI = ' ?>'; -var - lPos: Integer; - lOk: Boolean; - Ch: Char; -begin - lPos := 1; - lOk := False; - - if AParent <> nil then - AParent.DoLoadProgress(StringStream.Stream.Position, StringStream.Stream.Size); - - while StringStream.ReadChar(Ch) do - begin - case lPos of - 1..15: //<?xml-styleshee - if Ch = CS_START_PI[lPos] then - Inc(lPos) - else - if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_START_PI[lPos], Ch, StringStream.PeekPosition]); - 16: //t - if Ch = CS_START_PI[lPos] then - begin - Properties.LoadFromStringStream(StringStream); - Inc(lPos); - end - else - FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_START_PI[lPos], Ch, StringStream.PeekPosition]); - 17: //? - if Ch = CS_STOP_PI[lPos] then - Inc(lPos) - else - if CharIsWhiteSpace(Ch) then - // space after properties - else - FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_STOP_PI[lPos], Ch, StringStream.PeekPosition]); - 18: //> - if Ch = CS_STOP_PI[lPos] then - begin - lOk := True; - Break; //End if - end - else - FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_STOP_PI[lPos], Ch, StringStream.PeekPosition]); - end; - end; - - if not lOk then - FmtError(LoadResString(@RsEInvalidStylesheetUnexpectedEndOfDat), [StringStream.PeekPosition]); - - Name := ''; -end; - -procedure TJclSimpleXMLElemSheet.SaveToStringStream(StringStream: TJclStringStream; - const Level: string; AParent: TJclSimpleXML); -var - I: Integer; - St: string; -begin - St := Level + '<?xml-stylesheet'; - StringStream.WriteString(St, 1, Length(St)); - for I := 0 to Properties.GetCount - 1 do - Properties.Item[I].SaveToStringStream(StringStream); - St := '?>' + sLineBreak; - StringStream.WriteString(St, 1, Length(St)); - if AParent <> nil then - AParent.DoSaveProgress; -end; - -//=== { TJclSimpleXMLElemMSOApplication } ============================================= - -procedure TJclSimpleXMLElemMSOApplication.LoadFromStringStream(StringStream: TJclStringStream; - AParent: TJclSimpleXML); -//<?mso-application progid="Word.Document"?> -const - CS_START_PI = '<?mso-application'; - CS_STOP_PI = ' ?>'; -var - lPos: Integer; - lOk: Boolean; - Ch: Char; -begin - lPos := 1; - lOk := False; - - if AParent <> nil then - AParent.DoLoadProgress(StringStream.Stream.Position, StringStream.Stream.Size); - - while StringStream.ReadChar(Ch) do - begin - case lPos of - 1..16: //<?mso-applicatio - if Ch = CS_START_PI[lPos] then - Inc(lPos) - else - if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_START_PI[lPos], Ch, StringStream.PeekPosition]); - 17: //n - if Ch = CS_START_PI[lPos] then - begin - Properties.LoadFromStringStream(StringStream); - Inc(lPos); - end - else - FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_START_PI[lPos], Ch, StringStream.PeekPosition]); - 18: //? - if Ch = CS_STOP_PI[lPos] then - Inc(lPos) - else - if CharIsWhiteSpace(Ch) then - // space after properties - else - FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_STOP_PI[lPos], Ch, StringStream.PeekPosition]); - 19: //> - if Ch = CS_STOP_PI[lPos] then - begin - lOk := True; - Break; //End if - end - else - FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_STOP_PI[lPos], Ch, StringStream.PeekPosition]); - end; - end; - - if not lOk then - FmtError(LoadResString(@RsEInvalidMSOUnexpectedEndOfDat), [StringStream.PeekPosition]); - - Name := ''; -end; - -procedure TJclSimpleXMLElemMSOApplication.SaveToStringStream(StringStream: TJclStringStream; - const Level: string; AParent: TJclSimpleXML); -var - I: Integer; - St: string; -begin - St := Level + '<?mso-application'; - StringStream.WriteString(St, 1, Length(St)); - for I := 0 to Properties.GetCount - 1 do - Properties.Item[I].SaveToStringStream(StringStream); - St := '?>' + sLineBreak; - StringStream.WriteString(St, 1, Length(St)); - if AParent <> nil then - AParent.DoSaveProgress; -end; - //=== { TJclSimpleXMLElemsProlog } =========================================== constructor TJclSimpleXMLElemsProlog.Create; @@ -3548,6 +3479,9 @@ if St = '<?mso-application' then lElem := TJclSimpleXMLElemMSOApplication.Create(nil) else + if (Length(St) > 3) and (St[2] = '?') and CharIsWhiteSpace(St[Length(St)]) then + lElem := TJclSimpleXMLElemProcessingInstruction.Create(nil) + else if (Length(St) > 1) and (St[2] <> '!') and (St[2] <> '?') then lEnd := True; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-06 15:15:11
|
Revision: 3115 http://jcl.svn.sourceforge.net/jcl/?rev=3115&view=rev Author: outchy Date: 2010-01-06 15:14:58 +0000 (Wed, 06 Jan 2010) Log Message: ----------- disable the plugin unregistration mechanism since it's causing access violations. Modified Paths: -------------- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas trunk/jcl/experts/repository/JclOtaRepositoryReg.pas Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas 2010-01-06 15:05:55 UTC (rev 3114) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas 2010-01-06 15:14:58 UTC (rev 3115) @@ -297,10 +297,10 @@ finalization {$IFDEF DELPHIEXCDLG} - UnregisterJclOTARepositoryExpert(TJclExcDlgDelphiExpert); + //UnregisterJclOTARepositoryExpert(TJclExcDlgDelphiExpert); {$ENDIF DELPHIEXCDLG} {$IFDEF CBUILDEREXCDLG} - UnregisterJclOTARepositoryExpert(TJclExcDlgCBuilderExpert); + //UnregisterJclOTARepositoryExpert(TJclExcDlgCBuilderExpert); {$ENDIF CBUILDEREXCDLG} {$IFDEF UNITVERSIONING} UnregisterUnitVersion(HInstance); Modified: trunk/jcl/experts/repository/JclOtaRepositoryReg.pas =================================================================== --- trunk/jcl/experts/repository/JclOtaRepositoryReg.pas 2010-01-06 15:05:55 UTC (rev 3114) +++ trunk/jcl/experts/repository/JclOtaRepositoryReg.pas 2010-01-06 15:14:58 UTC (rev 3115) @@ -44,7 +44,7 @@ procedure RegisterJclOTARepositoryExpert(ExpertClass: TJclOTARepositoryExpertClass; const ExpertPersonality: string); -procedure UnregisterJclOTARepositoryExpert(ExpertClass: TJclOTARepositoryExpertClass); +// procedure UnregisterJclOTARepositoryExpert(ExpertClass: TJclOTARepositoryExpertClass); // design package entry point procedure Register; @@ -95,7 +95,7 @@ ExpertClassList[I].ExpertIndex := -1; end; -procedure UnregisterJclOTARepositoryExpert(ExpertClass: TJclOTARepositoryExpertClass); +{procedure UnregisterJclOTARepositoryExpert(ExpertClass: TJclOTARepositoryExpertClass); var I, J, K: Integer; OTAWizardServices: IOTAWizardServices; @@ -115,7 +115,7 @@ ExpertClassList[K] := ExpertClassList[K + 1]; SetLength(ExpertClassList, J); end; -end; +end;} procedure Register; var This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-06 15:07:47
|
Revision: 3114 http://jcl.svn.sourceforge.net/jcl/?rev=3114&view=rev Author: outchy Date: 2010-01-06 15:05:55 +0000 (Wed, 06 Jan 2010) Log Message: ----------- Mantis 4916: Improve error message when malformed tag is found. The current position in the string stream is printed for all exceptions. Modified Paths: -------------- trunk/jcl/source/common/JclResources.pas trunk/jcl/source/common/JclSimpleXml.pas trunk/jcl/source/common/JclStreams.pas Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2010-01-06 13:36:08 UTC (rev 3113) +++ trunk/jcl/source/common/JclResources.pas 2010-01-06 15:05:55 UTC (rev 3114) @@ -1903,26 +1903,26 @@ //=== JclSimpleXml =========================================================== resourcestring RsEInvalidXMLElementUnexpectedCharacte = - 'Invalid XML Element: Unexpected character in property declaration ("%s" found)'; + 'Invalid XML Element: Unexpected character in property declaration ("%s" found at position %d)'; RsEInvalidXMLElementUnexpectedCharacte_ = - 'Invalid XML Element: Unexpected character in property declaration. Expecting " or '' but "%s" found'; - RsEUnexpectedValueForLPos = 'Unexpected value for lPos'; - RsEInvalidXMLElementExpectedBeginningO = 'Invalid XML Element: Expected beginning of tag but "%s" found'; - RsEInvalidXMLElementExpectedEndOfTagBu = 'Invalid XML Element: Expected end of tag but "%s" found'; - RsEInvalidXMLElementMalformedTagFoundn = 'Invalid XML Element: malformed tag found (no valid name)'; + 'Invalid XML Element: Unexpected character in property declaration. Expecting " or '' but "%s" found at position %d'; + RsEUnexpectedValueForLPos = 'Unexpected value for lPos at position %d'; + RsEInvalidXMLElementExpectedBeginningO = 'Invalid XML Element: Expected beginning of tag but "%s" found at position %d'; + RsEInvalidXMLElementExpectedEndOfTagBu = 'Invalid XML Element: Expected end of tag but "%s" found at position %d'; + RsEInvalidXMLElementMalformedTagFoundn = 'Invalid XML Element: malformed tag found (no valid name) at position %d'; RsEInvalidXMLElementErroneousEndOfTagE = - 'Invalid XML Element: Erroneous end of tag, expecting </%0:s> but </%1:s> found'; - RsEInvalidCommentExpectedsButFounds = 'Invalid Comment: expected "%0:s" but found "%1:s"'; - RsEInvalidCommentNotAllowedInsideComme = 'Invalid Comment: "--" not allowed inside comments'; - RsEInvalidCommentUnexpectedEndOfData = 'Invalid Comment: Unexpected end of data'; - RsEInvalidCDATAExpectedsButFounds = 'Invalid CDATA: expected "%0:s" but found "%1:s"'; - RsEInvalidCDATAUnexpectedEndOfData = 'Invalid CDATA: Unexpected end of data'; - RsEInvalidHeaderExpectedsButFounds = 'Invalid Header: expected "%0:s" but found "%1:s"'; - RsEInvalidStylesheetExpectedsButFounds = 'Invalid Stylesheet: expected "%0:s" but found "%1:s"'; - RsEInvalidStylesheetUnexpectedEndOfDat = 'Invalid Stylesheet: Unexpected end of data'; - RsEInvalidMSOExpectedsButFounds = 'Invalid MSO: expected "%0:s" but found "%1:s"'; - RsEInvalidMSOUnexpectedEndOfDat = 'Invalid MSO: Unexpected end of data'; - RsEInvalidDocumentUnexpectedTextInFile = 'Invalid Document: Unexpected text in file prolog'; + 'Invalid XML Element: Erroneous end of tag, expecting </%0:s> but </%1:s> found at position %d'; + RsEInvalidCommentExpectedsButFounds = 'Invalid Comment: expected "%0:s" but found "%1:s" at position %d'; + RsEInvalidCommentNotAllowedInsideComme = 'Invalid Comment: "--" not allowed inside comments at position %d'; + RsEInvalidCommentUnexpectedEndOfData = 'Invalid Comment: Unexpected end of data at position %d'; + RsEInvalidCDATAExpectedsButFounds = 'Invalid CDATA: expected "%0:s" but found "%1:s" at position %d'; + RsEInvalidCDATAUnexpectedEndOfData = 'Invalid CDATA: Unexpected end of data at position %d'; + RsEInvalidHeaderExpectedsButFounds = 'Invalid Header: expected "%0:s" but found "%1:s" at position %d'; + RsEInvalidStylesheetExpectedsButFounds = 'Invalid Stylesheet: expected "%0:s" but found "%1:s" at position %d'; + RsEInvalidStylesheetUnexpectedEndOfDat = 'Invalid Stylesheet: Unexpected end of data at position %d'; + RsEInvalidMSOExpectedsButFounds = 'Invalid MSO: expected "%0:s" but found "%1:s" at position %d'; + RsEInvalidMSOUnexpectedEndOfDat = 'Invalid MSO: Unexpected end of data at position %d'; + RsEInvalidDocumentUnexpectedTextInFile = 'Invalid Document: Unexpected text in file prolog at position %d'; //=== JclStatistics ========================================================== resourcestring Modified: trunk/jcl/source/common/JclSimpleXml.pas =================================================================== --- trunk/jcl/source/common/JclSimpleXml.pas 2010-01-06 13:36:08 UTC (rev 3113) +++ trunk/jcl/source/common/JclSimpleXml.pas 2010-01-06 15:05:55 UTC (rev 3114) @@ -2486,7 +2486,7 @@ // end of properties Break else - FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [Ch]); + FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [Ch, StringStream.PeekPosition]); end; ptReadingName: //We are reading a property name @@ -2509,7 +2509,7 @@ if CharIsWhiteSpace(Ch) then lPos := ptSpaceBeforeEqual else - FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [Ch]); + FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [Ch, StringStream.PeekPosition]); end; ptStartingContent: //We are going to start a property content @@ -2525,7 +2525,7 @@ lPos := ptReadingValue; end else - FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte_), [Ch]); + FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte_), [Ch, StringStream.PeekPosition]); end; ptReadingValue: //We are reading a property @@ -2552,7 +2552,7 @@ if Ch = '=' then lPos := ptStartingContent else - FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [Ch]); + FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [Ch, StringStream.PeekPosition]); end; else Assert(False, RsEUnexpectedValueForLPos); @@ -2696,7 +2696,7 @@ lPos := rsOpeningName // read name else if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidXMLElementExpectedBeginningO), [Ch]); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedBeginningO), [Ch, StringStream.PeekPosition]); rsOpeningName: if CharIsValidIdentifierLetter(Ch) or (Ch = '-') or (Ch = '.') then @@ -2710,7 +2710,7 @@ else if CharIsWhiteSpace(Ch) and (St = '') then // whitespace after "<" (no name) - Error(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn)) + FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]) else if CharIsWhiteSpace(Ch) then begin @@ -2736,7 +2736,7 @@ end else // other invalid characters - Error(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn)); + FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]); rsTypeOpeningTag: if CharIsWhiteSpace(Ch) then @@ -2752,13 +2752,13 @@ lPos := rsWaitingClosingTag1; end else - Error(Format(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch])); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); rsEndSingleTag: if Ch = '>' then Break else - Error(Format(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch])); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); rsWaitingClosingTag1: if CharIsWhiteSpace(Ch) then @@ -2767,13 +2767,13 @@ if Ch = '<' then lPos := rsWaitingClosingTag2 else - Error(Format(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch])); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); rsWaitingClosingTag2: if Ch = '/' then lPos := rsClosingName else - Error(Format(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch])); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); rsClosingName: if CharIsWhiteSpace(Ch) or (Ch = '>') then @@ -2781,11 +2781,11 @@ if lNameSpace <> '' then begin if not StrSame(lNameSpace + ':' + lName, St) then - FmtError(LoadResString(@RsEInvalidXMLElementErroneousEndOfTagE), [lName, St]); + FmtError(LoadResString(@RsEInvalidXMLElementErroneousEndOfTagE), [lName, St, StringStream.PeekPosition]); end else if not StrSame(lName, St) then - FmtError(LoadResString(@RsEInvalidXMLElementErroneousEndOfTagE), [lName, St]); + FmtError(LoadResString(@RsEInvalidXMLElementErroneousEndOfTagE), [lName, St, StringStream.PeekPosition]); //Set value if only one sub element //This might reduce speed, but this is for compatibility issues if (Items.Count = 1) and (Items[0] is TJclSimpleXMLElemText) then @@ -2800,7 +2800,7 @@ St := St + Ch else // other invalid characters - Error(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn)); + FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]); end; end; @@ -2908,7 +2908,7 @@ Inc(lPos) else if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidCommentExpectedsButFounds), [CS_START_COMMENT[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidCommentExpectedsButFounds), [CS_START_COMMENT[lPos], Ch, StringStream.PeekPosition]); 5: if Ch = CS_STOP_COMMENT[lPos] then Inc(lPos) @@ -2929,12 +2929,12 @@ Break; //End if end else // -- is not authorized in comments - Error(LoadResString(@RsEInvalidCommentNotAllowedInsideComme)); + FmtError(LoadResString(@RsEInvalidCommentNotAllowedInsideComme), [StringStream.PeekPosition]); end; end; if not lOk then - Error(LoadResString(@RsEInvalidCommentUnexpectedEndOfData)); + FmtError(LoadResString(@RsEInvalidCommentUnexpectedEndOfData), [StringStream.PeekPosition]); Value := St; Name := ''; @@ -2985,7 +2985,7 @@ Inc(lPos) else if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidCDATAExpectedsButFounds), [CS_START_CDATA[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidCDATAExpectedsButFounds), [CS_START_CDATA[lPos], Ch, StringStream.PeekPosition]); 10: if Ch = CS_STOP_CDATA[lPos] then Inc(lPos) @@ -3014,7 +3014,7 @@ end; if not lOk then - Error(LoadResString(@RsEInvalidCDATAUnexpectedEndOfData)); + FmtError(LoadResString(@RsEInvalidCDATAUnexpectedEndOfData), [StringStream.PeekPosition]); Value := St; Name := ''; @@ -3138,7 +3138,7 @@ Inc(lPos) else if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_START_HEADER[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_START_HEADER[lPos], Ch, StringStream.PeekPosition]); 5: //l if Ch = CS_START_HEADER[lPos] then begin @@ -3154,7 +3154,7 @@ Properties.Clear; end else - FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_START_HEADER[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_START_HEADER[lPos], Ch, StringStream.PeekPosition]); 6: //? if Ch = CS_STOP_HEADER[lPos] then Inc(lPos) @@ -3162,7 +3162,7 @@ if CharIsWhiteSpace(Ch) then // spaces before ?> else - FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_STOP_HEADER[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_STOP_HEADER[lPos], Ch, StringStream.PeekPosition]); 7: //> if Ch = CS_STOP_HEADER[lPos] then begin @@ -3170,12 +3170,12 @@ Break; //End if end else - FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_STOP_HEADER[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_STOP_HEADER[lPos], Ch, StringStream.PeekPosition]); end; end; if not lOk then - Error(LoadResString(@RsEInvalidCommentUnexpectedEndOfData)); + FmtError(LoadResString(@RsEInvalidCommentUnexpectedEndOfData), [StringStream.PeekPosition]); Name := ''; @@ -3248,7 +3248,7 @@ Inc(lPos) else if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_START_DOCTYPE[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_START_DOCTYPE[lPos], Ch, StringStream.PeekPosition]); 10: //]> or > if lChar = Ch then begin @@ -3273,7 +3273,7 @@ end; if not lOk then - Error(LoadResString(@RsEInvalidCommentUnexpectedEndOfData)); + FmtError(LoadResString(@RsEInvalidCommentUnexpectedEndOfData), [StringStream.PeekPosition]); Name := ''; Value := StrTrimCharsLeft(St, CharIsWhiteSpace); @@ -3320,7 +3320,7 @@ Inc(lPos) else if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_START_PI[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_START_PI[lPos], Ch, StringStream.PeekPosition]); 16: //t if Ch = CS_START_PI[lPos] then begin @@ -3328,7 +3328,7 @@ Inc(lPos); end else - FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_START_PI[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_START_PI[lPos], Ch, StringStream.PeekPosition]); 17: //? if Ch = CS_STOP_PI[lPos] then Inc(lPos) @@ -3336,7 +3336,7 @@ if CharIsWhiteSpace(Ch) then // space after properties else - FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_STOP_PI[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_STOP_PI[lPos], Ch, StringStream.PeekPosition]); 18: //> if Ch = CS_STOP_PI[lPos] then begin @@ -3344,12 +3344,12 @@ Break; //End if end else - FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_STOP_PI[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidStylesheetExpectedsButFounds), [CS_STOP_PI[lPos], Ch, StringStream.PeekPosition]); end; end; if not lOk then - Error(LoadResString(@RsEInvalidStylesheetUnexpectedEndOfDat)); + FmtError(LoadResString(@RsEInvalidStylesheetUnexpectedEndOfDat), [StringStream.PeekPosition]); Name := ''; end; @@ -3397,7 +3397,7 @@ Inc(lPos) else if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_START_PI[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_START_PI[lPos], Ch, StringStream.PeekPosition]); 17: //n if Ch = CS_START_PI[lPos] then begin @@ -3405,7 +3405,7 @@ Inc(lPos); end else - FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_START_PI[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_START_PI[lPos], Ch, StringStream.PeekPosition]); 18: //? if Ch = CS_STOP_PI[lPos] then Inc(lPos) @@ -3413,7 +3413,7 @@ if CharIsWhiteSpace(Ch) then // space after properties else - FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_STOP_PI[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_STOP_PI[lPos], Ch, StringStream.PeekPosition]); 19: //> if Ch = CS_STOP_PI[lPos] then begin @@ -3421,12 +3421,12 @@ Break; //End if end else - FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_STOP_PI[lPos], Ch]); + FmtError(LoadResString(@RsEInvalidMSOExpectedsButFounds), [CS_STOP_PI[lPos], Ch, StringStream.PeekPosition]); end; end; if not lOk then - Error(LoadResString(@RsEInvalidMSOUnexpectedEndOfDat)); + FmtError(LoadResString(@RsEInvalidMSOUnexpectedEndOfDat), [StringStream.PeekPosition]); Name := ''; end; @@ -3521,7 +3521,7 @@ St := Ch; end else - Error(LoadResString(@RsEInvalidDocumentUnexpectedTextInFile)); + FmtError(LoadResString(@RsEInvalidDocumentUnexpectedTextInFile), [StringStream.PeekPosition]); end; 1: //We are trying to determine the kind of the tag begin Modified: trunk/jcl/source/common/JclStreams.pas =================================================================== --- trunk/jcl/source/common/JclStreams.pas 2010-01-06 13:36:08 UTC (rev 3113) +++ trunk/jcl/source/common/JclStreams.pas 2010-01-06 15:05:55 UTC (rev 3114) @@ -480,6 +480,7 @@ function WriteWideChar(Value: WideChar): Boolean; function SkipBOM: LongInt; virtual; function WriteBOM: Longint; virtual; + property PeekPosition: Int64 read FPeekPosition; end; TJclStringStreamClass = class of TJclStringStream; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-06 13:36:15
|
Revision: 3113 http://jcl.svn.sourceforge.net/jcl/?rev=3113&view=rev Author: outchy Date: 2010-01-06 13:36:08 +0000 (Wed, 06 Jan 2010) Log Message: ----------- Mantis 5093: JclCompression ERangeError when zipping 7Gb file. Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2010-01-06 12:33:33 UTC (rev 3112) +++ trunk/jcl/source/common/JclCompression.pas 2010-01-06 13:36:08 UTC (rev 3113) @@ -5221,7 +5221,7 @@ function TJclSevenzipOutStream.Seek(Offset: Int64; SeekOrigin: Cardinal; NewPosition: PInt64): HRESULT; var - NewPos: Integer; + NewPos: Int64; begin NeedStream; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-06 12:59:17
|
Revision: 3112 http://jcl.svn.sourceforge.net/jcl/?rev=3112&view=rev Author: outchy Date: 2010-01-06 12:33:33 +0000 (Wed, 06 Jan 2010) Log Message: ----------- removal of some C5 relics. Modified Paths: -------------- trunk/jcl/packages/xml/Jcl-R.xml trunk/jcl/packages/xml/JclBaseExpert-D.xml trunk/jcl/packages/xml/JclContainers-R.xml trunk/jcl/packages/xml/JclDebugExpert-D.xml trunk/jcl/packages/xml/JclDebugExpertDLL-L.xml trunk/jcl/packages/xml/JclFavoriteFoldersExpert-D.xml trunk/jcl/packages/xml/JclFavoriteFoldersExpertDLL-L.xml trunk/jcl/packages/xml/JclProjectAnalysisExpert-D.xml trunk/jcl/packages/xml/JclProjectAnalysisExpertDLL-L.xml trunk/jcl/packages/xml/JclRepositoryExpert-D.xml trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml trunk/jcl/packages/xml/JclSIMDViewExpert-D.xml trunk/jcl/packages/xml/JclSIMDViewExpertDLL-L.xml trunk/jcl/packages/xml/JclStackTraceViewerExpert-D.xml trunk/jcl/packages/xml/JclStackTraceViewerExpertDLL-L.xml trunk/jcl/packages/xml/JclThreadNameExpert-D.xml trunk/jcl/packages/xml/JclThreadNameExpertDLL-L.xml trunk/jcl/packages/xml/JclUsesExpert-D.xml trunk/jcl/packages/xml/JclUsesExpertDLL-L.xml trunk/jcl/packages/xml/JclVcl-R.xml trunk/jcl/packages/xml/JclVersionControlExpert-D.xml trunk/jcl/packages/xml/JclVersionControlExpertDLL-L.xml Modified: trunk/jcl/packages/xml/Jcl-R.xml =================================================================== --- trunk/jcl/packages/xml/Jcl-R.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/Jcl-R.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="Jcl" Design="0"> <Description>JEDI Code Library RTL package</Description> <GUID>{44DB645B-C167-410D-9334-38AF9F0C7913}</GUID> - <C5PFlags/> <C6PFlags/> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>48000000</ImageBase> Modified: trunk/jcl/packages/xml/JclBaseExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclBaseExpert-D.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclBaseExpert-D.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclBaseExpert" Design="-1"> <Description>JCL Package containing common units for JCL Experts</Description> <GUID>{587944EE-7D27-4950-95F5-430FFBFC465C}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58000000</ImageBase> Modified: trunk/jcl/packages/xml/JclContainers-R.xml =================================================================== --- trunk/jcl/packages/xml/JclContainers-R.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclContainers-R.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclContainers" Design="0"> <Description>JEDI Code Library Containers package</Description> <GUID>{71D14CDC-6386-44FD-B861-4C4213CFFF08}</GUID> - <C5PFlags/> <C6PFlags/> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>48500000</ImageBase> Modified: trunk/jcl/packages/xml/JclDebugExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclDebugExpert-D.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclDebugExpert-D.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclDebugExpert" Design="-1"> <Description>JCL Debug IDE extension</Description> <GUID>{FC16FA9B-0429-42EB-9B53-30D19AAB3EE4}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58020000</ImageBase> Modified: trunk/jcl/packages/xml/JclDebugExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclDebugExpertDLL-L.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclDebugExpertDLL-L.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclDebugExpertDLL" Type="L"> <Description>JCL Debug IDE extension</Description> <GUID>{36195812-0F7A-45E7-BE07-04EABA463169}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58020000</ImageBase> Modified: trunk/jcl/packages/xml/JclFavoriteFoldersExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclFavoriteFoldersExpert-D.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclFavoriteFoldersExpert-D.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclFavoriteFoldersExpert" Design="-1"> <Description>JCL Open and Save IDE dialogs with favorite folders</Description> <GUID>{3BF49751-D079-4734-9AB6-F333FA52FDBA}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58040000</ImageBase> Modified: trunk/jcl/packages/xml/JclFavoriteFoldersExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclFavoriteFoldersExpertDLL-L.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclFavoriteFoldersExpertDLL-L.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclFavoriteFoldersExpertDLL" Type="L"> <Description>JCL Open and Save IDE dialogs with favorite folders</Description> <GUID>{DCDB1939-E79B-4AF6-855E-78310CAF8467}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58040000</ImageBase> Modified: trunk/jcl/packages/xml/JclProjectAnalysisExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclProjectAnalysisExpert-D.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclProjectAnalysisExpert-D.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclProjectAnalysisExpert" Design="-1"> <Description>JCL Project Analyzer</Description> <GUID>{518D9A98-4B3B-40B4-83EE-BD9D8CED6181}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58060000</ImageBase> Modified: trunk/jcl/packages/xml/JclProjectAnalysisExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclProjectAnalysisExpertDLL-L.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclProjectAnalysisExpertDLL-L.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclProjectAnalysisExpertDLL" Type="L"> <Description>JCL Project Analyzer</Description> <GUID>{6E22E269-A58C-41B6-BB1C-57670E460887}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58060000</ImageBase> Modified: trunk/jcl/packages/xml/JclRepositoryExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclRepositoryExpert-D.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclRepositoryExpert-D.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclRepositoryExpert" Design="-1"> <Description>JCL Package containing repository wizards</Description> <GUID>{2B548932-6654-4E44-8B06-3288D7A884C4}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58100000</ImageBase> Modified: trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclRepositoryExpertDLL" Type="L"> <Description>JCL Package containing repository wizards</Description> <GUID>{D93FF823-44C6-49D4-B9B3-30F1F60082F5}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58100000</ImageBase> Modified: trunk/jcl/packages/xml/JclSIMDViewExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclSIMDViewExpert-D.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclSIMDViewExpert-D.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclSIMDViewExpert" Design="-1"> <Description>JCL Debug Window of XMM registers</Description> <GUID>{2F16B01B-57C8-4EB1-A0C4-421B3008A4F6}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58080000</ImageBase> Modified: trunk/jcl/packages/xml/JclSIMDViewExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclSIMDViewExpertDLL-L.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclSIMDViewExpertDLL-L.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclSIMDViewExpertDLL" Type="L"> <Description>JCL Debug Window of XMM registers</Description> <GUID>{822DE71C-AFAB-4F52-A076-5140BF31A62E}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58080000</ImageBase> Modified: trunk/jcl/packages/xml/JclStackTraceViewerExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclStackTraceViewerExpert-D.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclStackTraceViewerExpert-D.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclStackTraceViewerExpert" Design="-1"> <Description>JCL Stack Trace Viewer</Description> <GUID>{85153A85-6CA4-4CD5-92E6-C39A5C5161E2}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58120000</ImageBase> Modified: trunk/jcl/packages/xml/JclStackTraceViewerExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclStackTraceViewerExpertDLL-L.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclStackTraceViewerExpertDLL-L.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclStackTraceViewerDLL" Type="L"> <Description>JCL Stack Trace Viewer</Description> <GUID>{851E8773-ADE0-479D-94F9-FE3AAB64A847}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58120000</ImageBase> Modified: trunk/jcl/packages/xml/JclThreadNameExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclThreadNameExpert-D.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclThreadNameExpert-D.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclThreadNameExpert" Design="-1"> <Description>JCL Thread Name IDE expert</Description> <GUID>{69899FCE-ECA9-4BE8-8511-AA0ADBE93EC4}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580A0000</ImageBase> Modified: trunk/jcl/packages/xml/JclThreadNameExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclThreadNameExpertDLL-L.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclThreadNameExpertDLL-L.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclThreadNameExpertDLL" Type="L"> <Description>JCL Thread Name IDE expert</Description> <GUID>{3C894FD6-550B-4C59-9FA8-F2C3EB03C568}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580A0000</ImageBase> Modified: trunk/jcl/packages/xml/JclUsesExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclUsesExpert-D.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclUsesExpert-D.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclUsesExpert" Design="-1"> <Description>JCL Uses Wizard</Description> <GUID>{76252B53-2477-4C6C-B7DA-1020496C7C72}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580C0000</ImageBase> Modified: trunk/jcl/packages/xml/JclUsesExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclUsesExpertDLL-L.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclUsesExpertDLL-L.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclUsesExpertDLL" Type="L"> <Description>JCL Uses Wizard</Description> <GUID>{23E5A735-D70C-4C34-B05C-E847A010077F}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580C0000</ImageBase> Modified: trunk/jcl/packages/xml/JclVcl-R.xml =================================================================== --- trunk/jcl/packages/xml/JclVcl-R.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclVcl-R.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclVcl" Design="0"> <Description>JEDI Code Library VCL package</Description> <GUID>{EB88BAFD-FD11-4F14-A6F6-9036D67B1F8F}</GUID> - <C5PFlags/> <C6PFlags/> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>48400000</ImageBase> Modified: trunk/jcl/packages/xml/JclVersionControlExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclVersionControlExpert-D.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclVersionControlExpert-D.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclVersionControlExpert" Design="-1"> <Description>JCL Integration of version control systems in the IDE</Description> <GUID>{25BAE228-713B-4418-BDC7-9327F48A663B}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580E0000</ImageBase> Modified: trunk/jcl/packages/xml/JclVersionControlExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclVersionControlExpertDLL-L.xml 2010-01-05 19:16:24 UTC (rev 3111) +++ trunk/jcl/packages/xml/JclVersionControlExpertDLL-L.xml 2010-01-06 12:33:33 UTC (rev 3112) @@ -2,9 +2,7 @@ <Package Name="JclVersionControlExpertDLL" Type="L"> <Description>JCL Integration of version control systems in the IDE</Description> <GUID>{8083ED65-4D9A-441F-B516-CFF42EE9DD0E}</GUID> - <C5PFlags/> <C6PFlags>-LUdesignide</C6PFlags> - <C5Libs/> <C6Libs/> <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580E0000</ImageBase> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-05 19:16:31
|
Revision: 3111 http://jcl.svn.sourceforge.net/jcl/?rev=3111&view=rev Author: outchy Date: 2010-01-05 19:16:24 +0000 (Tue, 05 Jan 2010) Log Message: ----------- The RootDir registry value is not available when the packages are manually installed. Thus the exception dialog template cannot be loaded. This template is now embedded as a resource to make the expert working in such a configuration. Modified Paths: -------------- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas Added Paths: ----------- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTemplates.RES trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTemplates.rc Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas 2010-01-04 22:59:52 UTC (rev 3110) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas 2010-01-05 19:16:24 UTC (rev 3111) @@ -98,20 +98,23 @@ JclOtaResources, JclOtaConsts, JclOtaTemplates, JclOtaRepositoryReg, JclOtaExcDlgWizard; +{$R JclOtaExcDlgTemplates.res} + //=== { TJclExcDlgExpert } =================================================== procedure TJclExcDlgExpert.CreateExceptionDialog( const Params: TJclOtaExcDlgParams); - function LoadTemplate(const FileName: string): string; + function LoadTemplate(const TemplatePath, FileName: string): string; var AFileStream: TFileStream; + AResourceStream: TResourceStream; StreamLength: Int64; AnsiResult: AnsiString; begin AnsiResult := ''; - if FileName <> '' then + if (TemplatePath <> '') and (FileName <> '') then begin - AFileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); + AFileStream := TFileStream.Create(TemplatePath + FileName, fmOpenRead or fmShareDenyWrite); try StreamLength := AFileStream.Size; SetLength(AnsiResult, StreamLength); @@ -119,6 +122,18 @@ finally AFileStream.Free; end; + end + else + if (FileName <> '') then + begin + AResourceStream := TResourceStream.Create(HInstance, StringReplace(FileName, '.', '', [rfReplaceAll]), 'EXCDLG'); + try + StreamLength := AResourceStream.Size; + SetLength(AnsiResult, StreamLength); + AResourceStream.ReadBuffer(AnsiResult[1], StreamLength); + finally + AResourceStream.Free; + end; end; Result := string(AnsiResult); end; @@ -135,26 +150,29 @@ begin OTAServices := GetOTAServices; JclSettingsKeyName := StrEnsureSuffix('\', OTAServices.GetBaseRegistryKey) + RegJclKey; - TemplatePath := PathAddSeparator(RegReadString(HKCU, JclSettingsKeyName, 'RootDir')) + TemplateSubDir; + TemplatePath := RegReadStringDef(HKCU, JclSettingsKeyName, JclRootDirValueName, ''); + if TemplatePath <> '' then + TemplatePath := PathAddSeparator(TemplatePath) + TemplateSubDir; + case Params.Language of bpDelphi32: begin FormExtension := JclBorDesignerFormExtension[Params.Designer]; - FormTemplate := TemplatePath + DelphiTemplate + FormExtension; + FormTemplate := DelphiTemplate + FormExtension; HeaderExtension := ''; HeaderTemplate := ''; SourceExtension := SourceExtensionPAS; - SourceTemplate := TemplatePath + DelphiTemplate + SourceExtension; + SourceTemplate := DelphiTemplate + SourceExtension; end; bpBCBuilder32: begin FormExtension := JclBorDesignerFormExtension[Params.Designer]; - FormTemplate := TemplatePath + BCBTemplate + FormExtension; + FormTemplate := BCBTemplate + FormExtension; HeaderExtension := SourceExtensionH; - HeaderTemplate := TemplatePath + BCBTemplate + HeaderExtension; + HeaderTemplate := BCBTemplate + HeaderExtension; SourceExtension := SourceExtensionCPP; - SourceTemplate := TemplatePath + BCBTemplate + SourceExtension; + SourceTemplate := BCBTemplate + SourceExtension; end; else begin @@ -167,9 +185,9 @@ end; end; - FormTemplate := LoadTemplate(FormTemplate); - HeaderTemplate := LoadTemplate(HeaderTemplate); - SourceTemplate := LoadTemplate(SourceTemplate); + FormTemplate := LoadTemplate(TemplatePath, FormTemplate); + HeaderTemplate := LoadTemplate(TemplatePath, HeaderTemplate); + SourceTemplate := LoadTemplate(TemplatePath, SourceTemplate); FormContent := ApplyTemplate(FormTemplate, Params); HeaderContent := ApplyTemplate(HeaderTemplate, Params); Added: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTemplates.RES =================================================================== (Binary files differ) Property changes on: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTemplates.RES ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTemplates.rc =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTemplates.rc (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTemplates.rc 2010-01-05 19:16:24 UTC (rev 3111) @@ -0,0 +1,5 @@ +ExceptDlgDelphi32pas EXCDLG LOADONCALL MOVEABLE DISCARDABLE "Templates\ExceptDlg.Delphi32.pas" +ExceptDlgDelphi32dfm EXCDLG LOADONCALL MOVEABLE DISCARDABLE "Templates\ExceptDlg.Delphi32.dfm" +ExceptDlgCBuilder32h EXCDLG LOADONCALL MOVEABLE DISCARDABLE "Templates\ExceptDlg.CBuilder32.h" +ExceptDlgCBuilder32cpp EXCDLG LOADONCALL MOVEABLE DISCARDABLE "Templates\ExceptDlg.CBuilder32.cpp" +ExceptDlgCBuilder32dfm EXCDLG LOADONCALL MOVEABLE DISCARDABLE "Templates\ExceptDlg.CBuilder32.dfm" \ No newline at end of file Property changes on: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTemplates.rc ___________________________________________________________________ Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-04 22:59:59
|
Revision: 3110 http://jcl.svn.sourceforge.net/jcl/?rev=3110&view=rev Author: outchy Date: 2010-01-04 22:59:52 +0000 (Mon, 04 Jan 2010) Log Message: ----------- empty directory. Removed Paths: ------------- trunk/jcl/experts/debug/dialog/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-04 22:58:22
|
Revision: 3109 http://jcl.svn.sourceforge.net/jcl/?rev=3109&view=rev Author: outchy Date: 2010-01-04 22:58:11 +0000 (Mon, 04 Jan 2010) Log Message: ----------- Move of the exception dialog related files to repository expert subdirectories: - jcl/expert/repository/ExceptionDialog/Icons contains the exception dialog graphics; - jcl/expert/repository/ExceptionDialog/Templates contains the exception dialog templates; - jcl/expert/repository/ExceptionDialog/StandardDialogs contains the standard exception dialogs. Modified Paths: -------------- trunk/jcl/docs/Readme.html trunk/jcl/docs/Readme.txt trunk/jcl/examples/windows/debug/reportconverter/ExceptionReportConverter.dpr trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsExample.dpr trunk/jcl/examples/windows/delphitools/dependencyviewer/DependView.dpr trunk/jcl/examples/windows/delphitools/peviewer/PeViewer.dpr trunk/jcl/examples/windows/delphitools/resfix/ResFix.dpr trunk/jcl/examples/windows/delphitools/screenjpg/ScreenJPG.dpr trunk/jcl/examples/windows/delphitools/toolhelpview/ToolHelpViewer.dpr trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIcons.RES trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIcons.rc trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas trunk/jcl/install/JclInstall.pas Added Paths: ----------- trunk/jcl/experts/repository/ExceptionDialog/CreateStdDialogs.dpr trunk/jcl/experts/repository/ExceptionDialog/Icons/ trunk/jcl/experts/repository/ExceptionDialog/Icons/ExceptDlg.ico trunk/jcl/experts/repository/ExceptionDialog/Icons/ExceptDlgCpp.ico trunk/jcl/experts/repository/ExceptionDialog/Icons/ExceptDlgMail.ico trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlg.dfm trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlg.pas trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlgMail.dfm trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlgMail.pas trunk/jcl/experts/repository/ExceptionDialog/Templates/ trunk/jcl/experts/repository/ExceptionDialog/Templates/ExceptDlg.CBuilder32.cpp trunk/jcl/experts/repository/ExceptionDialog/Templates/ExceptDlg.CBuilder32.dfm trunk/jcl/experts/repository/ExceptionDialog/Templates/ExceptDlg.CBuilder32.h trunk/jcl/experts/repository/ExceptionDialog/Templates/ExceptDlg.Delphi32.dfm trunk/jcl/experts/repository/ExceptionDialog/Templates/ExceptDlg.Delphi32.pas Removed Paths: ------------- trunk/jcl/experts/debug/dialog/CreateStdDialogs.dpr trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.cpp trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.dfm trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.h trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.dfm trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas trunk/jcl/experts/debug/dialog/ExceptDlg.dfm trunk/jcl/experts/debug/dialog/ExceptDlg.ico trunk/jcl/experts/debug/dialog/ExceptDlg.pas trunk/jcl/experts/debug/dialog/ExceptDlgCpp.ico trunk/jcl/experts/debug/dialog/ExceptDlgMail.dfm trunk/jcl/experts/debug/dialog/ExceptDlgMail.ico trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas Modified: trunk/jcl/docs/Readme.html =================================================================== --- trunk/jcl/docs/Readme.html 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/docs/Readme.html 2010-01-04 22:58:11 UTC (rev 3109) @@ -274,7 +274,41 @@ <h3><a name="files">Distribution content</a></h3> -<pre>Install.bat - Compile and run VCL version of the JCL Installer (Win32)<br>QInstall.bat - Compile and run CLX version of JCL Installer (Win32)<br>install.sh - Compile and run JCL Installer (Linux)<br>bin - Common place for sample application EXE files<br>lib - Common place for compiled units.<br>docs - Readme (this file) and other documents<br>docs\Readme.html - This file<br>docs\Experts.html - Readme file about the experts<br>docs\MPL-1.1.txt - The Mozilla Public Licence (MPL) version 1.1<br>docs\MPL FAQ.html - Frequently Asked Questions about the MPL<br>docs\cps.html - Cross Platform Strategy<br>experts - JCL IDE experts source code<br>experts\debug - JCL Debug IDE expert for using JclDebug unit<br>experts\debug\dialog - Application exception dialog replacement<br>experts\debug\simdview - Low-level debug window for XMM registers<br>experts\debug\threadnames - IDE expert showing class names for debugged threads<br>experts\debug\tools - Tools for creating files with JCL debug information<br>experts\favfolders - Favorite folders combobox in IDE open/save file dialogs<br>experts\projectanalyzer - Project Analyzer IDE expert<br>experts\stacktraceviewer - stack trace expert<br>experts\useswizard - JCL uses wizard<br>experts\versioncontrol - Integration of TortoiseCVS and TortoiseSVN in the IDE<br>examples - JCL example applications<br>examples\common - CLX and Win32 example applications in Delphi<br>examples\dotnet - JCL example applications for Delphi.net<br>examples\windows - JCL example applications for Delphi.Win32<br>examples\windows\delphitools - Collection of system tools using JCL<br>help - Help file (distributed in a separate archive)<br>install - Installer source code<br>packages - JCL package sources<br>source - JCL source code<br></pre> +<pre> +Install.bat - Compile and run VCL version of the JCL Installer (Win32) +QInstall.bat - Compile and run CLX version of JCL Installer (Win32) +install.sh - Compile and run JCL Installer (Linux) +bin - Common place for sample application EXE files +lib - Common place for compiled units. +docs - Readme (this file) and other documents +docs\Readme.html - This file +docs\Experts.html - Readme file about the experts +docs\MPL-1.1.txt - The Mozilla Public Licence (MPL) version 1.1 +docs\MPL FAQ.html - Frequently Asked Questions about the MPL +docs\cps.html - Cross Platform Strategy +experts - JCL IDE experts source code +experts\debug - JCL Debug IDE expert for using JclDebug unit +experts\debug\simdview - Low-level debug window for XMM registers +experts\debug\threadnames - IDE expert showing class names for debugged threads +experts\debug\tools - Tools for creating files with JCL debug information +experts\favfolders - Favorite folders combobox in IDE open/save file dialogs +experts\projectanalyzer - Project Analyzer IDE expert +experts\repository - Repository expert +experts\repository\ExceptionDialog - Repository expert for exception dialogs +experts\repository\ExceptionDialog\StandardDialogs - standard exception dialogs +experts\stacktraceviewer - stack trace expert +experts\useswizard - JCL uses wizard +experts\versioncontrol - Integration of TortoiseCVS and TortoiseSVN in the IDE +examples - JCL example applications +examples\common - CLX and Win32 example applications in Delphi +examples\dotnet - JCL example applications for Delphi.net +examples\windows - JCL example applications for Delphi.Win32 +examples\windows\delphitools - Collection of system tools using JCL +help - Help file (distributed in a separate archive) +install - Installer source code +packages - JCL package sources +source - JCL source code +</pre> <hr><br> Modified: trunk/jcl/docs/Readme.txt =================================================================== --- trunk/jcl/docs/Readme.txt 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/docs/Readme.txt 2010-01-04 22:58:11 UTC (rev 3109) @@ -188,13 +188,14 @@ docs\cps.html - Cross Platform Strategy experts - JCL IDE experts source code experts\debug - JCL Debug IDE expert for using JclDebug unit -experts\debug\dialog - Application exception dialog replacement experts\debug\simdview - Low-level debug window for XMM registers experts\debug\threadnames - IDE expert showing class names for debugged threads experts\debug\tools - Tools for creating files with JCL debug information experts\favfolders - Favorite folders combobox in IDE open/save file dialogs experts\projectanalyzer - Project Analyzer IDE expert experts\repository - Repository expert +experts\repository\ExceptionDialog - Repository expert for exception dialogs +experts\repository\ExceptionDialog\StandardDialogs - standard exception dialogs experts\stacktraceviewer - stack trace expert experts\useswizard - JCL uses wizard experts\versioncontrol - Integration of TortoiseCVS and TortoiseSVN in the IDE Modified: trunk/jcl/examples/windows/debug/reportconverter/ExceptionReportConverter.dpr =================================================================== --- trunk/jcl/examples/windows/debug/reportconverter/ExceptionReportConverter.dpr 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/examples/windows/debug/reportconverter/ExceptionReportConverter.dpr 2010-01-04 22:58:11 UTC (rev 3109) @@ -5,7 +5,7 @@ uses Forms, formConverter in 'formConverter.pas' {frmConverter}, - ExceptDlgMail in '..\..\..\..\EXPERTS\DEBUG\DIALOG\EXCEPTDLGMAIL.pas' {ExceptionDialogMail}; + ExceptDlgMail in '..\..\..\..\experts\repository\ExceptionDialog\StandardDialogs\ExceptDlgMail.pas' {ExceptionDialogMail}; {$R *.res} {$R ..\..\..\..\source\windows\JclCommCtrlAsInvoker.res} Modified: trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsExample.dpr =================================================================== --- trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsExample.dpr 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsExample.dpr 2010-01-04 22:58:11 UTC (rev 3109) @@ -5,7 +5,7 @@ uses Forms, StackTrackDLLsDemoMain in 'StackTrackDLLsDemoMain.pas' {MainForm}, - ExceptDlg in '..\..\..\..\experts\debug\dialog\ExceptDlg.pas' {ExceptionDialog}; + ExceptDlg in '..\..\..\..\experts\repository\ExceptionDialog\StandardDialogs\ExceptDlg.pas' {ExceptionDialog}; {$R *.res} {$R ..\..\..\..\source\windows\JclCommCtrlAsInvoker.res} Modified: trunk/jcl/examples/windows/delphitools/dependencyviewer/DependView.dpr =================================================================== --- trunk/jcl/examples/windows/delphitools/dependencyviewer/DependView.dpr 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/examples/windows/delphitools/dependencyviewer/DependView.dpr 2010-01-04 22:58:11 UTC (rev 3109) @@ -11,7 +11,7 @@ ToolsUtils in '..\Common\ToolsUtils.pas', About in '..\Common\About.pas' {AboutBox}, FindDlg in '..\Common\FindDlg.pas' {FindTextForm}, - ExceptDlg in '..\..\..\..\experts\debug\dialog\ExceptDlg.pas' {ExceptionDialog}; + ExceptDlg in '..\..\..\..\experts\repository\ExceptionDialog\StandardDialogs\ExceptDlg.pas' {ExceptionDialog}; {$R *.RES} {$R ..\..\..\..\source\windows\JclCommCtrlAsInvoker.res} Modified: trunk/jcl/examples/windows/delphitools/peviewer/PeViewer.dpr =================================================================== --- trunk/jcl/examples/windows/delphitools/peviewer/PeViewer.dpr 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/examples/windows/delphitools/peviewer/PeViewer.dpr 2010-01-04 22:58:11 UTC (rev 3109) @@ -17,7 +17,7 @@ About in '..\Common\About.pas' {AboutBox}, PeGenDef in 'PeGenDef.pas' {PeGenDefChild}, FindDlg in '..\Common\FindDlg.pas' {FindTextForm}, - ExceptDlg in '..\..\..\..\experts\debug\dialog\ExceptDlg.pas' {ExceptionDialog}, + ExceptDlg in '..\..\..\..\experts\repository\ExceptionDialog\StandardDialogs\ExceptDlg.pas' {ExceptionDialog}, SHDocVw_TLB in '..\Common\SHDocVw_TLB.pas'; {$R *.TLB} Modified: trunk/jcl/examples/windows/delphitools/resfix/ResFix.dpr =================================================================== --- trunk/jcl/examples/windows/delphitools/resfix/ResFix.dpr 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/examples/windows/delphitools/resfix/ResFix.dpr 2010-01-04 22:58:11 UTC (rev 3109) @@ -7,7 +7,7 @@ ResFixMain in 'ResFixMain.pas' {MainForm}, About in '..\Common\About.pas' {AboutBox}, ToolsUtils in '..\Common\ToolsUtils.pas', - ExceptDlg in '..\..\..\..\experts\debug\dialog\ExceptDlg.pas' {ExceptionDialog}; + ExceptDlg in '..\..\..\..\experts\repository\ExceptionDialog\StandardDialogs\ExceptDlg.pas' {ExceptionDialog}; {$R *.RES} {$R ..\..\..\..\source\windows\JclCommCtrlAsInvoker.res} Modified: trunk/jcl/examples/windows/delphitools/screenjpg/ScreenJPG.dpr =================================================================== --- trunk/jcl/examples/windows/delphitools/screenjpg/ScreenJPG.dpr 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/examples/windows/delphitools/screenjpg/ScreenJPG.dpr 2010-01-04 22:58:11 UTC (rev 3109) @@ -7,7 +7,7 @@ Main in 'Main.pas' {MainForm}, About in '..\Common\About.pas' {AboutBox}, ToolsUtils in '..\Common\ToolsUtils.pas', - ExceptDlg in '..\..\..\..\experts\debug\dialog\ExceptDlg.pas' {ExceptionDialog}; + ExceptDlg in '..\..\..\..\experts\repository\ExceptionDialog\StandardDialogs\ExceptDlg.pas' {ExceptionDialog}; {$R *.RES} {$R ..\..\..\..\source\windows\JclCommCtrlAsInvoker.res} Modified: trunk/jcl/examples/windows/delphitools/toolhelpview/ToolHelpViewer.dpr =================================================================== --- trunk/jcl/examples/windows/delphitools/toolhelpview/ToolHelpViewer.dpr 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/examples/windows/delphitools/toolhelpview/ToolHelpViewer.dpr 2010-01-04 22:58:11 UTC (rev 3109) @@ -16,7 +16,7 @@ ToolsUtils in '..\Common\ToolsUtils.pas', About in '..\Common\About.pas' {AboutBox}, FindDlg in '..\Common\FindDlg.pas' {FindForm}, - ExceptDlg in '..\..\..\..\experts\debug\dialog\ExceptDlg.pas' {ExceptionDialog}; + ExceptDlg in '..\..\..\..\experts\repository\ExceptionDialog\StandardDialogs\ExceptDlg.pas' {ExceptionDialog}; {$R *.RES} {$R ..\..\..\..\source\windows\JclCommCtrlAsInvoker.res} Deleted: trunk/jcl/experts/debug/dialog/CreateStdDialogs.dpr =================================================================== --- trunk/jcl/experts/debug/dialog/CreateStdDialogs.dpr 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/experts/debug/dialog/CreateStdDialogs.dpr 2010-01-04 22:58:11 UTC (rev 3109) @@ -1,116 +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 CreateStdDialogs.dpr. } -{ } -{ The Initial Developer of the Original Code is Florent Ouchet } -{ <outchy att users dott sourceforge dott net> } -{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All rights reserved. } -{ } -{ Contributors: } -{ } -{**************************************************************************************************} -{ } -{ Last modified: $Date:: $ } -{ Revision: $Rev:: $ } -{ Author: $Author:: $ } -{ } -{**************************************************************************************************} - -program CreateStdDialogs; - -{$APPTYPE CONSOLE} - -uses - SysUtils, - Classes, - JclBorlandTools, - JclOtaTemplates in '..\..\repository\JclOtaTemplates.pas', - JclOtaExcDlgRepository in '..\..\repository\JclOtaExcDlgRepository.pas'; - -function LoadTemplate(const FileName: TFileName): string; -var - AFileStream: TFileStream; - Buffer: AnsiString; -begin - AFileStream := TFileStream.Create(FileName, fmOpenRead, fmShareDenyWrite); - try - SetLength(Buffer, AFileStream.Size); - AFileStream.ReadBuffer(Buffer[1], AFileStream.Size); - Result := string(Buffer); - finally - AFileStream.Free; - end; -end; - -procedure SaveFile(const FileName: TFileName; const FileContent: string); -var - AFileStream: TFileStream; - Buffer: AnsiString; -begin - AFileStream := TFileStream.Create(FileName, fmOpenWrite, fmShareExclusive); - try - Buffer := AnsiString(FileContent); - AFileStream.Size := 0; - AFileStream.Write(Buffer[1], Length(Buffer)); - finally - AFileStream.Free; - end; -end; - -var - Params: TJclOtaExcDlgParams; -begin - try - Params := TJclOtaExcDlgParams.Create; - try - Params.ActivePersonality := bpDelphi32; - Params.FormName := 'ExceptionDialog'; - Params.FormAncestor := 'TForm'; - Params.ModalDialog := True; - Params.SendEMail := False; - Params.SizeableDialog := True; - Params.AutoScrollBars := True; - Params.DelayedTrace := True; - Params.HookDll := True; - Params.LogFile := True; - Params.LogFileName := '''filename.log'''; - Params.OSInfo := True; - Params.ModuleList := True; - Params.ActiveControls := True; - Params.MainThreadOnly := False; - Params.TraceAllExceptions := False; - Params.StackList := True; - Params.RawData := True; - Params.ModuleName := True; - Params.ModuleOffset := True; - Params.CodeDetails := True; - Params.VirtualAddress := True; - - SaveFile('ExceptDlg.pas', GetFinalSourceContent(ApplyTemplate(LoadTemplate('ExceptDlg.Delphi32.pas'), Params), 'ExceptDlg', 'ExceptionDialog', 'TForm')); - SaveFile('ExceptDlg.dfm', GetFinalSourceContent(ApplyTemplate(LoadTemplate('ExceptDlg.Delphi32.dfm'), Params), 'ExceptDlg', 'ExceptionDialog', 'TForm')); - - Params.FormName := 'ExceptionDialogMail'; - Params.SendEMail := True; - Params.EMailAddress := '''name@domain.ext'''; - Params.EMailSubject := '''email subject'''; - - SaveFile('ExceptDlgMail.pas', GetFinalSourceContent(ApplyTemplate(LoadTemplate('ExceptDlg.Delphi32.pas'), Params), 'ExceptDlgMail', 'ExceptionDialogMail', 'TForm')); - SaveFile('ExceptDlgMail.dfm', GetFinalSourceContent(ApplyTemplate(LoadTemplate('ExceptDlg.Delphi32.dfm'), Params), 'ExceptDlgMail', 'ExceptionDialogMail', 'TForm')); - finally - Params.Free; - end; - except - on E:Exception do - Writeln(E.Classname, ': ', E.Message); - end; -end. Deleted: trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.cpp =================================================================== --- trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.cpp 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.cpp 2010-01-04 22:58:11 UTC (rev 3109) @@ -1 +0,0 @@ -TODO \ No newline at end of file Deleted: trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.dfm =================================================================== --- trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.dfm 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.dfm 2010-01-04 22:58:11 UTC (rev 3109) @@ -1 +0,0 @@ -TODO \ No newline at end of file Deleted: trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.h =================================================================== --- trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.h 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.h 2010-01-04 22:58:11 UTC (rev 3109) @@ -1 +0,0 @@ -TODO \ No newline at end of file Deleted: trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.dfm =================================================================== --- trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.dfm 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.dfm 2010-01-04 22:58:11 UTC (rev 3109) @@ -1,118 +0,0 @@ -object %FORMNAME%: T%FORMNAME% - Left = 310 - Top = 255 - AutoScroll = False - BorderIcons = [biSystemMenu] -%ifnot SizeableDialog BorderStyle = bsDialog%endif - Caption = '%FORMNAME%' - ClientHeight = 283 - ClientWidth = 483 - Color = clBtnFace - Constraints.MinWidth = 200 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - KeyPreview = True - OldCreateOrder = False - Position = poScreenCenter - ShowHint = True - OnCreate = FormCreate - OnDestroy = FormDestroy - OnKeyDown = FormKeyDown - OnPaint = FormPaint - OnResize = FormResize - OnShow = FormShow - PixelsPerInch = 96 - TextHeight = 13 - object BevelDetails: TBevel - Left = 3 - Top = 119 - Width = 473 - Height = 9 - Anchors = [akLeft, akTop, akRight] - Shape = bsTopLine - end -%if SendEMail - object SendBtn: TButton - Left = 403 - Top = 32 - Width = 75 - Height = 25 - Hint = 'Send bug report using default mail client' - Anchors = [akTop, akRight] - Caption = '&Send' - TabOrder = 0 - OnClick = SendBtnClick - end%endif -%if LogSaveDialog - object SaveBtn: TButton - Left = 403 - Top = 60 - Width = 75 - Height = 25 - Hint = 'Save bug report' - Anchors = [akTop, akRight] - Caption = '&Save' - TabOrder = 0 - OnClick = SaveBtnClick - end%endif - object TextMemo: TMemo - Left = 56 - Top = 8 - Width = 332 - Height = 105 - Hint = 'Use Ctrl+C to copy the report to the clipboard' - Anchors = [akLeft, akTop, akRight] - BorderStyle = bsNone - Ctl3D = True - ParentColor = True - ParentCtl3D = False - ReadOnly = True - TabOrder = 1 - WantReturns = False - end - object OkBtn: TButton - Left = 403 - Top = 4 - Width = 75 - Height = 25 - Anchors = [akTop, akRight] - Caption = '&OK' - Default = True - ModalResult = 1 - TabOrder = 2 - end - object DetailsBtn: TButton - Left = 403 - Top = 88 - Width = 75 - Height = 25 - Hint = 'Show or hide additional information|' - Anchors = [akTop, akRight] - Caption = '&Details' - Enabled = False - TabOrder = 3 - OnClick = DetailsBtnClick - end - object DetailsMemo: TMemo - Left = 4 - Top = 129 - Width = 472 - Height = 147 - Anchors = [akLeft, akTop, akRight, akBottom] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Courier New' - Font.Style = [] - ParentColor = True - ParentFont = False - ReadOnly = True - ScrollBars = ssBoth - TabOrder = 4 - WantReturns = False - WordWrap = False - end -end Deleted: trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas =================================================================== --- trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas 2010-01-04 22:58:11 UTC (rev 3109) @@ -1,813 +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 ExceptDlg.pas. } -{ } -{ The Initial Developer of the Original Code is Petr Vones. } -{ Portions created by Petr Vones are Copyright (C) of Petr Vones. } -{ } -{**************************************************************************************************} -{ } -{ Last modified: $Date:: $ } -{ Revision: $Rev:: $ } -{ Author: $Author:: $ } -{ } -{**************************************************************************************************} - -unit %MODULENAME%; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, ExtCtrls, AppEvnts, - JclSysUtils,%if SendEMail JclMapi,%endif %if UnitVersioning JclUnitVersioning, JclUnitVersioningProviders,%endif JclDebug; - -const - UM_CREATEDETAILS = WM_USER + $100; - -type - T%FORMNAME% = class(%ANCESTORNAME%) -%if SendEMail SendBtn: TButton;%endif -%if LogSaveDialog SaveBtn: TButton;%endif - TextMemo: TMemo; - OkBtn: TButton; - DetailsBtn: TButton; - BevelDetails: TBevel; - DetailsMemo: TMemo; -%if SendEMail procedure SendBtnClick(Sender: TObject);%endif -%if LogSaveDialog procedure SaveBtnClick(Sender: TObject);%endif - procedure FormPaint(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure DetailsBtnClick(Sender: TObject); - procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); - procedure FormDestroy(Sender: TObject); - procedure FormResize(Sender: TObject); - private - private - FDetailsVisible: Boolean; - FThreadID: DWORD; -%if ActiveControls FLastActiveControl: TWinControl;%endif - FNonDetailsHeight: Integer; - FFullHeight: Integer; -%if LogFile procedure SaveToLogFile(const FileName: TFileName);%endif - function GetReportAsText: string; - procedure SetDetailsVisible(const Value: Boolean); - procedure UMCreateDetails(var Message: TMessage); message UM_CREATEDETAILS; - protected - procedure AfterCreateDetails; dynamic; - procedure BeforeCreateDetails; dynamic; - procedure CreateDetails; dynamic; - procedure CreateReport; - function ReportMaxColumns: Integer; virtual; - function ReportNewBlockDelimiterChar: Char; virtual; - procedure NextDetailBlock; - procedure UpdateTextMemoScrollbars; - public - procedure CopyReportToClipboard; - class procedure ExceptionHandler(Sender: TObject; E: Exception); - class procedure ExceptionThreadHandler(Thread: TJclDebugThread); - class procedure ShowException(E: TObject; Thread: TJclDebugThread); - property DetailsVisible: Boolean read FDetailsVisible - write SetDetailsVisible; - property ReportAsText: string read GetReportAsText; - end; - - T%FORMNAME%Class = class of T%FORMNAME%; - -var - %FORMNAME%Class: T%FORMNAME%Class = T%FORMNAME%; - -implementation - -{$R *.dfm} - -uses - ClipBrd, Math, - JclBase, JclFileUtils, JclHookExcept, JclPeImage, JclStrings, JclSysInfo, JclWin32; - -resourcestring - RsAppError = '%s - application error'; - RsExceptionClass = 'Exception class: %s'; - RsExceptionMessage = 'Exception message: %s'; - RsExceptionAddr = 'Exception address: %p'; - RsStackList = 'Stack list, generated %s'; - RsModulesList = 'List of loaded modules:'; - RsOSVersion = 'System : %s %s, Version: %d.%d, Build: %x, "%s"'; - RsProcessor = 'Processor: %s, %s, %d MHz'; - RsMemory = 'Memory: %d; free %d'; - RsScreenRes = 'Display : %dx%d pixels, %d bpp'; - RsActiveControl = 'Active Controls hierarchy:'; - RsThread = 'Thread: %s'; - RsMissingVersionInfo = '(no module version info)'; - RsExceptionStack = 'Exception stack'; - RsMainThreadID = 'Main thread ID = %d'; - RsExceptionThreadID = 'Exception thread ID = %d'; - RsMainThreadCallStack = 'Call stack for main thread'; - RsThreadCallStack = 'Call stack for thread %d %s "%s"'; - RsExceptionThreadCallStack = 'Call stack for exception thread %s'; - RsErrorMessage = 'There was an error during the execution of this program.' + NativeLineBreak + - 'The application might become unstable and even useless.' + NativeLineBreak + - 'It''s recommended that you save your work and close this application.' + NativeLineBreak + NativeLineBreak; - RsDetailsIntro = 'Exception log with detailed tech info. Generated on %s.' + NativeLineBreak + - 'You may send it to the application vendor, helping him to understand what had happened.' + NativeLineBreak + - ' Application title: %s' + NativeLineBreak + - ' Application file: %s'; -%if UnitVersioning RsUnitVersioningIntro = 'Unit versioning information:';%endif - -var - %FORMNAME%: T%FORMNAME%; - -//============================================================================ -// Helper routines -//============================================================================ - -// SortModulesListByAddressCompare -// sorts module by address -function SortModulesListByAddressCompare(List: TStringList; - Index1, Index2: Integer): Integer; -var - Addr1, Addr2: Cardinal; -begin - Addr1 := Cardinal(List.Objects[Index1]); - Addr2 := Cardinal(List.Objects[Index2]); - if Addr1 > Addr2 then - Result := 1 - else if Addr1 < Addr2 then - Result := -1 - else - Result := 0; -end; - -//============================================================================ -// TApplication.HandleException method code hooking for exceptions from DLLs -//============================================================================ - -// We need to catch the last line of TApplication.HandleException method: -// [...] -// end else -// SysUtils.ShowException(ExceptObject, ExceptAddr); -// end; - -procedure HookShowException(ExceptObject: TObject; ExceptAddr: Pointer); -begin - if JclValidateModuleAddress(ExceptAddr) - and (ExceptObject.InstanceSize >= Exception.InstanceSize) then - T%FORMNAME%.ExceptionHandler(nil, Exception(ExceptObject)) - else - SysUtils.ShowException(ExceptObject, ExceptAddr); -end; - -//---------------------------------------------------------------------------- - -function HookTApplicationHandleException: Boolean; -const - CallOffset = $86; - CallOffsetDebug = $94; -type - PCALLInstruction = ^TCALLInstruction; - TCALLInstruction = packed record - Call: Byte; - Address: Integer; - end; -var - TApplicationHandleExceptionAddr, SysUtilsShowExceptionAddr: Pointer; - CALLInstruction: TCALLInstruction; - CallAddress: Pointer; - WrittenBytes: Cardinal; - - function CheckAddressForOffset(Offset: Cardinal): Boolean; - begin - try - CallAddress := Pointer(Cardinal(TApplicationHandleExceptionAddr) + Offset); - CALLInstruction.Call := $E8; - Result := PCALLInstruction(CallAddress)^.Call = CALLInstruction.Call; - if Result then - begin - if IsCompiledWithPackages then - Result := PeMapImgResolvePackageThunk(Pointer(Integer(CallAddress) + Integer(PCALLInstruction(CallAddress)^.Address) + SizeOf(CALLInstruction))) = SysUtilsShowExceptionAddr - else - Result := PCALLInstruction(CallAddress)^.Address = Integer(SysUtilsShowExceptionAddr) - Integer(CallAddress) - SizeOf(CALLInstruction); - end; - except - Result := False; - end; - end; - -begin - TApplicationHandleExceptionAddr := PeMapImgResolvePackageThunk(@TApplication.HandleException); - SysUtilsShowExceptionAddr := PeMapImgResolvePackageThunk(@SysUtils.ShowException); - if Assigned(TApplicationHandleExceptionAddr) and Assigned(SysUtilsShowExceptionAddr) then - begin - Result := CheckAddressForOffset(CallOffset) or CheckAddressForOffset(CallOffsetDebug); - if Result then - begin - CALLInstruction.Address := Integer(@HookShowException) - Integer(CallAddress) - SizeOf(CALLInstruction); - Result := WriteProtectedMemory(CallAddress, @CallInstruction, SizeOf(CallInstruction), WrittenBytes); - end; - end - else - Result := False; -end; - -//============================================================================ -// Exception dialog -//============================================================================ - -var - ExceptionShowing: Boolean; - -//=== { T%FORMNAME% } =============================================== - -procedure T%FORMNAME%.AfterCreateDetails; -begin -%if SendEMail SendBtn.Enabled := True;%endif -%if LogSaveDialog SaveBtn.Enabled := True;%endif -end; - -//---------------------------------------------------------------------------- - -procedure T%FORMNAME%.BeforeCreateDetails; -begin -%if SendEMail SendBtn.Enabled := False;%endif -%if LogSaveDialog SaveBtn.Enabled := False;%endif -end; - -//---------------------------------------------------------------------------- - -function T%FORMNAME%.ReportMaxColumns: Integer; -begin - Result := 78; -end; - -%if SendEMail//---------------------------------------------------------------------------- - -procedure T%FORMNAME%.SendBtnClick(Sender: TObject); -begin - with TJclEmail.Create do - try - ParentWnd := Application.Handle; - Recipients.Add('%StrValue EMailAddress'); - Subject := '%StrValue EMailSubject'; - Body := AnsiString(ReportAsText); - SaveTaskWindows; - try - Send(True); - finally - RestoreTaskWindows; - end; - finally - Free; - end; -end; -%endif - -%if LogSaveDialog//---------------------------------------------------------------------------- - -procedure T%FORMNAME%.SaveBtnClick(Sender: TObject); -begin - with TSaveDialog.Create(Self) do - try - DefaultExt := '.log'; - FileName := %StrValue LogFileName; - Filter := 'Log Files (*.log)|*.log|All files (*.*)|*.*'; - Title := 'Save log as...'; - Options := [ofHideReadOnly,ofPathMustExist,ofNoReadOnlyReturn,ofEnableSizing,ofDontAddToRecent]; - if Execute then - SaveToLogFile(FileName); - finally - Free; - end; -end; -%endif - -//---------------------------------------------------------------------------- - -procedure T%FORMNAME%.CopyReportToClipboard; -begin - ClipBoard.AsText := ReportAsText; -end; - -//---------------------------------------------------------------------------- - -procedure T%FORMNAME%.CreateDetails; -begin - Screen.Cursor := crHourGlass; - DetailsMemo.Lines.BeginUpdate; - try - CreateReport; -%if LogFile -%if AutoSaveWorkingDirectory SaveToLogFile(%StrValue LogFileName);%endif -%if AutoSaveApplicationDirectory SaveToLogFile(PathAddSeparator(ExtractFilePath(Application.ExeName)) + %StrValue LogFileName);%endif -%if AutoSaveDesktopDirectory SaveToLogFile(PathAddSeparator(GetDesktopFolder) + %StrValue LogFileName);%endif -%endif - DetailsMemo.SelStart := 0; - SendMessage(DetailsMemo.Handle, EM_SCROLLCARET, 0, 0); - AfterCreateDetails; - finally - DetailsMemo.Lines.EndUpdate; - OkBtn.Enabled := True; - DetailsBtn.Enabled := True; - OkBtn.SetFocus; - Screen.Cursor := crDefault; - end; -end; - -//---------------------------------------------------------------------------- - -procedure T%FORMNAME%.CreateReport; -var -%if ModuleList SL: TStringList; - I: Integer; - ModuleName: TFileName; - NtHeaders32: PImageNtHeaders32; - NtHeaders64: PImageNtHeaders64; - ModuleBase: Cardinal; - ImageBaseStr: string;%endif -%if ActiveControls C: TWinControl;%endif -%if OSInfo CpuInfo: TCpuInfo; - ProcessorDetails: string;%endif -%if StackList StackList: TJclStackInfoList; -%if ReportAllThreads ThreadList: TJclDebugThreadList; - AThreadID: DWORD;%endif %endif - PETarget: TJclPeTarget; -%if UnitVersioning UnitVersioning: TUnitVersioning; - UnitVersioningModule: TUnitVersioningModule; - UnitVersion: TUnitVersion; - ModuleIndex, UnitIndex: Integer;%endif -begin - DetailsMemo.Lines.Add(Format(LoadResString(@RsMainThreadID), [MainThreadID])); - DetailsMemo.Lines.Add(Format(LoadResString(@RsExceptionThreadID), [MainThreadID])); - NextDetailBlock; - - SL := TStringList.Create; - try -%if StackList // Except stack list - StackList := JclGetExceptStackList(FThreadID); - if Assigned(StackList) then - begin - DetailsMemo.Lines.Add(RsExceptionStack); - DetailsMemo.Lines.Add(Format(LoadResString(@RsStackList), [DateTimeToStr(StackList.TimeStamp)])); - StackList.AddToStrings(DetailsMemo.Lines, %BoolValue ModuleName, %BoolValue ModuleOffset, %BoolValue CodeDetails, %BoolValue VirtualAddress); - NextDetailBlock; - end; - -%if ReportMainThread // Main thread - StackList := JclCreateThreadStackTraceFromID(%BoolValue RawData, MainThreadID); - if Assigned(StackList) then - begin - DetailsMemo.Lines.Add(LoadResString(@RsMainThreadCallStack)); - DetailsMemo.Lines.Add(Format(LoadResString(@RsStackList), [DateTimeToStr(StackList.TimeStamp)])); - StackList.AddToStrings(DetailsMemo.Lines, %BoolValue ModuleName, %BoolValue ModuleOffset, %BoolValue CodeDetails, %BoolValue VirtualAddress); - NextDetailBlock; - end;%endif -%if ReportExceptionThread // Exception thread - if MainThreadID <> FThreadID then - begin - StackList := JclCreateThreadStackTraceFromID(%BoolValue RawData, FThreadID); - if Assigned(StackList) then - begin - DetailsMemo.Lines.Add(Format(LoadResString(@RsExceptionThreadCallStack), [FThreadID])); - DetailsMemo.Lines.Add(Format(LoadResString(@RsStackList), [DateTimeToStr(StackList.TimeStamp)])); - StackList.AddToStrings(DetailsMemo.Lines, %BoolValue ModuleName, %BoolValue ModuleOffset, %BoolValue CodeDetails, %BoolValue VirtualAddress); - NextDetailBlock; - end; - end;%endif -%if ReportAllThreads // All threads - ThreadList := JclDebugThreadList; - ThreadList.Lock.Enter; // avoid modifications - try - for I := 0 to ThreadList.ThreadIDCount - 1 do - begin - AThreadID := ThreadList.ThreadIDs[I]; - if (AThreadID <> FThreadID) then - begin - StackList := JclCreateThreadStackTrace(%BoolValue RawData, ThreadList.ThreadHandles[I]); - if Assigned(StackList) then - begin - DetailsMemo.Lines.Add(Format(RsThreadCallStack, [AThreadID, ThreadList.ThreadInfos[AThreadID], ThreadList.ThreadNames[AThreadID]])); - DetailsMemo.Lines.Add(Format(LoadResString(@RsStackList), [DateTimeToStr(StackList.TimeStamp)])); - StackList.AddToStrings(DetailsMemo.Lines, %BoolValue ModuleName, %BoolValue ModuleOffset, %BoolValue CodeDetails, %BoolValue VirtualAddress); - NextDetailBlock; - end; - end; - end; - finally - ThreadList.Lock.Leave; - end;%endif -%endif - -%if OSInfo // System and OS information - DetailsMemo.Lines.Add(Format(RsOSVersion, [GetWindowsVersionString, NtProductTypeString, - Win32MajorVersion, Win32MinorVersion, Win32BuildNumber, Win32CSDVersion])); - GetCpuInfo(CpuInfo); - ProcessorDetails := Format(RsProcessor, [CpuInfo.Manufacturer, CpuInfo.CpuName, - RoundFrequency(CpuInfo.FrequencyInfo.NormFreq)]); - if not CpuInfo.IsFDIVOK then - ProcessorDetails := ProcessorDetails + ' [FDIV Bug]'; - if CpuInfo.ExMMX then - ProcessorDetails := ProcessorDetails + ' MMXex'; - if CpuInfo.MMX then - ProcessorDetails := ProcessorDetails + ' MMX'; - if sse in CpuInfo.SSE then - ProcessorDetails := ProcessorDetails + ' SSE'; - if sse2 in CpuInfo.SSE then - ProcessorDetails := ProcessorDetails + ' SSE2'; - if sse3 in CpuInfo.SSE then - ProcessorDetails := ProcessorDetails + ' SSE3'; - if ssse3 in CpuInfo.SSE then - ProcessorDetails := ProcessorDetails + ' SSSE3'; - if sse4A in CpuInfo.SSE then - ProcessorDetails := ProcessorDetails + ' SSE4A'; - if sse4B in CpuInfo.SSE then - ProcessorDetails := ProcessorDetails + ' SSE4B'; - if sse5 in CpuInfo.SSE then - ProcessorDetails := ProcessorDetails + ' SSE'; - if CpuInfo.Ex3DNow then - ProcessorDetails := ProcessorDetails + ' 3DNow!ex'; - if CpuInfo._3DNow then - ProcessorDetails := ProcessorDetails + ' 3DNow!'; - if CpuInfo.Is64Bits then - ProcessorDetails := ProcessorDetails + ' 64 bits'; - if CpuInfo.DEPCapable then - ProcessorDetails := ProcessorDetails + ' DEP'; - DetailsMemo.Lines.Add(ProcessorDetails); - DetailsMemo.Lines.Add(Format(RsMemory, [GetTotalPhysicalMemory div 1024 div 1024, - GetFreePhysicalMemory div 1024 div 1024])); - DetailsMemo.Lines.Add(Format(RsScreenRes, [Screen.Width, Screen.Height, GetBPP])); - NextDetailBlock; -%endif - -%if ModuleList // Modules list - if LoadedModulesList(SL, GetCurrentProcessId) then - begin -%if UnitVersioning UnitVersioning := GetUnitVersioning; - UnitVersioning.RegisterProvider(TJclDefaultUnitVersioningProvider);%endif - DetailsMemo.Lines.Add(RsModulesList); - SL.CustomSort(SortModulesListByAddressCompare); - for I := 0 to SL.Count - 1 do - begin - ModuleName := SL[I]; - ModuleBase := Cardinal(SL.Objects[I]); - DetailsMemo.Lines.Add(Format('[%.8x] %s', [ModuleBase, ModuleName])); - PETarget := PeMapImgTarget(Pointer(ModuleBase)); - NtHeaders32 := nil; - NtHeaders64 := nil; - if PETarget = taWin32 then - NtHeaders32 := PeMapImgNtHeaders32(Pointer(ModuleBase)) - else - if PETarget = taWin64 then - NtHeaders64 := PeMapImgNtHeaders64(Pointer(ModuleBase)); - if (NtHeaders32 <> nil) and (NtHeaders32^.OptionalHeader.ImageBase <> ModuleBase) then - ImageBaseStr := Format('<%.8x> ', [NtHeaders32^.OptionalHeader.ImageBase]) - else - if (NtHeaders64 <> nil) and (NtHeaders64^.OptionalHeader.ImageBase <> ModuleBase) then - ImageBaseStr := Format('<%.8x> ', [NtHeaders64^.OptionalHeader.ImageBase]) - else - ImageBaseStr := StrRepeat(' ', 11); - if VersionResourceAvailable(ModuleName) then - with TJclFileVersionInfo.Create(ModuleName) do - try - DetailsMemo.Lines.Add(ImageBaseStr + BinFileVersion + ' - ' + FileVersion); - if FileDescription <> '' then - DetailsMemo.Lines.Add(StrRepeat(' ', 11) + FileDescription); - finally - Free; - end - else - DetailsMemo.Lines.Add(ImageBaseStr + RsMissingVersionInfo); -%if UnitVersioning for ModuleIndex := 0 to UnitVersioning.ModuleCount - 1 do - begin - UnitVersioningModule := UnitVersioning.Modules[ModuleIndex]; - if UnitVersioningModule.Instance = ModuleBase then - begin - if UnitVersioningModule.Count > 0 then - DetailsMemo.Lines.Add(StrRepeat(' ', 11) + LoadResString(@RsUnitVersioningIntro)); - for UnitIndex := 0 to UnitVersioningModule.Count - 1 do - begin - UnitVersion := UnitVersioningModule.Items[UnitIndex]; - DetailsMemo.Lines.Add(Format('%s%s %s %s %s', [StrRepeat(' ', 13), UnitVersion.LogPath, UnitVersion.RCSfile, UnitVersion.Revision, UnitVersion.Date])); - end; - end; - end;%endif - end; - NextDetailBlock; - end; -%endif - -%if ActiveControls // Active controls - if (FLastActiveControl <> nil) then - begin - DetailsMemo.Lines.Add(RsActiveControl); - C := FLastActiveControl; - while C <> nil do - begin - DetailsMemo.Lines.Add(Format('%s "%s"', [C.ClassName, C.Name])); - C := C.Parent; - end; - NextDetailBlock; - end; -%endif - finally - SL.Free; - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.DetailsBtnClick(Sender: TObject); -begin - DetailsVisible := not DetailsVisible; -end; - -//-------------------------------------------------------------------------------------------------- - -class procedure T%FORMNAME%.ExceptionHandler(Sender: TObject; E: Exception); -begin - if Assigned(E) then - if ExceptionShowing then - Application.ShowException(E) - else - begin - ExceptionShowing := True; - try - if IsIgnoredException(E.ClassType) then - Application.ShowException(E) - else - ShowException(E, nil); - finally - ExceptionShowing := False; - end; - end; -end; - -//-------------------------------------------------------------------------------------------------- - -class procedure T%FORMNAME%.ExceptionThreadHandler(Thread: TJclDebugThread); -var - E: Exception; -begin - E := Exception(Thread.SyncException); - if Assigned(E) then - if ExceptionShowing then - Application.ShowException(E) - else - begin - ExceptionShowing := True; - try - if IsIgnoredException(E.ClassType) then - Application.ShowException(E) - else - ShowException(E, Thread); - finally - ExceptionShowing := False; - end; - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.FormCreate(Sender: TObject); -begin - FFullHeight := ClientHeight; - DetailsVisible := False; - Caption := Format(RsAppError, [Application.Title]); -end; - -//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.FormDestroy(Sender: TObject); -begin - -end; - -//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); -begin - if (Key = Ord('C')) and (ssCtrl in Shift) then - begin - CopyReportToClipboard; - MessageBeep(MB_OK); - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.FormPaint(Sender: TObject); -begin - DrawIcon(Canvas.Handle, TextMemo.Left - GetSystemMetrics(SM_CXICON) - 15, - TextMemo.Top, LoadIcon(0, IDI_ERROR)); -end; - -//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.FormResize(Sender: TObject); -begin - UpdateTextMemoScrollbars; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.FormShow(Sender: TObject); -begin - BeforeCreateDetails; - MessageBeep(MB_ICONERROR); - if (GetCurrentThreadId = MainThreadID) and (GetWindowThreadProcessId(Handle, nil) = MainThreadID) then - PostMessage(Handle, UM_CREATEDETAILS, 0, 0) - else - CreateReport; -end; - -//-------------------------------------------------------------------------------------------------- - -function T%FORMNAME%.GetReportAsText: string; -begin - Result := StrEnsureSuffix(NativeCrLf, TextMemo.Text) + NativeCrLf + DetailsMemo.Text; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.NextDetailBlock; -begin - DetailsMemo.Lines.Add(StrRepeat(ReportNewBlockDelimiterChar, ReportMaxColumns)); -end; - -//-------------------------------------------------------------------------------------------------- - -function T%FORMNAME%.ReportNewBlockDelimiterChar: Char; -begin - Result := '-'; -end; - -%if LogFile//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.SaveToLogFile(const FileName: TFileName); -var - SimpleLog: TJclSimpleLog; -begin - SimpleLog := TJclSimpleLog.Create(FileName); - try - SimpleLog.WriteStamp(ReportMaxColumns); - SimpleLog.Write(ReportAsText); - SimpleLog.CloseLog; - finally - SimpleLog.Free; - end; -end; -%endif -//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.SetDetailsVisible(const Value: Boolean); -const - DirectionChars: array [0..1] of Char = ( '<', '>' ); -var - DetailsCaption: string; -begin - FDetailsVisible := Value; - DetailsCaption := Trim(StrRemoveChars(DetailsBtn.Caption, DirectionChars)); - if Value then - begin - Constraints.MinHeight := FNonDetailsHeight + 100; - Constraints.MaxHeight := Screen.Height; - DetailsCaption := '<< ' + DetailsCaption; - ClientHeight := FFullHeight; - DetailsMemo.Height := FFullHeight - DetailsMemo.Top - 3; - end - else - begin - FFullHeight := ClientHeight; - DetailsCaption := DetailsCaption + ' >>'; - if FNonDetailsHeight = 0 then - begin - ClientHeight := BevelDetails.Top; - FNonDetailsHeight := Height; - end - else - Height := FNonDetailsHeight; - Constraints.MinHeight := FNonDetailsHeight; - Constraints.MaxHeight := FNonDetailsHeight - end; - DetailsBtn.Caption := DetailsCaption; - DetailsMemo.Enabled := Value; -end; - -//-------------------------------------------------------------------------------------------------- - -class procedure T%FORMNAME%.ShowException(E: TObject; Thread: TJclDebugThread); -begin - if %FORMNAME% = nil then - %FORMNAME% := %FORMNAME%Class.Create(Application); - try - with %FORMNAME% do - begin - if Assigned(Thread) then - FThreadID := Thread.ThreadID - else - FThreadID := MainThreadID; -%if ActiveControls FLastActiveControl := Screen.ActiveControl;%endif - if E is Exception then - TextMemo.Text := RsErrorMessage + AdjustLineBreaks(StrEnsureSuffix('.', Exception(E).Message)) - else - TextMemo.Text := RsErrorMessage + AdjustLineBreaks(StrEnsureSuffix('.', E.ClassName)); - UpdateTextMemoScrollbars; - NextDetailBlock; - //Arioch: some header for possible saving to txt-file/e-mail/clipboard/NTEvent... - DetailsMemo.Lines.Add(Format(RsDetailsIntro, [DateTimeToStr(Now), Application.Title, Application.ExeName])); - NextDetailBlock; - DetailsMemo.Lines.Add(Format(RsExceptionClass, [E.ClassName])); - if E is Exception then - DetailsMemo.Lines.Add(Format(RsExceptionMessage, [StrEnsureSuffix('.', Exception(E).Message)])); - if Thread = nil then - DetailsMemo.Lines.Add(Format(RsExceptionAddr, [ExceptAddr])) - else - DetailsMemo.Lines.Add(Format(RsThread, [Thread.ThreadInfo])); - NextDetailBlock; - ShowModal; - end; - finally - FreeAndNil(%FORMNAME%); - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.UMCreateDetails(var Message: TMessage); -begin - Update; - CreateDetails; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure T%FORMNAME%.UpdateTextMemoScrollbars; -begin -%if AutoScrollBars Canvas.Font := TextMemo.Font; - if TextMemo.Lines.Count * Canvas.TextHeight('Wg') > TextMemo.ClientHeight then - TextMemo.ScrollBars := ssVertical - else - TextMemo.ScrollBars := ssNone;%endif -end; - -//================================================================================================== -// Exception handler initialization code -//================================================================================================== - -var - AppEvents: TApplicationEvents = nil; - -procedure InitializeHandler; -begin - if AppEvents = nil then - begin - AppEvents := TApplicationEvents.Create(nil); - AppEvents.OnException := T%FORMNAME%.ExceptionHandler; -%repeatline IgnoredExceptionsCount AddIgnoredException(%IgnoredExceptions); -%if TraceEAbort RemoveIgnoredException(EAbort);%endif -%if TraceAllExceptions JclStackTrackingOptions := JclStackTrackingOptions + [stTraceAllExceptions];%endif -%if RawData JclStackTrackingOptions := JclStackTrackingOptions + [stRawMode];%endif -%if HookDll JclStackTrackingOptions := JclStackTrackingOptions + [stStaticModuleList];%endif -%if DelayedTrace JclStackTrackingOptions := JclStackTrackingOptions + [stDelayedTrace];%endif - JclDebugThreadList.OnSyncException := T%FORMNAME%.ExceptionThreadHandler; -%if AllThreads JclHookThreads;%endif - JclStartExceptionTracking; -%if CatchMainThread JclStackTrackingOptions := JclStackTrackingOptions + [stMainThreadOnly];%endif -%if DisableIfDebuggerAttached JclStackTrackingOptions := JclStackTrackingOptions + [stDisableIfDebuggerAttached];%endif -%if HookDll if HookTApplicationHandleException then - JclTrackExceptionsFromLibraries;%endif - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure UnInitializeHandler; -begin - if AppEvents <> nil then - begin - FreeAndNil(AppEvents); - JclDebugThreadList.OnSyncException := nil; - JclUnhookExceptions; - JclStopExceptionTracking; -%if AllThreads JclUnhookThreads;%endif - end; -end; - -//-------------------------------------------------------------------------------------------------- - -initialization - InitializeHandler; - -finalization - UnInitializeHandler; - -end. Deleted: trunk/jcl/experts/debug/dialog/ExceptDlg.dfm =================================================================== --- trunk/jcl/experts/debug/dialog/ExceptDlg.dfm 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/experts/debug/dialog/ExceptDlg.dfm 2010-01-04 22:58:11 UTC (rev 3109) @@ -1,95 +0,0 @@ -object ExceptionDialog: TExceptionDialog - Left = 310 - Top = 255 - AutoScroll = False - BorderIcons = [biSystemMenu] - - Caption = 'ExceptionDialog' - ClientHeight = 255 - ClientWidth = 483 - Color = clBtnFace - Constraints.MinWidth = 200 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - KeyPreview = True - OldCreateOrder = False - Position = poScreenCenter - ShowHint = True - OnCreate = FormCreate - OnDestroy = FormDestroy - OnKeyDown = FormKeyDown - OnPaint = FormPaint - OnResize = FormResize - OnShow = FormShow - PixelsPerInch = 96 - TextHeight = 13 - object BevelDetails: TBevel - Left = 3 - Top = 91 - Width = 473 - Height = 9 - Anchors = [akLeft, akTop, akRight] - Shape = bsTopLine - end - - object TextMemo: TMemo - Left = 56 - Top = 8 - Width = 332 - Height = 75 - Hint = 'Use Ctrl+C to copy the report to the clipboard' - Anchors = [akLeft, akTop, akRight] - BorderStyle = bsNone - Ctl3D = True - ParentColor = True - ParentCtl3D = False - ReadOnly = True - TabOrder = 1 - WantReturns = False - end - object OkBtn: TButton - Left = 403 - Top = 4 - Width = 75 - Height = 25 - Anchors = [akTop, akRight] - Caption = '&OK' - Default = True - ModalResult = 1 - TabOrder = 2 - end - object DetailsBtn: TButton - Left = 403 - Top = 60 - Width = 75 - Height = 25 - Hint = 'Show or hide additional information|' - Anchors = [akTop, akRight] - Caption = '&Details' - Enabled = False - TabOrder = 3 - OnClick = DetailsBtnClick - end - object DetailsMemo: TMemo - Left = 4 - Top = 101 - Width = 472 - Height = 147 - Anchors = [akLeft, akTop, akRight, akBottom] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Courier New' - Font.Style = [] - ParentColor = True - ParentFont = False - ReadOnly = True - ScrollBars = ssBoth - TabOrder = 4 - WantReturns = False - WordWrap = False - end -end Deleted: trunk/jcl/experts/debug/dialog/ExceptDlg.ico =================================================================== (Binary files differ) Deleted: trunk/jcl/experts/debug/dialog/ExceptDlg.pas =================================================================== --- trunk/jcl/experts/debug/dialog/ExceptDlg.pas 2010-01-04 22:15:17 UTC (rev 3108) +++ trunk/jcl/experts/debug/dialog/ExceptDlg.pas 2010-01-04 22:58:11 UTC (rev 3109) @@ -1,706 +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 ExceptDlg.pas. ... [truncated message content] |
From: <ou...@us...> - 2010-01-04 22:15:25
|
Revision: 3108 http://jcl.svn.sourceforge.net/jcl/?rev=3108&view=rev Author: outchy Date: 2010-01-04 22:15:17 +0000 (Mon, 04 Jan 2010) Log Message: ----------- unit versioning data cleanup. Modified Paths: -------------- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgParams.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgThreadFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTraceFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgWizard.pas Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas 2010-01-04 21:59:13 UTC (rev 3107) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas 2010-01-04 22:15:17 UTC (rev 3108) @@ -77,7 +77,7 @@ RCSfile: '$URL$'; Revision: '$Revision$'; Date: '$Date$'; - LogPath: 'JCL\experts\repository'; + LogPath: 'JCL\experts\repository\ExceptionDialog'; Extra: ''; Data: nil ); Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas 2010-01-04 21:59:13 UTC (rev 3107) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas 2010-01-04 22:15:17 UTC (rev 3108) @@ -71,7 +71,7 @@ RCSfile: '$URL$'; Revision: '$Revision$'; Date: '$Date$'; - LogPath: 'JCL\experts\repository'; + LogPath: 'JCL\experts\repository\ExceptionDialog'; Extra: ''; Data: nil ); Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas 2010-01-04 21:59:13 UTC (rev 3107) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas 2010-01-04 22:15:17 UTC (rev 3108) @@ -65,7 +65,7 @@ RCSfile: '$URL$'; Revision: '$Revision$'; Date: '$Date$'; - LogPath: 'JCL\experts\repository'; + LogPath: 'JCL\experts\repository\ExceptionDialog'; Extra: ''; Data: nil ); Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas 2010-01-04 21:59:13 UTC (rev 3107) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas 2010-01-04 22:15:17 UTC (rev 3108) @@ -70,7 +70,7 @@ RCSfile: '$URL$'; Revision: '$Revision$'; Date: '$Date$'; - LogPath: 'JCL\experts\repository'; + LogPath: 'JCL\experts\repository\ExceptionDialog'; Extra: ''; Data: nil ); Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgParams.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgParams.pas 2010-01-04 21:59:13 UTC (rev 3107) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgParams.pas 2010-01-04 22:15:17 UTC (rev 3108) @@ -155,7 +155,7 @@ RCSfile: '$URL$'; Revision: '$Revision$'; Date: '$Date$'; - LogPath: 'JCL\experts\repository'; + LogPath: 'JCL\experts\repository\ExceptionDialog'; Extra: ''; Data: nil ); Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas 2010-01-04 21:59:13 UTC (rev 3107) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas 2010-01-04 22:15:17 UTC (rev 3108) @@ -84,7 +84,7 @@ RCSfile: '$URL$'; Revision: '$Revision$'; Date: '$Date$'; - LogPath: 'JCL\experts\repository'; + LogPath: 'JCL\experts\repository\ExceptionDialog'; Extra: ''; Data: nil ); Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas 2010-01-04 21:59:13 UTC (rev 3107) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas 2010-01-04 22:15:17 UTC (rev 3108) @@ -68,7 +68,7 @@ RCSfile: '$URL$'; Revision: '$Revision$'; Date: '$Date$'; - LogPath: 'JCL\experts\repository'; + LogPath: 'JCL\experts\repository\ExceptionDialog'; Extra: ''; Data: nil ); Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgThreadFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgThreadFrame.pas 2010-01-04 21:59:13 UTC (rev 3107) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgThreadFrame.pas 2010-01-04 22:15:17 UTC (rev 3108) @@ -82,7 +82,7 @@ RCSfile: '$URL$'; Revision: '$Revision$'; Date: '$Date$'; - LogPath: 'JCL\experts\repository'; + LogPath: 'JCL\experts\repository\ExceptionDialog'; Extra: ''; Data: nil ); Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTraceFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTraceFrame.pas 2010-01-04 21:59:13 UTC (rev 3107) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTraceFrame.pas 2010-01-04 22:15:17 UTC (rev 3108) @@ -71,7 +71,7 @@ RCSfile: '$URL$'; Revision: '$Revision$'; Date: '$Date$'; - LogPath: 'JCL\experts\repository'; + LogPath: 'JCL\experts\repository\ExceptionDialog'; Extra: ''; Data: nil ); Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgWizard.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgWizard.pas 2010-01-04 21:59:13 UTC (rev 3107) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgWizard.pas 2010-01-04 22:15:17 UTC (rev 3108) @@ -59,7 +59,7 @@ RCSfile: '$URL$'; Revision: '$Revision$'; Date: '$Date$'; - LogPath: 'JCL\experts\repository'; + LogPath: 'JCL\experts\repository\ExceptionDialog'; Extra: ''; Data: nil ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-04 21:59:20
|
Revision: 3107 http://jcl.svn.sourceforge.net/jcl/?rev=3107&view=rev Author: outchy Date: 2010-01-04 21:59:13 +0000 (Mon, 04 Jan 2010) Log Message: ----------- the "allLibSuffix" alias is useless since all targets support $LIBSUFFIX, it is now replaced by "Delphi,Bcb,Bds". Modified Paths: -------------- trunk/jcl/devtools/pgEdit.xml trunk/jcl/packages/xml/Jcl-R.xml trunk/jcl/packages/xml/JclBaseExpert-D.xml trunk/jcl/packages/xml/JclContainers-R.xml trunk/jcl/packages/xml/JclDebugExpert-D.xml trunk/jcl/packages/xml/JclDebugExpertDLL-L.xml trunk/jcl/packages/xml/JclFavoriteFoldersExpert-D.xml trunk/jcl/packages/xml/JclFavoriteFoldersExpertDLL-L.xml trunk/jcl/packages/xml/JclProjectAnalysisExpert-D.xml trunk/jcl/packages/xml/JclProjectAnalysisExpertDLL-L.xml trunk/jcl/packages/xml/JclRepositoryExpert-D.xml trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml trunk/jcl/packages/xml/JclSIMDViewExpert-D.xml trunk/jcl/packages/xml/JclSIMDViewExpertDLL-L.xml trunk/jcl/packages/xml/JclStackTraceViewerExpert-D.xml trunk/jcl/packages/xml/JclStackTraceViewerExpertDLL-L.xml trunk/jcl/packages/xml/JclThreadNameExpert-D.xml trunk/jcl/packages/xml/JclThreadNameExpertDLL-L.xml trunk/jcl/packages/xml/JclUsesExpert-D.xml trunk/jcl/packages/xml/JclUsesExpertDLL-L.xml trunk/jcl/packages/xml/JclVcl-R.xml trunk/jcl/packages/xml/JclVersionControlExpert-D.xml trunk/jcl/packages/xml/JclVersionControlExpertDLL-L.xml Modified: trunk/jcl/devtools/pgEdit.xml =================================================================== --- trunk/jcl/devtools/pgEdit.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/devtools/pgEdit.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -82,7 +82,6 @@ <alias name="Windows" value="fpc,c6,d6,d7,d9,d10,d11,d12,d14"/> <alias name="Linux" value="fpc"/> <!-- package aliases --> - <alias name="allLibSuffix" value="c6,d6,d7,d8,d9,d10,cs1,d11,d12,d14"/> <alias name="allv11up" value="d11,d12,d14"/> <!-- GUI aliases --> <alias name="Clx" value="c6,d6,d7"/> Modified: trunk/jcl/packages/xml/Jcl-R.xml =================================================================== --- trunk/jcl/packages/xml/Jcl-R.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/Jcl-R.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,7 +9,7 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>48000000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="FCL" Targets="fpc" Condition=""/> </Requires> <Contains> Modified: trunk/jcl/packages/xml/JclBaseExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclBaseExpert-D.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclBaseExpert-D.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58000000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> </Requires> <Contains> Modified: trunk/jcl/packages/xml/JclContainers-R.xml =================================================================== --- trunk/jcl/packages/xml/JclContainers-R.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclContainers-R.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -13,7 +13,7 @@ <ReleaseNumber/> <BuildNumber/> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="FCL" Targets="fpc" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclDebugExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclDebugExpert-D.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclDebugExpert-D.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58020000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclDebugExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclDebugExpertDLL-L.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclDebugExpertDLL-L.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58020000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclFavoriteFoldersExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclFavoriteFoldersExpert-D.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclFavoriteFoldersExpert-D.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58040000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclVcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> Modified: trunk/jcl/packages/xml/JclFavoriteFoldersExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclFavoriteFoldersExpertDLL-L.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclFavoriteFoldersExpertDLL-L.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58040000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclVcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> Modified: trunk/jcl/packages/xml/JclProjectAnalysisExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclProjectAnalysisExpert-D.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclProjectAnalysisExpert-D.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58060000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclProjectAnalysisExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclProjectAnalysisExpertDLL-L.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclProjectAnalysisExpertDLL-L.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58060000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclRepositoryExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclRepositoryExpert-D.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclRepositoryExpert-D.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58100000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58100000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclSIMDViewExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclSIMDViewExpert-D.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclSIMDViewExpert-D.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58080000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclSIMDViewExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclSIMDViewExpertDLL-L.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclSIMDViewExpertDLL-L.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58080000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclStackTraceViewerExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclStackTraceViewerExpert-D.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclStackTraceViewerExpert-D.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58120000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclStackTraceViewerExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclStackTraceViewerExpertDLL-L.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclStackTraceViewerExpertDLL-L.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>58120000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclThreadNameExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclThreadNameExpert-D.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclThreadNameExpert-D.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580A0000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclThreadNameExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclThreadNameExpertDLL-L.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclThreadNameExpertDLL-L.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580A0000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclUsesExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclUsesExpert-D.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclUsesExpert-D.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580C0000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclUsesExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclUsesExpertDLL-L.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclUsesExpertDLL-L.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580C0000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> </Requires> Modified: trunk/jcl/packages/xml/JclVcl-R.xml =================================================================== --- trunk/jcl/packages/xml/JclVcl-R.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclVcl-R.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,8 +9,8 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>48400000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="vcljpg" Targets="c6,d6,d7,d8,d9,d10,cs1,d11" Condition=""/> <Package Name="vclimg" Targets="allv11up" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> Modified: trunk/jcl/packages/xml/JclVersionControlExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclVersionControlExpert-D.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclVersionControlExpert-D.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580E0000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclVcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> Modified: trunk/jcl/packages/xml/JclVersionControlExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclVersionControlExpertDLL-L.xml 2010-01-04 21:39:25 UTC (rev 3106) +++ trunk/jcl/packages/xml/JclVersionControlExpertDLL-L.xml 2010-01-04 21:59:13 UTC (rev 3107) @@ -9,9 +9,9 @@ <CompilerDefines>RELEASE</CompilerDefines> <ImageBase>580E0000</ImageBase> <Requires> - <Package Name="rtl" Targets="allLibSuffix" Condition=""/> - <Package Name="vcl" Targets="allLibSuffix" Condition=""/> - <Package Name="designide" Targets="allLibSuffix" Condition=""/> + <Package Name="rtl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="vcl" Targets="Delphi,Bcb,Bds" Condition=""/> + <Package Name="designide" Targets="Delphi,Bcb,Bds" Condition=""/> <Package Name="Jcl-R" Targets="all" Condition=""/> <Package Name="JclVcl-R" Targets="all" Condition=""/> <Package Name="JclBaseExpert-D" Targets="all" Condition=""/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-04 21:39:33
|
Revision: 3106 http://jcl.svn.sourceforge.net/jcl/?rev=3106&view=rev Author: outchy Date: 2010-01-04 21:39:25 +0000 (Mon, 04 Jan 2010) Log Message: ----------- split of JclOtaRepositoryReg.pas into 2 units: - JclOtaRepositoryReg.pas contains registration code for more than one repository expert; - ExceptionDialog/JclOtaExcDlgRepository.pas contains code for the exception dialog expert. Modified Paths: -------------- trunk/jcl/experts/repository/JclOtaRepositoryReg.pas trunk/jcl/experts/repository/JclOtaRepositoryUtils.pas trunk/jcl/packages/c6/JclRepositoryExpert.bpk trunk/jcl/packages/c6/JclRepositoryExpert.dpk trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpf trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr trunk/jcl/packages/d10/JclRepositoryExpert.dpk trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d11/JclRepositoryExpert.dpk trunk/jcl/packages/d11/JclRepositoryExpert.dproj trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d12/JclRepositoryExpert.dpk trunk/jcl/packages/d12/JclRepositoryExpert.dproj trunk/jcl/packages/d12/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d12/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d14/JclRepositoryExpert.dpk trunk/jcl/packages/d14/JclRepositoryExpert.dproj trunk/jcl/packages/d14/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d14/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d6/JclRepositoryExpert.dpk trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d7/JclRepositoryExpert.dpk trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d9/JclRepositoryExpert.dpk trunk/jcl/packages/d9/JclRepositoryExpertDLL.dpr trunk/jcl/packages/xml/JclRepositoryExpert-D.xml trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml Added Paths: ----------- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas (from rev 3105, trunk/jcl/experts/repository/JclOtaRepositoryReg.pas) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas 2010-01-04 21:39:25 UTC (rev 3106) @@ -0,0 +1,291 @@ +{**************************************************************************************************} +{ } +{ 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 JclOtaRepositoryReg.pas. } +{ } +{ The Initial Developer of the Original Code is Florent Ouchet } +{ <outchy att users dott sourceforge dott net> } +{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All rights reserved. } +{ } +{ Contributors: } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: $ } +{ Revision: $Rev:: $ } +{ Author: $Author:: $ } +{ } +{**************************************************************************************************} + +unit JclOtaExcDlgRepository; + +interface + +{$I jcl.inc} + +{$IFDEF DELPHI6_UP} +{$DEFINE DELPHIEXCDLG} +{$ENDIF DELPHI6_UP} + +{$IFDEF BCB6_UP} +{$DEFINE CBUILDEREXCDLG} +{$ENDIF BCB6_UP} + +{$IFDEF COMPILER10_UP} +{$DEFINE DELPHIEXCDLG} +{$DEFINE CBUILDEREXCDLG} +{$ENDIF COMPILER10_UP} + +uses + SysUtils, Classes, + ToolsAPI, + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + JclBorlandTools, + JclOtaUtils, JclOtaRepositoryUtils, JclOtaExcDlgParams; + +type + TJclExcDlgExpert = class(TJclOtaRepositoryExpert) + public + procedure CreateExceptionDialog(const Params: TJclOtaExcDlgParams); + end; + + TJclExcDlgDelphiExpert = class(TJclExcDlgExpert) + public + constructor Create; override; + destructor Destroy; override; + + procedure DoExecute(const Personality: TJclBorPersonality); override; + function IsVisible(const Personality: TJclBorPersonality): Boolean; override; + end; + + TJclExcDlgCBuilderExpert = class(TJclExcDlgExpert) + public + constructor Create; override; + destructor Destroy; override; + + procedure DoExecute(const Personality: TJclBorPersonality); override; + function IsVisible(const Personality: TJclBorPersonality): Boolean; override; + end; + +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL$'; + Revision: '$Revision$'; + Date: '$Date$'; + LogPath: 'JCL\experts\repository'; + Extra: ''; + Data: nil + ); +{$ENDIF UNITVERSIONING} + +implementation + +uses + Windows, + JclStrings, JclFileUtils, JclRegistry, + JclOtaResources, JclOtaConsts, + JclOtaTemplates, JclOtaRepositoryReg, JclOtaExcDlgWizard; + +//=== { TJclExcDlgExpert } =================================================== + +procedure TJclExcDlgExpert.CreateExceptionDialog( + const Params: TJclOtaExcDlgParams); + function LoadTemplate(const FileName: string): string; + var + AFileStream: TFileStream; + StreamLength: Int64; + AnsiResult: AnsiString; + begin + AnsiResult := ''; + if FileName <> '' then + begin + AFileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); + try + StreamLength := AFileStream.Size; + SetLength(AnsiResult, StreamLength); + AFileStream.ReadBuffer(AnsiResult[1], StreamLength); + finally + AFileStream.Free; + end; + end; + Result := string(AnsiResult); + end; +const + TemplateSubDir = 'experts\debug\dialog\'; + DelphiTemplate = 'ExceptDlg.Delphi32'; + BCBTemplate = 'ExceptDlg.CBuilder32'; +var + JclSettingsKeyName, TemplatePath, + FormExtension, FormTemplate, FormContent, FormFileName, + HeaderExtension, HeaderTemplate, HeaderContent, HeaderFileName, + SourceExtension, SourceTemplate, SourceContent, SourceFileName: string; + OTAServices: IOTAServices; +begin + OTAServices := GetOTAServices; + JclSettingsKeyName := StrEnsureSuffix('\', OTAServices.GetBaseRegistryKey) + RegJclKey; + TemplatePath := PathAddSeparator(RegReadString(HKCU, JclSettingsKeyName, 'RootDir')) + TemplateSubDir; + + case Params.Language of + bpDelphi32: + begin + FormExtension := JclBorDesignerFormExtension[Params.Designer]; + FormTemplate := TemplatePath + DelphiTemplate + FormExtension; + HeaderExtension := ''; + HeaderTemplate := ''; + SourceExtension := SourceExtensionPAS; + SourceTemplate := TemplatePath + DelphiTemplate + SourceExtension; + end; + bpBCBuilder32: + begin + FormExtension := JclBorDesignerFormExtension[Params.Designer]; + FormTemplate := TemplatePath + BCBTemplate + FormExtension; + HeaderExtension := SourceExtensionH; + HeaderTemplate := TemplatePath + BCBTemplate + HeaderExtension; + SourceExtension := SourceExtensionCPP; + SourceTemplate := TemplatePath + BCBTemplate + SourceExtension; + end; + else + begin + FormExtension := ''; + FormTemplate := ''; + HeaderExtension := ''; + HeaderTemplate := ''; + SourceExtension := ''; + SourceTemplate := ''; + end; + end; + + FormTemplate := LoadTemplate(FormTemplate); + HeaderTemplate := LoadTemplate(HeaderTemplate); + SourceTemplate := LoadTemplate(SourceTemplate); + + FormContent := ApplyTemplate(FormTemplate, Params); + HeaderContent := ApplyTemplate(HeaderTemplate, Params); + SourceContent := ApplyTemplate(SourceTemplate, Params); + + if Params.FileName <> '' then + begin + FormFileName := ChangeFileExt(Params.FileName, FormExtension); + HeaderFileName := ChangeFileExt(Params.FileName, HeaderExtension); + SourceFileName := ChangeFileExt(Params.FileName, SourceExtension); + end + else + begin + FormFileName := ''; + HeaderFileName := ''; + SourceFileName := ''; + end; + + CreateForm(Params.FormAncestor, Params.FormName, FormFileName, FormContent, SourceFileName, + SourceContent, HeaderFileName, HeaderContent); +end; + +//=== { TJclRepositoryExpert } =============================================== + +constructor TJclExcDlgDelphiExpert.Create; +begin + inherited Create(LoadResString(@RsRepositoryExcDlgDelphiName), LoadResString(@RsRepositoryExcDlgDelphiDescription), + LoadResString(@RsAboutDialogTitle), LoadResString(@RsRepositoryExcDlgPage), JclRepositoryCategoryDelphiFiles, + JclDesignerVcl, JclDelphiPersonality, LoadIcon(FindResourceHInstance(HInstance), 'JclExcDlg'), ritForm); +end; + +destructor TJclExcDlgDelphiExpert.Destroy; +begin + inherited Destroy; +end; + +procedure TJclExcDlgDelphiExpert.DoExecute(const Personality: TJclBorPersonality); +var + AParams: TJclOtaExcDlgParams; +begin + AParams := TJclOtaExcDlgParams.Create; + try + AParams.Languages := [bpDelphi32]; + AParams.Language := bpDelphi32; + AParams.ActivePersonality := bpDelphi32; + if ExcDlgWizard(AParams) and (AParams.Language <> bpUnknown) then + CreateExceptionDialog(AParams); + finally + AParams.Free; + end; +end; + +function TJclExcDlgDelphiExpert.IsVisible( + const Personality: TJclBorPersonality): Boolean; +begin + Result := Personality = bpDelphi32; +end; + +//=== { TJclExcDlgCBuilderExpert } =========================================== + +constructor TJclExcDlgCBuilderExpert.Create; +begin + inherited Create(LoadResString(@RsRepositoryExcDlgCBuilderName), LoadResString(@RsRepositoryExcDlgCBuilderDescription), + LoadResString(@RsAboutDialogTitle), LoadResString(@RsRepositoryExcDlgPage), JclRepositoryCategoryCBuilderFiles, + JclDesignerVcl, JclCBuilderPersonality, LoadIcon(FindResourceHInstance(HInstance), 'JclExcDlgCPP'), ritForm); +end; + +destructor TJclExcDlgCBuilderExpert.Destroy; +begin + inherited Destroy; +end; + +procedure TJclExcDlgCBuilderExpert.DoExecute( + const Personality: TJclBorPersonality); +var + AParams: TJclOtaExcDlgParams; +begin + AParams := TJclOtaExcDlgParams.Create; + try + AParams.Languages := [bpDelphi32]; + AParams.Language := bpDelphi32; + AParams.ActivePersonality := bpBCBuilder32; + if ExcDlgWizard(AParams) and (AParams.Language <> bpUnknown) then + CreateExceptionDialog(AParams); + finally + AParams.Free; + end; +end; + +function TJclExcDlgCBuilderExpert.IsVisible( + const Personality: TJclBorPersonality): Boolean; +begin + Result := Personality = bpBCBuilder32; +end; + +initialization + {$IFDEF UNITVERSIONING} + RegisterUnitVersion(HInstance, UnitVersioning); + {$ENDIF UNITVERSIONING} + + {$IFDEF DELPHIEXCDLG} + RegisterJclOTARepositoryExpert(TJclExcDlgDelphiExpert, JclDelphiPersonality); + {$ENDIF DELPHIEXCDLG} + {$IFDEF CBUILDEREXCDLG} + RegisterJclOTARepositoryExpert(TJclExcDlgCBuilderExpert, JclCBuilderPersonality); + {$ENDIF CBUILDEREXCDLG} + +finalization + {$IFDEF DELPHIEXCDLG} + UnregisterJclOTARepositoryExpert(TJclExcDlgDelphiExpert); + {$ENDIF DELPHIEXCDLG} + {$IFDEF CBUILDEREXCDLG} + UnregisterJclOTARepositoryExpert(TJclExcDlgCBuilderExpert); + {$ENDIF CBUILDEREXCDLG} + {$IFDEF UNITVERSIONING} + UnregisterUnitVersion(HInstance); + {$ENDIF UNITVERSIONING} + +end. Modified: trunk/jcl/experts/repository/JclOtaRepositoryReg.pas =================================================================== --- trunk/jcl/experts/repository/JclOtaRepositoryReg.pas 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/experts/repository/JclOtaRepositoryReg.pas 2010-01-04 21:39:25 UTC (rev 3106) @@ -32,19 +32,6 @@ {$I jcl.inc} -{$IFDEF DELPHI6_UP} -{$DEFINE DELPHIEXCDLG} -{$ENDIF DELPHI6_UP} - -{$IFDEF BCB6_UP} -{$DEFINE CBUILDEREXCDLG} -{$ENDIF BCB6_UP} - -{$IFDEF COMPILER10_UP} -{$DEFINE DELPHIEXCDLG} -{$DEFINE CBUILDEREXCDLG} -{$ENDIF COMPILER10_UP} - uses SysUtils, Classes, ToolsAPI, @@ -52,32 +39,13 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} JclBorlandTools, - JclOtaUtils, JclOtaRepositoryUtils, JclOtaExcDlgParams; + JclOtaUtils, JclOtaRepositoryUtils; -type - TJclExcDlgExpert = class(TJclOtaRepositoryExpert) - public - procedure CreateExceptionDialog(const Params: TJclOtaExcDlgParams); - end; +procedure RegisterJclOTARepositoryExpert(ExpertClass: TJclOTARepositoryExpertClass; + const ExpertPersonality: string); - TJclExcDlgDelphiExpert = class(TJclExcDlgExpert) - public - constructor Create; reintroduce; - destructor Destroy; override; +procedure UnregisterJclOTARepositoryExpert(ExpertClass: TJclOTARepositoryExpertClass); - procedure DoExecute(const Personality: TJclBorPersonality); override; - function IsVisible(const Personality: TJclBorPersonality): Boolean; override; - end; - - TJclExcDlgCBuilderExpert = class(TJclExcDlgExpert) - public - constructor Create; reintroduce; - destructor Destroy; override; - - procedure DoExecute(const Personality: TJclBorPersonality); override; - function IsVisible(const Personality: TJclBorPersonality): Boolean; override; - end; - // design package entry point procedure Register; @@ -105,17 +73,59 @@ JclStrings, JclFileUtils, JclRegistry, JclOtaResources, JclOtaConsts, JclOtaTemplates, JclOtaExcDlgWizard; +type + TExpertRecord = record + ExpertClass: TJclOTARepositoryExpertClass; + ExpertPersonality: string; + ExpertIndex: Integer; + end; + +var + ExpertClassList: array of TExpertRecord; + +procedure RegisterJclOTARepositoryExpert(ExpertClass: TJclOTARepositoryExpertClass; + const ExpertPersonality: string); +var + I: Integer; +begin + I := Length(ExpertClassList); + SetLength(ExpertClassList, I + 1); + ExpertClassList[I].ExpertClass := ExpertClass; + ExpertClassList[I].ExpertPersonality := ExpertPersonality; + ExpertClassList[I].ExpertIndex := -1; +end; + +procedure UnregisterJclOTARepositoryExpert(ExpertClass: TJclOTARepositoryExpertClass); +var + I, J, K: Integer; + OTAWizardServices: IOTAWizardServices; +begin + for I := High(ExpertClassList) downto Low(ExpertClassList) do + if ExpertClassList[I].ExpertClass = ExpertClass then + begin + if ExpertClassList[I].ExpertIndex <> -1 then + begin + if OTAWizardServices = nil then + OTAWizardServices := TJclOTAExpertBase.GetOTAWizardServices; + + OTAWizardServices.RemoveWizard(ExpertClassList[I].ExpertIndex); + end; + J := High(ExpertClassList); + for K := I to J do + ExpertClassList[K] := ExpertClassList[K + 1]; + SetLength(ExpertClassList, J); + end; +end; + procedure Register; +var + I: Integer; begin try - {$IFDEF DELPHIEXCDLG} - if TJclOTAExpertBase.IsPersonalityLoaded(JclDelphiPersonality) then - RegisterPackageWizard(TJclExcDlgDelphiExpert.Create); - {$ENDIF DELPHIEXCDLG} - {$IFDEF CBUILDEREXCDLG} - if TJclOTAExpertBase.IsPersonalityLoaded(JclCBuilderPersonality) then - RegisterPackageWizard(TJclExcDlgCBuilderExpert.Create); - {$ENDIF CBUILDEREXCDLG} + for I := Low(ExpertClassList) to High(ExpertClassList) do + if (ExpertClassList[I].ExpertPersonality = '') + or TJclOTAExpertBase.IsPersonalityLoaded(ExpertClassList[I].ExpertPersonality) then + RegisterPackageWizard(ExpertClassList[I].ExpertClass.Create); except on ExceptionObj: TObject do begin @@ -124,14 +134,6 @@ end; end; -var - {$IFDEF DELPHIEXCDLG} - JCLDelphiWizardIndex: Integer = -1; - {$ENDIF DELPHIEXCDLG} - {$IFDEF CBUILDEREXCDLG} - JclCBuilderWizardIndex: Integer = -1; - {$ENDIF CBUILDEREXCDLG} - procedure JclWizardTerminate; var OTAWizardServices: IOTAWizardServices; @@ -159,22 +161,20 @@ function JCLWizardInit(const BorlandIDEServices: IBorlandIDEServices; RegisterProc: TWizardRegisterProc; var TerminateProc: TWizardTerminateProc): Boolean stdcall; -var - OTAWizardServices: IOTAWizardServices; +//var +// I: Integer; +// OTAWizardServices: IOTAWizardServices; begin try TerminateProc := JclWizardTerminate; - OTAWizardServices := TJclOTAExpertBase.GetOTAWizardServices; + //OTAWizardServices := TJclOTAExpertBase.GetOTAWizardServices; - {$IFDEF DELPHIEXCDLG} - //if IsPersonalityLoaded(BorlandIDEServices, JclDelphiPersonality) then - // JCLDelphiWizardIndex := OTAWizardServices.AddWizard(TJclExcDlgDelphiExpert.Create); - {$ENDIF DELPHIEXCDLG} - {$IFDEF CBUILDEREXCDLG} - //if IsPersonalityLoaded(BorlandIDEServices, JclCBuilderPersonality) then - // JclCBuilderWizardIndex := OTAWizardServices.AddWizard(TJclExcDlgCBuilderExpert.Create); - {$ENDIF CBUILDEREXCDLG} + //for I := Low(ExpertClassList) to High(ExpertClassList) do + // if (ExpertClassList[I].ExpertPersonality = '') + // or IsPersonalityLoaded(BorlandIDEServices, ExpertClassList[I].ExpertPersonality) then + // ExpertClassList[I].ExpertIndex := OTAWizardServices.AddWizard(ExpertClassList[I].ExpertClass.Create); + Result := True; except on ExceptionObj: TObject do @@ -185,173 +185,6 @@ end; end; -//=== { TJclExcDlgExpert } =================================================== - -procedure TJclExcDlgExpert.CreateExceptionDialog( - const Params: TJclOtaExcDlgParams); - function LoadTemplate(const FileName: string): string; - var - AFileStream: TFileStream; - StreamLength: Int64; - AnsiResult: AnsiString; - begin - AnsiResult := ''; - if FileName <> '' then - begin - AFileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); - try - StreamLength := AFileStream.Size; - SetLength(AnsiResult, StreamLength); - AFileStream.ReadBuffer(AnsiResult[1], StreamLength); - finally - AFileStream.Free; - end; - end; - Result := string(AnsiResult); - end; -const - TemplateSubDir = 'experts\debug\dialog\'; - DelphiTemplate = 'ExceptDlg.Delphi32'; - BCBTemplate = 'ExceptDlg.CBuilder32'; -var - JclSettingsKeyName, TemplatePath, - FormExtension, FormTemplate, FormContent, FormFileName, - HeaderExtension, HeaderTemplate, HeaderContent, HeaderFileName, - SourceExtension, SourceTemplate, SourceContent, SourceFileName: string; - OTAServices: IOTAServices; -begin - OTAServices := GetOTAServices; - JclSettingsKeyName := StrEnsureSuffix('\', OTAServices.GetBaseRegistryKey) + RegJclKey; - TemplatePath := PathAddSeparator(RegReadString(HKCU, JclSettingsKeyName, 'RootDir')) + TemplateSubDir; - - case Params.Language of - bpDelphi32: - begin - FormExtension := JclBorDesignerFormExtension[Params.Designer]; - FormTemplate := TemplatePath + DelphiTemplate + FormExtension; - HeaderExtension := ''; - HeaderTemplate := ''; - SourceExtension := SourceExtensionPAS; - SourceTemplate := TemplatePath + DelphiTemplate + SourceExtension; - end; - bpBCBuilder32: - begin - FormExtension := JclBorDesignerFormExtension[Params.Designer]; - FormTemplate := TemplatePath + BCBTemplate + FormExtension; - HeaderExtension := SourceExtensionH; - HeaderTemplate := TemplatePath + BCBTemplate + HeaderExtension; - SourceExtension := SourceExtensionCPP; - SourceTemplate := TemplatePath + BCBTemplate + SourceExtension; - end; - else - begin - FormExtension := ''; - FormTemplate := ''; - HeaderExtension := ''; - HeaderTemplate := ''; - SourceExtension := ''; - SourceTemplate := ''; - end; - end; - - FormTemplate := LoadTemplate(FormTemplate); - HeaderTemplate := LoadTemplate(HeaderTemplate); - SourceTemplate := LoadTemplate(SourceTemplate); - - FormContent := ApplyTemplate(FormTemplate, Params); - HeaderContent := ApplyTemplate(HeaderTemplate, Params); - SourceContent := ApplyTemplate(SourceTemplate, Params); - - if Params.FileName <> '' then - begin - FormFileName := ChangeFileExt(Params.FileName, FormExtension); - HeaderFileName := ChangeFileExt(Params.FileName, HeaderExtension); - SourceFileName := ChangeFileExt(Params.FileName, SourceExtension); - end - else - begin - FormFileName := ''; - HeaderFileName := ''; - SourceFileName := ''; - end; - - CreateForm(Params.FormAncestor, Params.FormName, FormFileName, FormContent, SourceFileName, - SourceContent, HeaderFileName, HeaderContent); -end; - -//=== { TJclRepositoryExpert } =============================================== - -constructor TJclExcDlgDelphiExpert.Create; -begin - inherited Create(LoadResString(@RsRepositoryExcDlgDelphiName), LoadResString(@RsRepositoryExcDlgDelphiDescription), - LoadResString(@RsAboutDialogTitle), LoadResString(@RsRepositoryExcDlgPage), JclRepositoryCategoryDelphiFiles, - JclDesignerVcl, JclDelphiPersonality, LoadIcon(FindResourceHInstance(HInstance), 'JclExcDlg'), ritForm); -end; - -destructor TJclExcDlgDelphiExpert.Destroy; -begin - inherited Destroy; -end; - -procedure TJclExcDlgDelphiExpert.DoExecute(const Personality: TJclBorPersonality); -var - AParams: TJclOtaExcDlgParams; -begin - AParams := TJclOtaExcDlgParams.Create; - try - AParams.Languages := [bpDelphi32]; - AParams.Language := bpDelphi32; - AParams.ActivePersonality := bpDelphi32; - if ExcDlgWizard(AParams) and (AParams.Language <> bpUnknown) then - CreateExceptionDialog(AParams); - finally - AParams.Free; - end; -end; - -function TJclExcDlgDelphiExpert.IsVisible( - const Personality: TJclBorPersonality): Boolean; -begin - Result := Personality = bpDelphi32; -end; - -//=== { TJclExcDlgCBuilderExpert } =========================================== - -constructor TJclExcDlgCBuilderExpert.Create; -begin - inherited Create(LoadResString(@RsRepositoryExcDlgCBuilderName), LoadResString(@RsRepositoryExcDlgCBuilderDescription), - LoadResString(@RsAboutDialogTitle), LoadResString(@RsRepositoryExcDlgPage), JclRepositoryCategoryCBuilderFiles, - JclDesignerVcl, JclCBuilderPersonality, LoadIcon(FindResourceHInstance(HInstance), 'JclExcDlgCPP'), ritForm); -end; - -destructor TJclExcDlgCBuilderExpert.Destroy; -begin - inherited Destroy; -end; - -procedure TJclExcDlgCBuilderExpert.DoExecute( - const Personality: TJclBorPersonality); -var - AParams: TJclOtaExcDlgParams; -begin - AParams := TJclOtaExcDlgParams.Create; - try - AParams.Languages := [bpDelphi32]; - AParams.Language := bpDelphi32; - AParams.ActivePersonality := bpBCBuilder32; - if ExcDlgWizard(AParams) and (AParams.Language <> bpUnknown) then - CreateExceptionDialog(AParams); - finally - AParams.Free; - end; -end; - -function TJclExcDlgCBuilderExpert.IsVisible( - const Personality: TJclBorPersonality): Boolean; -begin - Result := Personality = bpBCBuilder32; -end; - {$IFDEF UNITVERSIONING} initialization RegisterUnitVersion(HInstance, UnitVersioning); Modified: trunk/jcl/experts/repository/JclOtaRepositoryUtils.pas =================================================================== --- trunk/jcl/experts/repository/JclOtaRepositoryUtils.pas 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/experts/repository/JclOtaRepositoryUtils.pas 2010-01-04 21:39:25 UTC (rev 3106) @@ -64,9 +64,10 @@ FDesigner: string; FPersonality: string; public - constructor Create(AName, ADescription, AAuthor, APage, AGalleryCategory, + constructor Create(const AName, ADescription, AAuthor, APage, AGalleryCategory, ADesigner, APersonality: string; AGlyph: Cardinal; - AItemType: TJclRepositoryItemType); reintroduce; + AItemType: TJclRepositoryItemType); reintroduce; overload; virtual; + constructor Create; reintroduce; overload; virtual; abstract; destructor Destroy; override; // override to customize @@ -118,6 +119,8 @@ const HeaderFileName: TFileName; const HeaderContent: string): IOTAModule; end; + TJclOTARepositoryExpertClass = class of TJclOTARepositoryExpert; + TJclOtaFormCreator = class(TInterfacedObject, IOTACreator, IOTAModuleCreator) private FFormFileName: TFileName; @@ -187,9 +190,9 @@ Classes, ActiveX, JclDateTime, JclFileUtils, JclOtaResources, JclOtaTemplates; -//=== { TJclOTARepositoryExpert } ============================================ +//=== { TJclOTARepositoryExpertBase } ======================================== -constructor TJclOTARepositoryExpert.Create(AName, ADescription, AAuthor, APage, +constructor TJclOTARepositoryExpert.Create(const AName, ADescription, AAuthor, APage, AGalleryCategory, ADesigner, APersonality: string; AGlyph: Cardinal; AItemType: TJclRepositoryItemType); begin Modified: trunk/jcl/packages/c6/JclRepositoryExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpert.bpk 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/c6/JclRepositoryExpert.bpk 2010-01-04 21:39:25 UTC (rev 3106) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 04-01-2010 20:33:44 UTC + Last generated: 04-01-2010 21:32:16 UTC ***************************************************************************** --> <PROJECT> @@ -16,6 +16,7 @@ ..\..\lib\c6\JclRepositoryExpert.obj ..\..\lib\c6\JclOtaTemplates.obj ..\..\lib\c6\JclOtaRepositoryUtils.obj + ..\..\lib\c6\JclOtaExcDlgRepository.obj ..\..\lib\c6\JclOtaExcDlgParams.obj ..\..\lib\c6\JclOtaExcDlgWizard.obj ..\..\lib\c6\JclOtaExcDlgFileFrame.obj @@ -94,6 +95,7 @@ <FILE FILENAME="JclBaseExpert.bpi" FORMNAME="" UNITNAME="JclBaseExpert" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\JclOtaTemplates.pas" FORMNAME="" UNITNAME="JclOtaTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\JclOtaRepositoryUtils.pas" FORMNAME="" UNITNAME="JclOtaRepositoryUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" FORMNAME="" UNITNAME="JclOtaExcDlgRepository" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" FORMNAME="" UNITNAME="JclOtaExcDlgParams" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" FORMNAME="JclOtaExcDlgForm" UNITNAME="JclOtaExcDlgWizard" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" FORMNAME="JclOtaExcDlgFilePage" UNITNAME="JclOtaExcDlgFileFrame" CONTAINERID="PascalCompiler" DESIGNCLASS="TFrame" LOCALCOMMAND=""/> Modified: trunk/jcl/packages/c6/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/c6/JclRepositoryExpert.dpk 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 04-01-2010 20:33:45 UTC + Last generated: 04-01-2010 21:32:16 UTC ----------------------------------------------------------------------------- } @@ -48,6 +48,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpf =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpf 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpf 2010-01-04 21:39:25 UTC (rev 3106) @@ -1,5 +1,6 @@ USEUNIT("..\..\experts\repository\JclOtaTemplates.pas"); USEUNIT("..\..\experts\repository\JclOtaRepositoryUtils.pas"); +USEUNIT("..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas"); USEUNIT("..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas"); USEUNIT("..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas"); USEUNIT("..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas"); Modified: trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr 2010-01-04 21:39:25 UTC (rev 3106) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 04-01-2010 20:33:44 UTC + Last generated: 04-01-2010 21:32:16 UTC ***************************************************************************** --> <PROJECT> @@ -16,6 +16,7 @@ ..\..\lib\c6\JclRepositoryExpertDLL.obj ..\..\lib\c6\JclOtaTemplates.obj ..\..\lib\c6\JclOtaRepositoryUtils.obj + ..\..\lib\c6\JclOtaExcDlgRepository.obj ..\..\lib\c6\JclOtaExcDlgParams.obj ..\..\lib\c6\JclOtaExcDlgWizard.obj ..\..\lib\c6\JclOtaExcDlgFileFrame.obj @@ -93,6 +94,7 @@ <FILE FILENAME="JclBaseExpert.bpi" FORMNAME="" UNITNAME="JclBaseExpert" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\JclOtaTemplates.pas" FORMNAME="" UNITNAME="JclOtaTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\JclOtaRepositoryUtils.pas" FORMNAME="" UNITNAME="JclOtaRepositoryUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" FORMNAME="" UNITNAME="JclOtaExcDlgRepository" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" FORMNAME="" UNITNAME="JclOtaExcDlgParams" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" FORMNAME="JclOtaExcDlgForm" UNITNAME="JclOtaExcDlgWizard" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" FORMNAME="JclOtaExcDlgFilePage" UNITNAME="JclOtaExcDlgFileFrame" CONTAINERID="PascalCompiler" DESIGNCLASS="TFrame" LOCALCOMMAND=""/> Modified: trunk/jcl/packages/d10/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d10/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d10/JclRepositoryExpert.dpk 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 04-01-2010 20:33:51 UTC + Last generated: 04-01-2010 21:32:20 UTC ----------------------------------------------------------------------------- } @@ -49,6 +49,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 04-01-2010 20:33:51 UTC + Last generated: 04-01-2010 21:32:21 UTC ----------------------------------------------------------------------------- } @@ -41,6 +41,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d11/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d11/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d11/JclRepositoryExpert.dpk 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 04-01-2010 20:33:51 UTC + Last generated: 04-01-2010 21:32:21 UTC ----------------------------------------------------------------------------- } @@ -49,6 +49,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d11/JclRepositoryExpert.dproj =================================================================== --- trunk/jcl/packages/d11/JclRepositoryExpert.dproj 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d11/JclRepositoryExpert.dproj 2010-01-04 21:39:25 UTC (rev 3106) @@ -92,6 +92,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> Modified: trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 04-01-2010 20:33:51 UTC + Last generated: 04-01-2010 21:32:21 UTC ----------------------------------------------------------------------------- } @@ -41,6 +41,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj =================================================================== --- trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj 2010-01-04 21:39:25 UTC (rev 3106) @@ -92,6 +92,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> Modified: trunk/jcl/packages/d12/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d12/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d12/JclRepositoryExpert.dpk 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 04-01-2010 20:33:52 UTC + Last generated: 04-01-2010 21:32:22 UTC ----------------------------------------------------------------------------- } @@ -49,6 +49,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d12/JclRepositoryExpert.dproj =================================================================== --- trunk/jcl/packages/d12/JclRepositoryExpert.dproj 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d12/JclRepositoryExpert.dproj 2010-01-04 21:39:25 UTC (rev 3106) @@ -67,6 +67,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> Modified: trunk/jcl/packages/d12/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d12/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d12/JclRepositoryExpertDLL.dpr 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 04-01-2010 20:33:52 UTC + Last generated: 04-01-2010 21:32:22 UTC ----------------------------------------------------------------------------- } @@ -41,6 +41,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d12/JclRepositoryExpertDLL.dproj =================================================================== --- trunk/jcl/packages/d12/JclRepositoryExpertDLL.dproj 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d12/JclRepositoryExpertDLL.dproj 2010-01-04 21:39:25 UTC (rev 3106) @@ -67,6 +67,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> Modified: trunk/jcl/packages/d14/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d14/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d14/JclRepositoryExpert.dpk 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 04-01-2010 20:33:53 UTC + Last generated: 04-01-2010 21:32:23 UTC ----------------------------------------------------------------------------- } @@ -49,6 +49,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d14/JclRepositoryExpert.dproj =================================================================== --- trunk/jcl/packages/d14/JclRepositoryExpert.dproj 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d14/JclRepositoryExpert.dproj 2010-01-04 21:39:25 UTC (rev 3106) @@ -69,6 +69,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> Modified: trunk/jcl/packages/d14/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d14/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d14/JclRepositoryExpertDLL.dpr 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 04-01-2010 20:33:53 UTC + Last generated: 04-01-2010 21:32:23 UTC ----------------------------------------------------------------------------- } @@ -41,6 +41,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d14/JclRepositoryExpertDLL.dproj =================================================================== --- trunk/jcl/packages/d14/JclRepositoryExpertDLL.dproj 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d14/JclRepositoryExpertDLL.dproj 2010-01-04 21:39:25 UTC (rev 3106) @@ -69,6 +69,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> Modified: trunk/jcl/packages/d6/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d6/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d6/JclRepositoryExpert.dpk 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 04-01-2010 20:33:46 UTC + Last generated: 04-01-2010 21:32:17 UTC ----------------------------------------------------------------------------- } @@ -48,6 +48,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 04-01-2010 20:33:46 UTC + Last generated: 04-01-2010 21:32:17 UTC ----------------------------------------------------------------------------- } @@ -40,6 +40,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d7/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d7/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d7/JclRepositoryExpert.dpk 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 04-01-2010 20:33:48 UTC + Last generated: 04-01-2010 21:32:17 UTC ----------------------------------------------------------------------------- } @@ -48,6 +48,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 04-01-2010 20:33:48 UTC + Last generated: 04-01-2010 21:32:17 UTC ----------------------------------------------------------------------------- } @@ -40,6 +40,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d9/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d9/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d9/JclRepositoryExpert.dpk 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 04-01-2010 20:33:50 UTC + Last generated: 04-01-2010 21:32:20 UTC ----------------------------------------------------------------------------- } @@ -48,6 +48,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/d9/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d9/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/d9/JclRepositoryExpertDLL.dpr 2010-01-04 21:39:25 UTC (rev 3106) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 04-01-2010 20:33:50 UTC + Last generated: 04-01-2010 21:32:20 UTC ----------------------------------------------------------------------------- } @@ -40,6 +40,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , + JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, Modified: trunk/jcl/packages/xml/JclRepositoryExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclRepositoryExpert-D.xml 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/xml/JclRepositoryExpert-D.xml 2010-01-04 21:39:25 UTC (rev 3106) @@ -18,6 +18,7 @@ <Contains> <File Name="..\..\experts\repository\JclOtaTemplates.pas" Targets="runtimeIDE" Formname="" Condition=""/> <File Name="..\..\experts\repository\JclOtaRepositoryUtils.pas" Targets="runtimeIDE" Formname="" Condition=""/> + <File Name="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" Targets="runtimeIDE" Formname="" Condition=""/> <File Name="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" Targets="runtimeIDE" Formname="" Condition=""/> <File Name="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" Targets="runtimeIDE" Formname="JclOtaExcDlgForm" Condition=""/> <File Name="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" Targets="runtimeIDE" Formname="JclOtaExcDlgFilePage: TFrame" Condition=""/> Modified: trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml 2010-01-04 20:42:07 UTC (rev 3105) +++ trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml 2010-01-04 21:39:25 UTC (rev 3106) @@ -18,6 +18,7 @@ <Contains> <File Name="..\..\experts\repository\JclOtaTemplates.pas" Targets="runtimeIDE" Formname="" Condition=""/> <File Name="..\..\experts\repository\JclOtaRepositoryUtils.pas" Targets="runtimeIDE" Formname="" Condition=""/> + <File Name="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" Targets="runtimeIDE" Formname="" Condition=""/> <File Name="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" Targets="runtimeIDE" Formname="" Condition=""/> <File Name="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" Targets="runtimeIDE" Formname="JclOtaExcDlgForm" Condition=""/> <File Name="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" Targets="runtimeIDE" Formname="JclOtaExcDlgFilePage: TFrame" Condition=""/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-04 20:42:15
|
Revision: 3105 http://jcl.svn.sourceforge.net/jcl/?rev=3105&view=rev Author: outchy Date: 2010-01-04 20:42:07 +0000 (Mon, 04 Jan 2010) Log Message: ----------- renamed JclOtaExcDlgRepository.pas to JclOtaExcDlgParams.pas. Modified Paths: -------------- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgThreadFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTraceFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgWizard.pas trunk/jcl/experts/repository/JclOtaRepositoryReg.pas trunk/jcl/packages/c6/JclRepositoryExpert.bpk trunk/jcl/packages/c6/JclRepositoryExpert.dpk trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpf trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr trunk/jcl/packages/d10/JclRepositoryExpert.dpk trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d11/JclRepositoryExpert.dpk trunk/jcl/packages/d11/JclRepositoryExpert.dproj trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d12/JclRepositoryExpert.dpk trunk/jcl/packages/d12/JclRepositoryExpert.dproj trunk/jcl/packages/d12/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d12/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d14/JclRepositoryExpert.dpk trunk/jcl/packages/d14/JclRepositoryExpert.dproj trunk/jcl/packages/d14/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d14/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d6/JclRepositoryExpert.dpk trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d7/JclRepositoryExpert.dpk trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d9/JclRepositoryExpert.dpk trunk/jcl/packages/d9/JclRepositoryExpertDLL.dpr trunk/jcl/packages/xml/JclRepositoryExpert-D.xml trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml Added Paths: ----------- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgParams.pas Removed Paths: ------------- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas 2010-01-04 20:42:07 UTC (rev 3105) @@ -38,7 +38,7 @@ {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} - JclBorlandTools, JclOtaWizardFrame, JclOtaExcDlgRepository, JclOtaConsts, JclOtaUtils; + JclBorlandTools, JclOtaWizardFrame, JclOtaExcDlgParams, JclOtaConsts, JclOtaUtils; type TJclOtaExcDlgFilePage = class(TJclWizardFrame) Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas 2010-01-04 20:42:07 UTC (rev 3105) @@ -38,7 +38,7 @@ {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} - JclOtaExcDlgRepository, JclOtaWizardFrame; + JclOtaExcDlgParams, JclOtaWizardFrame; type TJclOtaExcDlgFormPage = class(TJclWizardFrame) Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas 2010-01-04 20:42:07 UTC (rev 3105) @@ -38,7 +38,7 @@ {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} - JclOtaExcDlgRepository, JclOtaWizardFrame; + JclOtaExcDlgParams, JclOtaWizardFrame; type TJclOtaExcDlgIgnorePage = class(TJclWizardFrame) Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas 2010-01-04 20:42:07 UTC (rev 3105) @@ -38,7 +38,7 @@ {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} - JclOtaExcDlgRepository, JclOtaWizardFrame; + JclOtaExcDlgParams, JclOtaWizardFrame; type TJclOtaExcDlgLogPage = class(TJclWizardFrame) Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgParams.pas (from rev 3103, trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgParams.pas (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgParams.pas 2010-01-04 20:42:07 UTC (rev 3105) @@ -0,0 +1,252 @@ +{**************************************************************************************************} +{ } +{ 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 JclOtaExcDlgRepository.pas. } +{ } +{ The Initial Developer of the Original Code is Florent Ouchet } +{ <outchy att users dott sourceforge dott net> } +{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All rights reserved. } +{ } +{ Contributors: } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: $ } +{ Revision: $Rev:: $ } +{ Author: $Author:: $ } +{ } +{**************************************************************************************************} + +unit JclOtaExcDlgParams; + +interface + +{$I jcl.inc} + +uses + Classes, Forms, + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + JclBorlandTools, + JclOtaTemplates; + +type + TJclOtaExcDlgParams = class(TJclOtaTemplateParams) + private + FHookDll: Boolean; + FFileName: string; + FCodeDetails: Boolean; + FModuleName: Boolean; + FModuleOffset: Boolean; + FDelayedTrace: Boolean; + FFormName: string; + FLogFile: Boolean; + FLogFileName: string; + FAutoSaveWorkingDirectory: Boolean; + FAutoSaveApplicationDirectory: Boolean; + FAutoSaveDesktopDirectory: Boolean; + FLogSaveDialog: Boolean; + FAddressOffset: Boolean; + FVirtualAddress: Boolean; + FActivePersonality: TJclBorPersonality; + FLanguages: TJclBorPersonalities; + FRawData: Boolean; + FSendEMail: Boolean; + FEMailAddress: string; + FFormAncestor: string; + FModalDialog: Boolean; + FSizeableDialog: Boolean; + FEMailSubject: string; + FDesigner: TJclBorDesigner; + FModuleList: Boolean; + FUnitVersioning: Boolean; + FOSInfo: Boolean; + FActiveControls: Boolean; + FDisableIfDebuggerAttached: Boolean; + FStackList: Boolean; + FAutoScrollBars: Boolean; + FCatchMainThread: Boolean; + FAllThreads: Boolean; + FAllRegisteredThreads: Boolean; + FMainExceptionThreads: Boolean; + FExceptionThread: Boolean; + FMainThread: Boolean; + FTraceEAbort: Boolean; + FIgnoredExceptions: TStrings; + FTraceAllExceptions: Boolean; + function GetIgnoredExceptionsCount: Integer; + function GetReportAllThreads: Boolean; + function GetReportExceptionThread: Boolean; + function GetReportMainThread: Boolean; + public + constructor Create; reintroduce; + destructor Destroy; override; + published + // file options + property Languages: TJclBorPersonalities read FLanguages write FLanguages; + property ActivePersonality: TJclBorPersonality read FActivePersonality + write FActivePersonality; + property FileName: string read FFileName write FFileName; + property FormName: string read FFormName write FFormName; + property FormAncestor: string read FFormAncestor write FFormAncestor; + property Designer: TJclBorDesigner read FDesigner write FDesigner; + // form options + property ModalDialog: Boolean read FModalDialog write FModalDialog; + property SendEMail: Boolean read FSendEMail write FSendEMail; + property EMailAddress: string read FEMailAddress write FEMailAddress; + property EMailSubject: string read FEMailSubject write FEMailSubject; + property SizeableDialog: Boolean read FSizeableDialog write FSizeableDialog; + property AutoScrollBars: Boolean read FAutoScrollBars write FAutoScrollBars; + // system options + property DelayedTrace: Boolean read FDelayedTrace write FDelayedTrace; + property HookDll: Boolean read FHookDll write FHookDll; + property OSInfo: Boolean read FOSInfo write FOSInfo; + property ModuleList: Boolean read FModuleList write FModuleList; + property UnitVersioning: Boolean read FUnitVersioning write FUnitVersioning; + property ActiveControls: Boolean read FActiveControls write FActiveControls; + property CatchMainThread: Boolean read FCatchMainThread write FCatchMainThread; + property DisableIfDebuggerAttached: Boolean read FDisableIfDebuggerAttached write FDisableIfDebuggerAttached; + // log options + property LogFile: Boolean read FLogFile write FLogFile; + property LogFileName: string read FLogFileName write FLogFileName; + property AutoSaveWorkingDirectory: Boolean read FAutoSaveWorkingDirectory write FAutoSaveWorkingDirectory; + property AutoSaveApplicationDirectory: Boolean read FAutoSaveApplicationDirectory write FAutoSaveApplicationDirectory; + property AutoSaveDesktopDirectory: Boolean read FAutoSaveDesktopDirectory write FAutoSaveDesktopDirectory; + property LogSaveDialog: Boolean read FLogSaveDialog write FLogSaveDialog; + // ignored exceptions + property TraceAllExceptions: Boolean read FTraceAllExceptions + write FTraceAllExceptions; + property TraceEAbort: Boolean read FTraceEAbort write FTraceEAbort; + property IgnoredExceptions: TStrings read FIgnoredExceptions write FIgnoredExceptions; + property IgnoredExceptionsCount: Integer read GetIgnoredExceptionsCount; + // trace options + property StackList: Boolean read FStackList write FStackList; + property RawData: Boolean read FRawData write FRawData; + property ModuleName: Boolean read FModuleName write FModuleName; + property ModuleOffset: Boolean read FModuleOffset write FModuleOffset; + // thread options (mutually exclusives) + property AllThreads: Boolean read FAllThreads write FAllThreads; + property AllRegisterThreads: Boolean read FAllRegisteredThreads write FAllRegisteredThreads; + property MainExceptionThreads: Boolean read FMainExceptionThreads write FMainExceptionThreads; + property ExceptionThread: Boolean read FExceptionThread write FExceptionThread; + property MainThread: Boolean read FMainThread write FMainThread; + // composite properties + property ReportMainThread: Boolean read GetReportMainThread; + property ReportAllThreads: Boolean read GetReportAllThreads; + property ReportExceptionThread: Boolean read GetReportExceptionThread; + //property AddressOffset: Boolean read FAddressOffset write FAddressOffset; + property CodeDetails: Boolean read FCodeDetails write FCodeDetails; + property VirtualAddress: Boolean read FVirtualAddress write FVirtualAddress; + end; + +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL$'; + Revision: '$Revision$'; + Date: '$Date$'; + LogPath: 'JCL\experts\repository'; + Extra: ''; + Data: nil + ); +{$ENDIF UNITVERSIONING} + +implementation + +{$R JclOtaExcDlgIcons.res} + +//=== { TJclOtaExcDlgParams } ================================================ + +constructor TJclOtaExcDlgParams.Create; +begin + inherited Create; + + FHookDll := True; + FLanguage := bpUnknown; + FLanguages := [bpUnknown]; + FFileName := ''; + FCodeDetails := True; + FModuleName := True; + FModuleOffset := False; + FDelayedTrace := True; + FFormName := 'ExceptionDialog'; + FFormAncestor := TForm.ClassName; + FLogFile := False; + FLogFileName := 'ExtractFileName(Application.ExeName) + ''-exception-'' + FormatDateTime(''yyyy-mm-dd'', Date) + ''.log'''; + FAutoSaveWorkingDirectory := False; + FAutoSaveApplicationDirectory := False; + FAutoSaveDesktopDirectory := False; + FLogSaveDialog := False; + FAddressOffset := True; + FVirtualAddress := False; + FActivePersonality := bpUnknown; + FRawData := False; + FSendEMail := False; + FEMailAddress := ''; + FEMailSubject := ''; + FModalDialog := True; + FSizeableDialog := False; + FDesigner := bdVCL; + FModuleList := True; + FUnitVersioning := True; + FOSInfo := True; + FActiveControls := True; + FDisableIfDebuggerAttached := False; + FStackList := True; + FAutoScrollBars := True; + FCatchMainThread := False; + FTraceEAbort := False; + FTraceAllExceptions := False; + FIgnoredExceptions := TStringList.Create; + FAllThreads := True; + FAllRegisteredThreads := False; + FMainExceptionThreads := False; + FExceptionThread := False; + FMainThread := False; +end; + +destructor TJclOtaExcDlgParams.Destroy; +begin + FIgnoredExceptions.Free; + inherited Destroy; +end; + +function TJclOtaExcDlgParams.GetIgnoredExceptionsCount: Integer; +begin + Result := FIgnoredExceptions.Count; +end; + +function TJclOtaExcDlgParams.GetReportAllThreads: Boolean; +begin + Result := FAllThreads or FAllRegisteredThreads; +end; + +function TJclOtaExcDlgParams.GetReportExceptionThread: Boolean; +begin + Result := FExceptionThread or FMainExceptionThreads; +end; + +function TJclOtaExcDlgParams.GetReportMainThread: Boolean; +begin + Result := FMainThread or FMainExceptionThreads or FAllThreads or FAllRegisteredThreads; +end; + +{$IFDEF UNITVERSIONING} +initialization + RegisterUnitVersion(HInstance, UnitVersioning); + +finalization + UnregisterUnitVersion(HInstance); +{$ENDIF UNITVERSIONING} + +end. Deleted: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas 2010-01-04 20:42:07 UTC (rev 3105) @@ -1,252 +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 JclOtaExcDlgRepository.pas. } -{ } -{ The Initial Developer of the Original Code is Florent Ouchet } -{ <outchy att users dott sourceforge dott net> } -{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All rights reserved. } -{ } -{ Contributors: } -{ } -{**************************************************************************************************} -{ } -{ Last modified: $Date:: $ } -{ Revision: $Rev:: $ } -{ Author: $Author:: $ } -{ } -{**************************************************************************************************} - -unit JclOtaExcDlgRepository; - -interface - -{$I jcl.inc} - -uses - Classes, Forms, - {$IFDEF UNITVERSIONING} - JclUnitVersioning, - {$ENDIF UNITVERSIONING} - JclBorlandTools, - JclOtaTemplates; - -type - TJclOtaExcDlgParams = class(TJclOtaTemplateParams) - private - FHookDll: Boolean; - FFileName: string; - FCodeDetails: Boolean; - FModuleName: Boolean; - FModuleOffset: Boolean; - FDelayedTrace: Boolean; - FFormName: string; - FLogFile: Boolean; - FLogFileName: string; - FAutoSaveWorkingDirectory: Boolean; - FAutoSaveApplicationDirectory: Boolean; - FAutoSaveDesktopDirectory: Boolean; - FLogSaveDialog: Boolean; - FAddressOffset: Boolean; - FVirtualAddress: Boolean; - FActivePersonality: TJclBorPersonality; - FLanguages: TJclBorPersonalities; - FRawData: Boolean; - FSendEMail: Boolean; - FEMailAddress: string; - FFormAncestor: string; - FModalDialog: Boolean; - FSizeableDialog: Boolean; - FEMailSubject: string; - FDesigner: TJclBorDesigner; - FModuleList: Boolean; - FUnitVersioning: Boolean; - FOSInfo: Boolean; - FActiveControls: Boolean; - FDisableIfDebuggerAttached: Boolean; - FStackList: Boolean; - FAutoScrollBars: Boolean; - FCatchMainThread: Boolean; - FAllThreads: Boolean; - FAllRegisteredThreads: Boolean; - FMainExceptionThreads: Boolean; - FExceptionThread: Boolean; - FMainThread: Boolean; - FTraceEAbort: Boolean; - FIgnoredExceptions: TStrings; - FTraceAllExceptions: Boolean; - function GetIgnoredExceptionsCount: Integer; - function GetReportAllThreads: Boolean; - function GetReportExceptionThread: Boolean; - function GetReportMainThread: Boolean; - public - constructor Create; reintroduce; - destructor Destroy; override; - published - // file options - property Languages: TJclBorPersonalities read FLanguages write FLanguages; - property ActivePersonality: TJclBorPersonality read FActivePersonality - write FActivePersonality; - property FileName: string read FFileName write FFileName; - property FormName: string read FFormName write FFormName; - property FormAncestor: string read FFormAncestor write FFormAncestor; - property Designer: TJclBorDesigner read FDesigner write FDesigner; - // form options - property ModalDialog: Boolean read FModalDialog write FModalDialog; - property SendEMail: Boolean read FSendEMail write FSendEMail; - property EMailAddress: string read FEMailAddress write FEMailAddress; - property EMailSubject: string read FEMailSubject write FEMailSubject; - property SizeableDialog: Boolean read FSizeableDialog write FSizeableDialog; - property AutoScrollBars: Boolean read FAutoScrollBars write FAutoScrollBars; - // system options - property DelayedTrace: Boolean read FDelayedTrace write FDelayedTrace; - property HookDll: Boolean read FHookDll write FHookDll; - property OSInfo: Boolean read FOSInfo write FOSInfo; - property ModuleList: Boolean read FModuleList write FModuleList; - property UnitVersioning: Boolean read FUnitVersioning write FUnitVersioning; - property ActiveControls: Boolean read FActiveControls write FActiveControls; - property CatchMainThread: Boolean read FCatchMainThread write FCatchMainThread; - property DisableIfDebuggerAttached: Boolean read FDisableIfDebuggerAttached write FDisableIfDebuggerAttached; - // log options - property LogFile: Boolean read FLogFile write FLogFile; - property LogFileName: string read FLogFileName write FLogFileName; - property AutoSaveWorkingDirectory: Boolean read FAutoSaveWorkingDirectory write FAutoSaveWorkingDirectory; - property AutoSaveApplicationDirectory: Boolean read FAutoSaveApplicationDirectory write FAutoSaveApplicationDirectory; - property AutoSaveDesktopDirectory: Boolean read FAutoSaveDesktopDirectory write FAutoSaveDesktopDirectory; - property LogSaveDialog: Boolean read FLogSaveDialog write FLogSaveDialog; - // ignored exceptions - property TraceAllExceptions: Boolean read FTraceAllExceptions - write FTraceAllExceptions; - property TraceEAbort: Boolean read FTraceEAbort write FTraceEAbort; - property IgnoredExceptions: TStrings read FIgnoredExceptions write FIgnoredExceptions; - property IgnoredExceptionsCount: Integer read GetIgnoredExceptionsCount; - // trace options - property StackList: Boolean read FStackList write FStackList; - property RawData: Boolean read FRawData write FRawData; - property ModuleName: Boolean read FModuleName write FModuleName; - property ModuleOffset: Boolean read FModuleOffset write FModuleOffset; - // thread options (mutually exclusives) - property AllThreads: Boolean read FAllThreads write FAllThreads; - property AllRegisterThreads: Boolean read FAllRegisteredThreads write FAllRegisteredThreads; - property MainExceptionThreads: Boolean read FMainExceptionThreads write FMainExceptionThreads; - property ExceptionThread: Boolean read FExceptionThread write FExceptionThread; - property MainThread: Boolean read FMainThread write FMainThread; - // composite properties - property ReportMainThread: Boolean read GetReportMainThread; - property ReportAllThreads: Boolean read GetReportAllThreads; - property ReportExceptionThread: Boolean read GetReportExceptionThread; - //property AddressOffset: Boolean read FAddressOffset write FAddressOffset; - property CodeDetails: Boolean read FCodeDetails write FCodeDetails; - property VirtualAddress: Boolean read FVirtualAddress write FVirtualAddress; - end; - -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL$'; - Revision: '$Revision$'; - Date: '$Date$'; - LogPath: 'JCL\experts\repository'; - Extra: ''; - Data: nil - ); -{$ENDIF UNITVERSIONING} - -implementation - -{$R JclOtaExcDlgIcons.res} - -//=== { TJclOtaExcDlgParams } ================================================ - -constructor TJclOtaExcDlgParams.Create; -begin - inherited Create; - - FHookDll := True; - FLanguage := bpUnknown; - FLanguages := [bpUnknown]; - FFileName := ''; - FCodeDetails := True; - FModuleName := True; - FModuleOffset := False; - FDelayedTrace := True; - FFormName := 'ExceptionDialog'; - FFormAncestor := TForm.ClassName; - FLogFile := False; - FLogFileName := 'ExtractFileName(Application.ExeName) + ''-exception-'' + FormatDateTime(''yyyy-mm-dd'', Date) + ''.log'''; - FAutoSaveWorkingDirectory := False; - FAutoSaveApplicationDirectory := False; - FAutoSaveDesktopDirectory := False; - FLogSaveDialog := False; - FAddressOffset := True; - FVirtualAddress := False; - FActivePersonality := bpUnknown; - FRawData := False; - FSendEMail := False; - FEMailAddress := ''; - FEMailSubject := ''; - FModalDialog := True; - FSizeableDialog := False; - FDesigner := bdVCL; - FModuleList := True; - FUnitVersioning := True; - FOSInfo := True; - FActiveControls := True; - FDisableIfDebuggerAttached := False; - FStackList := True; - FAutoScrollBars := True; - FCatchMainThread := False; - FTraceEAbort := False; - FTraceAllExceptions := False; - FIgnoredExceptions := TStringList.Create; - FAllThreads := True; - FAllRegisteredThreads := False; - FMainExceptionThreads := False; - FExceptionThread := False; - FMainThread := False; -end; - -destructor TJclOtaExcDlgParams.Destroy; -begin - FIgnoredExceptions.Free; - inherited Destroy; -end; - -function TJclOtaExcDlgParams.GetIgnoredExceptionsCount: Integer; -begin - Result := FIgnoredExceptions.Count; -end; - -function TJclOtaExcDlgParams.GetReportAllThreads: Boolean; -begin - Result := FAllThreads or FAllRegisteredThreads; -end; - -function TJclOtaExcDlgParams.GetReportExceptionThread: Boolean; -begin - Result := FExceptionThread or FMainExceptionThreads; -end; - -function TJclOtaExcDlgParams.GetReportMainThread: Boolean; -begin - Result := FMainThread or FMainExceptionThreads or FAllThreads or FAllRegisteredThreads; -end; - -{$IFDEF UNITVERSIONING} -initialization - RegisterUnitVersion(HInstance, UnitVersioning); - -finalization - UnregisterUnitVersion(HInstance); -{$ENDIF UNITVERSIONING} - -end. Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas 2010-01-04 20:42:07 UTC (rev 3105) @@ -38,7 +38,7 @@ {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} - JclOtaExcDlgRepository, JclOtaWizardFrame; + JclOtaExcDlgParams, JclOtaWizardFrame; type TJclOtaExcDlgSystemPage = class(TJclWizardFrame) Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgThreadFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgThreadFrame.pas 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgThreadFrame.pas 2010-01-04 20:42:07 UTC (rev 3105) @@ -38,7 +38,7 @@ {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} - JclOtaExcDlgRepository, JclOtaWizardFrame; + JclOtaExcDlgParams, JclOtaWizardFrame; type TJclOtaExcDlgThreadPage = class(TJclWizardFrame) Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTraceFrame.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTraceFrame.pas 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTraceFrame.pas 2010-01-04 20:42:07 UTC (rev 3105) @@ -38,7 +38,7 @@ {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} - JclOtaExcDlgRepository, JclOtaWizardFrame; + JclOtaExcDlgParams, JclOtaWizardFrame; type TJclOtaExcDlgTracePage = class(TJclWizardFrame) Modified: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgWizard.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgWizard.pas 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgWizard.pas 2010-01-04 20:42:07 UTC (rev 3105) @@ -38,7 +38,7 @@ {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} - JclBorlandTools, JclOtaExcDlgRepository, JclOtaWizardForm; + JclBorlandTools, JclOtaExcDlgParams, JclOtaWizardForm; type TJclOtaExcDlgForm = class(TJclWizardForm) Modified: trunk/jcl/experts/repository/JclOtaRepositoryReg.pas =================================================================== --- trunk/jcl/experts/repository/JclOtaRepositoryReg.pas 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/experts/repository/JclOtaRepositoryReg.pas 2010-01-04 20:42:07 UTC (rev 3105) @@ -52,7 +52,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} JclBorlandTools, - JclOtaUtils, JclOtaRepositoryUtils, JclOtaExcDlgRepository; + JclOtaUtils, JclOtaRepositoryUtils, JclOtaExcDlgParams; type TJclExcDlgExpert = class(TJclOtaRepositoryExpert) Modified: trunk/jcl/packages/c6/JclRepositoryExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpert.bpk 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/c6/JclRepositoryExpert.bpk 2010-01-04 20:42:07 UTC (rev 3105) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 03-01-2010 23:24:33 UTC + Last generated: 04-01-2010 20:33:44 UTC ***************************************************************************** --> <PROJECT> @@ -16,7 +16,7 @@ ..\..\lib\c6\JclRepositoryExpert.obj ..\..\lib\c6\JclOtaTemplates.obj ..\..\lib\c6\JclOtaRepositoryUtils.obj - ..\..\lib\c6\JclOtaExcDlgRepository.obj + ..\..\lib\c6\JclOtaExcDlgParams.obj ..\..\lib\c6\JclOtaExcDlgWizard.obj ..\..\lib\c6\JclOtaExcDlgFileFrame.obj ..\..\lib\c6\JclOtaExcDlgFormFrame.obj @@ -94,7 +94,7 @@ <FILE FILENAME="JclBaseExpert.bpi" FORMNAME="" UNITNAME="JclBaseExpert" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\JclOtaTemplates.pas" FORMNAME="" UNITNAME="JclOtaTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\JclOtaRepositoryUtils.pas" FORMNAME="" UNITNAME="JclOtaRepositoryUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" FORMNAME="" UNITNAME="JclOtaExcDlgRepository" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" FORMNAME="" UNITNAME="JclOtaExcDlgParams" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" FORMNAME="JclOtaExcDlgForm" UNITNAME="JclOtaExcDlgWizard" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" FORMNAME="JclOtaExcDlgFilePage" UNITNAME="JclOtaExcDlgFileFrame" CONTAINERID="PascalCompiler" DESIGNCLASS="TFrame" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas" FORMNAME="JclOtaExcDlgFormPage" UNITNAME="JclOtaExcDlgFormFrame" CONTAINERID="PascalCompiler" DESIGNCLASS="TFrame" LOCALCOMMAND=""/> Modified: trunk/jcl/packages/c6/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpert.dpk 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/c6/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 03-01-2010 23:24:34 UTC + Last generated: 04-01-2010 20:33:45 UTC ----------------------------------------------------------------------------- } @@ -48,7 +48,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpf =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpf 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpf 2010-01-04 20:42:07 UTC (rev 3105) @@ -1,6 +1,6 @@ USEUNIT("..\..\experts\repository\JclOtaTemplates.pas"); USEUNIT("..\..\experts\repository\JclOtaRepositoryUtils.pas"); -USEUNIT("..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas"); +USEUNIT("..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas"); USEUNIT("..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas"); USEUNIT("..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas"); USEUNIT("..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas"); Modified: trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr 2010-01-04 20:42:07 UTC (rev 3105) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 03-01-2010 23:24:33 UTC + Last generated: 04-01-2010 20:33:44 UTC ***************************************************************************** --> <PROJECT> @@ -16,7 +16,7 @@ ..\..\lib\c6\JclRepositoryExpertDLL.obj ..\..\lib\c6\JclOtaTemplates.obj ..\..\lib\c6\JclOtaRepositoryUtils.obj - ..\..\lib\c6\JclOtaExcDlgRepository.obj + ..\..\lib\c6\JclOtaExcDlgParams.obj ..\..\lib\c6\JclOtaExcDlgWizard.obj ..\..\lib\c6\JclOtaExcDlgFileFrame.obj ..\..\lib\c6\JclOtaExcDlgFormFrame.obj @@ -93,7 +93,7 @@ <FILE FILENAME="JclBaseExpert.bpi" FORMNAME="" UNITNAME="JclBaseExpert" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\JclOtaTemplates.pas" FORMNAME="" UNITNAME="JclOtaTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\JclOtaRepositoryUtils.pas" FORMNAME="" UNITNAME="JclOtaRepositoryUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" FORMNAME="" UNITNAME="JclOtaExcDlgRepository" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" FORMNAME="" UNITNAME="JclOtaExcDlgParams" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" FORMNAME="JclOtaExcDlgForm" UNITNAME="JclOtaExcDlgWizard" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" FORMNAME="JclOtaExcDlgFilePage" UNITNAME="JclOtaExcDlgFileFrame" CONTAINERID="PascalCompiler" DESIGNCLASS="TFrame" LOCALCOMMAND=""/> <FILE FILENAME="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas" FORMNAME="JclOtaExcDlgFormPage" UNITNAME="JclOtaExcDlgFormFrame" CONTAINERID="PascalCompiler" DESIGNCLASS="TFrame" LOCALCOMMAND=""/> Modified: trunk/jcl/packages/d10/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d10/JclRepositoryExpert.dpk 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d10/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 03-01-2010 23:24:37 UTC + Last generated: 04-01-2010 20:33:51 UTC ----------------------------------------------------------------------------- } @@ -49,7 +49,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 03-01-2010 23:24:37 UTC + Last generated: 04-01-2010 20:33:51 UTC ----------------------------------------------------------------------------- } @@ -41,7 +41,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/d11/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d11/JclRepositoryExpert.dpk 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d11/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 03-01-2010 23:24:37 UTC + Last generated: 04-01-2010 20:33:51 UTC ----------------------------------------------------------------------------- } @@ -49,7 +49,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/d11/JclRepositoryExpert.dproj =================================================================== --- trunk/jcl/packages/d11/JclRepositoryExpert.dproj 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d11/JclRepositoryExpert.dproj 2010-01-04 20:42:07 UTC (rev 3105) @@ -92,7 +92,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> - <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas" /> Modified: trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 03-01-2010 23:24:37 UTC + Last generated: 04-01-2010 20:33:51 UTC ----------------------------------------------------------------------------- } @@ -41,7 +41,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj =================================================================== --- trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj 2010-01-04 20:42:07 UTC (rev 3105) @@ -92,7 +92,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> - <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas" /> Modified: trunk/jcl/packages/d12/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d12/JclRepositoryExpert.dpk 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d12/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 03-01-2010 23:24:38 UTC + Last generated: 04-01-2010 20:33:52 UTC ----------------------------------------------------------------------------- } @@ -49,7 +49,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/d12/JclRepositoryExpert.dproj =================================================================== --- trunk/jcl/packages/d12/JclRepositoryExpert.dproj 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d12/JclRepositoryExpert.dproj 2010-01-04 20:42:07 UTC (rev 3105) @@ -67,7 +67,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> - <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas" /> Modified: trunk/jcl/packages/d12/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d12/JclRepositoryExpertDLL.dpr 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d12/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 03-01-2010 23:24:38 UTC + Last generated: 04-01-2010 20:33:52 UTC ----------------------------------------------------------------------------- } @@ -41,7 +41,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/d12/JclRepositoryExpertDLL.dproj =================================================================== --- trunk/jcl/packages/d12/JclRepositoryExpertDLL.dproj 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d12/JclRepositoryExpertDLL.dproj 2010-01-04 20:42:07 UTC (rev 3105) @@ -67,7 +67,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> - <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas" /> Modified: trunk/jcl/packages/d14/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d14/JclRepositoryExpert.dpk 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d14/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 03-01-2010 23:24:38 UTC + Last generated: 04-01-2010 20:33:53 UTC ----------------------------------------------------------------------------- } @@ -49,7 +49,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/d14/JclRepositoryExpert.dproj =================================================================== --- trunk/jcl/packages/d14/JclRepositoryExpert.dproj 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d14/JclRepositoryExpert.dproj 2010-01-04 20:42:07 UTC (rev 3105) @@ -69,7 +69,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> - <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas" /> Modified: trunk/jcl/packages/d14/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d14/JclRepositoryExpertDLL.dpr 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d14/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 03-01-2010 23:24:38 UTC + Last generated: 04-01-2010 20:33:53 UTC ----------------------------------------------------------------------------- } @@ -41,7 +41,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/d14/JclRepositoryExpertDLL.dproj =================================================================== --- trunk/jcl/packages/d14/JclRepositoryExpertDLL.dproj 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d14/JclRepositoryExpertDLL.dproj 2010-01-04 20:42:07 UTC (rev 3105) @@ -69,7 +69,7 @@ <DCCReference Include="JclBaseExpert.dcp" /> <DCCReference Include="..\..\experts\repository\JclOtaTemplates.pas" /> <DCCReference Include="..\..\experts\repository\JclOtaRepositoryUtils.pas" /> - <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas" /> + <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas" /> <DCCReference Include="..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas" /> Modified: trunk/jcl/packages/d6/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d6/JclRepositoryExpert.dpk 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d6/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 03-01-2010 23:24:34 UTC + Last generated: 04-01-2010 20:33:46 UTC ----------------------------------------------------------------------------- } @@ -48,7 +48,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 03-01-2010 23:24:34 UTC + Last generated: 04-01-2010 20:33:46 UTC ----------------------------------------------------------------------------- } @@ -40,7 +40,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/d7/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d7/JclRepositoryExpert.dpk 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d7/JclRepositoryExpert.dpk 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 03-01-2010 23:24:35 UTC + Last generated: 04-01-2010 20:33:48 UTC ----------------------------------------------------------------------------- } @@ -48,7 +48,7 @@ contains JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgParams.pas' , JclOtaExcDlgWizard in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgWizard.pas' {JclOtaExcDlgForm}, JclOtaExcDlgFileFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFileFrame.pas' {JclOtaExcDlgFilePage: TFrame}, JclOtaExcDlgFormFrame in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgFormFrame.pas' {JclOtaExcDlgFormPage: TFrame}, Modified: trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr 2010-01-04 20:11:11 UTC (rev 3104) +++ trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr 2010-01-04 20:42:07 UTC (rev 3105) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 03-01-2010 23:24:35 UTC + Last generated: 04-01-2010 20:33:48 UTC ----------------------------------------------------------------------------- } @@ -40,7 +40,7 @@ ToolsAPI, JclOtaTemplates in '..\..\experts\repository\JclOtaTemplates.pas' , JclOtaRepositoryUtils in '..\..\experts\repository\JclOtaRepositoryUtils.pas' , - JclOtaExcDlgRepository in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgRepository.pas' , + JclOtaExcDlgParams in '..\..\experts\repository\ExceptionDialog\JclOtaExcDlgP... [truncated message content] |
From: <ou...@us...> - 2010-01-04 20:11:55
|
Revision: 3104 http://jcl.svn.sourceforge.net/jcl/?rev=3104&view=rev Author: outchy Date: 2010-01-04 20:11:11 +0000 (Mon, 04 Jan 2010) Log Message: ----------- documentation update. Modified Paths: -------------- trunk/jcl/docs/Experts.html Modified: trunk/jcl/docs/Experts.html =================================================================== --- trunk/jcl/docs/Experts.html 2010-01-03 23:38:46 UTC (rev 3103) +++ trunk/jcl/docs/Experts.html 2010-01-04 20:11:11 UTC (rev 3104) @@ -27,7 +27,7 @@ <p>For Delphi 5, Delphi 6, Delphi 7, C++Builder 5 and C++Builder 6, experts can be installed as design time packages or dll experts. For C#Builder 1 and Delphi 8, experts are installed as dll experts (those products don't load design time -packages). For Delphi 2005, Borland Developer Studio 2006 and Turbo Delphi Professional, +packages). For Delphi 2005, Borland Developer Studio 2006, Turbo Delphi Professional and newer tools, experts are installed as design time packages.</p> <h3><a name="debug">Debug Extension for JclDebug unit</a></h3> <p>The <tt>experts\debug </tt>folder contains an IDE expert which @@ -41,7 +41,7 @@ dialog -> Linker page, Detailed checkbox.</li> <li>Generate and deploy JDBG file file with your executable file. This is binary file based on MAP file but its size is typically about -12% of original MAP file. You can generate it by MapToJdbg tool in <tt>jcl\examples\windows\tools</tt> +12% of original MAP file. You can generate it by MapToJdbg tool in <tt>jcl\experts\debug\tools</tt> folder. The advantage over MAP file is smaller size and better security of the file content because it is not a plain text file and it also contains a checksum. The IDE expert can automatically create this file @@ -59,14 +59,17 @@ info in Linker option page.</li> </ol> <p> -The IDE expert will add new item to IDE Project menu. For -Delphi 5, 6 and 7 it adds 'Insert JCL Debug data' check item at the end -of the Project menu. When the item is checked, everytime the project is -compiled by one of following commands: Compile, Build, Compile All Projects, -Build All Projects or Run necessary JCL debug data are automatically created -from the detailled MAP file. The behavior of this conversion can be customized in -the JCL options dialog (in the Tools menu of the IDE): the debug informations can -be exported as .jdbg files or inserted in the binary file. The expert outputs a +The IDE expert will add new item to IDE Project menu. The expert behavior can be customized by +using the "JCL Debug Expert" item at the end +of the Project menu. This submenu contains three settings to configure the operations that are automatically +executed each time the projects are compiled/built. Three distinct operations are possible: +<ol> + <li>Automatically create .jdbg file from project MAP file;</li> + <li>Automatically insert JCL Debug info into the executable;</li> + <li>Automatically delete the MAP file after the conversions are done.</li> +</ol> +For each of these operations, the action can be enabled/disabled either on a project basis or for all projects. +The expert outputs a message in the IDE message view to display details about the data being generated.</p> <p> You can generate those debug data for packages and libraries as well @@ -75,7 +78,7 @@ Borland runtime packages because the source location code can use names of exported functions to get procedure or method name. To get line number information for Borland RTL and VCL/CLX units you have to check Use Debug DCUs checkbox in -Project|Options dialog -> Compiler tab. Unfortunately it is not +Project|Options dialog -> Compiler tab. Unfortunately, it is not possible to get line number information for Borland runtime packages because Borland does not provide detailed MAP files for them so you get procedure or method name only.</p> @@ -90,20 +93,22 @@ <li>Library or Borland package export tables</li> </ol> <p>It is also possible to create JCL debug data programmatically from a MAP file -by using MakeJclDbg command line tool in jcl\examples\windows\delphitools folder. +by using MakeJclDbg command line tool in jcl\experts\debug\tools folder. This utility can either export data as a separate .jdbg file or insert them in the executable. You can study included makefiles which uses this tool for building delphitools examples.</p> <p>To help using JclDebug exceptional stack tracking in application -simple dialog is provided in <tt>jcl\experts\debug\dialog</tt>folder. The dialog -replaces standard dialog displayed by VCL or CLX application when an unhandled +simple dialog is provided in <tt>jcl\experts\repository\ExceptionDialog\StandardDialogs</tt>folder. The dialog +replaces standard dialog displayed by VCL applications when an unhandled exception occurs. It has additional Detailed button showing the stack, list of loaded modules and other system information. By adding the dialog to the application exceptional stack tracking code is automatically initialized so you don't have to care about it. You can also turn on logging to text file by setting -the Tag property of the dialog to '1'. There is also version for CLX -(ClxExceptDlg) but it works on Windows only. These dialogs are intended to be added to +the Tag property of the dialog to '1'. These dialogs are intended to be added to Object Repository.</p> +<p>The repository expert can customize these standard exception dialogs by enabling additional features +and by helping their creation by a step by step wizard. The dialogs can be created for any Delphi/C++Builder +applications by invoking the File/New... menu.</p> <p><b>Short description of getting the JclDebug functionality in your project:</b></p> <ol> @@ -120,7 +125,7 @@ either Delphi or C++Builder depending on your project). A wizard will appear to configure the options for this dialog. </li> - <li>Check "Project" | "Insert JCL Debug data" menu item + <li>Configure "Project" | "JCL Debug expert" to your needs </li> <li>Do Project | Build</li> </ol> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-03 23:38:58
|
Revision: 3103 http://jcl.svn.sourceforge.net/jcl/?rev=3103&view=rev Author: outchy Date: 2010-01-03 23:38:46 +0000 (Sun, 03 Jan 2010) Log Message: ----------- move of the Exception Dialog repository expert units to a dedicated directory. Modified Paths: -------------- trunk/jcl/packages/c6/JclRepositoryExpert.bpk trunk/jcl/packages/c6/JclRepositoryExpert.cpp trunk/jcl/packages/c6/JclRepositoryExpert.dpk trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpf trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr trunk/jcl/packages/c6/JclRepositoryExpertDLL.cpp trunk/jcl/packages/d10/JclRepositoryExpert.dpk trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d11/JclRepositoryExpert.dpk trunk/jcl/packages/d11/JclRepositoryExpert.dproj trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d12/JclRepositoryExpert.dpk trunk/jcl/packages/d12/JclRepositoryExpert.dproj trunk/jcl/packages/d12/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d12/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d14/JclRepositoryExpert.dpk trunk/jcl/packages/d14/JclRepositoryExpert.dproj trunk/jcl/packages/d14/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d14/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d6/JclRepositoryExpert.dpk trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d7/JclRepositoryExpert.dpk trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d9/JclRepositoryExpert.dpk trunk/jcl/packages/d9/JclRepositoryExpertDLL.dpr trunk/jcl/packages/xml/JclRepositoryExpert-D.xml trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml Added Paths: ----------- trunk/jcl/experts/repository/ExceptionDialog/ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.dfm trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.dfm trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIcons.RES trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIcons.rc trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.dfm trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.dfm trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.dfm trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgThreadFrame.dfm trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgThreadFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTraceFrame.dfm trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTraceFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgWizard.dfm trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgWizard.pas Removed Paths: ------------- trunk/jcl/experts/repository/JclOtaExcDlgFileFrame.dfm trunk/jcl/experts/repository/JclOtaExcDlgFileFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgFormFrame.dfm trunk/jcl/experts/repository/JclOtaExcDlgFormFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgIcons.RES trunk/jcl/experts/repository/JclOtaExcDlgIcons.rc trunk/jcl/experts/repository/JclOtaExcDlgIgnoreFrame.dfm trunk/jcl/experts/repository/JclOtaExcDlgIgnoreFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgLogFrame.dfm trunk/jcl/experts/repository/JclOtaExcDlgLogFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgRepository.pas trunk/jcl/experts/repository/JclOtaExcDlgSystemFrame.dfm trunk/jcl/experts/repository/JclOtaExcDlgSystemFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgThreadFrame.dfm trunk/jcl/experts/repository/JclOtaExcDlgThreadFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgTraceFrame.dfm trunk/jcl/experts/repository/JclOtaExcDlgTraceFrame.pas trunk/jcl/experts/repository/JclOtaExcDlgWizard.dfm trunk/jcl/experts/repository/JclOtaExcDlgWizard.pas Property changes on: trunk/jcl/experts/repository/ExceptionDialog ___________________________________________________________________ Added: tsvn:projectlanguage + 0x0409 Added: bugtraq:url + http://issuetracker.delphi-jedi.org/view.php?id=%BUGID% Added: bugtraq:message + (Mantis #%BUGID%) Added: svn:ignore + *.~* *.hpp *.dcu __history *.bak Added: bugtraq:logregex + [Mm]antis #?(\d+)(,? ?#?(\d+))+ (\d+) Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.dfm (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgFileFrame.dfm) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.dfm (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.dfm 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,79 @@ +inherited JclOtaExcDlgFilePage: TJclOtaExcDlgFilePage + object LabelLanguage: TLabel + Left = 23 + Top = 27 + Width = 59 + Height = 13 + Caption = 'RsLanguage' + FocusControl = ComboBoxLanguage + end + object LabelFormName: TLabel + Left = 23 + Top = 182 + Width = 63 + Height = 13 + Caption = 'RsFormName' + FocusControl = EditFormName + end + object LabelFileName: TLabel + Left = 23 + Top = 75 + Width = 55 + Height = 13 + Caption = 'RsFileName' + FocusControl = EditFileName + end + object LabelFormAncestor: TLabel + Left = 23 + Top = 222 + Width = 79 + Height = 13 + Caption = 'RsFormAncestor' + FocusControl = EditFormAncestor + end + object ComboBoxLanguage: TComboBox + Left = 136 + Top = 24 + Width = 249 + Height = 21 + Style = csDropDownList + ItemHeight = 0 + TabOrder = 0 + OnClick = ComboBoxLanguageClick + end + object EditFormName: TEdit + Left = 136 + Top = 179 + Width = 249 + Height = 21 + TabOrder = 3 + end + object EditFileName: TEdit + Left = 136 + Top = 72 + Width = 249 + Height = 21 + TabOrder = 1 + end + object ButtonFileBrowse: TButton + Left = 391 + Top = 72 + Width = 25 + Height = 21 + Caption = '...' + TabOrder = 2 + OnClick = ButtonFileBrowseClick + end + object EditFormAncestor: TEdit + Left = 136 + Top = 219 + Width = 249 + Height = 21 + TabOrder = 4 + end + object SaveDialogFileName: TSaveDialog + Options = [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist, ofNoReadOnlyReturn, ofEnableSizing] + Left = 260 + Top = 96 + end +end Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgFileFrame.pas) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,256 @@ +{**************************************************************************************************} +{ } +{ 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 JclOtaExcDlgFileFrame.pas. } +{ } +{ The Initial Developer of the Original Code is Florent Ouchet } +{ <outchy att users dott sourceforge dott net> } +{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All rights reserved. } +{ } +{ Contributors: } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: $ } +{ Revision: $Rev:: $ } +{ Author: $Author:: $ } +{ } +{**************************************************************************************************} + +unit JclOtaExcDlgFileFrame; + +interface + +{$I jcl.inc} + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + JclBorlandTools, JclOtaWizardFrame, JclOtaExcDlgRepository, JclOtaConsts, JclOtaUtils; + +type + TJclOtaExcDlgFilePage = class(TJclWizardFrame) + ComboBoxLanguage: TComboBox; + LabelLanguage: TLabel; + EditFormName: TEdit; + LabelFormName: TLabel; + EditFileName: TEdit; + LabelFileName: TLabel; + ButtonFileBrowse: TButton; + EditFormAncestor: TEdit; + LabelFormAncestor: TLabel; + SaveDialogFileName: TSaveDialog; + procedure ButtonFileBrowseClick(Sender: TObject); + procedure ComboBoxLanguageClick(Sender: TObject); + private + FParams: TJclOtaExcDlgParams; + procedure AdjustFileExtension; + function GetSelectedLanguage: TJclBorPersonality; + protected + function GetSupportsNext: Boolean; override; + property SelectedLanguage: TJclBorPersonality read GetSelectedLanguage; + public + constructor Create(AOwner: TComponent; + AParams: TJclOtaExcDlgParams); reintroduce; + + procedure PageActivated(Direction: TJclWizardDirection); override; + procedure PageDesactivated(Direction: TJclWizardDirection); override; + + property Params: TJclOtaExcDlgParams read FParams write FParams; + end; + +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL$'; + Revision: '$Revision$'; + Date: '$Date$'; + LogPath: 'JCL\experts\repository'; + Extra: ''; + Data: nil + ); +{$ENDIF UNITVERSIONING} + +implementation + +{$R *.dfm} + +uses + ToolsAPI, + JclStrings, + JclOtaResources; + +//=== { TJclOtaExcDlgFilePage } ============================================== + +procedure TJclOtaExcDlgFilePage.AdjustFileExtension; +var + AFileName: string; +begin + AFileName := EditFileName.Text; + if AFileName <> '' then + begin + case SelectedLanguage of + bpDelphi32: + AFileName := ChangeFileExt(AFileName, SourceExtensionPAS); + bpBCBuilder32: + AFileName := ChangeFileExt(AFileName, SourceExtensionCPP); + end; + EditFileName.Text := AFileName; + end; +end; + +procedure TJclOtaExcDlgFilePage.ButtonFileBrowseClick(Sender: TObject); + procedure AddFilter(const NewDescription, NewExtension: string); + var + AFilter: string; + begin + AFilter := SaveDialogFileName.Filter; + if AFilter <> '' then + AFilter := StrEnsureSuffix('|',AFilter); + AFilter := Format('%s%s (*%s)|*%s',[AFilter, NewDescription, NewExtension, NewExtension]); + SaveDialogFileName.Filter := AFilter; + end; +begin + SaveDialogFileName.FileName := EditFileName.Text; + SaveDialogFileName.Title := LoadResString(@RsFileNameDialog); + + SaveDialogFileName.Filter := ''; + AddFilter('All files', '.*'); + if (bpDelphi32 in Params.Languages) or (bpBCBuilder32 in Params.Languages) then + AddFilter(SourceDescriptionPAS, SourceExtensionPAS); + if bpBCBuilder32 in Params.Languages then + AddFilter(SourceDescriptionCPP, SourceExtensionCPP); + + if ComboBoxLanguage.ItemIndex > -1 then + case SelectedLanguage of + bpDelphi32 : + SaveDialogFileName.FilterIndex := 2; + bpBCBuilder32 : + SaveDialogFileName.FilterIndex := 3; + else + SaveDialogFileName.FilterIndex := 1; + end + else + SaveDialogFileName.DefaultExt := ''; + + if SaveDialogFileName.Execute then + EditFileName.Text := SaveDialogFileName.FileName; + AdjustFileExtension; +end; + +procedure TJclOtaExcDlgFilePage.ComboBoxLanguageClick(Sender: TObject); +begin + AdjustFileExtension; +end; + +constructor TJclOtaExcDlgFilePage.Create(AOwner: TComponent; + AParams: TJclOtaExcDlgParams); +begin + FParams := AParams; + inherited Create(AOwner); + + Caption := LoadResString(@RsExcDlgFileOptions); + LabelLanguage.Caption := LoadResString(@RsLanguage); + LabelFileName.Caption := LoadResString(@RsFileName); + LabelFormName.Caption := LoadResString(@RsFormName); + LabelFormAncestor.Caption := LoadResString(@RsFormAncestor); +end; + +function TJclOtaExcDlgFilePage.GetSelectedLanguage: TJclBorPersonality; +begin + if ComboBoxLanguage.ItemIndex > -1 then + Result := TJclBorPersonality(ComboBoxLanguage.Items.Objects[ComboBoxLanguage.ItemIndex]) + else + Result := bpUnknown; +end; + +function TJclOtaExcDlgFilePage.GetSupportsNext: Boolean; +var + AProject: IOTAProject; + AModuleInfo: IOTAModuleInfo; + ValidFormName, ValidFileName: Boolean; + ProposedModuleName: string; + Index: Integer; +begin + AProject := TJclOTAExpertBase.GetActiveProject; + ValidFormName := IsValidIdent(EditFormName.Text); + ProposedModuleName := ChangeFileExt(ExtractFileName(EditFileName.Text), ''); + ValidFileName := (ProposedModuleName = '') or IsValidIdent(ProposedModuleName); + + if Assigned(AProject) then + begin + if ValidFileName and (ProposedModuleName <> '') and StrSame(ProposedModuleName, ChangeFileExt(ExtractFileName(AProject.FileName), '')) then + ValidFileName := False; + + for Index := 0 to AProject.GetModuleCount - 1 do + begin + AModuleInfo := AProject.GetModule(Index); + if ValidFormName and (AModuleInfo.ModuleType = JclRepositoryModuleTypeForm) and StrSame(EditFormName.Text, AModuleInfo.FormName) then + ValidFormName := False; + if ValidFileName and (ProposedModuleName <> '') and StrSame(ProposedModuleName, ChangeFileExt(ExtractFileName(AModuleInfo.FileName), '')) then + ValidFileName := False; + end; + end; + + Result := ValidFormName and ValidFileName and (ComboBoxLanguage.ItemIndex > -1) and (EditFormName.Text <> '') and (EditFormAncestor.Text <> '') + and (( SelectedLanguage = Params.ActivePersonality) + or (EditFileName.Text <> '')); +end; + +procedure TJclOtaExcDlgFilePage.PageActivated(Direction: TJclWizardDirection); +var + Language: TJclBorPersonality; + ItemIndex: Integer; +begin + inherited PageActivated(Direction); + + ComboBoxLanguage.Items.Clear; + + for Language := Low(TJclBorPersonality) to High(TJclBorPersonality) do + if Language in Params.Languages then + begin + ItemIndex := ComboBoxLanguage.Items.AddObject(JclBorPersonalityDescription[Language], TObject(Language)); + if Language = Params.Language then + ComboBoxLanguage.ItemIndex := ItemIndex; + end; + + EditFileName.Text := Params.FileName; + EditFormName.Text := Params.FormName; + EditFormAncestor.Text := Params.FormAncestor; +end; + +procedure TJclOtaExcDlgFilePage.PageDesactivated( + Direction: TJclWizardDirection); +begin + inherited PageDesactivated(Direction); + + if ComboBoxLanguage.ItemIndex > -1 then + Params.Language := SelectedLanguage + else + Params.Language := bpUnknown; + Params.FileName := EditFileName.Text; + Params.FormName := EditFormName.Text; + Params.FormAncestor := EditFormAncestor.Text; +end; + +{$IFDEF UNITVERSIONING} +initialization + RegisterUnitVersion(HInstance, UnitVersioning); + +finalization + UnregisterUnitVersion(HInstance); +{$ENDIF UNITVERSIONING} + +end. Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.dfm (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgFormFrame.dfm) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.dfm (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.dfm 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,65 @@ +inherited JclOtaExcDlgFormPage: TJclOtaExcDlgFormPage + object LabelEMailAddress: TLabel + Left = 97 + Top = 186 + Width = 36 + Height = 13 + Caption = 'RsEmail' + FocusControl = EditEMail + end + object LabelSubject: TLabel + Left = 97 + Top = 226 + Width = 48 + Height = 13 + Caption = 'RsSubject' + FocusControl = EditSubject + end + object CheckBoxMail: TCheckBox + Left = 72 + Top = 144 + Width = 233 + Height = 17 + Caption = 'RsDialogWithMailButton' + TabOrder = 3 + OnClick = CheckBoxMailClick + end + object EditEMail: TEdit + Left = 160 + Top = 183 + Width = 193 + Height = 21 + TabOrder = 4 + end + object CheckBoxModalDialog: TCheckBox + Left = 72 + Top = 24 + Width = 233 + Height = 17 + Caption = 'RsModalDialog' + TabOrder = 0 + end + object CheckBoxSizeable: TCheckBox + Left = 72 + Top = 64 + Width = 233 + Height = 17 + Caption = 'RsSizeable' + TabOrder = 1 + end + object EditSubject: TEdit + Left = 160 + Top = 223 + Width = 193 + Height = 21 + TabOrder = 5 + end + object CheckBoxAutoScrollBars: TCheckBox + Left = 72 + Top = 104 + Width = 233 + Height = 17 + Caption = 'RsAutoScrollBars' + TabOrder = 2 + end +end Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgFormFrame.pas) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,167 @@ +{**************************************************************************************************} +{ } +{ 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 JclOtaExcDlgFormFrame.pas. } +{ } +{ The Initial Developer of the Original Code is Florent Ouchet } +{ <outchy att users dott sourceforge dott net> } +{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All rights reserved. } +{ } +{ Contributors: } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: $ } +{ Revision: $Rev:: $ } +{ Author: $Author:: $ } +{ } +{**************************************************************************************************} + +unit JclOtaExcDlgFormFrame; + +interface + +{$I jcl.inc} + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + JclOtaExcDlgRepository, JclOtaWizardFrame; + +type + TJclOtaExcDlgFormPage = class(TJclWizardFrame) + CheckBoxMail: TCheckBox; + LabelEMailAddress: TLabel; + EditEMail: TEdit; + CheckBoxModalDialog: TCheckBox; + CheckBoxSizeable: TCheckBox; + EditSubject: TEdit; + LabelSubject: TLabel; + CheckBoxAutoScrollBars: TCheckBox; + procedure CheckBoxMailClick(Sender: TObject); + private + FParams: TJclOtaExcDlgParams; + procedure UpdateMailEdits; + protected + function GetSupportsNext: Boolean; override; + public + constructor Create(AOwner: TComponent; AParams: TJclOtaExcDlgParams); reintroduce; + + procedure PageActivated(Direction: TJclWizardDirection); override; + procedure PageDesactivated(Direction: TJclWizardDirection); override; + + property Params: TJclOtaExcDlgParams read FParams write FParams; + end; + +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL$'; + Revision: '$Revision$'; + Date: '$Date$'; + LogPath: 'JCL\experts\repository'; + Extra: ''; + Data: nil + ); +{$ENDIF UNITVERSIONING} + +implementation + +{$R *.dfm} + +uses + JclOtaResources; + +//=== { TJclOtaExcDlgFormPage } ============================================== + +procedure TJclOtaExcDlgFormPage.CheckBoxMailClick(Sender: TObject); +begin + UpdateMailEdits; +end; + +constructor TJclOtaExcDlgFormPage.Create(AOwner: TComponent; + AParams: TJclOtaExcDlgParams); +begin + FParams := AParams; + inherited Create(AOwner); + + Caption := LoadResString(@RsExcDlgFormOptions); + CheckBoxMail.Caption := LoadResString(@RsDialogWithMailButton); + LabelEMailAddress.Caption := LoadResString(@RsEMail); + LabelSubject.Caption := LoadResString(@RsSubject); + CheckBoxModalDialog.Caption := LoadResString(@RsModalDialog); + CheckBoxSizeable.Caption := LoadResString(@RsSizeableDialog); + CheckBoxAutoScrollBars.Caption := LoadResString(@RsAutoScrollBars); +end; + +function TJclOtaExcDlgFormPage.GetSupportsNext: Boolean; +begin + Result := (not CheckBoxMail.Checked) or ((EditEMail.Text <> '') and (EditSubject.Text <> '')); +end; + +procedure TJclOtaExcDlgFormPage.PageActivated(Direction: TJclWizardDirection); +begin + inherited PageActivated(Direction); + + CheckBoxMail.Checked := Params.SendEMail; + EditEMail.Text := Params.EMailAddress; + EditSubject.Text := Params.EMailSubject; + CheckBoxModalDialog.Checked := Params.ModalDialog; + CheckBoxSizeable.Checked := Params.SizeableDialog; + CheckBoxAutoScrollBars.Checked := Params.AutoScrollBars; + + UpdateMailEdits; +end; + +procedure TJclOtaExcDlgFormPage.PageDesactivated( + Direction: TJclWizardDirection); +begin + inherited PageDesactivated(Direction); + + Params.SendEMail := CheckBoxMail.Checked; + Params.EMailAddress := EditEMail.Text; + Params.EMailSubject := EditSubject.Text; + Params.ModalDialog := CheckBoxModalDialog.Checked; + Params.SizeableDialog := CheckBoxSizeable.Checked; + Params.AutoScrollBars := CheckBoxAutoScrollBars.Checked; +end; + +procedure TJclOtaExcDlgFormPage.UpdateMailEdits; +begin + if CheckBoxMail.Checked then + begin + EditEMail.Enabled := True; + EditSubject.Enabled := True; + EditEMail.Color := clWindow; + EditSubject.Color := clWindow; + end + else + begin + EditEMail.Enabled := False; + EditSubject.Enabled := False; + EditEMail.ParentColor := True; + EditSubject.ParentColor := True; + end; +end; + +{$IFDEF UNITVERSIONING} +initialization + RegisterUnitVersion(HInstance, UnitVersioning); + +finalization + UnregisterUnitVersion(HInstance); +{$ENDIF UNITVERSIONING} + +end. Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIcons.RES (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgIcons.RES) =================================================================== (Binary files differ) Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIcons.rc (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgIcons.rc) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIcons.rc (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIcons.rc 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,2 @@ +JCLEXCDLG ICON "ExceptDlg.ico" +JCLEXCDLGCPP ICON "ExceptDlgCpp.ico" Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.dfm (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgIgnoreFrame.dfm) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.dfm (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.dfm 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,34 @@ +inherited JclOtaExcDlgIgnorePage: TJclOtaExcDlgIgnorePage + object LabelIgnoredExceptions: TLabel + Left = 120 + Top = 80 + Width = 102 + Height = 13 + Caption = 'RsIgnoredExceptions' + FocusControl = MemoIgnoredExceptions + end + object CheckBoxTraceAllExceptions: TCheckBox + Left = 96 + Top = 16 + Width = 393 + Height = 17 + Caption = 'RsTraceAllExceptions' + TabOrder = 0 + OnClick = CheckBoxTraceAllExceptionsClick + end + object CheckBoxTraceEAbort: TCheckBox + Left = 120 + Top = 48 + Width = 369 + Height = 17 + Caption = 'RsTraceEAbort' + TabOrder = 1 + end + object MemoIgnoredExceptions: TMemo + Left = 120 + Top = 99 + Width = 369 + Height = 177 + TabOrder = 2 + end +end Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgIgnoreFrame.pas) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,147 @@ +{**************************************************************************************************} +{ } +{ 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 JclOtaExcDlgIgnoreFrame.pas. } +{ } +{ The Initial Developer of the Original Code is Florent Ouchet } +{ <outchy att users dott sourceforge dott net> } +{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All rights reserved. } +{ } +{ Contributors: } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: $ } +{ Revision: $Rev:: $ } +{ Author: $Author:: $ } +{ } +{**************************************************************************************************} + +unit JclOtaExcDlgIgnoreFrame; + +interface + +{$I jcl.inc} + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + JclOtaExcDlgRepository, JclOtaWizardFrame; + +type + TJclOtaExcDlgIgnorePage = class(TJclWizardFrame) + CheckBoxTraceAllExceptions: TCheckBox; + CheckBoxTraceEAbort: TCheckBox; + LabelIgnoredExceptions: TLabel; + MemoIgnoredExceptions: TMemo; + procedure CheckBoxTraceAllExceptionsClick(Sender: TObject); + private + FParams: TJclOtaExcDlgParams; + procedure UpdateControls; + public + constructor Create(AOwner: TComponent; AParams: TJclOtaExcDlgParams); reintroduce; + + procedure PageActivated(Direction: TJclWizardDirection); override; + procedure PageDesactivated(Direction: TJclWizardDirection); override; + + property Params: TJclOtaExcDlgParams read FParams write FParams; + end; + +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL$'; + Revision: '$Revision$'; + Date: '$Date$'; + LogPath: 'JCL\experts\repository'; + Extra: ''; + Data: nil + ); +{$ENDIF UNITVERSIONING} + +implementation + +{$R *.dfm} + +uses + JclOtaResources; + +//=== { TJclOtaExcDlgIgnorePage } ============================================ + +procedure TJclOtaExcDlgIgnorePage.CheckBoxTraceAllExceptionsClick( + Sender: TObject); +begin + UpdateControls; +end; + +constructor TJclOtaExcDlgIgnorePage.Create(AOwner: TComponent; + AParams: TJclOtaExcDlgParams); +begin + FParams := AParams; + inherited Create(AOwner); + + Caption := LoadResString(@RsExcDlgIgnoreOptions); + CheckBoxTraceAllExceptions.Caption := LoadResString(@RsTraceAllExceptions); + CheckBoxTraceEAbort.Caption := LoadResString(@RsTraceEAbort); + LabelIgnoredExceptions.Caption := LoadResString(@RsIgnoredExceptions); +end; + +procedure TJclOtaExcDlgIgnorePage.PageActivated(Direction: TJclWizardDirection); +begin + inherited PageActivated(Direction); + + CheckBoxTraceAllExceptions.Checked := Params.TraceAllExceptions; + CheckBoxTraceEAbort.Checked := Params.TraceEAbort; + MemoIgnoredExceptions.Lines.Assign(Params.IgnoredExceptions); + UpdateControls; +end; + +procedure TJclOtaExcDlgIgnorePage.PageDesactivated( + Direction: TJclWizardDirection); +begin + inherited PageDesactivated(Direction); + + Params.TraceAllExceptions := CheckBoxTraceAllExceptions.Checked; + Params.TraceEAbort := CheckBoxTraceEAbort.Checked; + Params.IgnoredExceptions.Assign(MemoIgnoredExceptions.Lines); +end; + +procedure TJclOtaExcDlgIgnorePage.UpdateControls; +begin + if CheckBoxTraceAllExceptions.Checked then + begin + CheckBoxTraceEAbort.Enabled := False; + MemoIgnoredExceptions.Enabled := False; + LabelIgnoredExceptions.Enabled := False; + MemoIgnoredExceptions.ParentColor := True; + end + else + begin + CheckBoxTraceEAbort.Enabled := True; + MemoIgnoredExceptions.Enabled := True; + LabelIgnoredExceptions.Enabled := True; + MemoIgnoredExceptions.Color := clWindow; + end; +end; + +{$IFDEF UNITVERSIONING} +initialization + RegisterUnitVersion(HInstance, UnitVersioning); + +finalization + UnregisterUnitVersion(HInstance); +{$ENDIF UNITVERSIONING} + +end. Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.dfm (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgLogFrame.dfm) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.dfm (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.dfm 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,57 @@ +inherited JclOtaExcDlgLogPage: TJclOtaExcDlgLogPage + object LabelLogFileName: TLabel + Left = 170 + Top = 59 + Width = 55 + Height = 13 + Caption = 'RsFileName' + end + object CheckBoxLogFile: TCheckBox + Left = 120 + Top = 25 + Width = 361 + Height = 17 + Caption = 'RsLogFile' + TabOrder = 0 + OnClick = CheckBoxLogFileClick + end + object EditLogFileName: TEdit + Left = 240 + Top = 56 + Width = 241 + Height = 21 + TabOrder = 1 + end + object CheckBoxLogInWorkingDirectory: TCheckBox + Left = 144 + Top = 96 + Width = 337 + Height = 17 + Caption = 'RsLogInWorkingDirectory' + TabOrder = 2 + end + object CheckBoxLogInApplicationDirectory: TCheckBox + Left = 144 + Top = 128 + Width = 337 + Height = 17 + Caption = 'RsLogInApplicationDirectory' + TabOrder = 3 + end + object CheckBoxLogInDesktopDirectory: TCheckBox + Left = 144 + Top = 160 + Width = 337 + Height = 17 + Caption = 'RsLogInDesktopDirectory' + TabOrder = 4 + end + object CheckBoxSaveDialog: TCheckBox + Left = 144 + Top = 192 + Width = 337 + Height = 17 + Caption = 'RsLogSaveDialog' + TabOrder = 5 + end +end Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgLogFrame.pas) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,164 @@ +{**************************************************************************************************} +{ } +{ 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 JclOtaExcDlgLogFrame.pas. } +{ } +{ The Initial Developer of the Original Code is Florent Ouchet } +{ <outchy att users dott sourceforge dott net> } +{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All rights reserved. } +{ } +{ Contributors: } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: $ } +{ Revision: $Rev:: $ } +{ Author: $Author:: $ } +{ } +{**************************************************************************************************} + +unit JclOtaExcDlgLogFrame; + +interface + +{$I jcl.inc} + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + JclOtaExcDlgRepository, JclOtaWizardFrame; + +type + TJclOtaExcDlgLogPage = class(TJclWizardFrame) + CheckBoxLogFile: TCheckBox; + LabelLogFileName: TLabel; + EditLogFileName: TEdit; + CheckBoxLogInWorkingDirectory: TCheckBox; + CheckBoxLogInApplicationDirectory: TCheckBox; + CheckBoxLogInDesktopDirectory: TCheckBox; + CheckBoxSaveDialog: TCheckBox; + procedure CheckBoxLogFileClick(Sender: TObject); + private + FParams: TJclOtaExcDlgParams; + procedure UpdateLogControls; + protected + function GetSupportsNext: Boolean; override; + public + constructor Create(AOwner: TComponent; AParams: TJclOtaExcDlgParams); reintroduce; + + procedure PageActivated(Direction: TJclWizardDirection); override; + procedure PageDesactivated(Direction: TJclWizardDirection); override; + + property Params: TJclOtaExcDlgParams read FParams write FParams; + end; + +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL$'; + Revision: '$Revision$'; + Date: '$Date$'; + LogPath: 'JCL\experts\repository'; + Extra: ''; + Data: nil + ); +{$ENDIF UNITVERSIONING} + +implementation + +{$R *.dfm} + +uses + JclOtaResources; + +//=== { TJclOtaExcDlgLogPage } =============================================== + +procedure TJclOtaExcDlgLogPage.CheckBoxLogFileClick(Sender: TObject); +begin + UpdateLogControls; +end; + +constructor TJclOtaExcDlgLogPage.Create(AOwner: TComponent; + AParams: TJclOtaExcDlgParams); +begin + FParams := AParams; + inherited Create(AOwner); + + Caption := LoadResString(@RsExcDlgLogOptions); + CheckBoxLogFile.Caption := LoadResString(@RsLogTrace); + LabelLogFileName.Caption := LoadResString(@RsFileName); + CheckBoxLogInWorkingDirectory.Caption := LoadResString(@RsLogInWorkingDirectory); + CheckBoxLogInApplicationDirectory.Caption := LoadResString(@RsLogInApplicationDirectory); + CheckBoxLogInDesktopDirectory.Caption := LoadResString(@RsLogInDesktopDirectory); + CheckBoxSaveDialog.Caption := LoadResString(@RsLogSaveDialog); +end; + +function TJclOtaExcDlgLogPage.GetSupportsNext: Boolean; +begin + Result := (not CheckBoxLogFile.Checked) or (EditLogFileName.Text <> ''); +end; + +procedure TJclOtaExcDlgLogPage.PageActivated(Direction: TJclWizardDirection); +begin + inherited PageActivated(Direction); + + CheckBoxLogFile.Checked := Params.LogFile; + EditLogFileName.Text := Params.LogFileName; + CheckBoxLogInWorkingDirectory.Checked := Params.AutoSaveWorkingDirectory; + CheckBoxLogInApplicationDirectory.Checked := Params.AutoSaveApplicationDirectory; + CheckBoxLogInDesktopDirectory.Checked := Params.AutoSaveDesktopDirectory; + CheckBoxSaveDialog.Checked := Params.LogSaveDialog; + + UpdateLogControls; +end; + +procedure TJclOtaExcDlgLogPage.PageDesactivated( + Direction: TJclWizardDirection); +begin + inherited PageDesactivated(Direction); + + Params.LogFile := CheckBoxLogFile.Checked; + Params.LogFileName := EditLogFileName.Text; + Params.AutoSaveWorkingDirectory := CheckBoxLogInWorkingDirectory.Checked; + Params.AutoSaveApplicationDirectory := CheckBoxLogInApplicationDirectory.Checked; + Params.AutoSaveDesktopDirectory := CheckBoxLogInDesktopDirectory.Checked; + Params.LogSaveDialog := CheckBoxSaveDialog.Checked; +end; + +procedure TJclOtaExcDlgLogPage.UpdateLogControls; +var + AEnabled: Boolean; +begin + AEnabled := CheckBoxLogFile.Checked; + EditLogFileName.Enabled := AEnabled; + if AEnabled then + EditLogFileName.Color := clWindow + else + EditLogFileName.ParentColor := True; + CheckBoxLogInWorkingDirectory.Enabled := AEnabled; + CheckBoxLogInApplicationDirectory.Enabled := AEnabled; + CheckBoxLogInDesktopDirectory.Enabled := AEnabled; + CheckBoxSaveDialog.Enabled := AEnabled; +end; + +{$IFDEF UNITVERSIONING} +initialization + RegisterUnitVersion(HInstance, UnitVersioning); + +finalization + UnregisterUnitVersion(HInstance); +{$ENDIF UNITVERSIONING} + +end. Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgRepository.pas) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,252 @@ +{**************************************************************************************************} +{ } +{ 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 JclOtaExcDlgRepository.pas. } +{ } +{ The Initial Developer of the Original Code is Florent Ouchet } +{ <outchy att users dott sourceforge dott net> } +{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All rights reserved. } +{ } +{ Contributors: } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: $ } +{ Revision: $Rev:: $ } +{ Author: $Author:: $ } +{ } +{**************************************************************************************************} + +unit JclOtaExcDlgRepository; + +interface + +{$I jcl.inc} + +uses + Classes, Forms, + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + JclBorlandTools, + JclOtaTemplates; + +type + TJclOtaExcDlgParams = class(TJclOtaTemplateParams) + private + FHookDll: Boolean; + FFileName: string; + FCodeDetails: Boolean; + FModuleName: Boolean; + FModuleOffset: Boolean; + FDelayedTrace: Boolean; + FFormName: string; + FLogFile: Boolean; + FLogFileName: string; + FAutoSaveWorkingDirectory: Boolean; + FAutoSaveApplicationDirectory: Boolean; + FAutoSaveDesktopDirectory: Boolean; + FLogSaveDialog: Boolean; + FAddressOffset: Boolean; + FVirtualAddress: Boolean; + FActivePersonality: TJclBorPersonality; + FLanguages: TJclBorPersonalities; + FRawData: Boolean; + FSendEMail: Boolean; + FEMailAddress: string; + FFormAncestor: string; + FModalDialog: Boolean; + FSizeableDialog: Boolean; + FEMailSubject: string; + FDesigner: TJclBorDesigner; + FModuleList: Boolean; + FUnitVersioning: Boolean; + FOSInfo: Boolean; + FActiveControls: Boolean; + FDisableIfDebuggerAttached: Boolean; + FStackList: Boolean; + FAutoScrollBars: Boolean; + FCatchMainThread: Boolean; + FAllThreads: Boolean; + FAllRegisteredThreads: Boolean; + FMainExceptionThreads: Boolean; + FExceptionThread: Boolean; + FMainThread: Boolean; + FTraceEAbort: Boolean; + FIgnoredExceptions: TStrings; + FTraceAllExceptions: Boolean; + function GetIgnoredExceptionsCount: Integer; + function GetReportAllThreads: Boolean; + function GetReportExceptionThread: Boolean; + function GetReportMainThread: Boolean; + public + constructor Create; reintroduce; + destructor Destroy; override; + published + // file options + property Languages: TJclBorPersonalities read FLanguages write FLanguages; + property ActivePersonality: TJclBorPersonality read FActivePersonality + write FActivePersonality; + property FileName: string read FFileName write FFileName; + property FormName: string read FFormName write FFormName; + property FormAncestor: string read FFormAncestor write FFormAncestor; + property Designer: TJclBorDesigner read FDesigner write FDesigner; + // form options + property ModalDialog: Boolean read FModalDialog write FModalDialog; + property SendEMail: Boolean read FSendEMail write FSendEMail; + property EMailAddress: string read FEMailAddress write FEMailAddress; + property EMailSubject: string read FEMailSubject write FEMailSubject; + property SizeableDialog: Boolean read FSizeableDialog write FSizeableDialog; + property AutoScrollBars: Boolean read FAutoScrollBars write FAutoScrollBars; + // system options + property DelayedTrace: Boolean read FDelayedTrace write FDelayedTrace; + property HookDll: Boolean read FHookDll write FHookDll; + property OSInfo: Boolean read FOSInfo write FOSInfo; + property ModuleList: Boolean read FModuleList write FModuleList; + property UnitVersioning: Boolean read FUnitVersioning write FUnitVersioning; + property ActiveControls: Boolean read FActiveControls write FActiveControls; + property CatchMainThread: Boolean read FCatchMainThread write FCatchMainThread; + property DisableIfDebuggerAttached: Boolean read FDisableIfDebuggerAttached write FDisableIfDebuggerAttached; + // log options + property LogFile: Boolean read FLogFile write FLogFile; + property LogFileName: string read FLogFileName write FLogFileName; + property AutoSaveWorkingDirectory: Boolean read FAutoSaveWorkingDirectory write FAutoSaveWorkingDirectory; + property AutoSaveApplicationDirectory: Boolean read FAutoSaveApplicationDirectory write FAutoSaveApplicationDirectory; + property AutoSaveDesktopDirectory: Boolean read FAutoSaveDesktopDirectory write FAutoSaveDesktopDirectory; + property LogSaveDialog: Boolean read FLogSaveDialog write FLogSaveDialog; + // ignored exceptions + property TraceAllExceptions: Boolean read FTraceAllExceptions + write FTraceAllExceptions; + property TraceEAbort: Boolean read FTraceEAbort write FTraceEAbort; + property IgnoredExceptions: TStrings read FIgnoredExceptions write FIgnoredExceptions; + property IgnoredExceptionsCount: Integer read GetIgnoredExceptionsCount; + // trace options + property StackList: Boolean read FStackList write FStackList; + property RawData: Boolean read FRawData write FRawData; + property ModuleName: Boolean read FModuleName write FModuleName; + property ModuleOffset: Boolean read FModuleOffset write FModuleOffset; + // thread options (mutually exclusives) + property AllThreads: Boolean read FAllThreads write FAllThreads; + property AllRegisterThreads: Boolean read FAllRegisteredThreads write FAllRegisteredThreads; + property MainExceptionThreads: Boolean read FMainExceptionThreads write FMainExceptionThreads; + property ExceptionThread: Boolean read FExceptionThread write FExceptionThread; + property MainThread: Boolean read FMainThread write FMainThread; + // composite properties + property ReportMainThread: Boolean read GetReportMainThread; + property ReportAllThreads: Boolean read GetReportAllThreads; + property ReportExceptionThread: Boolean read GetReportExceptionThread; + //property AddressOffset: Boolean read FAddressOffset write FAddressOffset; + property CodeDetails: Boolean read FCodeDetails write FCodeDetails; + property VirtualAddress: Boolean read FVirtualAddress write FVirtualAddress; + end; + +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL$'; + Revision: '$Revision$'; + Date: '$Date$'; + LogPath: 'JCL\experts\repository'; + Extra: ''; + Data: nil + ); +{$ENDIF UNITVERSIONING} + +implementation + +{$R JclOtaExcDlgIcons.res} + +//=== { TJclOtaExcDlgParams } ================================================ + +constructor TJclOtaExcDlgParams.Create; +begin + inherited Create; + + FHookDll := True; + FLanguage := bpUnknown; + FLanguages := [bpUnknown]; + FFileName := ''; + FCodeDetails := True; + FModuleName := True; + FModuleOffset := False; + FDelayedTrace := True; + FFormName := 'ExceptionDialog'; + FFormAncestor := TForm.ClassName; + FLogFile := False; + FLogFileName := 'ExtractFileName(Application.ExeName) + ''-exception-'' + FormatDateTime(''yyyy-mm-dd'', Date) + ''.log'''; + FAutoSaveWorkingDirectory := False; + FAutoSaveApplicationDirectory := False; + FAutoSaveDesktopDirectory := False; + FLogSaveDialog := False; + FAddressOffset := True; + FVirtualAddress := False; + FActivePersonality := bpUnknown; + FRawData := False; + FSendEMail := False; + FEMailAddress := ''; + FEMailSubject := ''; + FModalDialog := True; + FSizeableDialog := False; + FDesigner := bdVCL; + FModuleList := True; + FUnitVersioning := True; + FOSInfo := True; + FActiveControls := True; + FDisableIfDebuggerAttached := False; + FStackList := True; + FAutoScrollBars := True; + FCatchMainThread := False; + FTraceEAbort := False; + FTraceAllExceptions := False; + FIgnoredExceptions := TStringList.Create; + FAllThreads := True; + FAllRegisteredThreads := False; + FMainExceptionThreads := False; + FExceptionThread := False; + FMainThread := False; +end; + +destructor TJclOtaExcDlgParams.Destroy; +begin + FIgnoredExceptions.Free; + inherited Destroy; +end; + +function TJclOtaExcDlgParams.GetIgnoredExceptionsCount: Integer; +begin + Result := FIgnoredExceptions.Count; +end; + +function TJclOtaExcDlgParams.GetReportAllThreads: Boolean; +begin + Result := FAllThreads or FAllRegisteredThreads; +end; + +function TJclOtaExcDlgParams.GetReportExceptionThread: Boolean; +begin + Result := FExceptionThread or FMainExceptionThreads; +end; + +function TJclOtaExcDlgParams.GetReportMainThread: Boolean; +begin + Result := FMainThread or FMainExceptionThreads or FAllThreads or FAllRegisteredThreads; +end; + +{$IFDEF UNITVERSIONING} +initialization + RegisterUnitVersion(HInstance, UnitVersioning); + +finalization + UnregisterUnitVersion(HInstance); +{$ENDIF UNITVERSIONING} + +end. Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.dfm (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgSystemFrame.dfm) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.dfm (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.dfm 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,67 @@ +inherited JclOtaExcDlgSystemPage: TJclOtaExcDlgSystemPage + object CheckBoxDelayed: TCheckBox + Left = 120 + Top = 18 + Width = 265 + Height = 17 + Caption = 'RsDelayedStackTrace' + TabOrder = 0 + end + object CheckBoxHookDll: TCheckBox + Left = 120 + Top = 50 + Width = 265 + Height = 17 + Caption = 'RsHookDll' + TabOrder = 1 + end + object CheckBoxModuleList: TCheckBox + Left = 120 + Top = 114 + Width = 265 + Height = 17 + Caption = 'RsModuleList' + TabOrder = 3 + OnClick = CheckBoxModuleListClick + end + object CheckBoxOSInfo: TCheckBox + Left = 120 + Top = 178 + Width = 265 + Height = 17 + Caption = 'RsOSInfo' + TabOrder = 5 + end + object CheckBoxActiveControls: TCheckBox + Left = 120 + Top = 210 + Width = 265 + Height = 17 + Caption = 'RsActiveControls' + TabOrder = 6 + end + object CheckBoxCatchMainThread: TCheckBox + Left = 120 + Top = 82 + Width = 265 + Height = 17 + Caption = 'RsCatchMainThread' + TabOrder = 2 + end + object CheckBoxUnitVersioning: TCheckBox + Left = 152 + Top = 146 + Width = 233 + Height = 17 + Caption = 'RsUnitVersioning' + TabOrder = 4 + end + object CheckBoxDisableIfDebuggerAttached: TCheckBox + Left = 120 + Top = 242 + Width = 265 + Height = 17 + Caption = 'RsDisableIfDebuggerAttached' + TabOrder = 7 + end +end Copied: trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas (from rev 3101, trunk/jcl/experts/repository/JclOtaExcDlgSystemFrame.pas) =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas (rev 0) +++ trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas 2010-01-03 23:38:46 UTC (rev 3103) @@ -0,0 +1,145 @@ +{**************************************************************************************************} +{ } +{ 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 JclOtaExcDlgSystemFrame.pas. } +{ } +{ The Initial Developer of the Original Code is Florent Ouchet } +{ <outchy att users dott sourceforge dott net> } +{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All rights reserved. } +{ } +{ Contributors: } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: $ } +{ Revision: $Rev:: $ } +{ Author: $Author:: $ } +{ } +{**************************************************************************************************} + +unit JclOtaExcDlgSystemFrame; + +interface + +{$I jcl.inc} + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + JclOtaExcDlgRepository, JclOtaWizardFrame; + +type + TJclOtaExcDlgSystemPage = class(TJclWizardFrame) + CheckBoxDelayed: TCheckBox; + CheckBoxHookDll: TCheckBox; + CheckBoxModuleList: TCheckBox; + CheckBoxOSInfo: TCheckBox; + CheckBoxActiveCont... [truncated message content] |
From: <ou...@us...> - 2010-01-03 21:32:20
|
Revision: 3102 http://jcl.svn.sourceforge.net/jcl/?rev=3102&view=rev Author: outchy Date: 2010-01-03 21:32:07 +0000 (Sun, 03 Jan 2010) Log Message: ----------- JPP moved to a new location inside the JCL source repository. Modified Paths: -------------- trunk/website/delphi-jedi/jpp.html Modified: trunk/website/delphi-jedi/jpp.html =================================================================== --- trunk/website/delphi-jedi/jpp.html 2010-01-03 21:27:45 UTC (rev 3101) +++ trunk/website/delphi-jedi/jpp.html 2010-01-03 21:32:07 UTC (rev 3102) @@ -119,7 +119,7 @@ <p> You can download the tool directly from our homepage. </p> -<a href="http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jpp/">Download from this page</a> <br> +<a href="http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/devtools/jpp/">Download from this page</a> <br> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-01-03 21:27:57
|
Revision: 3101 http://jcl.svn.sourceforge.net/jcl/?rev=3101&view=rev Author: outchy Date: 2010-01-03 21:27:45 +0000 (Sun, 03 Jan 2010) Log Message: ----------- unit reordering. Modified Paths: -------------- trunk/jcl/packages/c6/Jcl.bpk trunk/jcl/packages/c6/Jcl.dpk trunk/jcl/packages/cs1/Jcl.dpk trunk/jcl/packages/d10/Jcl.dpk trunk/jcl/packages/d11/Jcl.dpk trunk/jcl/packages/d11/Jcl.dproj trunk/jcl/packages/d12/Jcl.dpk trunk/jcl/packages/d12/Jcl.dproj trunk/jcl/packages/d14/Jcl.dpk trunk/jcl/packages/d14/Jcl.dproj trunk/jcl/packages/d6/Jcl.dpk trunk/jcl/packages/d7/Jcl.dpk trunk/jcl/packages/d8/Jcl.dpk trunk/jcl/packages/d9/Jcl.dpk trunk/jcl/packages/fpc/Jcl.lpk trunk/jcl/packages/fpc/Jcl.pas trunk/jcl/packages/xml/Jcl-R.xml Modified: trunk/jcl/packages/c6/Jcl.bpk =================================================================== --- trunk/jcl/packages/c6/Jcl.bpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/c6/Jcl.bpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 22-08-2009 11:50:44 UTC + Last generated: 03-01-2010 21:25:03 UTC ***************************************************************************** --> <PROJECT> @@ -43,8 +43,8 @@ ..\..\lib\c6\JclPCRE.obj ..\..\lib\c6\JclResources.obj ..\..\lib\c6\JclRTTI.obj + ..\..\lib\c6\JclSchedule.obj ..\..\lib\c6\JclSimpleXml.obj - ..\..\lib\c6\JclSchedule.obj ..\..\lib\c6\JclStatistics.obj ..\..\lib\c6\JclStreams.obj ..\..\lib\c6\JclStrHashMap.obj @@ -176,8 +176,8 @@ <FILE FILENAME="..\..\source\common\JclPCRE.pas" FORMNAME="" UNITNAME="JclPCRE" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclResources.pas" FORMNAME="" UNITNAME="JclResources" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclRTTI.pas" FORMNAME="" UNITNAME="JclRTTI" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\source\common\JclSchedule.pas" FORMNAME="" UNITNAME="JclSchedule" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclSimpleXml.pas" FORMNAME="" UNITNAME="JclSimpleXml" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclSchedule.pas" FORMNAME="" UNITNAME="JclSchedule" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclStatistics.pas" FORMNAME="" UNITNAME="JclStatistics" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclStreams.pas" FORMNAME="" UNITNAME="JclStreams" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclStrHashMap.pas" FORMNAME="" UNITNAME="JclStrHashMap" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jcl/packages/c6/Jcl.dpk =================================================================== --- trunk/jcl/packages/c6/Jcl.dpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/c6/Jcl.dpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 22-08-2009 11:50:49 UTC + Last generated: 03-01-2010 21:25:03 UTC ----------------------------------------------------------------------------- } @@ -71,8 +71,8 @@ JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , JclRTTI in '..\..\source\common\JclRTTI.pas' , + JclSchedule in '..\..\source\common\JclSchedule.pas' , JclSimpleXml in '..\..\source\common\JclSimpleXml.pas' , - JclSchedule in '..\..\source\common\JclSchedule.pas' , JclStatistics in '..\..\source\common\JclStatistics.pas' , JclStreams in '..\..\source\common\JclStreams.pas' , JclStrHashMap in '..\..\source\common\JclStrHashMap.pas' , Modified: trunk/jcl/packages/cs1/Jcl.dpk =================================================================== --- trunk/jcl/packages/cs1/Jcl.dpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/cs1/Jcl.dpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 30-07-2009 10:40:29 UTC + Last generated: 03-01-2010 21:25:06 UTC ----------------------------------------------------------------------------- } @@ -71,8 +71,8 @@ JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , JclRTTI in '..\..\source\common\JclRTTI.pas' , + JclSchedule in '..\..\source\common\JclSchedule.pas' , JclSimpleXml in '..\..\source\common\JclSimpleXml.pas' , - JclSchedule in '..\..\source\common\JclSchedule.pas' , JclStatistics in '..\..\source\common\JclStatistics.pas' , JclStreams in '..\..\source\common\JclStreams.pas' , JclStrHashMap in '..\..\source\common\JclStrHashMap.pas' , Modified: trunk/jcl/packages/d10/Jcl.dpk =================================================================== --- trunk/jcl/packages/d10/Jcl.dpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/d10/Jcl.dpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 22-08-2009 11:51:04 UTC + Last generated: 03-01-2010 21:25:07 UTC ----------------------------------------------------------------------------- } @@ -72,8 +72,8 @@ JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , JclRTTI in '..\..\source\common\JclRTTI.pas' , + JclSchedule in '..\..\source\common\JclSchedule.pas' , JclSimpleXml in '..\..\source\common\JclSimpleXml.pas' , - JclSchedule in '..\..\source\common\JclSchedule.pas' , JclStatistics in '..\..\source\common\JclStatistics.pas' , JclStreams in '..\..\source\common\JclStreams.pas' , JclStrHashMap in '..\..\source\common\JclStrHashMap.pas' , Modified: trunk/jcl/packages/d11/Jcl.dpk =================================================================== --- trunk/jcl/packages/d11/Jcl.dpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/d11/Jcl.dpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 22-08-2009 11:51:06 UTC + Last generated: 03-01-2010 21:25:07 UTC ----------------------------------------------------------------------------- } @@ -72,8 +72,8 @@ JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , JclRTTI in '..\..\source\common\JclRTTI.pas' , + JclSchedule in '..\..\source\common\JclSchedule.pas' , JclSimpleXml in '..\..\source\common\JclSimpleXml.pas' , - JclSchedule in '..\..\source\common\JclSchedule.pas' , JclStatistics in '..\..\source\common\JclStatistics.pas' , JclStreams in '..\..\source\common\JclStreams.pas' , JclStrHashMap in '..\..\source\common\JclStrHashMap.pas' , Modified: trunk/jcl/packages/d11/Jcl.dproj =================================================================== --- trunk/jcl/packages/d11/Jcl.dproj 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/d11/Jcl.dproj 2010-01-03 21:27:45 UTC (rev 3101) @@ -115,8 +115,8 @@ <DCCReference Include="..\..\source\common\JclPCRE.pas" /> <DCCReference Include="..\..\source\common\JclResources.pas" /> <DCCReference Include="..\..\source\common\JclRTTI.pas" /> + <DCCReference Include="..\..\source\common\JclSchedule.pas" /> <DCCReference Include="..\..\source\common\JclSimpleXml.pas" /> - <DCCReference Include="..\..\source\common\JclSchedule.pas" /> <DCCReference Include="..\..\source\common\JclStatistics.pas" /> <DCCReference Include="..\..\source\common\JclStreams.pas" /> <DCCReference Include="..\..\source\common\JclStrHashMap.pas" /> Modified: trunk/jcl/packages/d12/Jcl.dpk =================================================================== --- trunk/jcl/packages/d12/Jcl.dpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/d12/Jcl.dpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 22-08-2009 11:51:08 UTC + Last generated: 03-01-2010 21:25:08 UTC ----------------------------------------------------------------------------- } @@ -72,8 +72,8 @@ JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , JclRTTI in '..\..\source\common\JclRTTI.pas' , + JclSchedule in '..\..\source\common\JclSchedule.pas' , JclSimpleXml in '..\..\source\common\JclSimpleXml.pas' , - JclSchedule in '..\..\source\common\JclSchedule.pas' , JclStatistics in '..\..\source\common\JclStatistics.pas' , JclStreams in '..\..\source\common\JclStreams.pas' , JclStrHashMap in '..\..\source\common\JclStrHashMap.pas' , Modified: trunk/jcl/packages/d12/Jcl.dproj =================================================================== --- trunk/jcl/packages/d12/Jcl.dproj 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/d12/Jcl.dproj 2010-01-03 21:27:45 UTC (rev 3101) @@ -90,8 +90,8 @@ <DCCReference Include="..\..\source\common\JclPCRE.pas" /> <DCCReference Include="..\..\source\common\JclResources.pas" /> <DCCReference Include="..\..\source\common\JclRTTI.pas" /> + <DCCReference Include="..\..\source\common\JclSchedule.pas" /> <DCCReference Include="..\..\source\common\JclSimpleXml.pas" /> - <DCCReference Include="..\..\source\common\JclSchedule.pas" /> <DCCReference Include="..\..\source\common\JclStatistics.pas" /> <DCCReference Include="..\..\source\common\JclStreams.pas" /> <DCCReference Include="..\..\source\common\JclStrHashMap.pas" /> Modified: trunk/jcl/packages/d14/Jcl.dpk =================================================================== --- trunk/jcl/packages/d14/Jcl.dpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/d14/Jcl.dpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 25-08-2009 18:09:42 UTC + Last generated: 03-01-2010 21:25:09 UTC ----------------------------------------------------------------------------- } @@ -72,8 +72,8 @@ JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , JclRTTI in '..\..\source\common\JclRTTI.pas' , + JclSchedule in '..\..\source\common\JclSchedule.pas' , JclSimpleXml in '..\..\source\common\JclSimpleXml.pas' , - JclSchedule in '..\..\source\common\JclSchedule.pas' , JclStatistics in '..\..\source\common\JclStatistics.pas' , JclStreams in '..\..\source\common\JclStreams.pas' , JclStrHashMap in '..\..\source\common\JclStrHashMap.pas' , Modified: trunk/jcl/packages/d14/Jcl.dproj =================================================================== --- trunk/jcl/packages/d14/Jcl.dproj 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/d14/Jcl.dproj 2010-01-03 21:27:45 UTC (rev 3101) @@ -92,8 +92,8 @@ <DCCReference Include="..\..\source\common\JclPCRE.pas" /> <DCCReference Include="..\..\source\common\JclResources.pas" /> <DCCReference Include="..\..\source\common\JclRTTI.pas" /> + <DCCReference Include="..\..\source\common\JclSchedule.pas" /> <DCCReference Include="..\..\source\common\JclSimpleXml.pas" /> - <DCCReference Include="..\..\source\common\JclSchedule.pas" /> <DCCReference Include="..\..\source\common\JclStatistics.pas" /> <DCCReference Include="..\..\source\common\JclStreams.pas" /> <DCCReference Include="..\..\source\common\JclStrHashMap.pas" /> Modified: trunk/jcl/packages/d6/Jcl.dpk =================================================================== --- trunk/jcl/packages/d6/Jcl.dpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/d6/Jcl.dpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 22-08-2009 11:50:52 UTC + Last generated: 03-01-2010 21:25:04 UTC ----------------------------------------------------------------------------- } @@ -71,8 +71,8 @@ JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , JclRTTI in '..\..\source\common\JclRTTI.pas' , + JclSchedule in '..\..\source\common\JclSchedule.pas' , JclSimpleXml in '..\..\source\common\JclSimpleXml.pas' , - JclSchedule in '..\..\source\common\JclSchedule.pas' , JclStatistics in '..\..\source\common\JclStatistics.pas' , JclStreams in '..\..\source\common\JclStreams.pas' , JclStrHashMap in '..\..\source\common\JclStrHashMap.pas' , Modified: trunk/jcl/packages/d7/Jcl.dpk =================================================================== --- trunk/jcl/packages/d7/Jcl.dpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/d7/Jcl.dpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 22-08-2009 11:50:55 UTC + Last generated: 03-01-2010 21:25:04 UTC ----------------------------------------------------------------------------- } @@ -71,8 +71,8 @@ JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , JclRTTI in '..\..\source\common\JclRTTI.pas' , + JclSchedule in '..\..\source\common\JclSchedule.pas' , JclSimpleXml in '..\..\source\common\JclSimpleXml.pas' , - JclSchedule in '..\..\source\common\JclSchedule.pas' , JclStatistics in '..\..\source\common\JclStatistics.pas' , JclStreams in '..\..\source\common\JclStreams.pas' , JclStrHashMap in '..\..\source\common\JclStrHashMap.pas' , Modified: trunk/jcl/packages/d8/Jcl.dpk =================================================================== --- trunk/jcl/packages/d8/Jcl.dpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/d8/Jcl.dpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 30-07-2009 10:40:29 UTC + Last generated: 03-01-2010 21:25:05 UTC ----------------------------------------------------------------------------- } @@ -71,8 +71,8 @@ JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , JclRTTI in '..\..\source\common\JclRTTI.pas' , + JclSchedule in '..\..\source\common\JclSchedule.pas' , JclSimpleXml in '..\..\source\common\JclSimpleXml.pas' , - JclSchedule in '..\..\source\common\JclSchedule.pas' , JclStatistics in '..\..\source\common\JclStatistics.pas' , JclStreams in '..\..\source\common\JclStreams.pas' , JclStrHashMap in '..\..\source\common\JclStrHashMap.pas' , Modified: trunk/jcl/packages/d9/Jcl.dpk =================================================================== --- trunk/jcl/packages/d9/Jcl.dpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/d9/Jcl.dpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 22-08-2009 11:51:02 UTC + Last generated: 03-01-2010 21:25:06 UTC ----------------------------------------------------------------------------- } @@ -71,8 +71,8 @@ JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , JclRTTI in '..\..\source\common\JclRTTI.pas' , + JclSchedule in '..\..\source\common\JclSchedule.pas' , JclSimpleXml in '..\..\source\common\JclSimpleXml.pas' , - JclSchedule in '..\..\source\common\JclSchedule.pas' , JclStatistics in '..\..\source\common\JclStatistics.pas' , JclStreams in '..\..\source\common\JclStreams.pas' , JclStrHashMap in '..\..\source\common\JclStrHashMap.pas' , Modified: trunk/jcl/packages/fpc/Jcl.lpk =================================================================== --- trunk/jcl/packages/fpc/Jcl.lpk 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/fpc/Jcl.lpk 2010-01-03 21:27:45 UTC (rev 3101) @@ -157,12 +157,12 @@ <UnitName Value="JclRTTI"/> </Item29> <Item30> + <Filename Value="..\..\source\common\JclSchedule.pas"/> + <UnitName Value="JclSchedule"/> + </Item30> + <Item31> <Filename Value="..\..\source\common\JclSimpleXml.pas"/> <UnitName Value="JclSimpleXml"/> - </Item30> - <Item31> - <Filename Value="..\..\source\common\JclSchedule.pas"/> - <UnitName Value="JclSchedule"/> </Item31> <Item32> <Filename Value="..\..\source\common\JclStatistics.pas"/> Modified: trunk/jcl/packages/fpc/Jcl.pas =================================================================== --- trunk/jcl/packages/fpc/Jcl.pas 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/fpc/Jcl.pas 2010-01-03 21:27:45 UTC (rev 3101) @@ -3,7 +3,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 22-08-2009 11:50:44 UTC + Last generated: 03-01-2010 21:25:02 UTC ----------------------------------------------------------------------------- } @@ -41,8 +41,8 @@ JclPCRE, JclResources, JclRTTI, + JclSchedule, JclSimpleXml, - JclSchedule, JclStatistics, JclStreams, JclStrHashMap, Modified: trunk/jcl/packages/xml/Jcl-R.xml =================================================================== --- trunk/jcl/packages/xml/Jcl-R.xml 2009-12-29 17:38:38 UTC (rev 3100) +++ trunk/jcl/packages/xml/Jcl-R.xml 2010-01-03 21:27:45 UTC (rev 3101) @@ -42,8 +42,8 @@ <File Name="..\..\source\common\JclPCRE.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclResources.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclRTTI.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclSchedule.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclSimpleXml.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclSchedule.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclStatistics.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclStreams.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclStrHashMap.pas" Targets="all" Formname="" Condition=""/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <usc...@us...> - 2009-12-29 17:38:45
|
Revision: 3100 http://jcl.svn.sourceforge.net/jcl/?rev=3100&view=rev Author: uschuster Date: 2009-12-29 17:38:38 +0000 (Tue, 29 Dec 2009) Log Message: ----------- added the helper function JclClearGlobalStackData for DUnit (This function clears all global stack data that has been generated when an exception was raised. For the runtime memory leak check within DUnit it is important that the allocated memory before and after the test is equal. When an exception is raised within a try except block like this procedure TDUnitTestCase.TestFooException; begin try raise TFooException.Create; except end; end; in a test then the stack trace gets added to the global stack data and that increases the allocated memory. For DUnit it seems that the test has leaked memory. To workaround this without overcomplicating the DUnit runtime memory leak check JclClearGlobalStackData can be used to clear all global stack data before and after the test.) Modified Paths: -------------- trunk/jcl/source/windows/JclDebug.pas Modified: trunk/jcl/source/windows/JclDebug.pas =================================================================== --- trunk/jcl/source/windows/JclDebug.pas 2009-12-28 17:42:18 UTC (rev 3099) +++ trunk/jcl/source/windows/JclDebug.pas 2009-12-29 17:38:38 UTC (rev 3100) @@ -688,6 +688,9 @@ IncludeModuleName: Boolean = False; IncludeAddressOffset: Boolean = False; IncludeStartProcLineOffset: Boolean = False; IncludeVAddress: Boolean = False): Boolean; +// helper function for DUnit runtime memory leak check +procedure JclClearGlobalStackData; + // Exception frame info routines type PJmpInstruction = ^TJmpInstruction; @@ -4254,6 +4257,7 @@ public destructor Destroy; override; procedure AddObject(AObject: TJclStackBaseList); + procedure Clear; procedure LockThreadID(TID: DWORD); procedure UnlockThreadID; function FindObject(TID: DWORD; AClass: TJclStackBaseListClass): TJclStackBaseList; @@ -4295,6 +4299,22 @@ end; end; +procedure TJclGlobalStackList.Clear; +begin + with LockList do + try + while Count > 0 do + TObject(Items[0]).Free; + { The following call to Clear seems to be useless, but it deallocates memory + by setting the lists capacity back to zero. For the runtime memory leak check + within DUnit it is important that the allocated memory before and after the + test is equal. } + Clear; // do not remove + finally + UnlockList; + end; +end; + function TJclGlobalStackList.FindObject(TID: DWORD; AClass: TJclStackBaseListClass): TJclStackBaseList; var I: Integer; @@ -4562,6 +4582,11 @@ IncludeVAddress); end; +procedure JclClearGlobalStackData; +begin + GlobalStackList.Clear; +end; + function JclCreateStackList(Raw: Boolean; AIgnoreLevels: DWORD; FirstCaller: Pointer): TJclStackInfoList; begin Result := TJclStackInfoList.Create(Raw, AIgnoreLevels, FirstCaller, False, nil, nil); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rro...@us...> - 2009-12-28 17:42:32
|
Revision: 3099 http://jcl.svn.sourceforge.net/jcl/?rev=3099&view=rev Author: rrossmair Date: 2009-12-28 17:42:18 +0000 (Mon, 28 Dec 2009) Log Message: ----------- Provisional fix, to be revised later (Mantis #4929) Modified Paths: -------------- trunk/jcl/source/windows/JclDebug.pas Modified: trunk/jcl/source/windows/JclDebug.pas =================================================================== --- trunk/jcl/source/windows/JclDebug.pas 2009-12-22 05:52:40 UTC (rev 3098) +++ trunk/jcl/source/windows/JclDebug.pas 2009-12-28 17:42:18 UTC (rev 3099) @@ -5290,7 +5290,7 @@ HandlerAt := FExcTab[I].Handler else begin - ParentVTable := PPointer(TJclAddr(VTable) + TJclAddr(vmtParent))^; + ParentVTable := TClass(VTable).ClassParent; if ParentVTable = VTable then VTable := nil else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rro...@us...> - 2009-12-22 05:52:49
|
Revision: 3098 http://jcl.svn.sourceforge.net/jcl/?rev=3098&view=rev Author: rrossmair Date: 2009-12-22 05:52:40 +0000 (Tue, 22 Dec 2009) Log Message: ----------- Fixes possible memory leaks in MoveArray() for string and interface arrays. Issue caused memory leak e.g. in JclVectors.TJclAnsiStrVector.ExtractIndex() (Mantis #0005061) Modified Paths: -------------- trunk/jcl/source/common/JclBase.pas Modified: trunk/jcl/source/common/JclBase.pas =================================================================== --- trunk/jcl/source/common/JclBase.pas 2009-12-21 22:14:47 UTC (rev 3097) +++ trunk/jcl/source/common/JclBase.pas 2009-12-22 05:52:40 UTC (rev 3098) @@ -396,50 +396,82 @@ uses JclResources; +procedure FinalizeArrayBeforeMove(var List: TDynIInterfaceArray; FromIndex, ToIndex, Count: SizeInt); overload; +{$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} +var + N: Integer; +begin + Assert(Count > 0); + N := FromIndex - ToIndex; + if N > 0 then + begin + if N > Count then + N := Count; + Finalize(List[ToIndex], N); + end; +end; + procedure MoveArray(var List: TDynIInterfaceArray; FromIndex, ToIndex, Count: SizeInt); overload; begin if Count > 0 then begin + FinalizeArrayBeforeMove(List, FromIndex, ToIndex, Count); Move(List[FromIndex], List[ToIndex], Count * SizeOf(List[0])); { Keep reference counting working } if FromIndex < ToIndex then begin if (ToIndex - FromIndex) < Count then - FillChar(List[FromIndex], (ToIndex - FromIndex) * SizeOf(List[0]), 0) + Initialize(List[FromIndex], ToIndex - FromIndex) else - FillChar(List[FromIndex], Count * SizeOf(List[0]), 0); + Initialize(List[FromIndex], Count) end else if FromIndex > ToIndex then begin if (FromIndex - ToIndex) < Count then - FillChar(List[ToIndex + Count], (FromIndex - ToIndex) * SizeOf(List[0]), 0) + Initialize(List[ToIndex + Count], FromIndex - ToIndex) else - FillChar(List[FromIndex], Count * SizeOf(List[0]), 0); + Initialize(List[FromIndex], Count) end; end; end; +procedure FinalizeArrayBeforeMove(var List: TDynStringArray; FromIndex, ToIndex, Count: SizeInt); overload; +{$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} +var + N: Integer; +begin + Assert(Count > 0); + N := FromIndex - ToIndex; + if N > 0 then + begin + if N > Count then + N := Count; + Finalize(List[ToIndex], N); + end; +end; + procedure MoveArray(var List: TDynStringArray; FromIndex, ToIndex, Count: SizeInt); overload; begin if Count > 0 then begin + FinalizeArrayBeforeMove(List, FromIndex, ToIndex, Count); Move(List[FromIndex], List[ToIndex], Count * SizeOf(List[0])); { Keep reference counting working } if FromIndex < ToIndex then begin if (ToIndex - FromIndex) < Count then - FillChar(List[FromIndex], (ToIndex - FromIndex) * SizeOf(List[0]), 0) + Initialize(List[FromIndex], ToIndex - FromIndex) else - FillChar(List[FromIndex], Count * SizeOf(List[0]), 0); + Initialize(List[FromIndex], Count) end else if FromIndex > ToIndex then begin if (FromIndex - ToIndex) < Count then - FillChar(List[ToIndex + Count], (FromIndex - ToIndex) * SizeOf(List[0]), 0) + Initialize(List[ToIndex + Count], FromIndex - ToIndex) else - FillChar(List[FromIndex], Count * SizeOf(List[0]), 0); + Initialize(List[FromIndex], Count) end; end; end; @@ -493,77 +525,125 @@ end; {$IFDEF SUPPORTS_UNICODE_STRING} +procedure FinalizeArrayBeforeMove(var List: TDynUnicodeStringArray; FromIndex, ToIndex, Count: SizeInt); overload; +{$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} +var + N: Integer; +begin + Assert(Count > 0); + N := FromIndex - ToIndex; + if N > 0 then + begin + if N > Count then + N := Count; + Finalize(List[ToIndex], N); + end; +end; + procedure MoveArray(var List: TDynUnicodeStringArray; FromIndex, ToIndex, Count: SizeInt); overload; begin if Count > 0 then begin + FinalizeArrayBeforeMove(List, FromIndex, ToIndex, Count); Move(List[FromIndex], List[ToIndex], Count * SizeOf(List[0])); { Keep reference counting working } if FromIndex < ToIndex then begin if (ToIndex - FromIndex) < Count then - FillChar(List[FromIndex], (ToIndex - FromIndex) * SizeOf(List[0]), 0) + Initialize(List[FromIndex], ToIndex - FromIndex) else - FillChar(List[FromIndex], Count * SizeOf(List[0]), 0); + Initialize(List[FromIndex], Count) end else if FromIndex > ToIndex then begin if (FromIndex - ToIndex) < Count then - FillChar(List[ToIndex + Count], (FromIndex - ToIndex) * SizeOf(List[0]), 0) + Initialize(List[ToIndex + Count], FromIndex - ToIndex) else - FillChar(List[FromIndex], Count * SizeOf(List[0]), 0); + Initialize(List[FromIndex], Count) end; end; end; {$ENDIF SUPPORTS_UNICODE_STRING} {$IFNDEF FPC} +procedure FinalizeArrayBeforeMove(var List: TDynAnsiStringArray; FromIndex, ToIndex, Count: SizeInt); overload; +{$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} +var + N: Integer; +begin + Assert(Count > 0); + N := FromIndex - ToIndex; + if N > 0 then + begin + if N > Count then + N := Count; + Finalize(List[ToIndex], N); + end; +end; + procedure MoveArray(var List: TDynAnsiStringArray; FromIndex, ToIndex, Count: SizeInt); overload; begin if Count > 0 then begin + FinalizeArrayBeforeMove(List, FromIndex, ToIndex, Count); Move(List[FromIndex], List[ToIndex], Count * SizeOf(List[0])); { Keep reference counting working } if FromIndex < ToIndex then begin if (ToIndex - FromIndex) < Count then - FillChar(List[FromIndex], (ToIndex - FromIndex) * SizeOf(List[0]), 0) + Initialize(List[FromIndex], ToIndex - FromIndex) else - FillChar(List[FromIndex], Count * SizeOf(List[0]), 0); + Initialize(List[FromIndex], Count) end else if FromIndex > ToIndex then begin if (FromIndex - ToIndex) < Count then - FillChar(List[ToIndex + Count], (FromIndex - ToIndex) * SizeOf(List[0]), 0) + Initialize(List[ToIndex + Count], FromIndex - ToIndex) else - FillChar(List[FromIndex], Count * SizeOf(List[0]), 0); + Initialize(List[FromIndex], Count) end; end; end; {$ENDIF ~FPC} +procedure FinalizeArrayBeforeMove(var List: TDynWideStringArray; FromIndex, ToIndex, Count: SizeInt); overload; +{$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} +var + N: Integer; +begin + Assert(Count > 0); + N := FromIndex - ToIndex; + if N > 0 then + begin + if N > Count then + N := Count; + Finalize(List[ToIndex], N); + end; +end; + procedure MoveArray(var List: TDynWideStringArray; FromIndex, ToIndex, Count: SizeInt); overload; begin if Count > 0 then begin + FinalizeArrayBeforeMove(List, FromIndex, ToIndex, Count); Move(List[FromIndex], List[ToIndex], Count * SizeOf(List[0])); { Keep reference counting working } if FromIndex < ToIndex then begin if (ToIndex - FromIndex) < Count then - FillChar(List[FromIndex], (ToIndex - FromIndex) * SizeOf(List[0]), 0) + Initialize(List[FromIndex], ToIndex - FromIndex) else - FillChar(List[FromIndex], Count * SizeOf(List[0]), 0); + Initialize(List[FromIndex], Count) end else if FromIndex > ToIndex then begin if (FromIndex - ToIndex) < Count then - FillChar(List[ToIndex + Count], (FromIndex - ToIndex) * SizeOf(List[0]), 0) + Initialize(List[ToIndex + Count], FromIndex - ToIndex) else - FillChar(List[FromIndex], Count * SizeOf(List[0]), 0); + Initialize(List[FromIndex], Count) end; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-12-21 22:14:54
|
Revision: 3097 http://jcl.svn.sourceforge.net/jcl/?rev=3097&view=rev Author: outchy Date: 2009-12-21 22:14:47 +0000 (Mon, 21 Dec 2009) Log Message: ----------- New option for LookupAccountBySid to return SID string when it could not be translated to DOMAIN/USER names. Modified Paths: -------------- trunk/jcl/source/common/JclFileUtils.pas trunk/jcl/source/windows/JclSecurity.pas Modified: trunk/jcl/source/common/JclFileUtils.pas =================================================================== --- trunk/jcl/source/common/JclFileUtils.pas 2009-12-21 21:36:30 UTC (rev 3096) +++ trunk/jcl/source/common/JclFileUtils.pas 2009-12-21 22:14:47 UTC (rev 3097) @@ -3590,7 +3590,7 @@ GetMem(pSD, BufSize); GetFileSecurity(PChar(FileName), GROUP_SECURITY_INFORMATION, pSD, BufSize, BufSize); - LookupAccountBySid(Pointer(TJclAddr(pSD) + TJclAddr(pSD^.Group)), TmpResult, DomainName); + LookupAccountBySid(Pointer(TJclAddr(pSD) + TJclAddr(pSD^.Group)), TmpResult, DomainName, True); FreeMem(pSD); Result := Trim(TmpResult); end; @@ -3632,7 +3632,7 @@ try GetFileSecurity(PChar(FileName), OWNER_SECURITY_INFORMATION, pSD, BufSize, BufSize); - LookupAccountBySid(Pointer(TJclAddr(pSD) + TJclAddr(pSD^.Owner)), TmpResult, DomainName); + LookupAccountBySid(Pointer(TJclAddr(pSD) + TJclAddr(pSD^.Owner)), TmpResult, DomainName, True); finally FreeMem(pSD); end; Modified: trunk/jcl/source/windows/JclSecurity.pas =================================================================== --- trunk/jcl/source/windows/JclSecurity.pas 2009-12-21 21:36:30 UTC (rev 3096) +++ trunk/jcl/source/windows/JclSecurity.pas 2009-12-21 22:14:47 UTC (rev 3097) @@ -91,8 +91,8 @@ function GetUserObjectName(hUserObject: THandle): string; // Account Information -procedure LookupAccountBySid(Sid: PSID; out Name, Domain: AnsiString); overload; -procedure LookupAccountBySid(Sid: PSID; out Name, Domain: WideString); overload; +procedure LookupAccountBySid(Sid: PSID; out Name, Domain: AnsiString; Silent: Boolean = False); overload; +procedure LookupAccountBySid(Sid: PSID; out Name, Domain: WideString; Silent: Boolean = False); overload; procedure QueryTokenInformation(Token: THandle; InformationClass: TTokenInformationClass; var Buffer: Pointer); procedure FreeTokenInformation(var Buffer: Pointer); function GetInteractiveUserName: string; @@ -468,10 +468,11 @@ //=== Account Information ==================================================== -procedure LookupAccountBySid(Sid: PSID; out Name, Domain: AnsiString); +procedure LookupAccountBySid(Sid: PSID; out Name, Domain: AnsiString; Silent: Boolean); var NameSize, DomainSize: DWORD; Use: SID_NAME_USE; + Success: Boolean; begin if IsWinNT then begin @@ -483,7 +484,14 @@ SetLength(Name, NameSize - 1); if DomainSize > 0 then SetLength(Domain, DomainSize - 1); - Win32Check(LookupAccountSidA(nil, Sid, PAnsiChar(Name), NameSize, PAnsiChar(Domain), DomainSize, Use)); + Success := LookupAccountSidA(nil, Sid, PAnsiChar(Name), NameSize, PAnsiChar(Domain), DomainSize, Use); + if Silent and not Success then + begin + Name := AnsiString(SIDToString(Sid)); + Domain := ''; + end + else + Win32Check(Success); end else begin // if Win9x, then function return '' @@ -492,10 +500,11 @@ end; end; -procedure LookupAccountBySid(Sid: PSID; out Name, Domain: WideString); +procedure LookupAccountBySid(Sid: PSID; out Name, Domain: WideString; Silent: Boolean); var NameSize, DomainSize: DWORD; Use: SID_NAME_USE; + Success: Boolean; begin if IsWinNT then begin @@ -507,7 +516,14 @@ SetLength(Name, NameSize - 1); if DomainSize > 0 then SetLength(Domain, DomainSize - 1); - Win32Check(LookupAccountSidW(nil, Sid, PWideChar(Name), NameSize, PWideChar(Domain), DomainSize, Use)); + Success := LookupAccountSidW(nil, Sid, PWideChar(Name), NameSize, PWideChar(Domain), DomainSize, Use); + if Silent and not Success then + begin + Name := WideString(SIDToString(Sid)); + Domain := ''; + end + else + Win32Check(Success); end else begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-12-21 21:36:41
|
Revision: 3096 http://jcl.svn.sourceforge.net/jcl/?rev=3096&view=rev Author: outchy Date: 2009-12-21 21:36:30 +0000 (Mon, 21 Dec 2009) Log Message: ----------- refactored TJclFileEnumerator to split file search options and operations. Modified Paths: -------------- trunk/jcl/source/common/JclFileUtils.pas trunk/jcl/source/common/JclSysUtils.pas Modified: trunk/jcl/source/common/JclFileUtils.pas =================================================================== --- trunk/jcl/source/common/JclFileUtils.pas 2009-12-21 20:19:28 UTC (rev 3095) +++ trunk/jcl/source/common/JclFileUtils.pas 2009-12-21 21:36:30 UTC (rev 3096) @@ -75,7 +75,7 @@ Windows, JclWin32, {$ENDIF MSWINDOWS} Classes, SysUtils, - JclBase; + JclBase, JclSysUtils; // Path Manipulation // @@ -372,9 +372,6 @@ {$ENDIF MSWINDOWS} end; -// IJclFileEnumerator / TJclFileEnumerator -// -// Interface / class for thread-based file search type TFileSearchOption = (fsIncludeSubDirectories, fsIncludeHiddenSubDirectories, fsLastChangeAfter, fsLastChangeBefore, fsMaxSize, fsMinSize); @@ -383,9 +380,12 @@ TFileSearchTerminationEvent = procedure (const ID: TFileSearchTaskID; const Aborted: Boolean) of object; TFileEnumeratorSyncMode = (smPerFile, smPerDirectory); - IJclFileEnumerator = interface - ['{F7E747ED-1C41-441F-B25B-BB314E00C4E9}'] - // property access methods +// IJclFileSearchOptions +// +// Interface for file search options +type + IJclFileSearchOptions = interface + ['{B73D9E3D-34C5-4DA9-88EF-4CA730328FC9}'] function GetAttributeMask: TJclFileAttributeMask; function GetCaseSensitiveSearch: Boolean; function GetRootDirectories: TStrings; @@ -400,11 +400,7 @@ function GetLastChangeBefore: TDateTime; function GetLastChangeAfterStr: string; function GetLastChangeBeforeStr: string; - function GetRunningTasks: Integer; function GetSubDirectoryMask: string; - function GetSynchronizationMode: TFileEnumeratorSyncMode; - function GetOnEnterDirectory: TFileHandler; - function GetOnTerminateTask: TFileSearchTerminationEvent; function GetOption(const Option: TFileSearchOption): Boolean; function GetOptions: TFileSearchoptions; procedure SetAttributeMask(const Value: TJclFileAttributeMask); @@ -424,15 +420,6 @@ procedure SetOption(const Option: TFileSearchOption; const Value: Boolean); procedure SetOptions(const Value: TFileSearchOptions); procedure SetSubDirectoryMask(const Value: string); - procedure SetSynchronizationMode(const Value: TFileEnumeratorSyncMode); - procedure SetOnEnterDirectory(const Value: TFileHandler); - procedure SetOnTerminateTask(const Value: TFileSearchTerminationEvent); - // other methods - function FillList(List: TStrings): TFileSearchTaskID; - function ForEach(Handler: TFileHandler): TFileSearchTaskID; overload; - function ForEach(Handler: TFileHandlerEx): TFileSearchTaskID; overload; - procedure StopTask(ID: TFileSearchTaskID); - procedure StopAllTasks(Silently: Boolean = False); // Silently: Don't call OnTerminateTask // properties property CaseSensitiveSearch: Boolean read GetCaseSensitiveSearch write SetCaseSensitiveSearch; property RootDirectories: TStrings read GetRootDirectories write SetRootDirectories; @@ -450,26 +437,18 @@ write SetIncludeSubDirectories; property IncludeHiddenSubDirectories: Boolean read GetIncludeHiddenSubDirectories write SetIncludeHiddenSubDirectories; - property RunningTasks: Integer read GetRunningTasks; - property SynchronizationMode: TFileEnumeratorSyncMode read GetSynchronizationMode - write SetSynchronizationMode; - property OnEnterDirectory: TFileHandler read GetOnEnterDirectory write SetOnEnterDirectory; - property OnTerminateTask: TFileSearchTerminationEvent read GetOnTerminateTask - write SetOnTerminateTask; end; - TJclFileEnumerator = class(TPersistent, IJclFileEnumerator) - private - FOwnerInterface: IInterface; - FTasks: TList; +// IJclFileSearchOptions +// +// Interface for file search options +type + TJclFileSearchOptions = class(TJclInterfacedPersistent, IJclFileSearchOptions) + protected FFileMasks: TStringList; FRootDirectories: TStringList; FSubDirectoryMask: string; - FOnEnterDirectory: TFileHandler; - FOnTerminateTask: TFileSearchTerminationEvent; - FNextTaskID: TFileSearchTaskID; FAttributeMask: TJclFileAttributeMask; - FSynchronizationMode: TFileEnumeratorSyncMode; FFileSizeMin: Int64; FFileSizeMax: Int64; FLastChangeBefore: TDateTime; @@ -478,24 +457,14 @@ FCaseSensitiveSearch: Boolean; function IsLastChangeAfterStored: Boolean; function IsLastChangeBeforeStored: Boolean; - function GetNextTaskID: TFileSearchTaskID; - function GetCaseSensitiveSearch: Boolean; - procedure SetCaseSensitiveSearch(const Value: Boolean); - protected - FRefCount: Integer; - function CreateTask: TThread; - procedure TaskTerminated(Sender: TObject); - property NextTaskID: TFileSearchTaskID read GetNextTaskID; public constructor Create; destructor Destroy; override; + procedure Assign(Source: TPersistent); override; - { IInterface } - function QueryInterface(const IID: TGUID; out Obj): HRESULT; virtual; stdcall; - function _AddRef: Integer; stdcall; - function _Release: Integer; stdcall; - { IJclFileEnumerator } + { IJclFileSearchOptions } function GetAttributeMask: TJclFileAttributeMask; + function GetCaseSensitiveSearch: Boolean; function GetRootDirectories: TStrings; function GetRootDirectory: string; function GetFileMask: string; @@ -508,14 +477,11 @@ function GetLastChangeBefore: TDateTime; function GetLastChangeAfterStr: string; function GetLastChangeBeforeStr: string; + function GetSubDirectoryMask: string; function GetOption(const Option: TFileSearchOption): Boolean; function GetOptions: TFileSearchoptions; - function GetRunningTasks: Integer; - function GetSubDirectoryMask: string; - function GetSynchronizationMode: TFileEnumeratorSyncMode; - function GetOnEnterDirectory: TFileHandler; - function GetOnTerminateTask: TFileSearchTerminationEvent; procedure SetAttributeMask(const Value: TJclFileAttributeMask); + procedure SetCaseSensitiveSearch(const Value: Boolean); procedure SetRootDirectories(const Value: TStrings); procedure SetRootDirectory(const Value: string); procedure SetFileMask(const Value: string); @@ -531,11 +497,82 @@ procedure SetOption(const Option: TFileSearchOption; const Value: Boolean); procedure SetOptions(const Value: TFileSearchOptions); procedure SetSubDirectoryMask(const Value: string); + published + property CaseSensitiveSearch: Boolean read GetCaseSensitiveSearch write SetCaseSensitiveSearch + default {$IFDEF MSWINDOWS} False {$ELSE} True {$ENDIF}; + property FileMasks: TStrings read GetFileMasks write SetFileMasks; + property RootDirectories: TStrings read GetRootDirectories write SetRootDirectories; + property RootDirectory: string read GetRootDirectory write SetRootDirectory; + property SubDirectoryMask: string read FSubDirectoryMask write FSubDirectoryMask; + property AttributeMask: TJclFileAttributeMask read FAttributeMask write SetAttributeMask; + property FileSizeMin: Int64 read FFileSizeMin write FFileSizeMin; + property FileSizeMax: Int64 read FFileSizeMax write FFileSizeMax; + property LastChangeAfter: TDateTime read FLastChangeAfter write FLastChangeAfter + stored IsLastChangeAfterStored; + property LastChangeBefore: TDateTime read FLastChangeBefore write FLastChangeBefore + stored IsLastChangeBeforeStored; + property Options: TFileSearchOptions read FOptions write FOptions + default [fsIncludeSubDirectories]; + end; + +// IJclFileEnumerator +// +// Interface for thread-based file search +type + IJclFileEnumerator = interface(IJclFileSearchOptions) + ['{F7E747ED-1C41-441F-B25B-BB314E00C4E9}'] + // property access methods + function GetRunningTasks: Integer; + function GetSynchronizationMode: TFileEnumeratorSyncMode; + function GetOnEnterDirectory: TFileHandler; + function GetOnTerminateTask: TFileSearchTerminationEvent; procedure SetSynchronizationMode(const Value: TFileEnumeratorSyncMode); procedure SetOnEnterDirectory(const Value: TFileHandler); procedure SetOnTerminateTask(const Value: TFileSearchTerminationEvent); + // other methods + function FillList(List: TStrings): TFileSearchTaskID; + function ForEach(Handler: TFileHandler): TFileSearchTaskID; overload; + function ForEach(Handler: TFileHandlerEx): TFileSearchTaskID; overload; + procedure StopTask(ID: TFileSearchTaskID); + procedure StopAllTasks(Silently: Boolean = False); // Silently: Don't call OnTerminateTask + // properties + property RunningTasks: Integer read GetRunningTasks; + property SynchronizationMode: TFileEnumeratorSyncMode read GetSynchronizationMode + write SetSynchronizationMode; + property OnEnterDirectory: TFileHandler read GetOnEnterDirectory write SetOnEnterDirectory; + property OnTerminateTask: TFileSearchTerminationEvent read GetOnTerminateTask + write SetOnTerminateTask; + end; - procedure AfterConstruction; override; +// TJclFileEnumerator +// +// Class for thread-based file search +type + TJclFileEnumerator = class(TJclFileSearchOptions, IInterface, IJclFileSearchOptions, IJclFileEnumerator) + private + FTasks: TList; + FOnEnterDirectory: TFileHandler; + FOnTerminateTask: TFileSearchTerminationEvent; + FNextTaskID: TFileSearchTaskID; + FSynchronizationMode: TFileEnumeratorSyncMode; + function GetNextTaskID: TFileSearchTaskID; + protected + function CreateTask: TThread; + procedure TaskTerminated(Sender: TObject); + property NextTaskID: TFileSearchTaskID read GetNextTaskID; + public + constructor Create; + destructor Destroy; override; + + { IJclFileEnumerator } + function GetRunningTasks: Integer; + function GetSynchronizationMode: TFileEnumeratorSyncMode; + function GetOnEnterDirectory: TFileHandler; + function GetOnTerminateTask: TFileSearchTerminationEvent; + procedure SetSynchronizationMode(const Value: TFileEnumeratorSyncMode); + procedure SetOnEnterDirectory(const Value: TFileHandler); + procedure SetOnTerminateTask(const Value: TFileSearchTerminationEvent); + procedure Assign(Source: TPersistent); override; function FillList(List: TStrings): TFileSearchTaskID; function ForEach(Handler: TFileHandler): TFileSearchTaskID; overload; @@ -551,21 +588,6 @@ property LastChangeAfterAsString: string read GetLastChangeAfterStr write SetLastChangeAfterStr; property LastChangeBeforeAsString: string read GetLastChangeBeforeStr write SetLastChangeBeforeStr; published - property CaseSensitiveSearch: Boolean read GetCaseSensitiveSearch write SetCaseSensitiveSearch - default {$IFDEF MSWINDOWS} False {$ELSE} True {$ENDIF}; - property FileMasks: TStrings read GetFileMasks write SetFileMasks; - property RootDirectories: TStrings read GetRootDirectories write SetRootDirectories; - property RootDirectory: string read GetRootDirectory write SetRootDirectory; - property SubDirectoryMask: string read FSubDirectoryMask write FSubDirectoryMask; - property AttributeMask: TJclFileAttributeMask read FAttributeMask write SetAttributeMask; - property FileSizeMin: Int64 read FFileSizeMin write FFileSizeMin; - property FileSizeMax: Int64 read FFileSizeMax write FFileSizeMax; - property LastChangeAfter: TDateTime read FLastChangeAfter write FLastChangeAfter - stored IsLastChangeAfterStored; - property LastChangeBefore: TDateTime read FLastChangeBefore write FLastChangeBefore - stored IsLastChangeBeforeStored; - property Options: TFileSearchOptions read FOptions write FOptions - default [fsIncludeSubDirectories]; property RunningTasks: Integer read GetRunningTasks; property SynchronizationMode: TFileEnumeratorSyncMode read FSynchronizationMode write FSynchronizationMode default smPerDirectory; @@ -1052,7 +1074,7 @@ ShellApi, ActiveX, ComObj, ShlObj, JclShell, JclSysInfo, JclSecurity, {$ENDIF MSWINDOWS} - JclSysUtils, JclDateTime, JclResources, + JclDateTime, JclResources, JclStrings; { Some general notes: @@ -5911,6 +5933,255 @@ Filer.DefineProperty('VolumeID', ReadVolumeID, nil, False); end; +//=== { TJclFileSearchOptions } ============================================== + +constructor TJclFileSearchOptions.Create; +begin + inherited Create; + + FAttributeMask := TJclFileAttributeMask.Create; + FRootDirectories := TStringList.Create; + FRootDirectories.Add('.'); + FFileMasks := TStringList.Create; + FFileMasks.Add('*'); + FSubDirectoryMask := '*'; + FOptions := [fsIncludeSubDirectories]; + FLastChangeAfter := MinDateTime; + FLastChangeBefore := MaxDateTime; + {$IFDEF UNIX} + FCaseSensitiveSearch := True; + {$ENDIF UNIX} +end; + +destructor TJclFileSearchOptions.Destroy; +begin + FAttributeMask.Free; + FFileMasks.Free; + FRootDirectories.Free; + + inherited Destroy; +end; + +procedure TJclFileSearchOptions.Assign(Source: TPersistent); +var + Src: TJclFileSearchOptions; +begin + if Source is TJclFileSearchOptions then + begin + Src := TJclFileSearchOptions(Source); + FCaseSensitiveSearch := Src.FCaseSensitiveSearch; + FileMasks.Assign(Src.FileMasks); + RootDirectory := Src.RootDirectory; + SubDirectoryMask := Src.SubDirectoryMask; + AttributeMask := Src.AttributeMask; + Options := Src.Options; + FileSizeMin := Src.FileSizeMin; + FileSizeMax := Src.FileSizeMax; + LastChangeAfter := Src.LastChangeAfter; + LastChangeBefore := Src.LastChangeBefore; + end + else + inherited Assign(Source); +end; + +function TJclFileSearchOptions.GetAttributeMask: TJclFileAttributeMask; +begin + Result := FAttributeMask; +end; + +function TJclFileSearchOptions.GetCaseSensitiveSearch: Boolean; +begin + Result := FCaseSensitiveSearch; +end; + +function TJclFileSearchOptions.GetFileMask: string; +begin + Result := StringsToStr(FileMasks, DirSeparator, False); +end; + +function TJclFileSearchOptions.GetFileMasks: TStrings; +begin + Result := FFileMasks; +end; + +function TJclFileSearchOptions.GetFileSizeMax: Int64; +begin + Result := FFileSizeMax; +end; + +function TJclFileSearchOptions.GetFileSizeMin: Int64; +begin + Result := FFileSizeMin; +end; + +function TJclFileSearchOptions.GetIncludeHiddenSubDirectories: Boolean; +begin + Result := fsIncludeHiddenSubDirectories in Options; +end; + +function TJclFileSearchOptions.GetIncludeSubDirectories: Boolean; +begin + Result := fsIncludeSubDirectories in Options; +end; + +function TJclFileSearchOptions.GetLastChangeAfter: TDateTime; +begin + Result := FLastChangeAfter; +end; + +function TJclFileSearchOptions.GetLastChangeAfterStr: string; +begin + Result := DateTimeToStr(LastChangeAfter); +end; + +function TJclFileSearchOptions.GetLastChangeBefore: TDateTime; +begin + Result := FLastChangeBefore; +end; + +function TJclFileSearchOptions.GetLastChangeBeforeStr: string; +begin + Result := DateTimeToStr(LastChangeBefore); +end; + +function TJclFileSearchOptions.GetOption( + const Option: TFileSearchOption): Boolean; +begin + Result := Option in FOptions; +end; + +function TJclFileSearchOptions.GetOptions: TFileSearchoptions; +begin + Result := FOptions; +end; + +function TJclFileSearchOptions.GetRootDirectories: TStrings; +begin + Result := FRootDirectories; +end; + +function TJclFileSearchOptions.GetRootDirectory: string; +begin + if FRootDirectories.Count = 1 then + Result := FRootDirectories.Strings[0] + else + Result := ''; +end; + +function TJclFileSearchOptions.GetSubDirectoryMask: string; +begin + Result := FSubDirectoryMask; +end; + +function TJclFileSearchOptions.IsLastChangeAfterStored: Boolean; +begin + Result := FLastChangeAfter <> MinDateTime; +end; + +function TJclFileSearchOptions.IsLastChangeBeforeStored: Boolean; +begin + Result := FLastChangeBefore <> MaxDateTime; +end; + +procedure TJclFileSearchOptions.SetAttributeMask( + const Value: TJclFileAttributeMask); +begin + FAttributeMask.Assign(Value); +end; + +procedure TJclFileSearchOptions.SetCaseSensitiveSearch(const Value: Boolean); +begin + FCaseSensitiveSearch := Value; +end; + +procedure TJclFileSearchOptions.SetFileMask(const Value: string); +begin + { TODO : UNIX : ? } + StrToStrings(Value, DirSeparator, FFileMasks, False); +end; + +procedure TJclFileSearchOptions.SetFileMasks(const Value: TStrings); +begin + FileMasks.Assign(Value); +end; + +procedure TJclFileSearchOptions.SetFileSizeMax(const Value: Int64); +begin + FFileSizeMax := Value; +end; + +procedure TJclFileSearchOptions.SetFileSizeMin(const Value: Int64); +begin + FFileSizeMin := Value; +end; + +procedure TJclFileSearchOptions.SetIncludeHiddenSubDirectories( + const Value: Boolean); +begin + SetOption(fsIncludeHiddenSubDirectories, Value); +end; + +procedure TJclFileSearchOptions.SetIncludeSubDirectories(const Value: Boolean); +begin + SetOption(fsIncludeSubDirectories, Value); +end; + +procedure TJclFileSearchOptions.SetLastChangeAfter(const Value: TDateTime); +begin + FLastChangeAfter := Value; +end; + +procedure TJclFileSearchOptions.SetLastChangeAfterStr(const Value: string); +begin + if Value = '' then + LastChangeAfter := MinDateTime + else + LastChangeAfter := StrToDateTime(Value); +end; + +procedure TJclFileSearchOptions.SetLastChangeBefore(const Value: TDateTime); +begin + FLastChangeBefore := Value; +end; + +procedure TJclFileSearchOptions.SetLastChangeBeforeStr(const Value: string); +begin + if Value = '' then + LastChangeBefore := MaxDateTime + else + LastChangeBefore := StrToDateTime(Value); +end; + +procedure TJclFileSearchOptions.SetOption(const Option: TFileSearchOption; + const Value: Boolean); +begin + if Value then + Include(FOptions, Option) + else + Exclude(FOptions, Option); +end; + +procedure TJclFileSearchOptions.SetOptions(const Value: TFileSearchOptions); +begin + FOptions := Value; +end; + +procedure TJclFileSearchOptions.SetRootDirectories(const Value: TStrings); +begin + FRootDirectories.Assign(Value); +end; + +procedure TJclFileSearchOptions.SetRootDirectory(const Value: string); +begin + FRootDirectories.Clear; + FRootDirectories.Add(Value); +end; + +procedure TJclFileSearchOptions.SetSubDirectoryMask(const Value: string); +begin + FSubDirectoryMask := Value; +end; + //=== { TEnumFileThread } ==================================================== type @@ -6159,68 +6430,15 @@ begin inherited Create; FTasks := TList.Create; - FAttributeMask := TJclFileAttributeMask.Create; - FRootDirectories := TStringList.Create; - FRootDirectories.Add('.'); - FFileMasks := TStringList.Create; - FFileMasks.Add('*'); - FSubDirectoryMask := '*'; - FOptions := [fsIncludeSubDirectories]; - FLastChangeAfter := MinDateTime; - FLastChangeBefore := MaxDateTime; - {$IFDEF UNIX} - FCaseSensitiveSearch := True; - {$ENDIF UNIX} - - if GetOwner <> nil then - GetOwner.GetInterface(IInterface, FOwnerInterface); end; destructor TJclFileEnumerator.Destroy; begin StopAllTasks(True); FTasks.Free; - FAttributeMask.Free; - FFileMasks.Free; - FRootDirectories.Free; inherited Destroy; end; -procedure TJclFileEnumerator.AfterConstruction; -begin - inherited AfterConstruction; - if GetOwner <> nil then - GetOwner.GetInterface(IInterface, FOwnerInterface); -end; - -function TJclFileEnumerator.QueryInterface(const IID: TGUID; out Obj): HRESULT; -begin - if GetInterface(IID, Obj) then - Result := S_OK - else - Result := E_NOINTERFACE; -end; - -function TJclFileEnumerator._AddRef: Integer; -begin - if FOwnerInterface <> nil then - Result := FOwnerInterface._AddRef - else - Result := InterlockedIncrement(FRefCount); -end; - -function TJclFileEnumerator._Release: Integer; -begin - if FOwnerInterface <> nil then - Result := FOwnerInterface._Release - else - begin - Result := InterlockedDecrement(FRefCount); - if Result = 0 then - Destroy; - end; -end; - procedure TJclFileEnumerator.Assign(Source: TPersistent); var Src: TJclFileEnumerator; @@ -6228,22 +6446,11 @@ if Source is TJclFileEnumerator then begin Src := TJclFileEnumerator(Source); - FCaseSensitiveSearch := Src.FCaseSensitiveSearch; - FileMasks.Assign(Src.FileMasks); - RootDirectory := Src.RootDirectory; - SubDirectoryMask := Src.SubDirectoryMask; - AttributeMask := Src.AttributeMask; - Options := Src.Options; - FileSizeMin := Src.FileSizeMin; - FileSizeMax := Src.FileSizeMax; - LastChangeAfter := Src.LastChangeAfter; - LastChangeBefore := Src.LastChangeBefore; SynchronizationMode := Src.SynchronizationMode; OnEnterDirectory := Src.OnEnterDirectory; OnTerminateTask := Src.OnTerminateTask; - end - else - inherited Assign(Source); + end; + inherited Assign(Source); end; function TJclFileEnumerator.CreateTask: TThread; @@ -6366,100 +6573,6 @@ Inc(FNextTaskID); end; -procedure TJclFileEnumerator.SetAttributeMask(const Value: TJclFileAttributeMask); -begin - FAttributeMask.Assign(Value); -end; - -function TJclFileEnumerator.GetLastChangeAfterStr: string; -begin - Result := DateTimeToStr(LastChangeAfter); -end; - -function TJclFileEnumerator.GetLastChangeBeforeStr: string; -begin - Result := DateTimeToStr(LastChangeBefore); -end; - -procedure TJclFileEnumerator.SetLastChangeAfterStr(const Value: string); -begin - if Value = '' then - LastChangeAfter := MinDateTime - else - LastChangeAfter := StrToDateTime(Value); -end; - -procedure TJclFileEnumerator.SetLastChangeBeforeStr(const Value: string); -begin - if Value = '' then - LastChangeBefore := MaxDateTime - else - LastChangeBefore := StrToDateTime(Value); -end; - -function TJclFileEnumerator.GetAttributeMask: TJclFileAttributeMask; -begin - Result := FAttributeMask; -end; - -function TJclFileEnumerator.GetCaseSensitiveSearch: Boolean; -begin - Result := FCaseSensitiveSearch; -end; - -function TJclFileEnumerator.GetRootDirectories: TStrings; -begin - Result := FRootDirectories; -end; - -function TJclFileEnumerator.GetRootDirectory: string; -begin - if FRootDirectories.Count = 1 then - Result := FRootDirectories.Strings[0] - else - Result := ''; -end; - -function TJclFileEnumerator.GetFileMask: string; -begin - Result := StringsToStr(FileMasks, DirSeparator, False); -end; - -function TJclFileEnumerator.GetFileMasks: TStrings; -begin - Result := FFileMasks; -end; - -function TJclFileEnumerator.GetFileSizeMax: Int64; -begin - Result := FFileSizeMax; -end; - -function TJclFileEnumerator.GetFileSizeMin: Int64; -begin - Result := FFileSizeMin; -end; - -function TJclFileEnumerator.GetIncludeHiddenSubDirectories: Boolean; -begin - Result := fsIncludeHiddenSubDirectories in Options; -end; - -function TJclFileEnumerator.GetIncludeSubDirectories: Boolean; -begin - Result := fsIncludeSubDirectories in Options; -end; - -function TJclFileEnumerator.GetLastChangeAfter: TDateTime; -begin - Result := FLastChangeAfter; -end; - -function TJclFileEnumerator.GetLastChangeBefore: TDateTime; -begin - Result := FLastChangeBefore; -end; - function TJclFileEnumerator.GetOnEnterDirectory: TFileHandler; begin Result := FOnEnterDirectory; @@ -6470,95 +6583,11 @@ Result := FOnTerminateTask; end; -function TJclFileEnumerator.GetOption(const Option: TFileSearchOption): Boolean; -begin - Result := Option in FOptions; -end; - -function TJclFileEnumerator.GetOptions: TFileSearchOptions; -begin - Result := FOptions; -end; - -function TJclFileEnumerator.GetSubDirectoryMask: string; -begin - Result := FSubDirectoryMask; -end; - function TJclFileEnumerator.GetSynchronizationMode: TFileEnumeratorSyncMode; begin Result := FSynchronizationMode; end; -function TJclFileEnumerator.IsLastChangeAfterStored: Boolean; -begin - Result := FLastChangeAfter <> MinDateTime; -end; - -function TJclFileEnumerator.IsLastChangeBeforeStored: Boolean; -begin - Result := FLastChangeBefore <> MaxDateTime; -end; - -procedure TJclFileEnumerator.SetCaseSensitiveSearch(const Value: Boolean); -begin - FCaseSensitiveSearch := Value; -end; - -procedure TJclFileEnumerator.SetRootDirectories(const Value: TStrings); -begin - FRootDirectories.Assign(Value); -end; - -procedure TJclFileEnumerator.SetRootDirectory(const Value: string); -begin - FRootDirectories.Clear; - FRootDirectories.Add(Value); -end; - -procedure TJclFileEnumerator.SetFileMask(const Value: string); -begin - { TODO : UNIX : ? } - StrToStrings(Value, DirSeparator, FFileMasks, False); -end; - -procedure TJclFileEnumerator.SetFileMasks(const Value: TStrings); -begin - FileMasks.Assign(Value); -end; - -procedure TJclFileEnumerator.SetFileSizeMax(const Value: Int64); -begin - FFileSizeMax := Value; -end; - -procedure TJclFileEnumerator.SetFileSizeMin(const Value: Int64); -begin - FFileSizeMin := Value; -end; - -procedure TJclFileEnumerator.SetIncludeHiddenSubDirectories( - const Value: Boolean); -begin - SetOption(fsIncludeHiddenSubDirectories, Value); -end; - -procedure TJclFileEnumerator.SetIncludeSubDirectories( - const Value: Boolean); -begin - SetOption(fsIncludeSubDirectories, Value); -end; - -procedure TJclFileEnumerator.SetLastChangeAfter(const Value: TDateTime); -begin - FLastChangeAfter := Value; -end; - -procedure TJclFileEnumerator.SetLastChangeBefore(const Value: TDateTime); -begin - FLastChangeBefore := Value; -end; - procedure TJclFileEnumerator.SetOnEnterDirectory( const Value: TFileHandler); begin @@ -6571,24 +6600,6 @@ FOnTerminateTask := Value; end; -procedure TJclFileEnumerator.SetOption(const Option: TFileSearchOption; const Value: Boolean); -begin - if Value then - Include(FOptions, Option) - else - Exclude(FOptions, Option); -end; - -procedure TJclFileEnumerator.SetOptions(const Value: TFileSearchOptions); -begin - FOptions := Value; -end; - -procedure TJclFileEnumerator.SetSubDirectoryMask(const Value: string); -begin - FSubDirectoryMask := Value; -end; - procedure TJclFileEnumerator.SetSynchronizationMode( const Value: TFileEnumeratorSyncMode); begin Modified: trunk/jcl/source/common/JclSysUtils.pas =================================================================== --- trunk/jcl/source/common/JclSysUtils.pas 2009-12-21 20:19:28 UTC (rev 3095) +++ trunk/jcl/source/common/JclSysUtils.pas 2009-12-21 21:36:30 UTC (rev 3096) @@ -402,6 +402,20 @@ // Interface information function GetImplementorOfInterface(const I: IInterface): TObject; +// interfaced persistent +type + TJclInterfacedPersistent = class(TPersistent, IInterface) + protected + FOwnerInterface: IInterface; + FRefCount: Integer; + public + procedure AfterConstruction; override; + { IInterface } + function QueryInterface(const IID: TGUID; out Obj): HRESULT; virtual; stdcall; + function _AddRef: Integer; stdcall; + function _Release: Integer; stdcall; + end; + // Numeric formatting routines type TDigitCount = 0..255; @@ -2082,6 +2096,44 @@ end; end; +//=== { TJclInterfacedPersistent } =========================================== + +procedure TJclInterfacedPersistent.AfterConstruction; +begin + inherited AfterConstruction; + if GetOwner <> nil then + GetOwner.GetInterface(IInterface, FOwnerInterface); +end; + +function TJclInterfacedPersistent.QueryInterface(const IID: TGUID; + out Obj): HRESULT; +begin + if GetInterface(IID, Obj) then + Result := S_OK + else + Result := E_NOINTERFACE; +end; + +function TJclInterfacedPersistent._AddRef: Integer; +begin + if FOwnerInterface <> nil then + Result := FOwnerInterface._AddRef + else + Result := InterlockedIncrement(FRefCount); +end; + +function TJclInterfacedPersistent._Release: Integer; +begin + if FOwnerInterface <> nil then + Result := FOwnerInterface._Release + else + begin + Result := InterlockedDecrement(FRefCount); + if Result = 0 then + Destroy; + end; +end; + //=== Numeric formatting routines ============================================ function IntToStrZeroPad(Value, Count: Integer): string; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-12-21 20:19:35
|
Revision: 3095 http://jcl.svn.sourceforge.net/jcl/?rev=3095&view=rev Author: outchy Date: 2009-12-21 20:19:28 +0000 (Mon, 21 Dec 2009) Log Message: ----------- move of the JediPreProcessor to JCL distributed code. Modified Paths: -------------- trunk/jcl/devtools/howto-jpp.txt trunk/jcl/devtools/jpp/jpp.dof Added Paths: ----------- trunk/jcl/devtools/jpp/ Removed Paths: ------------- trunk/jpp/ Modified: trunk/jcl/devtools/howto-jpp.txt =================================================================== --- trunk/jcl/devtools/howto-jpp.txt 2009-12-21 20:13:35 UTC (rev 3094) +++ trunk/jcl/devtools/howto-jpp.txt 2009-12-21 20:19:28 UTC (rev 3095) @@ -1,2 +1,2 @@ JPP (JEDI PreProcessor) executable has to be placed in this directory. -It can be built from the source jpp.dpr available at https://jcl.svn.sourceforge.net:443/svnroot/jcl/trunk/jpp/ +It can be built from the source jpp.dpr available in the jpp subdirectory. Modified: trunk/jcl/devtools/jpp/jpp.dof =================================================================== --- trunk/jpp/jpp.dof 2009-12-21 20:13:35 UTC (rev 3094) +++ trunk/jcl/devtools/jpp/jpp.dof 2009-12-21 20:19:28 UTC (rev 3095) @@ -1,3 +1,3 @@ [Directories] -OutputDir=..\jcl\devtools +OutputDir=.. UsePackages=0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-12-21 20:13:46
|
Revision: 3094 http://jcl.svn.sourceforge.net/jcl/?rev=3094&view=rev Author: outchy Date: 2009-12-21 20:13:35 +0000 (Mon, 21 Dec 2009) Log Message: ----------- move of the original PascalPreProcessor source code to a dedicated directory. Added Paths: ----------- trunk/thirdparty/PascalPreProcessor/ trunk/thirdparty/PascalPreProcessor/FindFileIter.pas trunk/thirdparty/PascalPreProcessor/PCharUtils.pas trunk/thirdparty/PascalPreProcessor/PppLexer.pas trunk/thirdparty/PascalPreProcessor/Readme.txt Removed Paths: ------------- trunk/jpp/Original/ Copied: trunk/thirdparty/PascalPreProcessor/FindFileIter.pas (from rev 3093, trunk/jpp/Original/FindFileIter.pas) =================================================================== --- trunk/thirdparty/PascalPreProcessor/FindFileIter.pas (rev 0) +++ trunk/thirdparty/PascalPreProcessor/FindFileIter.pas 2009-12-21 20:13:35 UTC (rev 3094) @@ -0,0 +1,167 @@ +{ **************************************************************************** } +{ } +{ Iterator wrapper interface for FindFirst/FindNext/FindClose } +{ Copyright (c) 2001 Barry Kelly. } +{ bar...@ho... } +{ } +{ 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 FindFileIter.pas } +{ } +{ The Initial Developer of the Original Code is Barry Kelly. } +{ Portions created by Barry Kelly are Copyright (C) 2001 } +{ Barry Kelly. All Rights Reserved. } +{ } +{ Alternatively, the contents of this file may be used under the terms } +{ of the Lesser GNU Public License (the "LGPL License"), in which case } +{ the provisions of LGPL License are applicable instead of those } +{ above. If you wish to allow use of your version of this file only } +{ under the terms of the LPGL License and not to allow others to use } +{ your version of this file under the MPL, indicate your decision by } +{ deleting the provisions above and replace them with the notice and } +{ other provisions required by the LGPL License. If you do not delete } +{ the provisions above, a recipient may use your version of this file } +{ under either the MPL or the LPGL License. } +{ } +{ **************************************************************************** } +{ $Id$ } +unit FindFileIter; + +interface + +uses + SysUtils; + +type + IFindFileIterator = interface + ['{E7D04349-3848-483E-9FEB-DAEB0B0FBEAF}'] + + { returns false if next not found } + function Next: Boolean; + + function SearchRec: TSearchRec; + function Time: TDateTime; + function Size: Int64; + function Attr: Integer; + function Name: TFileName; + end; + +{ returns false if no first file found } +function CreateFindFile(const Path: string; IncludeAttr: Integer; + out iffi: IFindFileIterator): Boolean; + +implementation + +type + TWin32FindFileIterator = class(TInterfacedObject, IFindFileIterator) + private + FSearchRec: TSearchRec; + FValid: Boolean; + FBasePath: string; + function IsValid: Boolean; + public + constructor Create(const Path: string; IncludeAttr: Integer); + destructor Destroy; override; + + function Attr: Integer; + function Name: TFileName; + function Next: Boolean; + function SearchRec: TSearchRec; + function Size: Int64; + function Time: TDateTime; + + property Valid: Boolean read FValid; + end; + +function CreateFindFile(const Path: string; IncludeAttr: Integer; + out iffi: IFindFileIterator): Boolean; +var + iter: TWin32FindFileIterator; +begin + iter := TWin32FindFileIterator.Create(Path, IncludeAttr); + Result := iter.Valid; + if Result then + iffi := iter + else + begin + iffi := nil; + iter.Free; + end; +end; + +{ TWin32FindFileIterator } + +constructor TWin32FindFileIterator.Create(const Path: string; + IncludeAttr: Integer); +begin + FValid := FindFirst(Path, IncludeAttr, FSearchRec) = 0; + FBasePath := ExtractFilePath(Path); +end; + +destructor TWin32FindFileIterator.Destroy; +begin + FindClose(FSearchRec); + inherited; +end; + +function TWin32FindFileIterator.Attr: Integer; +begin + Assert(IsValid); + Result := FSearchRec.Attr; +end; + +function TWin32FindFileIterator.Name: TFileName; +begin + Assert(IsValid); + Result := FBasePath + FSearchRec.Name; +end; + +function TWin32FindFileIterator.Next: Boolean; +begin + FValid := FindNext(FSearchRec) = 0; + Result := FValid; +end; + +function TWin32FindFileIterator.SearchRec: TSearchRec; +begin + Assert(IsValid); + Result := FSearchRec; +end; + +{$IFDEF ConditionalExpressions} + {$IF CompilerVersion >= 14} + {$WARN SYMBOL_PLATFORM OFF} + {$IFEND} +{$ENDIF} +function TWin32FindFileIterator.Size: Int64; +begin + Assert(IsValid); + {$IFDEF MSWINDOWS} + Result := FSearchRec.FindData.nFileSizeHigh shl 32 + + FSearchRec.FindData.nFileSizeLow; + {$ELSE} + Result := FSearchRec.Size; + {$ENDIF} +end; + +function TWin32FindFileIterator.Time: TDateTime; +begin + Result := FileDateToDateTime(FSearchRec.Time); +end; + +function TWin32FindFileIterator.IsValid: Boolean; +begin + if not FValid then + raise Exception.Create('Tried to access invalid FindFile iterator'); + Result := True; +end; + +end. Copied: trunk/thirdparty/PascalPreProcessor/PCharUtils.pas (from rev 3093, trunk/jpp/Original/PCharUtils.pas) =================================================================== --- trunk/thirdparty/PascalPreProcessor/PCharUtils.pas (rev 0) +++ trunk/thirdparty/PascalPreProcessor/PCharUtils.pas 2009-12-21 20:13:35 UTC (rev 3094) @@ -0,0 +1,110 @@ +{ **************************************************************************** } +{ } +{ Pascal PreProcessor PChar utilities } +{ Copyright (c) 2001 Barry Kelly. } +{ bar...@ho... } +{ } +{ 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 PCharUtils.pas } +{ } +{ The Initial Developer of the Original Code is Barry Kelly. } +{ Portions created by Barry Kelly are Copyright (C) 2001 } +{ Barry Kelly. All Rights Reserved. } +{ } +{ Alternatively, the contents of this file may be used under the terms } +{ of the Lesser GNU Public License (the "LGPL License"), in which case } +{ the provisions of LGPL License are applicable instead of those } +{ above. If you wish to allow use of your version of this file only } +{ under the terms of the LPGL License and not to allow others to use } +{ your version of this file under the MPL, indicate your decision by } +{ deleting the provisions above and replace them with the notice and } +{ other provisions required by the LGPL License. If you do not delete } +{ the provisions above, a recipient may use your version of this file } +{ under either the MPL or the LPGL License. } +{ } +{ **************************************************************************** } +{ $Id$ } + +unit PCharUtils; + +interface + +uses SysUtils; + +function SkipWhite(cp: PChar): PChar; +function ReadStringDoubleQuotedMaybe(cp: PChar; var AStr: string): PChar; +function ReadStringSingleQuotedMaybe(cp: PChar; var AStr: string): PChar; +function ReadIdent(cp: PChar; var ident: string): PChar; + +implementation + +function SkipWhite(cp: PChar): PChar; +begin + while cp^ in [#1..#32] do + Inc(cp); + Result := cp; +end; + +function ReadStringDoubleQuotedMaybe(cp: PChar; var AStr: string): PChar; +begin + { possibly quoted string } + Result := cp; + if Result^ = '"' then + begin + while not (Result^ in [#0, '"']) do + Inc(Result); + if Result^ = #0 then + raise Exception.Create('Unterminated string'); + Inc(Result); // skip over final " + SetString(AStr, cp, Result - cp); + end + else + begin + while not (Result^ in [#0..#32]) do + Inc(Result); + SetString(AStr, cp, Result - cp); + end; +end; + +function ReadStringSingleQuotedMaybe(cp: PChar; var AStr: string): PChar; +begin + { possibly quoted string } + Result := cp; + if Result^ = '"' then + begin + while not (Result^ in [#0, '"']) do + Inc(Result); + if Result^ = #0 then + raise Exception.Create('Unterminated string'); + Inc(Result); // skip over final " + SetString(AStr, cp, Result - cp); + end + else + begin + while not (Result^ in [#0..#32]) do + Inc(Result); + SetString(AStr, cp, Result - cp); + end; +end; + +function ReadIdent(cp: PChar; var ident: string): PChar; +var + start: PChar; +begin + start := cp; + while cp^ in ['a'..'z', 'A'..'Z', '0'..'9', '_'] do + Inc(cp); + SetString(ident, start, cp - start); + Result := cp; +end; + +end. Copied: trunk/thirdparty/PascalPreProcessor/PppLexer.pas (from rev 3093, trunk/jpp/Original/PppLexer.pas) =================================================================== --- trunk/thirdparty/PascalPreProcessor/PppLexer.pas (rev 0) +++ trunk/thirdparty/PascalPreProcessor/PppLexer.pas 2009-12-21 20:13:35 UTC (rev 3094) @@ -0,0 +1,339 @@ +{ **************************************************************************** } +{ } +{ Pascal PreProcessor Lexer } +{ Copyright (c) 2001 Barry Kelly. } +{ bar...@ho... } +{ } +{ 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 PppLexer.pas } +{ } +{ The Initial Developer of the Original Code is Barry Kelly. } +{ Portions created by Barry Kelly are Copyright (C) 2001 } +{ Barry Kelly. All Rights Reserved. } +{ } +{ Alternatively, the contents of this file may be used under the terms } +{ of the Lesser GNU Public License (the "LGPL License"), in which case } +{ the provisions of LGPL License are applicable instead of those } +{ above. If you wish to allow use of your version of this file only } +{ under the terms of the LPGL License and not to allow others to use } +{ your version of this file under the MPL, indicate your decision by } +{ deleting the provisions above and replace them with the notice and } +{ other provisions required by the LGPL License. If you do not delete } +{ the provisions above, a recipient may use your version of this file } +{ under either the MPL or the LPGL License. } +{ } +{ **************************************************************************** } +{ $Id$ } + +unit PppLexer; + +interface + +uses + SysUtils, Classes, JclStrHashMap, PCharUtils; + +type + TPppToken = (ptEof, ptComment, ptText, + ptDefine, ptUndef, ptIfdef, ptIfndef, ptElse, ptEndif, + ptInclude); + + EPppLexerError = class(Exception); + + TPppLexer = class + private + FBuf: string; + FTokenHash: TStringHashMap; + FCurrPos: PChar; + FCurrLine: Integer; + FCurrTok: TPppToken; + FTokenAsString: string; + FRawComment: string; + public + constructor Create(AStream: TStream); + destructor Destroy; override; + + procedure Error(const AMsg: string); + procedure NextTok; + procedure Reset; + property CurrTok: TPppToken read FCurrTok; + { TokenAsString is the preprocessor symbol for $IFDEF & $IFNDEF, + and the file name for $I and $INCLUDE, and is the actual text + for ptComment and ptText. } + property TokenAsString: string read FTokenAsString; + { The raw comment for $IFDEF, etc. when TokenAsString becomes the + file name / preprocessor symbol. } + property RawComment: string read FRawComment; + end; + +implementation + +{ TPppLexer } + +constructor TPppLexer.Create(AStream: TStream); + procedure AddToken(const AIdent: string; AValue: TPppToken); + var + x: Integer; + begin + x := Ord(AValue); + FTokenHash.Add(AIdent, x); + end; +begin + FTokenHash := TStringHashMap.Create(CaseInsensitiveTraits, 19); + + AddToken('i', ptInclude); + AddToken('include', ptInclude); + AddToken('ifdef', ptIfdef); + AddToken('ifndef', ptIfndef); + AddToken('else', ptElse); + AddToken('endif', ptEndif); + AddToken('define', ptDefine); + AddToken('undef', ptUndef); + + SetLength(FBuf, AStream.Size); + AStream.ReadBuffer(Pointer(FBuf)^, Length(FBuf)); + Reset; +end; + +destructor TPppLexer.Destroy; +begin + FTokenHash.Free; + inherited; +end; + +procedure TPppLexer.Error(const AMsg: string); +begin + raise EPppLexerError.CreateFmt('(%d): %s', [FCurrLine, AMsg]); +end; + +procedure TPppLexer.NextTok; + + procedure HandleDirective(APos: PChar); + + { needs to be special, because it checks for not * or } + function ReadString(cp: PChar; var ident: string): PChar; + var + start: PChar; + begin + if cp^ = '"' then + begin + Inc(cp); + start := cp; + while not (cp^ in [#0, #10, #13, '"']) do + Inc(cp); + if cp^ in [#0, #10, #13] then + Error('Unterminated string'); + SetString(ident, start, cp - start); + Result := cp + 1; + end + else + begin + start := cp; + while not (cp^ in [#0..#32, '*', '}']) do + Inc(cp); + if cp^ = #0 then + Error('Unterminated string'); + SetString(ident, start, cp - start); + Result := cp; + end; + end; + + var + start: PChar; + ident: string; + tokInt: Integer; + begin + Assert(APos^ = '$'); + Inc(APos); + start := APos; + + { read identifier } + while APos^ in ['a'..'z', 'A'..'Z', '_'] do + Inc(APos); + SetString(ident, start, APos - start); + + { find identifier in hash map } + if FTokenHash.Find(ident, tokInt) then + begin + FCurrTok := TPppToken(tokInt); + + case FCurrTok of + ptDefine, + ptUndef, + ptIfdef, + ptIfndef: + ReadIdent(SkipWhite(APos), FTokenAsString); + ptInclude: + ReadString(SkipWhite(APos), FTokenAsString); + end; + end + else + { other directives must pass through; therefore call them text } + FCurrTok := ptText; + end; + +var + cp, start: PChar; + cl: Integer; +label + Label_NormalText; +begin + { register variables optimization } + cp := FCurrPos; + cl := FCurrLine; + + { determine token type } + case cp^ of + + { the buck stops here } + #0: + begin + FCurrTok := ptEof; + Exit; + end; + + { possible Standard Pascal comment } + '(': + begin + if (cp + 1)^ <> '*' then + goto Label_NormalText; + start := cp; + Inc(cp, 2); + while True do + begin + case cp^ of + #0: + Break; + #10: + Inc(cl); + '*': + if (cp + 1)^ = ')' then + Break; + end; + Inc(cp); + end; + if cp^ = '*' then + Inc(cp, 2); // get whole of comment, including trailing '*)' + SetString(FTokenAsString, start, cp - start); + FCurrTok := ptComment; + end; + + { possible line comment } + '/': + begin + if (cp + 1)^ <> '/' then + goto Label_NormalText; + start := cp; + Inc(cp, 2); + while True do + case cp^ of + #0, #10: + Break; + else + Inc(cp); + end; + { if cp^ is #10, we leave it in, to avoid formatting cock-ups } + SetString(FTokenAsString, start, cp - start); + FCurrTok := ptComment; + end; + + { pascal comment } + '{': + begin + start := cp; + while True do + begin + case cp^ of + #0, '}': + Break; + #10: + Inc(cl); + end; + Inc(cp); + end; + if cp^ = '}' then + Inc(cp); + SetString(FTokenAsString, start, cp - start); + FCurrTok := ptComment; + end; + else +Label_NormalText: + { process normal text; passes straight through until next comment or eof } + start := cp; + while True do + begin + case cp^ of + #0: + Break; + #10: + Inc(cl); + '{': + Break; + '/': + if (cp + 1)^ = '/' then + Break; + '(': + if (cp + 1)^ = '*' then + Break; + + { must handle strings seperately; there can be no comments in strings } + '''': + begin + Inc(cp); + while True do + case cp^ of + #0, #10: + begin + FCurrLine := cl; + Error('String not terminated'); + end; + '''': + Break; + else + Inc(cp); + end; { of '''' case } + end; + end; + Inc(cp); + end; + SetString(FTokenAsString, start, cp - start); + FCurrTok := ptText; + end; + + { find out if we have a special directive } + if FCurrTok = ptComment then + begin + FRawComment := FTokenAsString; + case (start + 1)^ of + '$': // {$ + HandleDirective(start + 1); + + '*': // (*$ + if (start + 2)^ = '$' then + HandleDirective(start + 2); + '/': // do nothing + ; + end; + end; + + { restore register variables } + FCurrPos := cp; + FCurrLine := cl; +end; + +procedure TPppLexer.Reset; +begin + FCurrPos := PChar(FBuf); + FCurrLine := 1; + NextTok; +end; + +end. Copied: trunk/thirdparty/PascalPreProcessor/Readme.txt (from rev 3093, trunk/jpp/Original/Readme.txt) =================================================================== --- trunk/thirdparty/PascalPreProcessor/Readme.txt (rev 0) +++ trunk/thirdparty/PascalPreProcessor/Readme.txt 2009-12-21 20:13:35 UTC (rev 3094) @@ -0,0 +1,20 @@ +Pascal PreProcessor v0.5.1 + +Copyright (c) 2001 Barry Kelly. +ba...@ho... + +Syntax: + ppp.exe [options] <input files>... + +Options: + -h, -? This help + -i Process includes + -c Process conditional directives + -C Strip comments + -pxxx Add xxx to include path + -dxxx Define xxx as a preprocessor conditional symbol + +Preprocessed files will be written to new files with extension .pi +If you have any suggestions or bug-reports, contact me at +ba...@ho... + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-12-21 20:08:53
|
Revision: 3093 http://jcl.svn.sourceforge.net/jcl/?rev=3093&view=rev Author: outchy Date: 2009-12-21 20:08:44 +0000 (Mon, 21 Dec 2009) Log Message: ----------- deletion of outdated files. move and copy of original files to the dedicated directory. Added Paths: ----------- trunk/jpp/Original/FindFileIter.pas trunk/jpp/Original/PCharUtils.pas trunk/jpp/Original/PppLexer.pas trunk/jpp/Original/Readme.txt Removed Paths: ------------- trunk/jpp/MakeDiff.bat trunk/jpp/Makefile.mak trunk/jpp/PppLexer.pas trunk/jpp/Readme.txt Deleted: trunk/jpp/MakeDiff.bat =================================================================== --- trunk/jpp/MakeDiff.bat 2009-12-19 17:22:22 UTC (rev 3092) +++ trunk/jpp/MakeDiff.bat 2009-12-21 20:08:44 UTC (rev 3093) @@ -1,2 +0,0 @@ -make Diff -pause Deleted: trunk/jpp/Makefile.mak =================================================================== --- trunk/jpp/Makefile.mak 2009-12-19 17:22:22 UTC (rev 3092) +++ trunk/jpp/Makefile.mak 2009-12-21 20:08:44 UTC (rev 3093) @@ -1,7 +0,0 @@ - -Diff: jpp.dpr \ - JppParser.pas \ - JppState.pas - diff jpp.dpr ppp.dpr >jpp.diff - diff JppParser.pas PppParser.pas >JppParser.diff - diff JppState.pas PppState.pas >JppState.diff Copied: trunk/jpp/Original/FindFileIter.pas (from rev 2175, trunk/jpp/FindFileIter.pas) =================================================================== --- trunk/jpp/Original/FindFileIter.pas (rev 0) +++ trunk/jpp/Original/FindFileIter.pas 2009-12-21 20:08:44 UTC (rev 3093) @@ -0,0 +1,167 @@ +{ **************************************************************************** } +{ } +{ Iterator wrapper interface for FindFirst/FindNext/FindClose } +{ Copyright (c) 2001 Barry Kelly. } +{ bar...@ho... } +{ } +{ 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 FindFileIter.pas } +{ } +{ The Initial Developer of the Original Code is Barry Kelly. } +{ Portions created by Barry Kelly are Copyright (C) 2001 } +{ Barry Kelly. All Rights Reserved. } +{ } +{ Alternatively, the contents of this file may be used under the terms } +{ of the Lesser GNU Public License (the "LGPL License"), in which case } +{ the provisions of LGPL License are applicable instead of those } +{ above. If you wish to allow use of your version of this file only } +{ under the terms of the LPGL License and not to allow others to use } +{ your version of this file under the MPL, indicate your decision by } +{ deleting the provisions above and replace them with the notice and } +{ other provisions required by the LGPL License. If you do not delete } +{ the provisions above, a recipient may use your version of this file } +{ under either the MPL or the LPGL License. } +{ } +{ **************************************************************************** } +{ $Id$ } +unit FindFileIter; + +interface + +uses + SysUtils; + +type + IFindFileIterator = interface + ['{E7D04349-3848-483E-9FEB-DAEB0B0FBEAF}'] + + { returns false if next not found } + function Next: Boolean; + + function SearchRec: TSearchRec; + function Time: TDateTime; + function Size: Int64; + function Attr: Integer; + function Name: TFileName; + end; + +{ returns false if no first file found } +function CreateFindFile(const Path: string; IncludeAttr: Integer; + out iffi: IFindFileIterator): Boolean; + +implementation + +type + TWin32FindFileIterator = class(TInterfacedObject, IFindFileIterator) + private + FSearchRec: TSearchRec; + FValid: Boolean; + FBasePath: string; + function IsValid: Boolean; + public + constructor Create(const Path: string; IncludeAttr: Integer); + destructor Destroy; override; + + function Attr: Integer; + function Name: TFileName; + function Next: Boolean; + function SearchRec: TSearchRec; + function Size: Int64; + function Time: TDateTime; + + property Valid: Boolean read FValid; + end; + +function CreateFindFile(const Path: string; IncludeAttr: Integer; + out iffi: IFindFileIterator): Boolean; +var + iter: TWin32FindFileIterator; +begin + iter := TWin32FindFileIterator.Create(Path, IncludeAttr); + Result := iter.Valid; + if Result then + iffi := iter + else + begin + iffi := nil; + iter.Free; + end; +end; + +{ TWin32FindFileIterator } + +constructor TWin32FindFileIterator.Create(const Path: string; + IncludeAttr: Integer); +begin + FValid := FindFirst(Path, IncludeAttr, FSearchRec) = 0; + FBasePath := ExtractFilePath(Path); +end; + +destructor TWin32FindFileIterator.Destroy; +begin + FindClose(FSearchRec); + inherited; +end; + +function TWin32FindFileIterator.Attr: Integer; +begin + Assert(IsValid); + Result := FSearchRec.Attr; +end; + +function TWin32FindFileIterator.Name: TFileName; +begin + Assert(IsValid); + Result := FBasePath + FSearchRec.Name; +end; + +function TWin32FindFileIterator.Next: Boolean; +begin + FValid := FindNext(FSearchRec) = 0; + Result := FValid; +end; + +function TWin32FindFileIterator.SearchRec: TSearchRec; +begin + Assert(IsValid); + Result := FSearchRec; +end; + +{$IFDEF ConditionalExpressions} + {$IF CompilerVersion >= 14} + {$WARN SYMBOL_PLATFORM OFF} + {$IFEND} +{$ENDIF} +function TWin32FindFileIterator.Size: Int64; +begin + Assert(IsValid); + {$IFDEF MSWINDOWS} + Result := FSearchRec.FindData.nFileSizeHigh shl 32 + + FSearchRec.FindData.nFileSizeLow; + {$ELSE} + Result := FSearchRec.Size; + {$ENDIF} +end; + +function TWin32FindFileIterator.Time: TDateTime; +begin + Result := FileDateToDateTime(FSearchRec.Time); +end; + +function TWin32FindFileIterator.IsValid: Boolean; +begin + if not FValid then + raise Exception.Create('Tried to access invalid FindFile iterator'); + Result := True; +end; + +end. Copied: trunk/jpp/Original/PCharUtils.pas (from rev 2175, trunk/jpp/PCharUtils.pas) =================================================================== --- trunk/jpp/Original/PCharUtils.pas (rev 0) +++ trunk/jpp/Original/PCharUtils.pas 2009-12-21 20:08:44 UTC (rev 3093) @@ -0,0 +1,110 @@ +{ **************************************************************************** } +{ } +{ Pascal PreProcessor PChar utilities } +{ Copyright (c) 2001 Barry Kelly. } +{ bar...@ho... } +{ } +{ 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 PCharUtils.pas } +{ } +{ The Initial Developer of the Original Code is Barry Kelly. } +{ Portions created by Barry Kelly are Copyright (C) 2001 } +{ Barry Kelly. All Rights Reserved. } +{ } +{ Alternatively, the contents of this file may be used under the terms } +{ of the Lesser GNU Public License (the "LGPL License"), in which case } +{ the provisions of LGPL License are applicable instead of those } +{ above. If you wish to allow use of your version of this file only } +{ under the terms of the LPGL License and not to allow others to use } +{ your version of this file under the MPL, indicate your decision by } +{ deleting the provisions above and replace them with the notice and } +{ other provisions required by the LGPL License. If you do not delete } +{ the provisions above, a recipient may use your version of this file } +{ under either the MPL or the LPGL License. } +{ } +{ **************************************************************************** } +{ $Id$ } + +unit PCharUtils; + +interface + +uses SysUtils; + +function SkipWhite(cp: PChar): PChar; +function ReadStringDoubleQuotedMaybe(cp: PChar; var AStr: string): PChar; +function ReadStringSingleQuotedMaybe(cp: PChar; var AStr: string): PChar; +function ReadIdent(cp: PChar; var ident: string): PChar; + +implementation + +function SkipWhite(cp: PChar): PChar; +begin + while cp^ in [#1..#32] do + Inc(cp); + Result := cp; +end; + +function ReadStringDoubleQuotedMaybe(cp: PChar; var AStr: string): PChar; +begin + { possibly quoted string } + Result := cp; + if Result^ = '"' then + begin + while not (Result^ in [#0, '"']) do + Inc(Result); + if Result^ = #0 then + raise Exception.Create('Unterminated string'); + Inc(Result); // skip over final " + SetString(AStr, cp, Result - cp); + end + else + begin + while not (Result^ in [#0..#32]) do + Inc(Result); + SetString(AStr, cp, Result - cp); + end; +end; + +function ReadStringSingleQuotedMaybe(cp: PChar; var AStr: string): PChar; +begin + { possibly quoted string } + Result := cp; + if Result^ = '"' then + begin + while not (Result^ in [#0, '"']) do + Inc(Result); + if Result^ = #0 then + raise Exception.Create('Unterminated string'); + Inc(Result); // skip over final " + SetString(AStr, cp, Result - cp); + end + else + begin + while not (Result^ in [#0..#32]) do + Inc(Result); + SetString(AStr, cp, Result - cp); + end; +end; + +function ReadIdent(cp: PChar; var ident: string): PChar; +var + start: PChar; +begin + start := cp; + while cp^ in ['a'..'z', 'A'..'Z', '0'..'9', '_'] do + Inc(cp); + SetString(ident, start, cp - start); + Result := cp; +end; + +end. Copied: trunk/jpp/Original/PppLexer.pas (from rev 3092, trunk/jpp/PppLexer.pas) =================================================================== --- trunk/jpp/Original/PppLexer.pas (rev 0) +++ trunk/jpp/Original/PppLexer.pas 2009-12-21 20:08:44 UTC (rev 3093) @@ -0,0 +1,339 @@ +{ **************************************************************************** } +{ } +{ Pascal PreProcessor Lexer } +{ Copyright (c) 2001 Barry Kelly. } +{ bar...@ho... } +{ } +{ 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 PppLexer.pas } +{ } +{ The Initial Developer of the Original Code is Barry Kelly. } +{ Portions created by Barry Kelly are Copyright (C) 2001 } +{ Barry Kelly. All Rights Reserved. } +{ } +{ Alternatively, the contents of this file may be used under the terms } +{ of the Lesser GNU Public License (the "LGPL License"), in which case } +{ the provisions of LGPL License are applicable instead of those } +{ above. If you wish to allow use of your version of this file only } +{ under the terms of the LPGL License and not to allow others to use } +{ your version of this file under the MPL, indicate your decision by } +{ deleting the provisions above and replace them with the notice and } +{ other provisions required by the LGPL License. If you do not delete } +{ the provisions above, a recipient may use your version of this file } +{ under either the MPL or the LPGL License. } +{ } +{ **************************************************************************** } +{ $Id$ } + +unit PppLexer; + +interface + +uses + SysUtils, Classes, JclStrHashMap, PCharUtils; + +type + TPppToken = (ptEof, ptComment, ptText, + ptDefine, ptUndef, ptIfdef, ptIfndef, ptElse, ptEndif, + ptInclude); + + EPppLexerError = class(Exception); + + TPppLexer = class + private + FBuf: string; + FTokenHash: TStringHashMap; + FCurrPos: PChar; + FCurrLine: Integer; + FCurrTok: TPppToken; + FTokenAsString: string; + FRawComment: string; + public + constructor Create(AStream: TStream); + destructor Destroy; override; + + procedure Error(const AMsg: string); + procedure NextTok; + procedure Reset; + property CurrTok: TPppToken read FCurrTok; + { TokenAsString is the preprocessor symbol for $IFDEF & $IFNDEF, + and the file name for $I and $INCLUDE, and is the actual text + for ptComment and ptText. } + property TokenAsString: string read FTokenAsString; + { The raw comment for $IFDEF, etc. when TokenAsString becomes the + file name / preprocessor symbol. } + property RawComment: string read FRawComment; + end; + +implementation + +{ TPppLexer } + +constructor TPppLexer.Create(AStream: TStream); + procedure AddToken(const AIdent: string; AValue: TPppToken); + var + x: Integer; + begin + x := Ord(AValue); + FTokenHash.Add(AIdent, x); + end; +begin + FTokenHash := TStringHashMap.Create(CaseInsensitiveTraits, 19); + + AddToken('i', ptInclude); + AddToken('include', ptInclude); + AddToken('ifdef', ptIfdef); + AddToken('ifndef', ptIfndef); + AddToken('else', ptElse); + AddToken('endif', ptEndif); + AddToken('define', ptDefine); + AddToken('undef', ptUndef); + + SetLength(FBuf, AStream.Size); + AStream.ReadBuffer(Pointer(FBuf)^, Length(FBuf)); + Reset; +end; + +destructor TPppLexer.Destroy; +begin + FTokenHash.Free; + inherited; +end; + +procedure TPppLexer.Error(const AMsg: string); +begin + raise EPppLexerError.CreateFmt('(%d): %s', [FCurrLine, AMsg]); +end; + +procedure TPppLexer.NextTok; + + procedure HandleDirective(APos: PChar); + + { needs to be special, because it checks for not * or } + function ReadString(cp: PChar; var ident: string): PChar; + var + start: PChar; + begin + if cp^ = '"' then + begin + Inc(cp); + start := cp; + while not (cp^ in [#0, #10, #13, '"']) do + Inc(cp); + if cp^ in [#0, #10, #13] then + Error('Unterminated string'); + SetString(ident, start, cp - start); + Result := cp + 1; + end + else + begin + start := cp; + while not (cp^ in [#0..#32, '*', '}']) do + Inc(cp); + if cp^ = #0 then + Error('Unterminated string'); + SetString(ident, start, cp - start); + Result := cp; + end; + end; + + var + start: PChar; + ident: string; + tokInt: Integer; + begin + Assert(APos^ = '$'); + Inc(APos); + start := APos; + + { read identifier } + while APos^ in ['a'..'z', 'A'..'Z', '_'] do + Inc(APos); + SetString(ident, start, APos - start); + + { find identifier in hash map } + if FTokenHash.Find(ident, tokInt) then + begin + FCurrTok := TPppToken(tokInt); + + case FCurrTok of + ptDefine, + ptUndef, + ptIfdef, + ptIfndef: + ReadIdent(SkipWhite(APos), FTokenAsString); + ptInclude: + ReadString(SkipWhite(APos), FTokenAsString); + end; + end + else + { other directives must pass through; therefore call them text } + FCurrTok := ptText; + end; + +var + cp, start: PChar; + cl: Integer; +label + Label_NormalText; +begin + { register variables optimization } + cp := FCurrPos; + cl := FCurrLine; + + { determine token type } + case cp^ of + + { the buck stops here } + #0: + begin + FCurrTok := ptEof; + Exit; + end; + + { possible Standard Pascal comment } + '(': + begin + if (cp + 1)^ <> '*' then + goto Label_NormalText; + start := cp; + Inc(cp, 2); + while True do + begin + case cp^ of + #0: + Break; + #10: + Inc(cl); + '*': + if (cp + 1)^ = ')' then + Break; + end; + Inc(cp); + end; + if cp^ = '*' then + Inc(cp, 2); // get whole of comment, including trailing '*)' + SetString(FTokenAsString, start, cp - start); + FCurrTok := ptComment; + end; + + { possible line comment } + '/': + begin + if (cp + 1)^ <> '/' then + goto Label_NormalText; + start := cp; + Inc(cp, 2); + while True do + case cp^ of + #0, #10: + Break; + else + Inc(cp); + end; + { if cp^ is #10, we leave it in, to avoid formatting cock-ups } + SetString(FTokenAsString, start, cp - start); + FCurrTok := ptComment; + end; + + { pascal comment } + '{': + begin + start := cp; + while True do + begin + case cp^ of + #0, '}': + Break; + #10: + Inc(cl); + end; + Inc(cp); + end; + if cp^ = '}' then + Inc(cp); + SetString(FTokenAsString, start, cp - start); + FCurrTok := ptComment; + end; + else +Label_NormalText: + { process normal text; passes straight through until next comment or eof } + start := cp; + while True do + begin + case cp^ of + #0: + Break; + #10: + Inc(cl); + '{': + Break; + '/': + if (cp + 1)^ = '/' then + Break; + '(': + if (cp + 1)^ = '*' then + Break; + + { must handle strings seperately; there can be no comments in strings } + '''': + begin + Inc(cp); + while True do + case cp^ of + #0, #10: + begin + FCurrLine := cl; + Error('String not terminated'); + end; + '''': + Break; + else + Inc(cp); + end; { of '''' case } + end; + end; + Inc(cp); + end; + SetString(FTokenAsString, start, cp - start); + FCurrTok := ptText; + end; + + { find out if we have a special directive } + if FCurrTok = ptComment then + begin + FRawComment := FTokenAsString; + case (start + 1)^ of + '$': // {$ + HandleDirective(start + 1); + + '*': // (*$ + if (start + 2)^ = '$' then + HandleDirective(start + 2); + '/': // do nothing + ; + end; + end; + + { restore register variables } + FCurrPos := cp; + FCurrLine := cl; +end; + +procedure TPppLexer.Reset; +begin + FCurrPos := PChar(FBuf); + FCurrLine := 1; + NextTok; +end; + +end. Copied: trunk/jpp/Original/Readme.txt (from rev 3092, trunk/jpp/Readme.txt) =================================================================== --- trunk/jpp/Original/Readme.txt (rev 0) +++ trunk/jpp/Original/Readme.txt 2009-12-21 20:08:44 UTC (rev 3093) @@ -0,0 +1,20 @@ +Pascal PreProcessor v0.5.1 + +Copyright (c) 2001 Barry Kelly. +ba...@ho... + +Syntax: + ppp.exe [options] <input files>... + +Options: + -h, -? This help + -i Process includes + -c Process conditional directives + -C Strip comments + -pxxx Add xxx to include path + -dxxx Define xxx as a preprocessor conditional symbol + +Preprocessed files will be written to new files with extension .pi +If you have any suggestions or bug-reports, contact me at +ba...@ho... + Deleted: trunk/jpp/PppLexer.pas =================================================================== --- trunk/jpp/PppLexer.pas 2009-12-19 17:22:22 UTC (rev 3092) +++ trunk/jpp/PppLexer.pas 2009-12-21 20:08:44 UTC (rev 3093) @@ -1,339 +0,0 @@ -{ **************************************************************************** } -{ } -{ Pascal PreProcessor Lexer } -{ Copyright (c) 2001 Barry Kelly. } -{ bar...@ho... } -{ } -{ 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 PppLexer.pas } -{ } -{ The Initial Developer of the Original Code is Barry Kelly. } -{ Portions created by Barry Kelly are Copyright (C) 2001 } -{ Barry Kelly. All Rights Reserved. } -{ } -{ Alternatively, the contents of this file may be used under the terms } -{ of the Lesser GNU Public License (the "LGPL License"), in which case } -{ the provisions of LGPL License are applicable instead of those } -{ above. If you wish to allow use of your version of this file only } -{ under the terms of the LPGL License and not to allow others to use } -{ your version of this file under the MPL, indicate your decision by } -{ deleting the provisions above and replace them with the notice and } -{ other provisions required by the LGPL License. If you do not delete } -{ the provisions above, a recipient may use your version of this file } -{ under either the MPL or the LPGL License. } -{ } -{ **************************************************************************** } -{ $Id$ } - -unit PppLexer; - -interface - -uses - SysUtils, Classes, JclStrHashMap, PCharUtils; - -type - TPppToken = (ptEof, ptComment, ptText, - ptDefine, ptUndef, ptIfdef, ptIfndef, ptElse, ptEndif, - ptInclude); - - EPppLexerError = class(Exception); - - TPppLexer = class - private - FBuf: string; - FTokenHash: TStringHashMap; - FCurrPos: PChar; - FCurrLine: Integer; - FCurrTok: TPppToken; - FTokenAsString: string; - FRawComment: string; - public - constructor Create(AStream: TStream); - destructor Destroy; override; - - procedure Error(const AMsg: string); - procedure NextTok; - procedure Reset; - property CurrTok: TPppToken read FCurrTok; - { TokenAsString is the preprocessor symbol for $IFDEF & $IFNDEF, - and the file name for $I and $INCLUDE, and is the actual text - for ptComment and ptText. } - property TokenAsString: string read FTokenAsString; - { The raw comment for $IFDEF, etc. when TokenAsString becomes the - file name / preprocessor symbol. } - property RawComment: string read FRawComment; - end; - -implementation - -{ TPppLexer } - -constructor TPppLexer.Create(AStream: TStream); - procedure AddToken(const AIdent: string; AValue: TPppToken); - var - x: Integer; - begin - x := Ord(AValue); - FTokenHash.Add(AIdent, x); - end; -begin - FTokenHash := TStringHashMap.Create(CaseInsensitiveTraits, 19); - - AddToken('i', ptInclude); - AddToken('include', ptInclude); - AddToken('ifdef', ptIfdef); - AddToken('ifndef', ptIfndef); - AddToken('else', ptElse); - AddToken('endif', ptEndif); - AddToken('define', ptDefine); - AddToken('undef', ptUndef); - - SetLength(FBuf, AStream.Size); - AStream.ReadBuffer(Pointer(FBuf)^, Length(FBuf)); - Reset; -end; - -destructor TPppLexer.Destroy; -begin - FTokenHash.Free; - inherited; -end; - -procedure TPppLexer.Error(const AMsg: string); -begin - raise EPppLexerError.CreateFmt('(%d): %s', [FCurrLine, AMsg]); -end; - -procedure TPppLexer.NextTok; - - procedure HandleDirective(APos: PChar); - - { needs to be special, because it checks for not * or } - function ReadString(cp: PChar; var ident: string): PChar; - var - start: PChar; - begin - if cp^ = '"' then - begin - Inc(cp); - start := cp; - while not (cp^ in [#0, #10, #13, '"']) do - Inc(cp); - if cp^ in [#0, #10, #13] then - Error('Unterminated string'); - SetString(ident, start, cp - start); - Result := cp + 1; - end - else - begin - start := cp; - while not (cp^ in [#0..#32, '*', '}']) do - Inc(cp); - if cp^ = #0 then - Error('Unterminated string'); - SetString(ident, start, cp - start); - Result := cp; - end; - end; - - var - start: PChar; - ident: string; - tokInt: Integer; - begin - Assert(APos^ = '$'); - Inc(APos); - start := APos; - - { read identifier } - while APos^ in ['a'..'z', 'A'..'Z', '_'] do - Inc(APos); - SetString(ident, start, APos - start); - - { find identifier in hash map } - if FTokenHash.Find(ident, tokInt) then - begin - FCurrTok := TPppToken(tokInt); - - case FCurrTok of - ptDefine, - ptUndef, - ptIfdef, - ptIfndef: - ReadIdent(SkipWhite(APos), FTokenAsString); - ptInclude: - ReadString(SkipWhite(APos), FTokenAsString); - end; - end - else - { other directives must pass through; therefore call them text } - FCurrTok := ptText; - end; - -var - cp, start: PChar; - cl: Integer; -label - Label_NormalText; -begin - { register variables optimization } - cp := FCurrPos; - cl := FCurrLine; - - { determine token type } - case cp^ of - - { the buck stops here } - #0: - begin - FCurrTok := ptEof; - Exit; - end; - - { possible Standard Pascal comment } - '(': - begin - if (cp + 1)^ <> '*' then - goto Label_NormalText; - start := cp; - Inc(cp, 2); - while True do - begin - case cp^ of - #0: - Break; - #10: - Inc(cl); - '*': - if (cp + 1)^ = ')' then - Break; - end; - Inc(cp); - end; - if cp^ = '*' then - Inc(cp, 2); // get whole of comment, including trailing '*)' - SetString(FTokenAsString, start, cp - start); - FCurrTok := ptComment; - end; - - { possible line comment } - '/': - begin - if (cp + 1)^ <> '/' then - goto Label_NormalText; - start := cp; - Inc(cp, 2); - while True do - case cp^ of - #0, #10: - Break; - else - Inc(cp); - end; - { if cp^ is #10, we leave it in, to avoid formatting cock-ups } - SetString(FTokenAsString, start, cp - start); - FCurrTok := ptComment; - end; - - { pascal comment } - '{': - begin - start := cp; - while True do - begin - case cp^ of - #0, '}': - Break; - #10: - Inc(cl); - end; - Inc(cp); - end; - if cp^ = '}' then - Inc(cp); - SetString(FTokenAsString, start, cp - start); - FCurrTok := ptComment; - end; - else -Label_NormalText: - { process normal text; passes straight through until next comment or eof } - start := cp; - while True do - begin - case cp^ of - #0: - Break; - #10: - Inc(cl); - '{': - Break; - '/': - if (cp + 1)^ = '/' then - Break; - '(': - if (cp + 1)^ = '*' then - Break; - - { must handle strings seperately; there can be no comments in strings } - '''': - begin - Inc(cp); - while True do - case cp^ of - #0, #10: - begin - FCurrLine := cl; - Error('String not terminated'); - end; - '''': - Break; - else - Inc(cp); - end; { of '''' case } - end; - end; - Inc(cp); - end; - SetString(FTokenAsString, start, cp - start); - FCurrTok := ptText; - end; - - { find out if we have a special directive } - if FCurrTok = ptComment then - begin - FRawComment := FTokenAsString; - case (start + 1)^ of - '$': // {$ - HandleDirective(start + 1); - - '*': // (*$ - if (start + 2)^ = '$' then - HandleDirective(start + 2); - '/': // do nothing - ; - end; - end; - - { restore register variables } - FCurrPos := cp; - FCurrLine := cl; -end; - -procedure TPppLexer.Reset; -begin - FCurrPos := PChar(FBuf); - FCurrLine := 1; - NextTok; -end; - -end. Deleted: trunk/jpp/Readme.txt =================================================================== --- trunk/jpp/Readme.txt 2009-12-19 17:22:22 UTC (rev 3092) +++ trunk/jpp/Readme.txt 2009-12-21 20:08:44 UTC (rev 3093) @@ -1,20 +0,0 @@ -Pascal PreProcessor v0.5.1 - -Copyright (c) 2001 Barry Kelly. -ba...@ho... - -Syntax: - ppp.exe [options] <input files>... - -Options: - -h, -? This help - -i Process includes - -c Process conditional directives - -C Strip comments - -pxxx Add xxx to include path - -dxxx Define xxx as a preprocessor conditional symbol - -Preprocessed files will be written to new files with extension .pi -If you have any suggestions or bug-reports, contact me at -ba...@ho... - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |