doc manual v0

Upload: ivan-pogorelov

Post on 30-May-2018

252 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 doc Manual v0

    1/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    Revision v0.10

    1 / 34

  • 8/9/2019 doc Manual v0

    2/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    SUMMARY

    1. PROJECT SUMMARY AND QUICK LINKS .............................................................3

    2. WHAT IS IT ? .................................................................................................................. 4

    3. WHAT'S NEW ? .............................................................................................................. 6

    4. TECHNICAL PAPERS................................................................................................... 8

    JAVADOC SYNTAX ..................................................................................................................8

    JavaDoc TAG Description ............................................................................................ 11

    JavaDoc TAG - @Author ................................................................................................. 12

    JavaDoc TAG @version................................................................................................... 13

    JavaDoc TAG @param .................................................................................................... 14

    JavaDoc TAG @return .................................................................................................... 15

    JavaDoc TAG @throws....................................................................................................16

    JavaDoc TAG @todo ....................................................................................................... 17

    JavaDoc TAG @Comment ............................................................................................... 18

    JavaDoc TAG @see ......................................................................................................... 20

    JavaDoc TAG @see ......................................................................................................... 20INLINES SYNTAX ................................................................................................................... 21

    5. PROJECT'S OPTIONS EXPLANATION (CONFIGURATION PANEL) ............. 22

    6. FAQ FOR USERS .......................................................................................................... 25

    7. MAILING LISTS ........................................................................................................... 27

    8. DISCUSSION FORUM ................................................................................................. 28

    9. LINKS ............................................................................................................................. 30

    10. GNU GENERAL PUBLIC LICENSE...................................................................... 31

    2 / 34

  • 8/9/2019 doc Manual v0

    3/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    1. Project summary and quick links

    DelphiCodeToDoc is a free documentation system for Delphi, releasedunder the GNU General Public License. It uses information about source code

    symbols and formatted comments in files to produce accurate documentation from

    your application and component.

    For more details about the features and some screenshots, see "What is it ?" page.

    Current version v0.10 Beta

    Distribution license GNU General Public License

    Latest news Last revision detail orLast News on SF site

    Development home http://sourceforge.net/projects/dephicodetodoc/

    Project's trackersubmission facility

    Bug submission and feature request on SF site

    CVS server cvs.souceforge.net/dephicodetodoc

    Project's documentation Technical papers

    Project example Example of generated documentation

    English Forum (Open

    discussion)http://sourceforge.net/forum/forum.php?forum_id=333850

    French Forum (Forum

    en Franais)http://sourceforge.net/forum/forum.php?forum_id=347469

    Copyright 2003-2004 - TridenT at users.sourceforge.net

    3 / 34

    http://dephicodetodoc.sourceforge.net/Download.htmhttp://www.gnu.org/licenses/gpl.txthttp://dephicodetodoc.sourceforge.net/Whats_new.htmhttp://sourceforge.net/forum/forum.php?forum_id=399971http://sourceforge.net/projects/dephicodetodoc/https://sourceforge.net/tracker/?group_id=96281http://dephicodetodoc.sourceforge.net/Technical_papers.htmhttp://dephicodetodoc.sourceforge.net/example/DelphiCodeToDoc.htmhttp://sourceforge.net/forum/forum.php?forum_id=333850http://sourceforge.net/forum/forum.php?forum_id=347469mailto:[email protected]:[email protected]://sourceforge.net/forum/forum.php?forum_id=347469http://sourceforge.net/forum/forum.php?forum_id=333850http://dephicodetodoc.sourceforge.net/example/DelphiCodeToDoc.htmhttp://dephicodetodoc.sourceforge.net/Technical_papers.htmhttps://sourceforge.net/tracker/?group_id=96281http://sourceforge.net/projects/dephicodetodoc/http://sourceforge.net/forum/forum.php?forum_id=399971http://dephicodetodoc.sourceforge.net/Whats_new.htmhttp://www.gnu.org/licenses/gpl.txthttp://dephicodetodoc.sourceforge.net/Download.htm
  • 8/9/2019 doc Manual v0

    4/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    2. What is it ?

    DelphiCodeToDoc is a free documentation system for Delphi.It uses information about source code symbols and formatted comments in files to

    produce accurate documentation from your application and component.

    This documentation support TEXT file based and HTML style, but will be extend to

    CHM, PDF, and furthermore other format. DelphiCodeToDoc makes sure thestructure of your documentation always stays synchronized with your code. It supportJavaDoc style comments, in-line comments, and is open for other "tags based"

    styles. You can configure DelphiCodeTodoc to extract the code structure fromundocumented source files. This is very useful to quickly find your way in largesource distributions. You can also visualize the relations between the various source

    code elements. DelphiCodeTodoc is developed under MS-Windows with BorlandDelphi, but will be setup to be portable for Kylix under Linux. It use JCL and JVCLlibrary from Jedi Project.

    ScreenShots:

    The Configuration screen,

    where all options for the parser,

    the output format are display.

    The Reference screen. All units

    and classes found in the projet

    directory.

    The Messages screen.

    Informations are written to help

    the user. A debug window is

    also here during the alpha&betastage.

    4 / 34

    http://projectjedi.sourceforge.net/http://projectjedi.sourceforge.net/
  • 8/9/2019 doc Manual v0

    5/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    A sample of the HTML ouput, generated from

    DelphiCodeToDoc souce code itself.

    5 / 34

  • 8/9/2019 doc Manual v0

    6/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    3. What's new ?What are the change in the last revision ?

    DelphiCodeToDoc continue in Beta version. It will be release as stable (v1.0) in some next

    release (need to fix major bugs before).

    Last revision v0.10beta include all the modifications listed below :

    *Added "Todo TAG" support

    *Added "Output Member Filtering" option to show/hide some categories (Tracker

    997979)

    *Fixed "Directories not exists" Exception (Tracker 1058399)

    *Fixed Menu and toolbar not disabled when Parsing and building (Tracker 1035514)

    *Fixed "Warn when empty TAG" function not working (Tracker 1035953)

    *Improved empty TAG handling

    *Added Extended Comment support with @Comment TAG

    *Added Extended Comment support TAG with DoubleSlash in methods

    *Improved Multiline TAG recognition.

    *Updated Translations template

    *Added Russian Translation (Tracker 1036934)

    *Change cursor to "occupied cursor" when building the HTML project (Tracker

    1035514)

    *Added a "View Output" menu item (Tracker 1035514)

    *Added a single "Check and Build" menu item (Tracker 1035514)

    *Added a "Purge output folder" button (Tracker 1035514)

    *Added HTML improvements (Tracker 1035636)

    *Fixed EndOfLine comment not working for methods (Tracker 1038663)

    *Fixed No support for interfaces (Tracker 1012884)

    *Fixed No support for multiple class and interface ancestors

    *Fixed "Procedural type" for field type generate an exception (Tracker 1042560)

    *Fixed Incorrect menu font prevent Russian characters (Tracker 1036772)

    6 / 34

    http://sourceforge.net/tracker/index.php?func=detail&aid=997979&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=997979&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1058399&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035953&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=1036934&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035636&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1038663&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=1038663&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=1042560&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=1036772&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=1036772&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=1042560&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=1038663&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=1038663&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=1035636&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1036934&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1035953&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=1035514&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=1058399&group_id=96281&atid=614255http://sourceforge.net/tracker/index.php?func=detail&aid=997979&group_id=96281&atid=614258http://sourceforge.net/tracker/index.php?func=detail&aid=997979&group_id=96281&atid=614258
  • 8/9/2019 doc Manual v0

    7/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    What are the known bugs of the software ?*None for the moment

    If you find a problem, please send it by email at TridenT at users.sourceforge.net or

    Submit a Tracker.

    What are the known limitations of the software ?*Methods with the same name (overloaded) will result in a single method

    *Functions with the same name (overloaded) will result in a single function

    *No pre-processor define can be add

    *Propertys have no description (but are generated)

    *Events have no description

    *Only HTML documentation is generated

    *Only English language is support for generated documentation

    *@see TAG in not supported

    *Record are not generated and don't support JavaDoc TAG

    What will be include or change in the next revisions ?*Add language choice for generated documentation

    *New nice Project Wizard

    *CHM support

    7 / 34

    mailto:[email protected]:[email protected]
  • 8/9/2019 doc Manual v0

    8/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    4. Technical papers

    JavaDoc Syntax

    In this page, I will explain how to write JavaDoc comments for DelphiCodeToDoc inthe Delphi environment. You can read this interresting article from Sun : How to Write

    Doc Comments for the Javadoc Tool.

    The text below is only a summary of this document. See full list of TAGs at the end ofthis document.

    Format of a Doc CommentA doc comment is written in HTML and must precede a class, field, constructor or

    method declaration. It is made up of two parts -- a description followed by block tags.

    In this example, there is one block tags are @param, and @see.

    Example{*------------------------------------------------------------------------------

    Configure the User output and Debug output to inform about the status

    The TDOCProject class is very separated from the external user interface.

    But in order to inform about the state of the project, it needs to know where

    to display informations. This could be a visual control, or a file or whatever

    containing a TStrings reference to work.

    @param dmUser Where User messages will be written

    @param dmDebug Where Debug messages will be written

    @see WriteMessage

    -------------------------------------------------------------------------------}

    procedure TDOCProject.SetDestinationMessages(const dmUser, dmDebug: TStrings);begin

    FdmUserMessages := dmUser;FdmDebugMessages := dmDebug;

    end;

    Note*The resulting HTML from running DelphiCodeToDoc is shown below.

    *Each line above is indented to align with the code below the comment (the

    begin/end block).

    8 / 34

    http://dephicodetodoc.sourceforge.net/JavaDoc_TAG_Param.htmhttp://dephicodetodoc.sourceforge.net/JavaDoc_TAG_Param.htmhttp://dephicodetodoc.sourceforge.net/JavaDoc_TAG_See.htmhttp://dephicodetodoc.sourceforge.net/JavaDoc_TAG_See.htmhttp://dephicodetodoc.sourceforge.net/JavaDoc_TAG_Param.htmhttp://dephicodetodoc.sourceforge.net/JavaDoc_TAG_Param.htm
  • 8/9/2019 doc Manual v0

    9/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    *The first line contains the begin-comment delimiter "{" followed by the JavaDoc

    Prefix '*' and the embellishment, which is optionnal.

    *Write the first sentence as a short summary of the method, as DelphiCodeToDoc

    automatically places it in the method summary table (and index).

    *Insert a blank comment line between the description and the list of tags, as shown.

    *The first line that begins with an "@" character ends the description. There is only

    one description block per doc comment; you cannot continue the description

    following block tags.

    *The last line contains the end-comment delimiter "}", forgoing with an

    embellishment.

    *Lines won't wrap, limit any doc-comment lines to 80 characters.

    Here is what the previous example would look like after running the Javadoc tool:

    9 / 34

  • 8/9/2019 doc Manual v0

    10/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    Member

    SetDestinationMessages

    Visibility

    PUBLIC

    Related Class

    TDOCProject

    Description

    Configure the User output and Debug output to inform about the status

    The TDOCProject class is very separated from the external user interface.

    But in order to inform about the state of the project, it needs to knowwhere

    to display informations. This could be a visual control, or a file or whatever

    containing a TStrings reference to work.

    Source code

    procedure SetDestinationMessages ( const dmUser , dmDebug : TStrings )

    Parameters

    Parameter Description

    dmUser : TStrings Where User messages will be written

    dmDebug : TStrings Where Debug messages will be written

    Links

    WriteMessage

    10 / 34

  • 8/9/2019 doc Manual v0

    11/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    JavaDoc TAG Description

    *The first sentence of each doc comment should be a summary sentence, containinga concise but complete description of the API item. This means the first sentence of

    each member, class, interface or package description. The Javadoc tool copies this

    first sentence to the appropriate member, class/interface or package summary. This

    makes it important to write crisp and informative initial sentences that can stand on

    their own.

    *The rest of the description is the explaination and goes beyond the summary. Thebest member names are "self-documenting", meaning they tell you basically what the

    item does. If the doc comment merely repeats the member name in sentence form, it

    is not providing more information. For example, if method description uses only the

    words that appear in the method name, then it is adding nothing at all to what you

    could infer. The ideal comment goes beyond those words and should always reward

    you with some bit of information that was not immediately obvious from the name.

    {*------------------------------------------------------------------------------

    Handle BDF Files

    BDFfont is a library to handle BDF font (Bitmap Distribution Format file)font with Delphi.This library will solve the lack of support for bitmap font on MS-Windows.A complete documentation and few examples are also available.Get last revision at : http://sourceforge.net/projects/bdffont/Copyright TridenT 2003 - Under GNU GPL licence

    @Author TridenT

    @Version 2003/08/16 TridenT v0.1 Initial revision

    @Version 2003/08/18 TridenT v0.2 Added Transparency and Space char cap.@Version 2003/08/24 TridenT v0.3 Added a message when loading a font.

    @Version 2003/09/02 TridenT v0.4 New storage method (fast and tiny)

    @Version 2003/09/10 TridenT v0.5 Added function to autosize a text

    -------------------------------------------------------------------------------}unit u_BDFfont;

    ...

    11 / 34

  • 8/9/2019 doc Manual v0

    12/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    JavaDoc TAG - @Author

    @author name-textAdds an "Author" entry with the specified name-text to the generated docs when the -

    author option is used. A doc comment may contain multiple @author tags. You can

    specify one name per @author tag or multiple names per tag. The entire text is

    simply copied to the generated document without being parsed. Therefore, you can

    use multiple names per line if you want a localized name separator other than

    comma.

    {*------------------------------------------------------------------------------

    Base of all Generator

    The Generator component build a formatted file with the data from the

    extractor. All Generator will descend from the TDOCGenerator describe in this

    unit.

    http://dephicodetodoc.sourceforge.net/

    Copyright TridenT 2003 - Under GNU GPL licence

    @AuthorTridenT

    @Version 2003/12/01 TridenT v0.0 Initial revision

    @Todo Add ToDo comments (optional)-------------------------------------------------------------------------------}

    unit DocGen;

    ...

    12 / 34

  • 8/9/2019 doc Manual v0

    13/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    JavaDoc TAG @version

    @version version-textAdds a "Version" subheading with the specified version-text to the generated docs

    when the -version option is used. This tag is intended to hold the current version

    number of the software that this code is part of (as opposed to @since, which holds

    the version number where this code was introduced). The version-text has no special

    internal structure. To see where the version tag can be used, see Where Tags Can

    Be Used.

    A doc comment may contain multiple @version tags. If it makes sense, you can

    specify one version number per @version tag or multiple version numbers per tag. In

    the former case, the Javadoc tool inserts a comma (,) and space between names. In

    the latter case, the entire text is simply copied to the generated document without

    being parsed. Therefore, you can use multiple names per line if you want a localized

    name separator other than comma

    {*------------------------------------------------------------------------------

    Handle BDF Files

    BDFfont is a library to handle BDF font (Bitmap Distribution Format file)

    font with Delphi.

    This library will solve the lack of support for bitmap font on MS-Windows.

    A complete documentation and few examples are also available.

    Get last revision at : http://sourceforge.net/projects/bdffont/

    Copyright TridenT 2003 - Under GNU GPL licence

    @Author TridenT

    @Version2003/08/16 TridenT v0.1 Initial revision@Version2003/08/18 TridenT v0.2 Added Transparency and Space char cap.

    @Version2003/08/24 TridenT v0.3 Added a message when loading a font.@Version2003/09/02 TridenT v0.4 New storage method (fast and tiny)@Version2003/09/10 TridenT v0.5 Added function to autosize a text

    -------------------------------------------------------------------------------}unit u_BDFfont;

    ...

    13 / 34

  • 8/9/2019 doc Manual v0

    14/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    JavaDoc TAG @param

    @param parameter-name descriptionAdds a parameter to the "Parameters" section. The description may be continued on

    the next line. This tag is valid only in a doc comment for a method or constructor.

    The @param tag is followed by the name (not data type) of the parameter, followed

    by a description of the parameter. By convention, the first noun in the description is

    the data type of the parameter. (Articles like "a", "an", and "the" can precede the

    noun.) An exception is made for the primitive int, where the data type is usually

    omitted. Additional spaces can be inserted between the name and description so that

    the descriptions line up in a block. Dashes or other punctuation should not be

    inserted before the description, as the Javadoc tool inserts one dash.

    Parameter names are lowercase by convention. The data type starts with a

    lowercase letter to indicate an object rather than a class. The description begins with

    a lowercase letter if it is a phrase (contains no verb), or an uppercase letter if it is a

    sentence. End the phrase with a period only if another phrase or sentence follows it.

    {*------------------------------------------------------------------------------

    Configure the User output and Debug output to inform about the status

    The TDOCProject class is very separated from the external user interface.

    But in order to inform about the state of the project, it needs to know where

    to display informations. This could be a visual control, or a file or whatever

    containing a TStrings reference to work.

    @paramdmUser Where User messages will be written@paramdmDebug Where Debug messages will be written

    -------------------------------------------------------------------------------}procedure TDOCProject.SetDestinationMessages(const dmUser, dmDebug: TStrings);

    14 / 34

  • 8/9/2019 doc Manual v0

    15/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    JavaDoc TAG @return

    @return descriptionAdds a "Returns" section with the description text. This text should describe the

    return type and permissible range of values. This tag is valid only in a doc comment

    for a method.

    Omit @return for procedure and constructors; include it for all other methods, even if

    its content is entirely redundant with the method description. Having an explicit

    @return tag makes it easier for someone to find the return value quickly. Whenever

    possible, supply return values for special cases (such as specifying the value

    returned when an out-of-bounds argument is supplied).

    {*------------------------------------------------------------------------------

    Build the project by creating the output files

    It verify if the project is ready to be build, and then call the Generator

    by the execute method.

    Additionnaly, the project's State is set to psBuilt if successfull

    @returnTRUE if succesfull, FALSE otherwise

    -------------------------------------------------------------------------------}function TDOCProject.Build: boolean;

    ...

    15 / 34

  • 8/9/2019 doc Manual v0

    16/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    JavaDoc TAG @throws

    @throws class-name descriptionAdds an "Exception" subheading to the generated documentation, with the class-

    name and description text. The class-name is the name of the exception that may be

    thrown by the method. This tag is valid only in the doc comment for a method or

    constructor. If this class is not fully-specified, the Javadoc tool uses the search order

    to look up this class. Multiple @throws tags can be used in a given doc comment for

    the same or different exceptions.

    Not functionnal: To ensure that all checked exceptions are documented, if a @throws

    tag does not exist for an exception in the throws clause, the Javadoc tool

    automatically adds that exception to the HTML output (with no description) as if it

    were documented with @throws tag.

    The @throws documentation is copied from an overridden method to a subclass only

    when the exception is explicitly declared in the overridden method. The same is true

    for copying from an interface method to an implementing method.

    {*---------------

    Test ClassProcedure !

    @throws IExcept Unterminated string !!!

    ------------}procedure TNewClass.ClassProc;begin

    ...raise Exception.Create('Unterminated string: ');

    end;

    16 / 34

  • 8/9/2019 doc Manual v0

    17/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    JavaDoc TAG @todo

    @todo textAdds a "Todo" subheading with the specified text to the generated documentation.

    Use this TAG the same way as the TODO feature in Delphi.

    {*------------------------------------------------------------------------------

    Handle BDF Files

    BDFfont is a library to handle BDF font (Bitmap Distribution Format file)

    font with Delphi.

    This library will solve the lack of support for bitmap font on MS-Windows.

    A complete documentation and few examples are also available.

    Get last revision at : http://sourceforge.net/projects/bdffont/

    Copyright TridenT 2003 - Under GNU GPL licence

    @Author TridenT

    @Todo Handle exception from a file access error

    -------------------------------------------------------------------------------}unit u_BDFfont;

    ...

    17 / 34

  • 8/9/2019 doc Manual v0

    18/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    JavaDoc TAG @Comment

    There is two way to work with this new TAG : in a block comment with the

    @comment TAG, or with the Inline Extended comment inside a method or function.

    @comment textAdds an "additional comment" subheading with the specified text to the generated

    documentation. Use this TAG to add other information to the Unit, class, method or

    function.

    {*------------------------------------------------------------------------------

    Handle BDF Files

    BDFfont is a library to handle BDF font (Bitmap Distribution Format file)

    font with Delphi.

    This library will solve the lack of support for bitmap font on MS-Windows.

    A complete documentation and few examples are also available.

    Get last revision at : http://sourceforge.net/projects/bdffont/

    Copyright TridenT 2003 - Under GNU GPL licence

    @Author TridenT

    @Comment Handle exception from a file access error

    -------------------------------------------------------------------------------}unit u_BDFfont;

    ...

    *Inline Extended commentAdds an "additional comment" subheading with the specified text to the generated

    documentation. Use the Inline TAG as Description TAG but inside a method or

    function. The default syntex is Double Slash + the JavaDoc Prefix for Inline.

    This syntax is usefull to add algorithm of method in the code and in the

    documentation.

    18 / 34

  • 8/9/2019 doc Manual v0

    19/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    {*---------------------

    Test ClassProcedure !----------------------}

    procedure TNewClass.ClassProc;begin/// This is a extended description

    if ((Attr and FileInfo.Attr) 0) and SameText(ExtractFileExt(FileInfo.Name),PAS_FILE_EXT) then/// And another description

    Inc(i);end;

    19 / 34

  • 8/9/2019 doc Manual v0

    20/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    JavaDoc TAG @see

    @see reference (Not functionnal for the moment in DelphiCodeToDoc)Adds a "See Also" heading with a link or text entry that points to reference. A doc

    comment may contain any number of @see tags, which are all grouped under the

    same heading. The @see tag has three variations; the third form below is the most

    common. This tag is valid in any doc comment: overview, package, class, interface,

    constructor, method or field.

    20 / 34

  • 8/9/2019 doc Manual v0

    21/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    Inlines Syntax

    In this page, I will explain how to write Inlines comments for DelphiCodeToDoc in theDelphi environment. You should read this document before : how to write JavaDoc

    comments

    Format of an inline CommentAn inline doc comment is a short way to describe a class, field, constructor or method

    declaration. It should be used very rarely, and only when you think there is no need

    to detail more.

    Example/// Main Class that manage the Parser, the Structure Builder and the GeneratorTDOCProject = class

    private

    FDocOptions : TDOCOptions; // project's Options shared with GeneratorFDocStructure: TDOCStructure; // Holds the skeleton of the source codeFFileList: TStringList; // List of all file that will be processed

    FState : TProjectState; // State of the project (New, Checked of Built)

    FisChecked: boolean; // Specified if project has already been checkedFdmUserMessages: TStrings; // Reference for writting User messages

    FdmDebugMessages: TStrings; // Reference for writting Debug messages...

    Simple InlineWritting a comment line with double slash ( // ) - or triple slash ( /// ) if define in

    configuration panel - before a class, field or method will be processed as a

    Description TAG.

    End of line InlineWritting a comment line at the end of a line with double slash ( // ) - or triple slash ( ///) if define in configuration panel - before a field (and only a Field) will be processedas a Description TAG for the preceding Field.

    21 / 34

  • 8/9/2019 doc Manual v0

    22/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    5. Project's options explanation (Configuration panel)Here is a description of the options listed in the configuration panel.

    Project's options explanation (Configuration panel)Here is a description of the options listed in the configuration panel.

    Application options

    Control the application and the way it worksBools as ChecksIt is just a visual option. You can choose if you want boolean value displays as text of

    checkbox.

    Launch Browser after Build?

    If you want to launch the default Web browser after a successful documentation build.Input optionsAffect the input file and the way they are understand (parsed)

    JavaDoc Prefix (only one character)Normally, the JavaDoc syntax is defined by a block /** ... */

    The begin-comment delimiter is specific for JavaDoc. In DelphiCodeTodoc, you can

    define exactly which character will define the JavaDoc syntax.This prefix can be different for BracketStart comment, Curly comment and Inline

    comment. If you don't want a prefix, just delete the char, so it will be replace by '#0'

    which is empty char.

    BracketStart Prefix (*Prefix for BracketStar block comment

    Curly Prefix {

    Prefix for Curly block comment

    Inline Prefix //

    Prefix for Inline block comment (and also EndOfLine)

    Parse Implementation SectionYou can enable the process of implementation section. It so, it will search TAG

    comments in the whole file, instead of only in unit interface section.

    For the moment, this option is in read-only, so it will always parse the implementation

    section.

    Project's Name

    Name of you project. It can be a single word, or a phrase. But remember it will be the

    base name for all output generated file (HTML), so you should avoid special char.

    Project's Title

    Title of the project. Not avaible for the moment

    Project's Author

    22 / 34

  • 8/9/2019 doc Manual v0

    23/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    23 / 34

    Name of the author of the project's documentationProject's Summary

    A short single lines description to explain your project. These informations will

    appear in the Project's index output file, under the "Summary" section.

    Project's Description

    A multi-lines description to explain your project. These informations will appear in

    the Project's index output file, under the "Description" section.

    RecurseDirectory

    Enbling Recurse directory will search into ALL sub-directories from the root you

    provide.

    RootDirectoryThis is the base folder where you have your source file.

    In Read-only mode for the moment.

    Output optionsAffect the output files and the way they are written (build)

    Alpha sort of membersSort all members (units, classes, class members, constants ...) alphabetically in the

    table list.

    Comment syntax recognition

    Specify which comment syntax will be extract from the source code. This option is

    Read-Only for the moment, as only JavaDoc and Inline comments are recognize.

    Futur development will include Jedi-style support.Hide empty block from reportWith this option ON, you will hide from report an empty Constants or functions block

    for example.

    Hide empty TAG section from report

    Sometimes, you don't need to fill all TAGs in comments. This option will hide it

    instead of displaying an empty section.

    For example, if there is no Author's TAGs in a unit, the section will be hidden.

    JavaDoc support optionsSpecial options for JavaDoc syntax

    Skip first TAG line in comment blockSkip the first line of a JavaDoc block. It is usefull when the JavaDoc block is

    decorated in the first line.

    Skip last TAG line in comment block

    Skip the last line of a JavaDoc block. It is usefull when the JavaDoc block is

    decorated in the last line.

    LanguageLanguage of the documentation. Read-only, Forced to English

    Member visibility filter

    Show or hide members depending on their visibility (Private, Protected, Published or

    Public).

    Output filtering category

  • 8/9/2019 doc Manual v0

    24/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    24 / 34

    Here you can define what you want in the documentation. Each item-type can be show

    or hide, from classes to variables.

    Output Folder

    Folder where he documentation whill be create. It is define at the prokject creation,

    ans cannot be changed.

    Output FormatChange the output format of the generated documentation.

    Read-only and forced to 'HTML' because it is the only supported by now.

    Warn when TAG are emptyIf a TAG is empty (or mising), without this option, a blank line will be written in the

    TAG section.

    You should turn it ON to have a warning message in the documentation explainingthat not TAGs were found.

  • 8/9/2019 doc Manual v0

    25/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    6. FAQ for users

    This section will try to answer some common asked questions, so read it before

    submitting a support request or asking help by mail, thanks.

    What will DelphiCodeToDoc do for me ?It will generate an accurate documentation of your source code, and very important, itwill be always up-to-date. It can be your source - if you want other to understand yoursoftware, or write a technical specification for your component and/or library - or a

    third party source, and you will quickly understand the software architecture and therelations between units, classes and all elements of the code.

    What does it need ?You need a Delphi (Pascal object style) source code, with formatted comment. This

    last point is not a requierement, but highly recommended.

    What is JavaDoc and other TAGs commented systems ?For this point, please see the Supported TAGs systems page.

    Why should I write comments in my source code ?First, you need to comment your source code for you, and others if you share your

    source. It helps understanding what you have done, and how. Units, classes and

    members description (with TAGs) will give a overview of their role in the application.

    Make a modification on an older part of the code is easier if the code was

    commented, especially if your are not the creator of the source.

    Second, comments will help you to architecture your application. If you have

    difficulties or can't explain what you just write (or better what you are going to code),

    it's time to review your system !

    Is it really free ?Yes of course. The application and the source code are free, see the GNU GPL pageto understand the licence details.

    25 / 34

    http://www.gnu.org/licenses/gpl.txthttp://www.gnu.org/licenses/gpl.txt
  • 8/9/2019 doc Manual v0

    26/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    Why are you doing this ? and for free !Well, I'm working with some great tools for C++ language, but I found nothing similar

    for Delphi. If you watch the Links page, you will see a list of other applications, but

    they are commercial products, or don't satisfy my needs. So, I decided to create

    mine, and to share it with other people. So, if you enjoy the software, have idea of

    improvement or just want to speak, contact me !

    What if I don't like this application ?Well, you could contact me and explain why, maybe submit ideas to improve the

    software. I will try to correct and add all features you want if could justify it. You can

    also help me in the developement and correct the things you hate, see Get involved

    page !

    What do I need to re-compile the source code ?You need BORLAND Delphi from version 5, JCL and JVCL great library, and the

    source code ! Have a look to the Developer's FAQ to get all the details.

    Who are you ?My name is TridenT, I'm a french guy who want to contribute to the FREE - GNU -

    DELPHI community, to share my knowledge with other people, and to always learn !

    That's all you need to know :o)

    26 / 34

  • 8/9/2019 doc Manual v0

    27/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    7. Mailing ListsWant to be informed about DelphiCodeToDoc ?For the moment, there is only one Mailing list, named DephiCodeToDoc-news.It's a low traffic mailing list about releases, important bug-fixes and major changes in

    next revisions.

    Subscribing to DephiCodeToDoc-newsMore information for subscribtion in DephiCodeToDoc-news page.

    ArchivesYou can see the collection of prior postings to the list by visiting the

    DephiCodeToDoc-news Archives.

    27 / 34

    http://lists.sourceforge.net/lists/listinfo/dephicodetodoc-newshttp://sourceforge.net/mailarchive/forum.php?forum=dephicodetodoc-newshttp://sourceforge.net/mailarchive/forum.php?forum=dephicodetodoc-newshttp://lists.sourceforge.net/lists/listinfo/dephicodetodoc-news
  • 8/9/2019 doc Manual v0

    28/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    8. Discussion ForumHere is a list of discussion forums, their description, and the link to the content hosted

    on SourceForge. Please, read the FAQs before posting any question. Remember,

    posting in the forums will allow other people to read your comments, and maybe help

    them. So prefer posting instead of sending me directly an email.

    Open Discussion (All and nothing about this project)If you want to say something about DelphiCodeToDoc, or TAGs based commentssystem, or simply post a comment, this is the right place!

    HelpIf you are facing a problem with the application, just send a message in this forum

    But if you think you have enough grasp the issue, feel free to directly post a Tracker.

    French Forum - Forum en FranaisCe forum est disponible pour tous ceux qui parlent franais. Je n'ai pas le temps de

    traduire des parties du site web, ni certains documents, mais je peux fournir un

    support en Franais partir de cette section.

    This forum is for anyone who speak my natural language. I don't have time to

    translate any web site part nor some documents in French, but I can provide a

    support in French from this section.

    28 / 34

    http://dephicodetodoc.sourceforge.net/FAQ_for_users.htmhttp://sourceforge.net/forum/forum.php?forum_id=333850http://sourceforge.net/forum/forum.php?forum_id=333851http://sourceforge.net/forum/forum.php?forum_id=347469http://sourceforge.net/forum/forum.php?forum_id=347469http://sourceforge.net/forum/forum.php?forum_id=333851http://sourceforge.net/forum/forum.php?forum_id=333850http://dephicodetodoc.sourceforge.net/FAQ_for_users.htm
  • 8/9/2019 doc Manual v0

    29/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    Download informationLast revision is available to download from this page. To learn more about this

    release and the modifications, have a look to the What's new page.

    You can download and re-distribute this software for free, as it is explain in the GNU

    GPL text.

    EXEcutable download - DelphiCodeToDoc_exe_v0.10b.zipDownload EXE from the SourceForge project's site

    Download EXE from eDonkey/eMule network

    Source download - DelphiCodeToDoc_src_v0.10b.zipDownload SOURCE from the SourceForge project's site

    Download SOURCE from eDonkey/eMule network

    Documentation download - DelphiCodeToDoc_Manual_v0.10b.pdfDownload DOCUMENTATION from the SourceForge project's site

    Download DOCUMENTATION from eDonkey/eMule network

    Older releases downloadIf you need to download other old revisions of the software (or source), follow the

    SourceForge project's download page.

    29 / 34

    http://dephicodetodoc.sourceforge.net/Whats_new.htmhttp://www.gnu.org/licenses/gpl.txthttp://www.gnu.org/licenses/gpl.txthttp://prdownloads.sourceforge.net/dephicodetodoc/DelphiCodeToDoc_exe_v0.10b.zip?downloadhttp://d/Projets/Ex/DelphiCodeToDoc/Doc/ed2k:/%7Cfile%7CDelphiCodeToDoc_exe_v0.10b.-.Free.documentation.tool.for.delphi.with.JavaDoc.support.zip%7C962873%7C7FD86535CCF99ECE54C8BB8DD7931255%7C/%7Csources,82.67.74.56:4662%7C/http://prdownloads.sourceforge.net/dephicodetodoc/DelphiCodeToDoc_src_v0.10b.zip?downloadhttp://d/Projets/Ex/DelphiCodeToDoc/Doc/ed2k:/%7Cfile%7CDelphiCodeToDoc_src_v0.10b.-.Free.documentation.tool.for.delphi.with.JavaDoc.support.zip%7C602033%7CBCAFC625FAD80EBE46E1DDD62D34FED2%7C/%7Csources,82.67.74.56:4662%7C/http://prdownloads.sourceforge.net/dephicodetodoc/DelphiCodeToDoc_Manual_v0.10b.pdf?downloadhttp://sourceforge.net/project/showfiles.php?group_id=96281http://sourceforge.net/project/showfiles.php?group_id=96281http://prdownloads.sourceforge.net/dephicodetodoc/DelphiCodeToDoc_Manual_v0.10b.pdf?downloadhttp://d/Projets/Ex/DelphiCodeToDoc/Doc/ed2k:/%7Cfile%7CDelphiCodeToDoc_src_v0.10b.-.Free.documentation.tool.for.delphi.with.JavaDoc.support.zip%7C602033%7CBCAFC625FAD80EBE46E1DDD62D34FED2%7C/%7Csources,82.67.74.56:4662%7C/http://prdownloads.sourceforge.net/dephicodetodoc/DelphiCodeToDoc_src_v0.10b.zip?downloadhttp://d/Projets/Ex/DelphiCodeToDoc/Doc/ed2k:/%7Cfile%7CDelphiCodeToDoc_exe_v0.10b.-.Free.documentation.tool.for.delphi.with.JavaDoc.support.zip%7C962873%7C7FD86535CCF99ECE54C8BB8DD7931255%7C/%7Csources,82.67.74.56:4662%7C/http://prdownloads.sourceforge.net/dephicodetodoc/DelphiCodeToDoc_exe_v0.10b.zip?downloadhttp://www.gnu.org/licenses/gpl.txthttp://www.gnu.org/licenses/gpl.txthttp://dephicodetodoc.sourceforge.net/Whats_new.htm
  • 8/9/2019 doc Manual v0

    30/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    9. LinksDelphiCodeToDoc DownloadDownload last revision here on SourceForge

    https://sourceforge.net/project/showfiles.php?group_id=96281&package_id=102847&

    release_id=215421

    Other similar projectsSome tools handle JavaDoc, as Doc-o-matic. See linkhttp://delphi.about.com/cs/toppicks/tp/aatphelp.htm for more ressource on this

    subject.(#under construction#)

    Doc-o-matic

    http://www.doc-o-matic.com/

    Time2Help

    http://www.time2help.com/

    DIPasDoc (from The Delphi Inspiration)

    http://www.zeitungsjunge.de/delphi/pasdoc/

    PasDoc

    http://pasdoc.sourceforge.net/

    30 / 34

    https://sourceforge.net/project/showfiles.php?group_id=96281&package_id=102847&release_id=215421https://sourceforge.net/project/showfiles.php?group_id=96281&package_id=102847&release_id=215421http://delphi.about.com/cs/toppicks/tp/aatphelp.htmhttp://www.doc-o-matic.com/http://www.time2help.com/http://www.zeitungsjunge.de/delphi/pasdoc/http://pasdoc.sourceforge.net/http://pasdoc.sourceforge.net/http://www.zeitungsjunge.de/delphi/pasdoc/http://www.time2help.com/http://www.doc-o-matic.com/http://delphi.about.com/cs/toppicks/tp/aatphelp.htmhttps://sourceforge.net/project/showfiles.php?group_id=96281&package_id=102847&release_id=215421https://sourceforge.net/project/showfiles.php?group_id=96281&package_id=102847&release_id=215421
  • 8/9/2019 doc Manual v0

    31/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    10. GNU GENERAL PUBLIC LICENSEVersion 2, June 1991Copyright (C) 1989, 1991 Free Software Foundation, Inc.

    59 Temple Place, Suite 330, Boston, MA 02111-1307

    USA

    Everyone is permitted to copy and distribute verbatim copies

    of this license document, but changing it is not allowed.

    Preamble

    The licenses for most software are designed to take away your

    freedom to share and change it. By contrast, the GNU General Public

    License is intended to guarantee your freedom to share and change

    freesoftware--to make sure the software is free for all its users. This

    General Public License applies to most of the Free SoftwareFoundation's software and to any other program whose authorscommit to

    using it. (Some other Free Software Foundation software is covered

    by

    the GNU Library General Public License instead.) You can apply it

    toyour programs, too.

    When we speak of free software, we are referring to freedom, notprice. Our General Public Licenses are designed to make sure that

    you

    have the freedom to distribute copies of free software (and charge for

    this service if you wish), that you receive source code or can get itif you want it, that you can change the software or use pieces of it

    in new free programs; and that you know you can do these things.

    To protect your rights, we need to make restrictions that forbid

    anyone to deny you these rights or to ask you to surrender the rights.

    These restrictions translate to certain responsibilities for you if you

    distribute copies of the software, or if you modify it.

    For example, if you distribute copies of such a program, whether

    gratis or for a fee, you must give the recipients all the rights thatyou have. You must make sure that they, too, receive or can get the

    source code. And you must show them these terms so they know

    their

    rights.

    We protect your rights with two steps: (1) copyright the software,

    and

    (2) offer you this license which gives you legal permission to copy,distribute and/or modify the software.

    Also, for each author's protection and ours, we want to make certain

    that everyone understands that there is no warranty for this freesoftware. If the software is modified by someone else and passed on,

    we

    want its recipients to know that what they have is not the original, sothat any problems introduced by others will not reflect on the original

    authors' reputations.

    Finally, any free program is threatened constantly by softwarepatents. We wish to avoid the danger that redistributors of a free

    program will individually obtain patent licenses, in effect making the

    program proprietary. To prevent this, we have made it clear that anypatent must be licensed for everyone's free use or not licensed at all.

    The precise terms and conditions for copying, distribution and

    modification follow.

    GNU GENERAL PUBLIC LICENSE

    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION

    AND MODIFICATION

    0. This License applies to any program or other work which

    contains

    a notice placed by the copyright holder saying it may be distributed

    under the terms of this General Public License. The "Program",below,

    refers to any such program or work, and a "work based on the

    Program"means either the Program or any derivative work under copyright

    law:

    that is to say, a work containing the Program or a portion of it,

    either verbatim or with modifications and/or translated into anotherlanguage. (Hereinafter, translation is included without limitation in

    the term "modification".) Each licensee is addressed as "you".

    Activities other than copying, distribution and modification are not

    covered by this License; they are outside its scope. The act of

    running the Program is not restricted, and the output from the

    Program

    is covered only if its contents constitute a work based on theProgram (independent of having been made by running the Program).

    Whether that is true depends on what the Program does.

    1. You may copy and distribute verbatim copies of the Program's

    source code as you receive it, in any medium, provided that you

    conspicuously and appropriately publish on each copy an appropriate

    copyright notice and disclaimer of warranty; keep intact all thenotices that refer to this License and to the absence of any warranty;

    and give any other recipients of the Program a copy of this License

    along with the Program.

    You may charge a fee for the physical act of transferring a copy, and

    you may at your option offer warranty protection in exchange for a

    fee.

    2. You may modify your copy or copies of the Program or any

    portionof it, thus forming a work based on the Program, and copy and

    distribute such modifications or work under the terms of Section 1above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent noticesstating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in

    whole or in part contains or is derived from the Program or anypart thereof, to be licensed as a whole at no charge to all third

    parties under the terms of this License.

    c) If the modified program normally reads commands interactively

    when run, you must cause it, when started running for such

    interactive use in the most ordinary way, to print or display an

    announcement including an appropriate copyright notice and anotice that there is no warranty (or else, saying that you provide

    a warranty) and that users may redistribute the program under

    these conditions, and telling the user how to view a copy of thisLicense. (Exception: if the Program itself is interactive but

    does not normally print such an announcement, your work based

    on

    the Program is not required to print an announcement.)

    31 / 34

  • 8/9/2019 doc Manual v0

    32/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    These requirements apply to the modified work as a whole. Ifidentifiable sections of that work are not derived from the Program,

    and can be reasonably considered independent and separate works in

    themselves, then this License, and its terms, do not apply to those

    sections when you distribute them as separate works. But when youdistribute the same sections as part of a whole which is a work based

    on the Program, the distribution of the whole must be on the terms of

    this License, whose permissions for other licensees extend to theentire whole, and thus to each and every part regardless of who wrote

    it.

    Thus, it is not the intent of this section to claim rights or contestyour rights to work written entirely by you; rather, the intent is to

    exercise the right to control the distribution of derivative or

    collective works based on the Program.

    In addition, mere aggregation of another work not based on the

    Program

    with the Program (or with a work based on the Program) on a volume

    ofa storage or distribution medium does not bring the other work under

    the scope of this License.

    3. You may copy and distribute the Program (or a work based on it,

    under Section 2) in object code or executable form under the terms of

    Sections 1 and 2 above provided that you also do one of the

    following:

    a) Accompany it with the complete corresponding machine-

    readablesource code, which must be distributed under the terms of Sections

    1 and 2 above on a medium customarily used for software

    interchange; or,

    b) Accompany it with a written offer, valid for at least three

    years, to give any third party, for a charge no more than your

    cost of physically performing source distribution, a completemachine-readable copy of the corresponding source code, to be

    distributed under the terms of Sections 1 and 2 above on a medium

    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offerto distribute corresponding source code. (This alternative is

    allowed only for noncommercial distribution and only if you

    received the program in object code or executable form with suchan offer, in accord with Subsection b above.)

    The source code for a work means the preferred form of the work for

    making modifications to it. For an executable work, complete source

    code means all the source code for all modules it contains, plus anyassociated interface definition files, plus the scripts used to

    control compilation and installation of the executable. However, as aspecial exception, the source code distributed need not include

    anything that is normally distributed (in either source or binary

    form) with the major components (compiler, kernel, and so on) of the

    operating system on which the executable runs, unless thatcomponent

    itself accompanies the executable.

    If distribution of executable or object code is made by offering

    access to copy from a designated place, then offering equivalentaccess to copy the source code from the same place counts as

    distribution of the source code, even though third parties are not

    compelled to copy the source along with the object code.

    4. You may not copy, modify, sublicense, or distribute the Programexcept as expressly provided under this License. Any attempt

    otherwise to copy, modify, sublicense or distribute the Program is

    void, and will automatically terminate your rights under this License.

    However, parties who have received copies, or rights, from you underthis License will not have their licenses terminated so long as such

    parties remain in full compliance.

    5. You are not required to accept this License, since you have notsigned it. However, nothing else grants you permission to modify or

    distribute the Program or its derivative works. These actions are

    prohibited by law if you do not accept this License. Therefore, bymodifying or distributing the Program (or any work based on the

    Program), you indicate your acceptance of this License to do so, and

    all its terms and conditions for copying, distributing or modifying

    the Program or works based on it.

    6. Each time you redistribute the Program (or any work based on the

    Program), the recipient automatically receives a license from theoriginal licensor to copy, distribute or modify the Program subject to

    these terms and conditions. You may not impose any furtherrestrictions on the recipients' exercise of the rights granted herein.

    You are not responsible for enforcing compliance by third parties to

    this License.

    7. If, as a consequence of a court judgment or allegation of patent

    infringement or for any other reason (not limited to patent issues),

    conditions are imposed on you (whether by court order, agreement orotherwise) that contradict the conditions of this License, they do not

    excuse you from the conditions of this License. If you cannot

    distribute so as to satisfy simultaneously your obligations under thisLicense and any other pertinent obligations, then as a consequence

    you

    may not distribute the Program at all. For example, if a patent

    license would not permit royalty-free redistribution of the Programby

    all those who receive copies directly or indirectly through you, then

    the only way you could satisfy both it and this License would be torefrain entirely from distribution of the Program.

    If any portion of this section is held invalid or unenforceable under

    any particular circumstance, the balance of the section is intended to

    apply and the section as a whole is intended to apply in othercircumstances.

    It is not the purpose of this section to induce you to infringe anypatents or other property right claims or to contest validity of any

    such claims; this section has the sole purpose of protecting the

    integrity of the free software distribution system, which is

    implemented by public license practices. Many people have madegenerous contributions to the wide range of software distributed

    through that system in reliance on consistent application of that

    system; it is up to the author/donor to decide if he or she is willing

    to distribute software through any other system and a licensee cannotimpose that choice.

    This section is intended to make thoroughly clear what is believed tobe a consequence of the rest of this License.

    8. If the distribution and/or use of the Program is restricted incertain countries either by patents or by copyrighted interfaces, the

    original copyright holder who places the Program under this License

    may add an explicit geographical distribution limitation excluding

    those countries, so that distribution is permitted only in or among

    countries not thus excluded. In such case, this License incorporatesthe limitation as if written in the body of this License.

    9. The Free Software Foundation may publish revised and/or newversions

    of the General Public License from time to time. Such new versionswill

    be similar in spirit to the present version, but may differ in detail to

    32 / 34

  • 8/9/2019 doc Manual v0

    33/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    address new problems or concerns.

    Each version is given a distinguishing version number. If the

    Program

    specifies a version number of this License which applies to it and

    "anylater version", you have the option of following the terms and

    conditions

    either of that version or of any later version published by the FreeSoftware Foundation. If the Program does not specify a version

    number of

    this License, you may choose any version ever published by the Free

    SoftwareFoundation.

    10. If you wish to incorporate parts of the Program into other freeprograms whose distribution conditions are different, write to the

    author

    to ask for permission. For software which is copyrighted by the Free

    Software Foundation, write to the Free Software Foundation; we

    sometimesmake exceptions for this. Our decision will be guided by the two

    goals

    of preserving the free status of all derivatives of our free software andof promoting the sharing and reuse of software generally.

    NO WARRANTY

    11. BECAUSE THE PROGRAM IS LICENSED FREE OF

    CHARGE, THERE IS NO WARRANTY

    FOR THE PROGRAM, TO THE EXTENT PERMITTED BYAPPLICABLE LAW. EXCEPT WHEN

    OTHERWISE STATED IN WRITING THE COPYRIGHT

    HOLDERS AND/OR OTHER PARTIES

    PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OFANY KIND, EITHER EXPRESSED

    OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE

    IMPLIED WARRANTIES OFMERCHANTABILITY AND FITNESS FOR A PARTICULAR

    PURPOSE. THE ENTIRE RISK AS

    TO THE QUALITY AND PERFORMANCE OF THE PROGRAM

    IS WITH YOU. SHOULD THE

    PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OFALL NECESSARY SERVICING,

    REPAIR OR CORRECTION.

    12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE

    LAW OR AGREED TO IN WRITING

    WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY

    WHO MAY MODIFY AND/OR

    REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BELIABLE TO YOU FOR DAMAGES,

    INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL ORCONSEQUENTIAL DAMAGES ARISING

    OUT OF THE USE OR INABILITY TO USE THE PROGRAM

    (INCLUDING BUT NOT LIMITED

    TO LOSS OF DATA OR DATA BEING RENDEREDINACCURATE OR LOSSES SUSTAINED BY

    YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM

    TO OPERATE WITH ANY OTHERPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY

    HAS BEEN ADVISED OF THEPOSSIBILITY OF SUCH DAMAGES.

    END OF TERMS AND CONDITIONS

    How to Apply These Terms to Your New Programs

    If you develop a new program, and you want it to be of the greatest

    possible use to the public, the best way to achieve this is to make it

    free software which everyone can redistribute and change under theseterms.

    To do so, attach the following notices to the program. It is safest

    to attach them to the start of each source file to most effectivelyconvey the exclusion of warranty; and each file should have at least

    the "copyright" line and a pointer to where the full notice is found.

  • 8/9/2019 doc Manual v0

    34/34

    DelphiCodeToDocFree documentation tool for Delphi, with JavaDoc support.

    TridenT http://dephicodetodoc.sourceforge.net

    proprietary programs. If your program is a subroutine library, you

    mayconsider it more useful to permit linking proprietary applications with

    the

    library. If this is what you want to do, use the GNU Library General

    Public License instead of this License.