소스 검색

Merge remote-tracking branch 'jogo-/patch-2'

Martijn Laan 11 년 전
부모
커밋
c301d976df
6개의 변경된 파일51개의 추가작업 그리고 18개의 파일을 삭제
  1. 4 2
      ishelp/ISHelpGen/ISHelpGen.dpr
  2. 4 5
      ishelp/ISHelpGen/UIsxclassesParser.pas
  3. 6 3
      ishelp/isetup.xml
  4. 3 3
      ishelp/isx.xml
  5. 17 0
      ishelp/isxclasses.footer
  6. 17 5
      ishelp/isxfunc.xml

+ 4 - 2
ishelp/ISHelpGen/ISHelpGen.dpr

@@ -16,7 +16,7 @@ uses
   UIsxclassesParser in 'UIsxclassesParser.pas';
   UIsxclassesParser in 'UIsxclassesParser.pas';
 
 
 const
 const
-  Version = '1.11';
+  Version = '1.12';
 
 
   XMLFileVersion = '1';
   XMLFileVersion = '1';
 
 
@@ -903,7 +903,9 @@ procedure Go;
     try
     try
       IsxclassesParser.Parse(SourceDir + 'isxclasses.pas');
       IsxclassesParser.Parse(SourceDir + 'isxclasses.pas');
       IsxclassesParser.SaveXML(SourceDir + 'isxclasses.header',
       IsxclassesParser.SaveXML(SourceDir + 'isxclasses.header',
-        SourceDir + 'isxclasses.header2', SourceDir + 'isxclasses_generated.xml');
+        SourceDir + 'isxclasses.header2',
+        SourceDir + 'isxclasses.footer',
+        SourceDir + 'isxclasses_generated.xml');
     finally
     finally
       IsxclassesParser.Free;
       IsxclassesParser.Free;
     end;
     end;

+ 4 - 5
ishelp/ISHelpGen/UIsxclassesParser.pas

@@ -14,7 +14,7 @@ type
     constructor Create();
     constructor Create();
     destructor Destroy(); override;
     destructor Destroy(); override;
     procedure Parse(const FileName: String);
     procedure Parse(const FileName: String);
-    procedure SaveXML(const HeaderFileName, HeaderFileName2, OutputFileName: String);
+    procedure SaveXML(const HeaderFileName, HeaderFileName2, FooterFileName, OutputFileName: String);
   end;
   end;
 
 
 implementation
 implementation
@@ -65,7 +65,7 @@ begin
   end;
   end;
 end;
 end;
 
 
-procedure TIsxclassesParser.SaveXML(const HeaderFileName, HeaderFileName2, OutputFileName: String);
+procedure TIsxclassesParser.SaveXML(const HeaderFileName, HeaderFileName2, FooterFileName, OutputFileName: String);
 
 
   procedure FCopyFile(const SourceFileName, DestFileName: String; AppendToDestFile: Boolean);
   procedure FCopyFile(const SourceFileName, DestFileName: String; AppendToDestFile: Boolean);
   var
   var
@@ -198,12 +198,11 @@ begin
       WriteLn(F, S, '<br/>');
       WriteLn(F, S, '<br/>');
     end;
     end;
     WriteLn(F, '</tt></p>');
     WriteLn(F, '</tt></p>');
-    WriteLn(F, '</body>');
-    WriteLn(F, '</topic>');
-    WriteLn(F, '</ishelp>');
   finally
   finally
     CloseFile(F);
     CloseFile(F);
   end;
   end;
+
+  FCopyFile(FooterFileName, OutputFileName, True);
 end;
 end;
 
 
 end.
 end.

+ 6 - 3
ishelp/isetup.xml

@@ -178,7 +178,7 @@ Includes integrated support for "deflate", bzip2, and 7-Zip LZMA/LZMA2 file <lin
 
 
 <p>To give you an idea of how this all works, start the Setup Compiler, click <i>File | Open</i>, and select one of the script files in the Examples subdirectory located under the Inno Setup directory. (It may be helpful to use the sample scripts as a template for your own scripts.)</p>
 <p>To give you an idea of how this all works, start the Setup Compiler, click <i>File | Open</i>, and select one of the script files in the Examples subdirectory located under the Inno Setup directory. (It may be helpful to use the sample scripts as a template for your own scripts.)</p>
 
 
-<p><br/><b>See also</b><br/>
+<p><br/><b>See also:</b><br/>
 <link topic="scriptformatoverview">Script Format Overview</link>
 <link topic="scriptformatoverview">Script Format Overview</link>
 </p>
 </p>
 
 
