📄 files.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Language" content="en">
<meta name="author" content="Gerold Veith">
<meta name="description" content="Files and File Formats of JADD - Just Another DelphiDoc">
<meta name="keywords" content="Files, File Formats, DelphiDoc, KylixDoc, JADD, Just Another DelphiDoc, Delphi, Kylix">
<meta name="DC.Language" content="en">
<title>
Files and File Formats of JADD - Just Another DelphiDoc
</title>
</head>
<body lang="en">
<p align=center>
<!-- local -->
<a href="http://sourceforge.net/"><img
src="sflogo.png"
width="210" height="62" border="0" alt="SourceForge.net Logo"
align="right"></a>
<!-- /local -->
<!-- public - -!
<a href="http://sourceforge.net/"><img
src="http://sourceforge.net/sflogo.php?group_id=113456&type=5"
width="210" height="62" border="0" alt="SourceForge.net Logo"
align="right"></a>
<!- - /public -->
Homepage: <a href="http://delphidoc.sourceforge.net/">http://delphidoc.sourceforge.net/</a><br>
Project-Page: <a href="http://sourceforge.net/projects/delphidoc/">http://sourceforge.net/projects/delphidoc/</a><br>
</p>
<br clear="all">
<h1>JADD - Just Another <em>DelphiDoc</em></h1>
<h2>Table of Contents</h2>
<ul>
<li><a href="#TxtForBinary">Files accompanying the Executable</a></li>
<li><a href="#ParsedData">Saved Parsed Data</a></li>
<li><a href="#GUILog">Logs of a GUI</a></li>
<li><a href="#INIFiles">Initialization Files (<code>.ini</code>)</a>
<ul>
<li><a href="#INIDelphiDoc">DelphiDoc.ini</a></li>
<li><a href="#INIProject">Project Files</a></li>
<li><a href="#INIGUIProject">GUI Help Project Files</a></li>
<li><a href="#INIDiagram">Saved Diagram Lay-Outs</a></li>
<li><a href="#INIGenerator">Generator Options</a></li>
<li><a href="#INILocalizing">Localized Texts</a> for the Documentation</li>
</ul>
</li>
</ul>
<h2><a name="TxtForBinary">Files accompanying the Executable</a></h2>
<p>The file <code>PreDefinedIdents.txt</code> contains a list of in Delphi
defined identifiers. It is by far not complete. All unknown identifiers
found when parsing that are not in this list will be listed as unknown
identifiers. This has no real consequence, it is just for informational
purposes.<br>
The file <code>SystemIdents.txt</code> contains a list of internal
identifiers defined inside the Delphi compiler. They will be added only
when the unit System is parsed, because they are treated by the compiler
as if they were defined there. The file <code>SystemTypes.txt</code>
contains correspondingly the list of internal types.</p>
<h2><a name="ParsedData">Saved Parsed Data</a></h2>
<p>The parsed data can be saved to a file, for instance to allow the
comparison of different versions of a project with faster access to the
different versions and without the necessity to unpack the whole
directory just to parse it again.</p>
<p>The format of the file is binary to decrease its size. As the file is
binary and contains lots of different information a
description would be quite lengthy, so here follows only some key
information, the algorithm to save and load such files can be seen in
<code>USaveParsed</code> and the other files within the sub-directory
<code>Idents</code>.</p>
<p>At the beginning of files of this format are always eight <em>magic</em>
bytes, the eight characters "JADD&%$#", thus allowing the identification
of correct files. After that the version number of the file follows as
four bytes. This program can read files of each version, although
some generators may fail when they need information that wasn't saved by
very old versions of this program. But the original source files can be
extracted and parsed again to gather the complete information needed by
any generator.</p>
<p>The file format was designed to be dynamic and modular, meaning for
instance additional to the version of the file itself, each class
writing data to the file also has its own version number that will be
written to the file. Even the list of classes that write the
information, and so are needed again to read it, is written.</p>
<h2><a name="GUILog">Logs of a GUI</a></h2>
<p>The log files of components, that can be used to generate a help on the
GUI are simple text files, each line containing some information. They
consist of three parts, in the first line the help context of the whole
form is written, then the components are logged, each on a separate
line, and optionally after an empty line as a separator the automatic
component aliases follow.</p>
<p>Each component is logged with four values on a line on its own, the
values are separated by a simple space. First comes the name of the
component, then the rectangle its occupying on the screen shot as four
comma-separated values (left, top, right, bottom) in pixels. The third
value is the help context set for the component, if it does not support
a help context <code>-1</code> is written. The final value is either
<code>0</code> or <code>1</code> representing a boolean, whether the
component should be used, i.e. was not outside a set constraint.</p>
<p>The automatic aliases are written for all Labels and StaticTexts that
have a FocusControl assigned. Each entry consists of a line with the
name of the label and the name of the component it will focus separated
by a space.</p>
<h2><a name="INIFiles">Initialization Files (<code>.ini</code>)</a></h2>
<p>Most files of <em>DelphiDoc</em> are in the format of Windows
initialization files. Initialization files have a simple and easy to
understand syntax, can be viewed and edited with a simple text editor,
and can be copied and back-uped by the users. They can even easily
created manually when their format is known.<br>
Delphi has almost native support for initialization files by several
classes within its standard units (unit <code>IniFiles</code>).</p>
<p>Just to rant a bit again, the registry is no real good place to save
settings of programs. There was only one reason to do it anyway and that
was because Windows was not a decent multi-user operating system. But
that was long ago, now, by default, ini files are created in the
directory for local settings inside the user's home directory. So there
is no reason, unless compatibilty for multi-user Windows 95/98/ME
systems is needed, but I doubt anyone with a multi-user system is still
running such an old version of windows. And there are several reasons to
use (initialization) files for the settings, as outlined in the first
paragraph.</p>
<p>Well, anyway, as Delphi programs generally do not need to be
installed I always keep it even simpler and save the ini file in the
same directory as the executable file. That way the settings are always
as easy accessible as the program itself. Of course it means every user
needs a separate copy of it, but a few MBs are negligible for today's
hard drives.</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -