Kaynağa Gözat

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

Martijn Laan 11 yıl önce
ebeveyn
işleme
c301d976df

+ 4 - 2
ishelp/ISHelpGen/ISHelpGen.dpr

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

+ 4 - 5
ishelp/ISHelpGen/UIsxclassesParser.pas

@@ -14,7 +14,7 @@ type
     constructor Create();
     destructor Destroy(); override;
     procedure Parse(const FileName: String);
-    procedure SaveXML(const HeaderFileName, HeaderFileName2, OutputFileName: String);
+    procedure SaveXML(const HeaderFileName, HeaderFileName2, FooterFileName, OutputFileName: String);
   end;
 
 implementation
@@ -65,7 +65,7 @@ begin
   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);
   var
@@ -198,12 +198,11 @@ begin
       WriteLn(F, S, '<br/>');
     end;
     WriteLn(F, '</tt></p>');
-    WriteLn(F, '</body>');
-    WriteLn(F, '</topic>');
-    WriteLn(F, '</ishelp>');
   finally
     CloseFile(F);
   end;
+
+  FCopyFile(FooterFileName, OutputFileName, True);
 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><br/><b>See also</b><br/>
+<p><br/><b>See also:</b><br/>
 <link topic="scriptformatoverview">Script Format Overview</link>
 </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><br/><b>See also</b><br/>
+<p><br/><b>See also:</b><br/>
 <link topic="params">Parameters in Sections</link><br/>
 <link topic="consts">Constants</link><br/>
 <link topic="commonparams">Common Parameters</link><br/>
@@ -2142,6 +2142,9 @@ UninstallProgram=Uninstall %1
 LaunchProgram=Launch %1
 AssocFileExtension=&amp;Associate %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>
 
 <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>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>
 

+ 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><br/><b>See also</b><br/>
+<p><br/><b>See also:</b><br/>
 <link topic="scriptcreating">Creating the [Code] section</link><br/>
 <link topic="scriptevents">Event Functions</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}}"
 </precode>
 
-<p><br/><b>See also</b><br/>
+<p><br/><b>See also:</b><br/>
 <link topic="consts">Constants</link>
 </p>
 
@@ -679,4 +679,4 @@ external 'ADllFunc@files:A.dll,B.dll stdcall loadwithalteredsearchpath'; //A.dll
 </body>
 </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>
         <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>
+        <seealso><p><link topic="scriptclasses" anchor="TFont">TFont</link></p></seealso>
       </function>
     </subcategory>
   </category>
@@ -2062,6 +2063,7 @@ Page.Values[1] := ExpandConstant('{sysuserinfoorg}');
 UserName := Page.Values[0];
 UserCompany := Page.Values[1];
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TInputQueryWizardPage">TInputQueryWizardPage</link></p></seealso>
       </function>
       <function>
         <name>CreateInputOptionPage</name>
@@ -2092,6 +2094,7 @@ Page.Values[0] := False;
 // Read values into variables
 IsRegisteredUser := Page.Values[0];
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TInputOptionWizardPage">TInputOptionWizardPage</link></p></seealso>
       </function>
       <function>
         <name>CreateInputDirPage</name>
@@ -2122,6 +2125,7 @@ Page.Values[0] := ExpandConstant('{userappdata}\My Company\My Program');
 // Read value into variable
 DataDir := Page.Values[0];
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TInputDirWizardPage">TInputDirWizardPage</link></p></seealso>
       </function>
       <function>
         <name>CreateInputFilePage</name>
@@ -2153,6 +2157,7 @@ Page.Values[0] := ExpandConstant('{win}\notepad.exe');
 // Read value into variable
 NotepadLocation := Page.Values[0];
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TInputFileWizardPage">TInputFileWizardPage</link></p></seealso>
       </function>
       <function>
         <name>CreateOutputMsgPage</name>
@@ -2168,6 +2173,7 @@ Page := CreateOutputMsgPage(wpWelcome,
   'Information', 'Please read the following important information before continuing.',
   'Blah blah blah.');
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TOutputMsgWizardPage">TOutputMsgWizardPage</link></p></seealso>
       </function>
       <function>
         <name>CreateOutputMsgMemoPage</name>
@@ -2184,6 +2190,7 @@ Page := CreateOutputMsgMemoPage(wpWelcome,
   'When you are ready to continue with Setup, click Next.',
   'Blah blah blah.');
 </pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TOutputMsgMemoWizardPage">TOutputMsgMemoWizardPage</link></p></seealso>
       </function>
       <function>
         <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></remarks>
         <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>
         <name>CreateCustomPage</name>
         <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>
+        <seealso><p><link topic="scriptclasses" anchor="TWizardPage">TWizardPage</link></p></seealso>
       </function>
     </subcategory>
     <subcategory>
       <function>
         <name>CreateCustomForm</name>
         <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>
         <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>
     </subcategory>
     <subcategory>
       <function>
         <name>PageFromID</name>
         <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>
         <example><pre>var
   Page: TWizardPage;
@@ -2226,6 +2237,7 @@ begin
   Page := PageFromID(wpWelcome);
   Page.Surface.Color := clBlue;
 end;</pre></example>
+        <seealso><p><link topic="scriptclasses" anchor="TWizardPage">TWizardPage</link></p></seealso>
       </function>
       <function>
         <name>PageIndexFromID</name>
@@ -2482,7 +2494,7 @@ end;</pre></example>
      <values>IDOK, IDCANCEL, IDABORT, IDRETRY, IDIGNORE, IDYES, IDNO</values>
   </enum>
   <enum>
-     <description>TGetShellFolderID</description>
+     <description>TShellFolderID</description>
      <values>sfDesktop, sfStartMenu, sfPrograms, sfStartup, sfSendTo, sfFonts, sfAppData, sfDocs, sfTemplates, sfFavorites, sfLocalAppData</values>
   </enum>
   <enum>