@@ -234,7 +234,7 @@ Source: "MYPROG.EXE"; DestDir: "{app}"
 
 
 <p>By default, scripts use ISPP if available, and .isl files use the built-in preprocessor.</p>
 <p>By default, scripts use ISPP if available, and .isl files use the built-in preprocessor.</p>
 
 
-<p><br/><b>See also</b><br/>
+<p><br/><b>See also:</b><br/>
 <link topic="params">Parameters in Sections</link><br/>
 <link topic="params">Parameters in Sections</link><br/>
 <link topic="consts">Constants</link><br/>
 <link topic="consts">Constants</link><br/>
 <link topic="commonparams">Common Parameters</link><br/>
 <link topic="commonparams">Common Parameters</link><br/>
@@ -2142,6 +2142,9 @@ UninstallProgram=Uninstall %1
 LaunchProgram=Launch %1
 LaunchProgram=Launch %1
 AssocFileExtension=&amp;Associate %1 with the %2 file extension
 AssocFileExtension=&amp;Associate %1 with the %2 file extension
 AssocingFileExtension=Associating %1 with the %2 file extension...
 AssocingFileExtension=Associating %1 with the %2 file extension...
+AutoStartProgramGroupDescription=Startup:
+AutoStartProgram=Automatically start %1
+AddonHostProgramNotFound=%1 could not be located in the folder you selected.%n%nDo you want to continue anyway?
 </precode>
 </precode>
 
 
 <p>You may use these predefined custom messages in your own script. An example which uses <tt>UninstallProgram</tt>:</p>
 <p>You may use these predefined custom messages in your own script. An example which uses <tt>UninstallProgram</tt>:</p>
@@ -3449,7 +3452,7 @@ Keep the default set of selected tasks, but deselect the "desktopicon" task:<br/
 
 
 <li>Martijn Laan: Code for Rich Edit 2.0 &amp; URL detection support (1.3.13); silent uninstallation (1.3.25); system image list support in drive and directory lists (1.3.25); silent installation (2.0.0); <tt>[Types]</tt>, <tt>[Components]</tt> and <tt>[Tasks]</tt> sections (2.0.0); <tt>postinstall</tt> flag (2.0.0); <tt>[Code]</tt> section (4.0.0); Subcomponents and subtasks support (4.0.0); Many other features after 4.0.0.</li>
 <li>Martijn Laan: Code for Rich Edit 2.0 &amp; URL detection support (1.3.13); silent uninstallation (1.3.25); system image list support in drive and directory lists (1.3.25); silent installation (2.0.0); <tt>[Types]</tt>, <tt>[Components]</tt> and <tt>[Tasks]</tt> sections (2.0.0); <tt>postinstall</tt> flag (2.0.0); <tt>[Code]</tt> section (4.0.0); Subcomponents and subtasks support (4.0.0); Many other features after 4.0.0.</li>
 
 
-<li>Alex Yackimoff: Portions of TNewCheckListBox (4.0.0).</li>
+<li>Alex Yackimoff: Portions of <link topic="scriptclasses" anchor="TNewCheckListBox">TNewCheckListBox</link> (4.0.0).</li>
 
 
 <li>Carlo Kok: <extlink href="http://www.remobjects.com/ps">RemObjects Pascal Script</extlink> (4.0.0).</li>
 <li>Carlo Kok: <extlink href="http://www.remobjects.com/ps">RemObjects Pascal Script</extlink> (4.0.0).</li>
 
 

+ 3 - 3
ishelp/isx.xml

@@ -42,7 +42,7 @@
 
 
 <p>Note: the Pascal scripting feature works exclusively at run-time, and has no compile-time functionality.</p>
 <p>Note: the Pascal scripting feature works exclusively at run-time, and has no compile-time functionality.</p>
 
 
-<p><br/><b>See also</b><br/>
+<p><br/><b>See also:</b><br/>
 <link topic="scriptcreating">Creating the [Code] section</link><br/>
 <link topic="scriptcreating">Creating the [Code] section</link><br/>
 <link topic="scriptevents">Event Functions</link><br/>
 <link topic="scriptevents">Event Functions</link><br/>
 <link topic="scriptconstants">Scripted Constants</link><br/>
 <link topic="scriptconstants">Scripted Constants</link><br/>
@@ -331,7 +331,7 @@ end;
 FileName: "{app}\MyIni.ini"; Section: "MySettings"; Key: "ShortApp"; String: "{code:GetShortName|{app}}"
 FileName: "{app}\MyIni.ini"; Section: "MySettings"; Key: "ShortApp"; String: "{code:GetShortName|{app}}"
 </precode>
 </precode>
 
 
-<p><br/><b>See also</b><br/>
+<p><br/><b>See also:</b><br/>
 <link topic="consts">Constants</link>
 <link topic="consts">Constants</link>
 </p>
 </p>
 
 
@@ -679,4 +679,4 @@ external 'ADllFunc@files:A.dll,B.dll stdcall loadwithalteredsearchpath'; //A.dll
 </body>
 </body>
 </topic>
 </topic>
 
 
-</ishelp>
+</ishelp>

+ 17 - 0
ishelp/isxclasses.footer

@@ -0,0 +1,17 @@
+<p><b>See also:</b><br />
+<tt>function <link topic="isxfunc_CreateInputQueryPage">CreateInputQueryPage</link>(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String): TInputQueryWizardPage;</tt><br />
+<tt>function <link topic="isxfunc_CreateInputOptionPage">CreateInputOptionPage</link>(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String; Exclusive, ListBox: Boolean): TInputOptionWizardPage;</tt><br />
+<tt>function <link topic="isxfunc_CreateInputDirPage">CreateInputDirPage</link>(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String; AAppendDir: Boolean; ANewFolderName: String): TInputDirWizardPage;</tt><br />
+<tt>function <link topic="isxfunc_CreateInputFilePage">CreateInputFilePage</link>(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String): TInputFileWizardPage;</tt><br />
+<tt>function <link topic="isxfunc_CreateOutputMsgPage">CreateOutputMsgPage</link>(const AfterID: Integer; const ACaption, ADescription, AMsg: String): TOutputMsgWizardPage;</tt><br />
+<tt>function <link topic="isxfunc_CreateOutputMsgMemoPage">CreateOutputMsgMemoPage</link>(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String; const AMsg: AnsiString): TOutputMsgMemoWizardPage;</tt><br />
+<tt>function <link topic="isxfunc_CreateOutputProgressPage">CreateOutputProgressPage</link>(const ACaption, ADescription: String): TOutputProgressWizardPage;</tt><br />
+<tt>function <link topic="isxfunc_CreateCustomPage">CreateCustomPage</link>(const AfterID: Integer; const ACaption, ADescription: String): TWizardPage;</tt><br />
+<tt>function <link topic="isxfunc_CreateCustomForm">CreateCustomForm</link>: TSetupForm;</tt><br />
+<br />
+<tt>function <link topic="isxfunc_PageFromID">PageFromID</link>(const ID: Integer): TWizardPage;</tt><br />
+<tt>function <link topic="isxfunc_MinimizePathName">MinimizePathName</link>(const Filename: String; const Font: TFont; MaxLen: Integer): String;</tt><br />
+</p>
+</body>
+</topic>
+</ishelp>

+ 17 - 5
ishelp/isxfunc.xml

@@ -1140,6 +1140,7 @@ end;
         <prototype>function MinimizePathName(const Filename: String; const Font: TFont; MaxLen: Integer): String;</prototype>
         <prototype>function MinimizePathName(const Filename: String; const Font: TFont; MaxLen: Integer): String;</prototype>
         <description><p>Returns a minimized filename that will not take more than MaxLen pixels to display with the given font. The minimizing is done by replacing the middle part with '...' as needed.</p></description>
         <description><p>Returns a minimized filename that will not take more than MaxLen pixels to display with the given font. The minimizing is done by replacing the middle part with '...' as needed.</p></description>
         <example><pre>MyLabel.Caption := MinimizePathName(MyPathName, MyLabel.Font, MyLabel.Width);</pre></example>
         <example><pre>MyLabel.Caption := MinimizePathName(MyPathName, MyLabel.Font, MyLabel.Width);</pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TFont">TFont</link></p></seealso>
       </function>
       </function>
     </subcategory>
     </subcategory>
   </category>
   </category>
@@ -2062,6 +2063,7 @@ Page.Values[1] := ExpandConstant('{sysuserinfoorg}');
 UserName := Page.Values[0];
 UserName := Page.Values[0];
 UserCompany := Page.Values[1];
 UserCompany := Page.Values[1];
 </pre></example>
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TInputQueryWizardPage">TInputQueryWizardPage</link></p></seealso>
       </function>
       </function>
       <function>
       <function>
         <name>CreateInputOptionPage</name>
         <name>CreateInputOptionPage</name>
@@ -2092,6 +2094,7 @@ Page.Values[0] := False;
 // Read values into variables
 // Read values into variables
 IsRegisteredUser := Page.Values[0];
 IsRegisteredUser := Page.Values[0];
 </pre></example>
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TInputOptionWizardPage">TInputOptionWizardPage</link></p></seealso>
       </function>
       </function>
       <function>
       <function>
         <name>CreateInputDirPage</name>
         <name>CreateInputDirPage</name>
@@ -2122,6 +2125,7 @@ Page.Values[0] := ExpandConstant('{userappdata}\My Company\My Program');
 // Read value into variable
 // Read value into variable
 DataDir := Page.Values[0];
 DataDir := Page.Values[0];
 </pre></example>
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TInputDirWizardPage">TInputDirWizardPage</link></p></seealso>
       </function>
       </function>
       <function>
       <function>
         <name>CreateInputFilePage</name>
         <name>CreateInputFilePage</name>
@@ -2153,6 +2157,7 @@ Page.Values[0] := ExpandConstant('{win}\notepad.exe');
 // Read value into variable
 // Read value into variable
 NotepadLocation := Page.Values[0];
 NotepadLocation := Page.Values[0];
 </pre></example>
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TInputFileWizardPage">TInputFileWizardPage</link></p></seealso>
       </function>
       </function>
       <function>
       <function>
         <name>CreateOutputMsgPage</name>
         <name>CreateOutputMsgPage</name>
@@ -2168,6 +2173,7 @@ Page := CreateOutputMsgPage(wpWelcome,
   'Information', 'Please read the following important information before continuing.',
   'Information', 'Please read the following important information before continuing.',
   'Blah blah blah.');
   'Blah blah blah.');
 </pre></example>
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TOutputMsgWizardPage">TOutputMsgWizardPage</link></p></seealso>
       </function>
       </function>
       <function>
       <function>
         <name>CreateOutputMsgMemoPage</name>
         <name>CreateOutputMsgMemoPage</name>
@@ -2184,6 +2190,7 @@ Page := CreateOutputMsgMemoPage(wpWelcome,
   'When you are ready to continue with Setup, click Next.',
   'When you are ready to continue with Setup, click Next.',
   'Blah blah blah.');
   'Blah blah blah.');
 </pre></example>
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TOutputMsgMemoWizardPage">TOutputMsgMemoWizardPage</link></p></seealso>
       </function>
       </function>
       <function>
       <function>
         <name>CreateOutputProgressPage</name>
         <name>CreateOutputProgressPage</name>
@@ -2196,29 +2203,33 @@ Page := CreateOutputMsgMemoPage(wpWelcome,
 <p>To display or update the progress bar, call the <tt>SetProgress</tt> method. <tt>SetProgress</tt> takes two integer parameters: the first specifies the position of the progress bar (zero-based), and the second specifies the highest possible position. If the second parameter is 0, the progress bar will be hidden.
 <p>To display or update the progress bar, call the <tt>SetProgress</tt> method. <tt>SetProgress</tt> takes two integer parameters: the first specifies the position of the progress bar (zero-based), and the second specifies the highest possible position. If the second parameter is 0, the progress bar will be hidden.
 </p></remarks>
 </p></remarks>
         <example><p>See <i>CodeDlg.iss</i> for an example.</p></example>
         <example><p>See <i>CodeDlg.iss</i> for an example.</p></example>
+        <seealso><p><link topic="scriptclasses" anchor="TOutputProgressWizardPage">TOutputProgressWizardPage</link></p></seealso>
       </function>
       </function>
       <function>
       <function>
         <name>CreateCustomPage</name>
         <name>CreateCustomPage</name>
         <prototype>function CreateCustomPage(const AfterID: Integer; const ACaption, ADescription: String): TWizardPage;</prototype>
         <prototype>function CreateCustomPage(const AfterID: Integer; const ACaption, ADescription: String): TWizardPage;</prototype>
-        <description><p>Creates a custom wizard page. The page is empty by default; you have to create your own controls afterward and place them on the page (by setting their Parent properties to the Surface property of the TWizardPage instance returned by this function).</p></description>
+        <description><p>Creates a custom wizard page. The page is empty by default; you have to create your own controls afterward and place them on the page (by setting their Parent properties to the Surface property of the <link topic="scriptclasses" anchor="TWizardPage">TWizardPage</link> instance returned by this function).</p></description>
         <example><p>See <i>CodeClasses.iss</i> for an example.</p></example>
         <example><p>See <i>CodeClasses.iss</i> for an example.</p></example>
+        <seealso><p><link topic="scriptclasses" anchor="TWizardPage">TWizardPage</link></p></seealso>
       </function>
       </function>
     </subcategory>
     </subcategory>
     <subcategory>
     <subcategory>
       <function>
       <function>
         <name>CreateCustomForm</name>
         <name>CreateCustomForm</name>
         <prototype>function CreateCustomForm: TSetupForm;</prototype>
         <prototype>function CreateCustomForm: TSetupForm;</prototype>
-        <description><p>Creates a form. The form is empty by default; you have to create your own controls afterward and place them on the form (by setting their Parent properties to the TSetupForm instance returned by this function).</p></description>
-        <remarks><p>You should call this function instead of creating TForm or TSetupForm instances directly. This function automatically initializes the font and other properties of the created form to be like Setup's other dialogs.</p>
+        <description><p>Creates a form. The form is empty by default; you have to create your own controls afterward and place them on the form (by setting their Parent properties to the <link topic="scriptclasses" anchor="TSetupForm">TSetupForm</link> instance returned by this function).</p></description>
+        <remarks><p>You should call this function instead of creating <link topic="scriptclasses" anchor="TForm">TForm</link> or <link topic="scriptclasses" anchor="TSetupForm">TSetupForm</link> instances directly. This function automatically initializes the font and other properties of the created form to be like Setup's other dialogs.</p>
 <p>The <tt>[LangOptions]</tt> section's <tt>DialogFontName</tt> and <tt>DialogFontSize</tt> directives determine the font used by the form and, by default, any child controls created on the form.</p></remarks>
 <p>The <tt>[LangOptions]</tt> section's <tt>DialogFontName</tt> and <tt>DialogFontSize</tt> directives determine the font used by the form and, by default, any child controls created on the form.</p></remarks>
         <example><p>See <i>CodeClasses.iss</i> for an example.</p></example>
         <example><p>See <i>CodeClasses.iss</i> for an example.</p></example>
+        <seealso><p><link topic="scriptclasses" anchor="TForm">TForm</link><br />
+<link topic="scriptclasses" anchor="TSetupForm">TSetupForm</link></p></seealso>
       </function>
       </function>
     </subcategory>
     </subcategory>
     <subcategory>
     <subcategory>
       <function>
       <function>
         <name>PageFromID</name>
         <name>PageFromID</name>
         <prototype>function PageFromID(const ID: Integer): TWizardPage;</prototype>
         <prototype>function PageFromID(const ID: Integer): TWizardPage;</prototype>
-        <description><p>Given a page ID, returns a TWizardPage instance. Call this if, for example, you need to get at the surface of a page and only know its ID.</p>
+        <description><p>Given a page ID, returns a <link topic="scriptclasses" anchor="TWizardPage">TWizardPage</link> instance. Call this if, for example, you need to get at the surface of a page and only know its ID.</p>
 <p>An exception will be raised if an invalid page ID is specified.</p></description>
 <p>An exception will be raised if an invalid page ID is specified.</p></description>
         <example><pre>var
         <example><pre>var
   Page: TWizardPage;
   Page: TWizardPage;
@@ -2226,6 +2237,7 @@ begin
   Page := PageFromID(wpWelcome);
   Page := PageFromID(wpWelcome);
   Page.Surface.Color := clBlue;
   Page.Surface.Color := clBlue;
 end;</pre></example>
 end;</pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TWizardPage">TWizardPage</link></p></seealso>
       </function>
       </function>
       <function>
       <function>
         <name>PageIndexFromID</name>
         <name>PageIndexFromID</name>
@@ -2482,7 +2494,7 @@ end;</pre></example>
      <values>IDOK, IDCANCEL, IDABORT, IDRETRY, IDIGNORE, IDYES, IDNO</values>
      <values>IDOK, IDCANCEL, IDABORT, IDRETRY, IDIGNORE, IDYES, IDNO</values>
   </enum>
   </enum>
   <enum>
   <enum>
-     <description>TGetShellFolderID</description>
+     <description>TShellFolderID</description>
      <values>sfDesktop, sfStartMenu, sfPrograms, sfStartup, sfSendTo, sfFonts, sfAppData, sfDocs, sfTemplates, sfFavorites, sfLocalAppData</values>
      <values>sfDesktop, sfStartMenu, sfPrograms, sfStartup, sfSendTo, sfFonts, sfAppData, sfDocs, sfTemplates, sfFavorites, sfLocalAppData</values>
   </enum>
   </enum>
   <enum>
   <enum>