home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2005 June (DVD) / DPPRO0605DVD.iso / Install / System32 / RTL90.XML < prev    next >
Encoding:
Extensible Markup Language  |  2004-10-22  |  2.5 MB  |  36,624 lines

Text Truncated. Only the first 1MB is shown below. Download the file for the complete contents.
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <doc>
  3.    <assembly>rtl</assembly>
  4.    <members>
  5.       <member name="T:ZLib.TCustomZlibStream">
  6.          <summary>
  7.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Abstract ancestor class for compression streams.</para>
  8.          </summary>
  9.          <comments>
  10.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11.                
  12.                <class namespace="ZLib">TCustomZlibStream</class> is an abstract class, which forms the base for TCompressionStream and TDecompressionStream. Since it is an abstract class, instances of <class namespace="ZLib">TCustomZlibStream</class> cannot be directly instantiated. <class namespace="ZLib">TCustomZlibStream</class> serves as the starting point for your own custom data compression streams.</para>
  13.          </comments>
  14.       </member>
  15.       <member name="M:ZLib.ZLib.Create">
  16.          <summary>
  17.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes an instance of a <method namespace="ZLib" class="TCustomZlibStream">TCustomZlibStream</method>-derived object.</para>
  18.          </summary>
  19.          <comments>
  20.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  21.                      
  22.                <method namespace="ZLib" class="TCustomZlibStream">TCustomZlibStream</method> is intended to be an abstract base class for your own custom data compression streams. Its constructor is protected; therefore you cannot directly instantiate an instance of this class.</para>
  23.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A concrete class derived from <method namespace="ZLib" class="TCustomZlibStream">TCustomZlibStream</method> should, in its own public constructor, call the constructor inherited from <method namespace="ZLib" class="TCustomZlibStream">TCustomZlibStream</method>.</para>
  24.          </comments>
  25.       </member>
  26.       <member name="M:ZLib.ZLib.Progress">
  27.          <summary>
  28.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Calls the On<method namespace="ZLib" class="TCustomZlibStream">Progress</method> method, if assigned.</para>
  29.          </summary>
  30.          <comments>
  31.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Derived compression stream classes should call the <method namespace="ZLib" class="TCustomZlibStream">Progress</method> method when reading or writing a large block of data in a single call. This gives the derived class an opportunity to update a user interface control such as a progress indicator.</para>
  32.          </comments>
  33.       </member>
  34.       <member name="E:ZLib.ZLib.OnProgress">
  35.          <summary>
  36.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when reading or writing a large block of data in a single call.</para>
  37.          </summary>
  38.          <comments>
  39.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Classes derived from <event namespace="ZLib" class="TCustomZlibStream">TCustomZlibStream</event> can use the <event namespace="ZLib" class="TCustomZlibStream">OnProgress</event> event to perform some action during a long read or write operation.</para>
  40.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For example, the TCompressionStream class calls the <event namespace="ZLib" class="TCustomZlibStream">OnProgress</event> event handler, after the stream's output buffer has been filled and subsequently written. Similarly, the TDecompressionStream class calls the <event namespace="ZLib" class="TCustomZlibStream">OnProgress</event> event handler when its input buffer has been filled and is ready to be decompressed.</para>
  41.          </comments>
  42.       </member>
  43.       <member name="T:ZLib.TCompressionLevel">
  44.          <summary>
  45.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  46.                
  47.                <type namespace="ZLib">TCompressionLevel</type> indicates the type of compression algorithm to be used when creating a compressed data stream.</para>
  48.          </summary>
  49.          <comments>
  50.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The following table lists the possible values:</para>
  51.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  52.                
  53.                <tr>
  54.                   
  55.                   <th>Value</th>
  56.                   
  57.                   <th>Meaning</th>
  58.                
  59.                </tr>
  60.                
  61.                <tr>
  62.                   
  63.                   <td>
  64.                      
  65.                      <para>clNone</para>
  66.                   
  67.                   </td>
  68.                   
  69.                   <td>
  70.                      
  71.                      <para>Specifies no compression; data is merely copied to the output stream.</para>
  72.                   
  73.                   </td>
  74.                
  75.                </tr>
  76.                
  77.                <tr>
  78.                   
  79.                   <td>
  80.                      
  81.                      <para>clFastest</para>
  82.                   
  83.                   </td>
  84.                   
  85.                   <td>
  86.                      
  87.                      <para>Specifies fastest compression, resulting in a larger archive.</para>
  88.                   
  89.                   </td>
  90.                
  91.                </tr>
  92.                
  93.                <tr>
  94.                   
  95.                   <td>
  96.                      
  97.                      <para>clDefault</para>
  98.                   
  99.                   </td>
  100.                   
  101.                   <td>
  102.                      
  103.                      <para>Compromise between speed and amount of compression.</para>
  104.                   
  105.                   </td>
  106.                
  107.                </tr>
  108.                
  109.                <tr>
  110.                   
  111.                   <td>
  112.                      
  113.                      <para>clMax</para>
  114.                   
  115.                   </td>
  116.                   
  117.                   <td>
  118.                      
  119.                      <para>Specifies maximum compression, resulting in a longer time to perform the operation.</para>
  120.                   
  121.                   </td>
  122.                
  123.                </tr>
  124.             
  125.             </table>
  126.          </comments>
  127.       </member>
  128.       <member name="T:ZLib.TCompressionStream">
  129.          <summary>
  130.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Compresses data as it is written to the stream.</para>
  131.          </summary>
  132.          <comments>
  133.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  134.                
  135.                <class namespace="ZLib">TCompressionStream</class> is a write-only, sequential access stream that compresses data as it is written. The compressed data is written to a separate stream, which is passed to the <class namespace="ZLib">TCompressionStream</class> constructor. <class namespace="ZLib">TCompressionStream</class> does not take ownership of the output stream; you are responsible for creating, initializing, and destroying the stream when it is no longer needed.</para>
  136.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reading from a <class namespace="ZLib">TCompressionStream</class> object will raise an exception of type ECompressionError, with the message string set to "Invalid Stream Operation." Similarly, a Seek operation causes an ECompressionError exception, however, you can perform a Seek operation with a zero offset from the current position. This will return the number of raw, uncompressed bytes that have been written to the stream.</para>
  137.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">You set the compression level to be used when you create the stream object. The possible compression levels are: clNone, clFastest, clDefault, and clMax.</para>
  138.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the stream's output buffer is filled, a Write operation on <class namespace="ZLib">TCompressionStream</class> will write the contents of the buffer to the output stream, and then call the OnProgress event. You can use the OnProgress event to update a user interface control such as a progress indicator.</para>
  139.          </comments>
  140.       </member>
  141.       <member name="M:ZLib.ZLib.Read">
  142.          <summary>
  143.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Raises an exception of type ECompressionError.</para>
  144.          </summary>
  145.          <comments>
  146.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  147.                      
  148.                <method namespace="ZLib" class="TCompressionStream">Read</method> operations are not permitted on a <method namespace="ZLib" class="TCompressionStream">TCompressionStream</method> object. If a <method namespace="ZLib" class="TCompressionStream">Read</method> is attempted, an exception of type ECompressionError will be raised, with the message string "Invalid Stream Operation."</para>
  149.          </comments>
  150.       </member>
  151.       <member name="M:ZLib.ZLib.Write">
  152.          <summary>
  153.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  154.                      
  155.                <method namespace="ZLib" class="TCompressionStream">Write</method>s compressed data to the destination output stream.</para>
  156.          </summary>
  157.          <comments>
  158.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="ZLib" class="TCompressionStream">Write</method> method causes the data in the supplied buffer to be written the output stream. Buffer contains the raw (uncompressed) data to be written, and Count contains the number of bytes to write.</para>
  159.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="ZLib" class="TCompressionStream">TCompressionStream</method> object caches data internally; data is flushed to the output stream when the cache becomes full, and when the object is destroyed (if pending data remains in the cache).</para>
  160.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After data is written to the output stream, the OnProgress event is called. This gives you an opportunity to update a user interface control such as a progress indicator. </para>
  161.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The result of the <method namespace="ZLib" class="TCompressionStream">Write</method> method is the number of bytes transferred from the buffer</para>
  162.          </comments>
  163.       </member>
  164.       <member name="M:ZLib.ZLib.Seek">
  165.          <summary>
  166.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Raises an exception of type ECompressionErrror.</para>
  167.          </summary>
  168.          <comments>
  169.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A <method namespace="ZLib" class="TCompressionStream">TCompressionStream</method> is a write-only, sequential access data stream. Read operations are not permitted, and will raise an exception of type ECompressionError. Similarly, <method namespace="ZLib" class="TCompressionStream">Seek</method> operations will also raise an ECompressionError, with the message string "Invalid Stream Operation."</para>
  170.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">However, you can call the <method namespace="ZLib" class="TCompressionStream">Seek</method> method with an offset of zero, and the Origin set to soFromCurrent. In this special case, the <method namespace="ZLib" class="TCompressionStream">Seek</method> method will return the number of raw (uncompressed) bytes that have been written to the stream so far.</para>
  171.          </comments>
  172.       </member>
  173.       <member name="M:ZLib.ZLib.Create">
  174.          <summary>
  175.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  176.                      
  177.                <method namespace="ZLib" class="TCompressionStream">Create</method>s and initializes an instance of a <method namespace="ZLib" class="TCompressionStream">TCompressionStream</method> object.</para>
  178.          </summary>
  179.          <comments>
  180.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="ZLib" class="TCompressionStream">Create</method> to instantiate a <method namespace="ZLib" class="TCompressionStream">TCompressionStream</method> object. </para>
  181.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The CompressionLevel parameter determines the type of compression algorithm to be used, and must be one of the following: clNone, clFastest, clDefault, or clMax.</para>
  182.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Dest parameter is a TStream object; compressed data will be written to this stream.</para>
  183.          </comments>
  184.       </member>
  185.       <member name="M:ZLib.ZLib.Destroy">
  186.          <summary>
  187.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  188.                      
  189.                <method namespace="ZLib" class="TCompressionStream">Destroy</method>s the <method namespace="ZLib" class="TCompressionStream">TCompressionStream</method> object.</para>
  190.          </summary>
  191.          <comments>
  192.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call the <method namespace="ZLib" class="TCompressionStream">Destroy</method> method directly. Instead, use the Free method, as this will check the validity of the object before calling <method namespace="ZLib" class="TCompressionStream">Destroy</method>.</para>
  193.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">All data in the <method namespace="ZLib" class="TCompressionStream">TCompressionStream</method>'s cache is flushed to the output stream when the object is destroyed.</para>
  194.          </comments>
  195.       </member>
  196.       <member name="P:ZLib.ZLib.CompressionRate">
  197.          <summary>
  198.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the percentage by which the data has been compressed.</para>
  199.          </summary>
  200.          <comments>
  201.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The compression rate is a read-only property. Its value is calculated and updated as data is written to the stream. For example, if a total of 100 raw (uncompressed) bytes have been written to the stream, and only 25 compressed bytes have been written out, then reading the <property namespace="ZLib" class="TCompressionStream">CompressionRate</property> property will return a value of 75.</para>
  202.          </comments>
  203.       </member>
  204.       <member name="E:ZLib.ZLib.OnProgress">
  205.          <summary>
  206.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs after the stream's output buffer has been written.</para>
  207.          </summary>
  208.          <comments>
  209.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <event namespace="ZLib" class="TCompressionStream">OnProgress</event> event is automatically called from a Write operation, after the object's internal buffer has been filled and written to the output stream. </para>
  210.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <event namespace="ZLib" class="TCompressionStream">OnProgress</event> event is of type TNotifierEvent. When your procedure is called, the Sender parameter will be set to the object itself. You can use the <event namespace="ZLib" class="TCompressionStream">OnProgress</event> event to update a user interface control, such as a progress indicator. You can use the Position property, inherited from TStream, to determine the number of raw (uncompressed) bytes written to the output stream so far.</para>
  211.          </comments>
  212.       </member>
  213.       <member name="T:ZLib.TDecompressionStream">
  214.          <summary>
  215.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Decompresses data that was written to a TCompressionStream object.</para>
  216.          </summary>
  217.          <comments>
  218.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  219.                
  220.                <class namespace="ZLib">TDecompressionStream</class> is the analog of the TCompressionStream class. It is a read-only, unidirectional stream; you can seek forward in the stream, but not backwards. A separate input stream provides the source data. The input stream will be a stream that was previously written to using a TCompressionStream object. The input stream is passed to the constructor, however, <class namespace="ZLib">TDecompressionStream</class> does not take ownership of this object. You are responsible for creating, initializing, and destroying the input stream when it is no longer needed.</para>
  221.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writing to the stream will raise an exception, as will requesting the size of the stream, and attempting to perform a Seek operation backwards or relative to the current position.</para>
  222.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <class namespace="ZLib">TDecompressionStream</class> object's OnProgress event is called when a block of data is read from the input stream. You can read the <class namespace="ZLib">TDecompressionStream</class> object's Position property to determine the number of raw, uncompressed bytes that have been read from the input stream so far.</para>
  223.          </comments>
  224.       </member>
  225.       <member name="M:ZLib.ZLib.Read">
  226.          <summary>
  227.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  228.                      
  229.                <method namespace="ZLib" class="TDecompressionStream">Read</method>s a block of data from the input stream, and decompresses it.</para>
  230.          </summary>
  231.          <comments>
  232.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="ZLib" class="TDecompressionStream">Read</method> method reads a block of data from the input stream, decompresses it, and stores it in the supplied buffer.</para>
  233.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Buffer parameter is the destination for the decompressed data.</para>
  234.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Count is size of the destination buffer. The <method namespace="ZLib" class="TDecompressionStream">Read</method> operation will end when the destination buffer is full, or when there are no more bytes available to be read from the input stream.</para>
  235.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After reading a block of data, the OnProgress event is fired by the object. This gives you a chance to update a user interface control such as a progress indicator during a long <method namespace="ZLib" class="TDecompressionStream">Read</method> operation.</para>
  236.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The result of the <method namespace="ZLib" class="TDecompressionStream">Read</method> operation is the number of decompressed bytes placed into the destination buffer.</para>
  237.          </comments>
  238.       </member>
  239.       <member name="M:ZLib.ZLib.Write">
  240.          <summary>
  241.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Raises an exception of type ECompressionError.</para>
  242.          </summary>
  243.          <comments>
  244.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  245.                      
  246.                <method namespace="ZLib" class="TDecompressionStream">Write</method> operations are not permitted on a <method namespace="ZLib" class="TDecompressionStream">TDecompressionStream</method> object. If a <method namespace="ZLib" class="TDecompressionStream">Write</method> operation is attempted, an exception of type ECompressionError will be raised, with the message string set to "Invalid Stream Operation."</para>
  247.          </comments>
  248.       </member>
  249.       <member name="M:ZLib.ZLib.Seek">
  250.          <summary>
  251.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Resets the input stream, or moves the position forward.</para>
  252.          </summary>
  253.          <comments>
  254.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A <method namespace="ZLib" class="TDecompressionStream">TDecompressionStream</method> is a read-only, unidirectional input stream. Write operations are not permitted, and will raise an exception of type ECompressionError. <method namespace="ZLib" class="TDecompressionStream">Seek</method> operations can be used to move the stream position forward, but a <method namespace="ZLib" class="TDecompressionStream">Seek</method> operation that attempts to move the position backwards will raise an ECompressionError exception, with the message string set to "Invalid Stream Operation."</para>
  255.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">You can call the <method namespace="ZLib" class="TDecompressionStream">Seek</method> method with an Offset of zero, and the Origin set to soFromBeginning. This has the effect of resetting the input stream, effectively rewinding the stream back to the beginning.</para>
  256.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Otherwise, the Offset parameter must be a positive Longint, and the Origin parameter must be either soFromCurrent, or soFromBeginning. This has the effect of moving the input stream position forward, decompressing data as it goes.</para>
  257.          </comments>
  258.       </member>
  259.       <member name="M:ZLib.ZLib.Create">
  260.          <summary>
  261.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  262.                      
  263.                <method namespace="ZLib" class="TDecompressionStream">Create</method>s and initializes an instance of a <method namespace="ZLib" class="TDecompressionStream">TDecompressionStream</method> object.</para>
  264.          </summary>
  265.          <comments>
  266.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="ZLib" class="TDecompressionStream">Create</method> to instantiate a <method namespace="ZLib" class="TDecompressionStream">TDecompressionStream</method> object.</para>
  267.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Source parameter is the source input stream, which was previously created with a TCompressionStream object. Subsequent Read operations will read data from the Source stream, and decompress the data on the fly.</para>
  268.          </comments>
  269.       </member>
  270.       <member name="M:ZLib.ZLib.Destroy">
  271.          <summary>
  272.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  273.                      
  274.                <method namespace="ZLib" class="TDecompressionStream">Destroy</method>s the <method namespace="ZLib" class="TDecompressionStream">TDecompressionStream</method> object.</para>
  275.          </summary>
  276.          <comments>
  277.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call the <method namespace="ZLib" class="TDecompressionStream">Destroy</method> method directly. Instead, use the Free method, as this will check the validity of the object before calling <method namespace="ZLib" class="TDecompressionStream">Destroy</method>.</para>
  278.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If there is data remaining in the object's internal buffer, the input stream position is moved backwards by the number of bytes remaining.</para>
  279.          </comments>
  280.       </member>
  281.       <member name="E:ZLib.ZLib.OnProgress">
  282.          <summary>
  283.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs after a block of data has been read from the input stream.</para>
  284.          </summary>
  285.          <comments>
  286.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <event namespace="ZLib" class="TDecompressionStream">OnProgress</event> event is automatically called from a Read operation. The event occurs after a block of data has been read from the input stream, and before the data has been decompressed.</para>
  287.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <event namespace="ZLib" class="TDecompressionStream">OnProgress</event> event is of type TNotifierEvent. When your procedure is called, the Sender parameter will be set to the object itself. You can use the <event namespace="ZLib" class="TDecompressionStream">OnProgress</event> event to update a user interface control, such as a progress indicator. You can use the Position property, inherited from TStream, to determine the number of raw (uncompressed) bytes read from the input stream so far.</para>
  288.          </comments>
  289.       </member>
  290.       <member name="M:WinSpool.SetPrinter">
  291.          <summary>
  292.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Replaces the global instance of TPrinter that manages interaction with the printer.</para>
  293.          </summary>
  294.          <comments>
  295.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  296.                
  297.                <routine namespace="Printers">SetPrinter</routine> replaces the global TPrinter object with another TPrinter object. This allows applications to change the way they handle printing by substituting a TPrinter descendant for the default TPrinter object.</para>
  298.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">NewPrinter is the new TPrinter object that replaces the current global TPrinter object.</para>
  299.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  300.                
  301.                <routine namespace="Printers">SetPrinter</routine> returns the previous global TPrinter object.</para>
  302.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  303.                
  304.                <para>The global TPrinter object is freed automatically when the application shuts down. After a call to <routine namespace="Printers">SetPrinter</routine>, the printer that is returned is not automatically freed. It is the caller's responsibility to either free the return value, or replace it using another call to <routine namespace="Printers">SetPrinter</routine> and to free the substitute printer that the second <routine namespace="Printers">SetPrinter</routine> call returns.</para>
  305.             
  306.             </note>
  307.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  308.                
  309.                <routine namespace="Printers">SetPrinter</routine> is declared in the Printers unit. To use the <routine namespace="Printers">SetPrinter</routine> function, add Printers to the uses clause of your unit (Delphi) or include Printers.hpp in the source file (C++) .</para>
  310.          </comments>
  311.       </member>
  312.       <member name="T:Windows.TPoint">
  313.          <summary>
  314.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  315.                
  316.                <type namespace="Qt">TPoint</type> type defines a pixel location onscreen.</para>
  317.          </summary>
  318.          <comments>
  319.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <type namespace="Qt">TPoint</type> type defines a pixel location onscreen, with the origin in the top left corner. X specifies the horizontal coordinate of the point, Y specifies the vertical coordinate.</para>
  320.          </comments>
  321.       </member>
  322.       <member name="T:Windows.TRect">
  323.          <summary>
  324.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  325.                
  326.                <type namespace="Qt">TRect</type> defines a rectangle.</para>
  327.          </summary>
  328.          <comments>
  329.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  330.                
  331.                <type namespace="Qt">TRect</type> represents the dimensions of a rectangle. The coordinates are specified as either four separate integers representing the left, top, right, and bottom sides, or as two points representing the locations of the top left and bottom right corners. </para>
  332.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Typically, <type namespace="Qt">TRect</type> values represent pixel locations, where the origin of the pixel coordinate system is in the top left corner of the screen (screen coordinates) or the top left corner of a control's client area (client coordinates). When a <type namespace="Qt">TRect</type> value represents a rectangle on the screen, by convention the top and left edges are considered inside the rectangle and the bottom and right edges are considered outside the rectangle. This convention allows the width of the rectangle to be Right - Left and the height to be Bottom - Top.</para>
  333.          </comments>
  334.       </member>
  335.       <member name="T:Windows.TSize">
  336.          <summary>
  337.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  338.                
  339.                <type namespace="Qt">TSize</type> represents a width and height.</para>
  340.          </summary>
  341.          <comments>
  342.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  343.                
  344.                <type namespace="Qt">TSize</type> represents the size of something. Typically, the implied units of measurement are pixels.</para>
  345.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">cx is the width.</para>
  346.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">cy is the height.</para>
  347.          </comments>
  348.       </member>
  349.       <member name="T:Windows.TSmallPoint">
  350.          <summary>
  351.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  352.                
  353.                <type namespace="Qt">TSmallPoint</type> type defines a point with two 16-bit coordinates.</para>
  354.          </summary>
  355.          <comments>
  356.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <type namespace="Qt">TSmallPoint</type> type defines a point where each coordinate is a 16-bit integer. x specifies the horizontal coordinate of the point, y specifies the vertical coordinate.</para>
  357.          </comments>
  358.       </member>
  359.       <member name="T:Windows.TOwnerDrawState">
  360.          <summary>
  361.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates state information that can influence how an item is drawn.</para>
  362.          </summary>
  363.          <comments>
  364.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  365.                
  366.                <type namespace="OleAuto">TOwnerDrawState</type> is used by event handlers in owner-draw controls to indicate the state of an item about to be drawn. It is a set that includes zero or more of the following:</para>
  367.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  368.                
  369.                <tr>
  370.                   
  371.                   <th>Value</th>
  372.                   
  373.                   <th>Meaning</th>
  374.                
  375.                </tr>
  376.                
  377.                <tr>
  378.                   
  379.                   <td>
  380.                      
  381.                      <para>odSelected</para>
  382.                   
  383.                   </td>
  384.                   
  385.                   <td>
  386.                      
  387.                      <para>The item is selected.</para>
  388.                   
  389.                   </td>
  390.                
  391.                </tr>
  392.                
  393.                <tr>
  394.                   
  395.                   <td>
  396.                      
  397.                      <para>odGrayed</para>
  398.                   
  399.                   </td>
  400.                   
  401.                   <td>
  402.                      
  403.                      <para>The item should appear grayed.</para>
  404.                   
  405.                   </td>
  406.                
  407.                </tr>
  408.                
  409.                <tr>
  410.                   
  411.                   <td>
  412.                      
  413.                      <para>odDisabled</para>
  414.                   
  415.                   </td>
  416.                   
  417.                   <td>
  418.                      
  419.                      <para>The item is disabled.</para>
  420.                   
  421.                   </td>
  422.                
  423.                </tr>
  424.                
  425.                <tr>
  426.                   
  427.                   <td>
  428.                      
  429.                      <para>odChecked</para>
  430.                   
  431.                   </td>
  432.                   
  433.                   <td>
  434.                      
  435.                      <para>The item should appear checked. (This does not apply to all objects)</para>
  436.                   
  437.                   </td>
  438.                
  439.                </tr>
  440.                
  441.                <tr>
  442.                   
  443.                   <td>
  444.                      
  445.                      <para>odFocused</para>
  446.                   
  447.                   </td>
  448.                   
  449.                   <td>
  450.                      
  451.                      <para>Keyboard input is directed to the item.</para>
  452.                   
  453.                   </td>
  454.                
  455.                </tr>
  456.                
  457.                <tr>
  458.                   
  459.                   <td>
  460.                      
  461.                      <para>odDefault</para>
  462.                   
  463.                   </td>
  464.                   
  465.                   <td>
  466.                      
  467.                      <para>The item is the default item (This does not apply to all objects)</para>
  468.                   
  469.                   </td>
  470.                
  471.                </tr>
  472.                
  473.                <tr>
  474.                   
  475.                   <td>
  476.                      
  477.                      <para>odHotLight</para>
  478.                   
  479.                   </td>
  480.                   
  481.                   <td>
  482.                      
  483.                      <para>The item is hot-lighted because under the mouse (only if the operating system supports hot-lighting)</para>
  484.                   
  485.                   </td>
  486.                
  487.                </tr>
  488.                
  489.                <tr>
  490.                   
  491.                   <td>
  492.                      
  493.                      <para>odInactive</para>
  494.                   
  495.                   </td>
  496.                   
  497.                   <td>
  498.                      
  499.                      <para>The item and its associated menu are inactive </para>
  500.                   
  501.                   </td>
  502.                
  503.                </tr>
  504.                
  505.                <tr>
  506.                   
  507.                   <td>
  508.                      
  509.                      <para>odNoAccel</para>
  510.                   
  511.                   </td>
  512.                   
  513.                   <td>
  514.                      
  515.                      <para>Any underline of an accelerator character should be skipped when drawing the control </para>
  516.                   
  517.                   </td>
  518.                
  519.                </tr>
  520.                
  521.                <tr>
  522.                   
  523.                   <td>
  524.                      
  525.                      <para>odNoFocusRect</para>
  526.                   
  527.                   </td>
  528.                   
  529.                   <td>
  530.                      
  531.                      <para>Do not display visual cues that indicate focus </para>
  532.                   
  533.                   </td>
  534.                
  535.                </tr>
  536.                
  537.                <tr>
  538.                   
  539.                   <td>
  540.                      
  541.                      <para>odReserved1</para>
  542.                   
  543.                   </td>
  544.                   
  545.                   <td>
  546.                      
  547.                      <para>Not currently used.</para>
  548.                   
  549.                   </td>
  550.                
  551.                </tr>
  552.                
  553.                <tr>
  554.                   
  555.                   <td>
  556.                      
  557.                      <para>odReserved2</para>
  558.                   
  559.                   </td>
  560.                   
  561.                   <td>
  562.                      
  563.                      <para>Not currently used.</para>
  564.                   
  565.                   </td>
  566.                
  567.                </tr>
  568.                
  569.                <tr>
  570.                   
  571.                   <td>
  572.                      
  573.                      <para>odComboBoxEdit</para>
  574.                   
  575.                   </td>
  576.                   
  577.                   <td>
  578.                      
  579.                      <para>The drawing takes place in the edit box of a combo box control.</para>
  580.                   
  581.                   </td>
  582.                
  583.                </tr>
  584.             
  585.             </table>
  586.          </comments>
  587.       </member>
  588.       <member name="M:Windows.Beep">
  589.          <summary>
  590.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates a message beep.</para>
  591.          </summary>
  592.          <comments>
  593.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  594.                
  595.                <routine namespace="Controls">Beep</routine> generates a message beep using a Qt API.</para>
  596.          </comments>
  597.       </member>
  598.       <member name="M:Windows.DeleteFile">
  599.          <summary>
  600.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Deletes a file from disk.</para>
  601.          </summary>
  602.          <comments>
  603.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  604.                
  605.                <routine namespace="SysUtils">DeleteFile</routine> deletes the file named by FileName from the disk. If the file cannot be deleted or does not exist, the function returns false.</para>
  606.          </comments>
  607.       </member>
  608.       <member name="M:Windows.FindClose">
  609.          <summary>
  610.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Releases memory allocated by FindFirst.</para>
  611.          </summary>
  612.          <comments>
  613.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  614.                
  615.                <routine namespace="SysUtils">FindClose</routine> terminates a FindFirst/FindNext sequence.</para>
  616.          </comments>
  617.       </member>
  618.       <member name="M:Windows.InterlockedDecrement">
  619.          <summary>
  620.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Decrements a variable in a thread-safe manner.</para>
  621.          </summary>
  622.          <comments>
  623.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  624.                
  625.                <routine namespace="SysUtils">InterlockedDecrement</routine> increments I in such a way that other threads cannot access I until the operation is complete. The return value of <routine namespace="SysUtils">InterlockedDecrement</routine> has the same sign as the decremented result, but not necessarily the exact same value.</para>
  626.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <routine namespace="SysUtils">InterlockedDecrement</routine> defined in the SysUtils unit is only available on Linux. On Windows, applications use the Win32 API with the same name.</para>
  627.          </comments>
  628.       </member>
  629.       <member name="M:Windows.InterlockedExchange">
  630.          <summary>
  631.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Swaps two integer values in a thread-safe manner.</para>
  632.          </summary>
  633.          <comments>
  634.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  635.                
  636.                <routine namespace="SysUtils">InterlockedExchange</routine> exchanges the values of A and B in such a way that other threads cannot access either variable until the operation is complete. The return value of <routine namespace="SysUtils">InterlockedExchange</routine> is the new value of B.</para>
  637.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <routine namespace="SysUtils">InterlockedExchange</routine> defined in the SysUtils unit is only available on Linux. On Windows, applications use the Win32 API with the same name.</para>
  638.          </comments>
  639.       </member>
  640.       <member name="M:Windows.InterlockedExchangeAdd">
  641.          <summary>
  642.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Adds two integers in a thread-safe manner.</para>
  643.          </summary>
  644.          <comments>
  645.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  646.                
  647.                <routine namespace="SysUtils">InterlockedExchangeAdd</routine> adds B to A in such a way that other threads cannot access either variable until the operation is complete. The return value of <routine namespace="SysUtils">InterlockedExchangeAdd</routine> is the old value of A.</para>
  648.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <routine namespace="SysUtils">InterlockedExchangeAdd</routine> defined in the SysUtils unit is only available on Linux. On Windows, applications use the Win32 API with the same name.</para>
  649.          </comments>
  650.       </member>
  651.       <member name="M:Windows.InterlockedIncrement">
  652.          <summary>
  653.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Increments an integer value in a thread-safe manner.</para>
  654.          </summary>
  655.          <comments>
  656.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  657.                
  658.                <routine namespace="SysUtils">InterlockedIncrement</routine> increments I in such a way that other threads cannot access I until the operation is complete. The return value of InterlockedDrecrement has the same sign as the incremented result, but not necessarily the exact same value.</para>
  659.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <routine namespace="SysUtils">InterlockedIncrement</routine> defined in the SysUtils unit is only available on Linux. On Windows, applications use the Win32 API with the same name.</para>
  660.          </comments>
  661.       </member>
  662.       <member name="M:Windows.GetFileType">
  663.          <summary>
  664.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Describes file.</para>
  665.          </summary>
  666.          <comments>
  667.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  668.                
  669.                <routine namespace="QFileCtrls">GetFileType</routine> returns a short descriptive string for the file indicated by Info.</para>
  670.          </comments>
  671.       </member>
  672.       <member name="M:Windows.GetLastError">
  673.          <summary>
  674.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the last error reported by an operating system API call.</para>
  675.          </summary>
  676.          <comments>
  677.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  678.                
  679.                <routine namespace="System">GetLastError</routine> returns the last error reported by an API call into the operating system. Calling this function usually resets the operating system error state.</para>
  680.          </comments>
  681.       </member>
  682.       <member name="M:Windows.GetModuleFileName">
  683.          <summary>
  684.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the fully qualified name for a module, given its handle.</para>
  685.          </summary>
  686.          <comments>
  687.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="System">GetModuleFileName</routine> to obtain the fully qualified name of a module, given its handle. The version of <routine namespace="System">GetModuleFileName</routine> defined in the System unit is available only on Linux. On Windows, use the Windows API with the same name instead.</para>
  688.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Module is the handle of the module whose file name is required.</para>
  689.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Buffer is a buffer that receives the file name.</para>
  690.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">BufLen is the number of bytes in Buffer.</para>
  691.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  692.                
  693.                <routine namespace="System">GetModuleFileName</routine> returns the number of bytes written to Buffer.</para>
  694.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  695.                
  696.                <para>
  697.                   
  698.                   <routine namespace="System">GetModuleFileName</routine> is not always successful. Depending on the way the application is called, the presence of the /proc file system, and other factors, there are times when <routine namespace="System">GetModuleFileName</routine> may return a name that is not fully qualified or in some cases, no file name at all. Be sure to check the results of this function before using the returned value.</para>
  699.             
  700.             </warning>
  701.          </comments>
  702.       </member>
  703.       <member name="M:Windows.MulDiv">
  704.          <summary>
  705.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Peforms a specified integer multiplication followed by a specified integer division.</para>
  706.          </summary>
  707.          <comments>
  708.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  709.                
  710.                <routine namespace="Graphics">MulDiv</routine> returns the result from multiplying Number by Numerator and then (integer) dividing by Denominator. If Denominator is 0, <routine namespace="Graphics">MulDiv</routine> returns ΓÇô1.</para>
  711.          </comments>
  712.       </member>
  713.       <member name="M:Windows.Sleep">
  714.          <summary>
  715.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Delay program execution for a specified number of microseconds.</para>
  716.          </summary>
  717.          <comments>
  718.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  719.                
  720.                <routine namespace="SysUtils">Sleep</routine> pauses program executions as specified by the milliseconds parameter. Under Windows, <routine namespace="SysUtils">Sleep</routine> is just a link to the <routine namespace="SysUtils">Sleep</routine> function in the system API. Under Linux, <routine namespace="SysUtils">Sleep</routine> calls the usleep library routine.</para>
  721.          </comments>
  722.       </member>
  723.       <member name="M:Windows.EqualRect">
  724.          <summary>
  725.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether two TRect values are the same.</para>
  726.          </summary>
  727.          <comments>
  728.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Types">EqualRect</routine> to compare two TRect values. <routine namespace="Types">EqualRect</routine> returns true if R1 and R2 are identical (same position and size), false if they are different.</para>
  729.          </comments>
  730.       </member>
  731.       <member name="M:Windows.GetCursorPos">
  732.          <summary>
  733.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Return mouse cursor position.</para>
  734.          </summary>
  735.          <comments>
  736.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Controls">GetCursorPos</routine> to determine the current screen coordinates of the mouse cursor.</para>
  737.          </comments>
  738.       </member>
  739.       <member name="M:Windows.IntersectRect">
  740.          <summary>
  741.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the intersection of two rectangles</para>
  742.          </summary>
  743.          <comments>
  744.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Types">IntersectRect</routine> to obtain the rectangle that is the intersection of R1 and R2. The intersection is returned as the Rect parameter.</para>
  745.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  746.                
  747.                <routine namespace="Types">IntersectRect</routine> returns true if the two rectangles have a nonempty intersection. If R1 and R2 do not overlap, <routine namespace="Types">IntersectRect</routine> returns false, and the Rect parameter is set to a rectangle at position (0,0) with 0 Width and 0 Height.</para>
  748.          </comments>
  749.       </member>
  750.       <member name="M:Windows.IsRectEmpty">
  751.          <summary>
  752.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates wither a specified rectangle has a positive width and height.</para>
  753.          </summary>
  754.          <comments>
  755.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Types">IsRectEmpty</routine> to determine whether the rectangle specified by Rect encloses a positive amount of space.</para>
  756.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  757.                
  758.                <routine namespace="Types">IsRectEmpty</routine> returns true if both the width and height of Rect are greater than 0. If either the width or height is less than or equal to 0, <routine namespace="Types">IsRectEmpty</routine> returns false. Note that this means non-normalized rectangles (rectangles with negative height or width) are considered empty. </para>
  759.          </comments>
  760.       </member>
  761.       <member name="M:Windows.OffsetRect">
  762.          <summary>
  763.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Changes the origin of a rectangle by a specified amount.</para>
  764.          </summary>
  765.          <comments>
  766.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Types">OffsetRect</routine> to move the upper left corner of the rectangle specified by Rect while maintaining the same width and height. The left of the rectangle moves by DX while the top moves by DY.</para>
  767.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  768.                
  769.                <routine namespace="Types">OffsetRect</routine> returns true if the Rect parameter is not nil(Delphi) or NULL (C++), false if it can't return a new rectangle because Rect is nil(Delphi) or NULL (C++). </para>
  770.          </comments>
  771.       </member>
  772.       <member name="M:Windows.PtInRect">
  773.          <summary>
  774.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether a specified point lies inside a specified rectangle.</para>
  775.          </summary>
  776.          <comments>
  777.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  778.                
  779.                <routine namespace="Types">PtInRect</routine> returns true if the point, P, lies inside the rectangle, Rect, and false if P is not in Rect.</para>
  780.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  781.                
  782.                <routine namespace="Types">PtInRect</routine> does not consider a point inside a rectangle if the rectangle has a negative width or height. A point is considered inside a rectangle if it lies on the left or top edge, but not if it lies on the right or bottom edge.</para>
  783.          </comments>
  784.       </member>
  785.       <member name="M:Windows.RegisterClass">
  786.          <summary>
  787.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Registers a class of persistent object so that it's class type can be retrieved.</para>
  788.          </summary>
  789.          <comments>
  790.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">RegisterClass</routine> to register a class with the streaming system. Form classes and component classes that are referenced in a form declaration (instance variables) are automatically registered.  Any other classes used by an application must be explicitly registered by calling <routine namespace="Classes">RegisterClass</routine> if instances are to be saved.</para>
  791.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Once classes are registered, they can be loaded or saved by the component streaming system. IdentToInt returns nil (Delphi) or NULL (C++) when passed the class name of an unregistered class, and FindClass raises an exception for unregistered classes.</para>
  792.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The AClass parameter is the class that is descended from TPersistent. Put the call to <routine namespace="Classes">RegisterClass</routine> in a Register procedure. In Delphi, you can also put the call in the initialization section of the unit in which the class is defined. In C++, the call can also go in the namespace of the compilation unit that defines the class.</para>
  793.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the class is already registered, <routine namespace="Classes">RegisterClass</routine> does nothing. If a different class with the same name is already registered, <routine namespace="Classes">RegisterClass</routine> raises an EFilerError exception.</para>
  794.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  795.                
  796.                <para>Registering a component using the RegisterNoIcon or RegisterComponents method does not automatically register the class. It is still necessary to call <routine namespace="Classes">RegisterClass</routine> for components.</para>
  797.             
  798.             </note>
  799.          </comments>
  800.       </member>
  801.       <member name="M:Windows.UnionRect">
  802.          <summary>
  803.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the union of two rectangles</para>
  804.          </summary>
  805.          <comments>
  806.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Types">UnionRect</routine> to obtain the smallest rectangle that includes both R1 and R2. The union is returned as the Rect parameter.</para>
  807.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  808.                
  809.                <routine namespace="Types">UnionRect</routine> returns true if the resulting rectangle is nonempty. If the resulting rectangle as a width or height that is less than or equal to 0, <routine namespace="Types">UnionRect</routine> returns false.</para>
  810.          </comments>
  811.       </member>
  812.       <member name="M:Windows.UnregisterClass">
  813.          <summary>
  814.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Unregisters an object class.</para>
  815.          </summary>
  816.          <comments>
  817.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">UnregisterClass</routine> to unregister an object class. When a class is unregistered, it can't be loaded or saved by the component streaming system.</para>
  818.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After unregistering a class, its name can be reused to register another object class.</para>
  819.          </comments>
  820.       </member>
  821.       <member name="T:AspTlb.TASPMTSObject">
  822.          <summary>
  823.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  824.                
  825.                <class namespace="asptlb">TASPMTSObject</class> is the base class for Active Server pages when using IIS 4 or IIS 5.</para>
  826.          </summary>
  827.          <comments>
  828.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When you specify Object Context, the Active Server Object wizard generates a <class namespace="asptlb">TASPMTSObject</class> descendant to implement the Automation server object that is embedded in its generated Active Server Page. The generated Active Server Page instantiates the <class namespace="asptlb">TASPMTSObject</class> descendant by calling Server.CreateObject.</para>
  829.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">In addition to the support for the IDispatch interface that it inherits from TAutoObject, <class namespace="asptlb">TASPMTSObject</class> introduces several properties that surface the ASP intrinsics (built-in Application, Session, Server, Request, and Response objects).</para>
  830.          </comments>
  831.       </member>
  832.       <member name="P:AspTlb.AspTlb.Application">
  833.          <summary>
  834.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides access to the application-level interface for the server.</para>
  835.          </summary>
  836.          <comments>
  837.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use Application to access the ASP intrinsic Application object. This interface lets you share information among all users of a given application. An ASP-based application is defined as all the .asp files in a virtual directory and its subdirectories. Because the Application object can be shared by more than one user, the interface supplies Lock and Unlock methods to prevent multiple users from trying to alter a property simultaneously.</para>
  838.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For more information, see Microsoft's documentation of the Application Object.</para>
  839.          </comments>
  840.       </member>
  841.       <member name="P:AspTlb.AspTlb.Request">
  842.          <summary>
  843.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides access to the request message from the Web browser.</para>
  844.          </summary>
  845.          <comments>
  846.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use Request to access the ASP intrinsic Request object. This interface lets you access the HTTP headers of the request message from the Web browser that caused the Active Server page to be opened.</para>
  847.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For more information, see Microsoft's documentation of the Request Object.</para>
  848.          </comments>
  849.       </member>
  850.       <member name="P:AspTlb.AspTlb.Response">
  851.          <summary>
  852.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides access to the response message that is returned to the Web browser.</para>
  853.          </summary>
  854.          <comments>
  855.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use Response to access the ASP intrinsic Response object. This interface lets you send output to the client Web browser by specifying the HTTP headers or content of an HTTP response message that ASP sends to the Web browser. For example, you can add cookies or set the expiration of the response content, or redirect the request to a different URL.</para>
  856.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For more information, see Microsoft's documentation of the Response Object.</para>
  857.          </comments>
  858.       </member>
  859.       <member name="P:AspTlb.AspTlb.Session">
  860.          <summary>
  861.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides access to the interface for the ASP Session.</para>
  862.          </summary>
  863.          <comments>
  864.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use Session to access the ASP intrinsic Session object. This interface lets you store information needed for a particular user-session. Variables stored in the Session object are not discarded when the user jumps between pages in the application; instead, these variables persist for the entire user-session. </para>
  865.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Web server automatically creates a Session object when a user who does not already have a session requests a Web page from the application. The server destroys the Session object when the session expires or is abandoned. </para>
  866.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For more information, see Microsoft's documentation of the Session Object.</para>
  867.          </comments>
  868.       </member>
  869.       <member name="P:AspTlb.AspTlb.Server">
  870.          <summary>
  871.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides access to the interface for the ASP server.</para>
  872.          </summary>
  873.          <comments>
  874.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use Server to access the ASP intrinsic Server object. This interface lets you access the properties and methods of the ASP server. These include the time-out property that prevents Web browsers from waiting indefinitely if the Active Server Page hangs while trying to run its script. They also include utilities for working with HTML and URLs so that you do not need to explicitly encode escape characters for HTML reserved characters or URLs and can map virtual paths to physical paths.</para>
  875.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For more information, see Microsoft's documentation of the Server Object.</para>
  876.          </comments>
  877.       </member>
  878.       <member name="T:ScktComp.ESocketError">
  879.          <summary>
  880.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  881.                
  882.                <class namespace="ScktComp">ESocketError</class> is the exception class for failures that occur when trying to create, use, or shut down Windows socket objects.</para>
  883.          </summary>
  884.          <comments>
  885.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  886.                
  887.                <class namespace="ScktComp">ESocketError</class> is raised if </para>
  888.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A socket cannot be created.</para>
  889.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A socket cannot be initialized.</para>
  890.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A socket cannot be opened.</para>
  891.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">An application tries to change the properties of an already open socket.</para>
  892.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A failure occurs when reading from or writing to a socket.</para>
  893.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A socket cannot be properly closed.</para>
  894.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">There are two <class namespace="ScktComp">ESocketError</class> classes, one in the ScktComp unit and one in the Sockets unit. The two exception classes are identically defined and serve the same function for different categories of socket objects. The two definitions occur simply to ensure that <class namespace="ScktComp">ESocketError</class> is defined for all socket objects.</para>
  895.          </comments>
  896.       </member>
  897.       <member name="T:ScktComp.TCustomWinSocket">
  898.          <summary>
  899.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  900.                
  901.                <class namespace="scktcomp">TCustomWinSocket</class> is the base class for all Windows socket objects.</para>
  902.          </summary>
  903.          <comments>
  904.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  905.                
  906.                <class namespace="scktcomp">TCustomWinSocket</class> introduces properties, events, and methods to describe an endpoint in a Windows socket connection. Descendants of <class namespace="scktcomp">TCustomWinSocket</class> are used by socket components to manage the Windows socket API calls and to store information about a socket communication link.</para>
  907.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A Windows socket encapsulates a set of communication protocols to allow the application to connect to other machines for reading or writing information. Windows sockets provide connections based on the TCP/IP protocol. They also allow connections that use the Xerox Network System (XNS), Digital's DECnet protocol, or Novell's IPX/SPX family. Sockets allow an application to form connections to other machines without being concerned with the details of the actual networking software.</para>
  908.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendants of <class namespace="scktcomp">TCustomWinSocket</class> represent different endpoints in socket connections. TClientWinSocket represents the client endpoint of a socket communication link to a server socket. TServerWinSocket represents the server endpoint of a listening connection. TServerClientWinSocket represents the server endpoint of a socket communication link to a client socket.</para>
  909.          </comments>
  910.       </member>
  911.       <member name="M:ScktComp.ScktComp.InitSocket">
  912.          <summary>
  913.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates a windows Internet socket address structure from a description of the desired socket port.</para>
  914.          </summary>
  915.          <comments>
  916.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications can not call <method namespace="scktcomp" class="TCustomWinSocket">InitSocket</method>. It is called by the Open or Listen method to obtain a Windows Internet socket address structure for the parameters obtained from a socket component.</para>
  917.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Name parameter is the host name for the socket.<condition language="Delphi"/>The Address parameter is the IP address. The Service parameter is the service for which the socket is to used. The Port parameter is the port number for the socket. The Client parameter indicates whether the socket address structure is to be used by a client socket to describe the destination of a connection or by a server socket to describe the listening connection.</para>
  918.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The host portion of the Windows Internet socket address is obtained from the host name if it is given. Otherwise the Address parameter is used. If Client is true, either the Name or the Address parameter must be specified. If Client is false, they may both be left blank to specify a server that listens on multiple addresses.</para>
  919.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If port number for the Windows Internet socket address is obtained from the Service parameter if it is given. Otherwise, the Port parameter is used. One of these two parameters must be specified.</para>
  920.          </comments>
  921.       </member>
  922.       <member name="M:ScktComp.ScktComp.LookupName">
  923.          <summary>
  924.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates the portion of a Windows Internet socket address structure that describes the host.</para>
  925.          </summary>
  926.          <comments>
  927.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="scktcomp" class="TCustomWinSocket">LookupName</method> to obtain the Internet address associated with the system identified by the name parameter. <method namespace="scktcomp" class="TCustomWinSocket">LookupName</method> is used by InitSocket to generate the portion of the Windows Internet socket address structure that identifies the host.</para>
  928.          </comments>
  929.       </member>
  930.       <member name="M:ScktComp.ScktComp.LookupService">
  931.          <summary>
  932.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the port number associated with a specific service.</para>
  933.          </summary>
  934.          <comments>
  935.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="scktcomp" class="TCustomWinSocket">LookupService</method> to obtain the standard port number for the service named by the service parameter. Windows provides a number of standard service names such as ftp, http, finger, or time. Each standard service is associated, by convention, with a specific port number. These standard port numbers allow client sockets to indicate the desired service by requesting a specific port number. They allow server sockets to listen on an expected port number for the service offered. Servers can specify additional services and their associated ports in a SERVICES file. For more information on the SERVICES file, see the Microsoft documentation for Windows sockets.</para>
  936.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">InitSocket calls <method namespace="scktcomp" class="TCustomWinSocket">LookupService</method> to obtain the port number for the Service specified by a socket component.</para>
  937.          </comments>
  938.       </member>
  939.       <member name="M:ScktComp.ScktComp.ReceiveLength">
  940.          <summary>
  941.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the number of bytes ready to be sent over the socket connection.</para>
  942.          </summary>
  943.          <comments>
  944.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="scktcomp" class="TCustomWinSocket">ReceiveLength</method> to determine the amount of information to read over the socket connection in response to an asynchronous read notification.</para>
  945.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  946.                      
  947.                <para>
  948.                         
  949.                   <method namespace="scktcomp" class="TCustomWinSocket">ReceiveLength</method> is not guaranteed to be accurate for streaming socket connections.</para>
  950.                   
  951.             </note>
  952.          </comments>
  953.       </member>
  954.       <member name="M:ScktComp.ScktComp.ReceiveText">
  955.          <summary>
  956.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a string from the socket connection.</para>
  957.          </summary>
  958.          <comments>
  959.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="scktcomp" class="TCustomWinSocket">ReceiveText</method> to read a string from the socket connection in the OnSocketEvent event handler of a Windows socket object or in the OnRead or OnClientRead event handler of a socket component. <method namespace="scktcomp" class="TCustomWinSocket">ReceiveText</method> returns the string that was read.</para>
  960.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  961.                      
  962.                <method namespace="scktcomp" class="TCustomWinSocket">ReceiveText</method> only works in response to a read notification to a non-blocking windows socket. Blocking sockets must use a TWinSocketStream for reading. The TWinSocketStream object waits for the remote socket to be ready before transferring information.</para>
  963.          </comments>
  964.       </member>
  965.       <member name="M:ScktComp.ScktComp.SendBuf">
  966.          <summary>
  967.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes Count bytes to the socket connection from the Buf parameter.</para>
  968.          </summary>
  969.          <comments>
  970.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="scktcomp" class="TCustomWinSocket">SendBuf</method> to write to the socket connection. Call this method from the OnSocketEvent event handler of a Windows socket object or in the OnWrite or OnClientWrite event handler of a socket component. Alternately, Use <method namespace="scktcomp" class="TCustomWinSocket">SendBuf</method> to write when a connection is first formed when the socket does not expect notification that the socket on the other end of the connection is expecting to read.</para>
  971.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For non-blocking sockets, the data is sent to the WinSock DLL which has it's own internal buffers. If the WinSock can accept additional data, <method namespace="scktcomp" class="TCustomWinSocket">SendBuf</method> returns immediately with the number of bytes queued. If the WinSock internal buffer space is not able to accept the buffer being sent, <method namespace="scktcomp" class="TCustomWinSocket">SendBuf</method> returns -1 and no data is queued at all. In this case, wait a bit for the WinSock to have a chance to send out already-queued data; then try again.</para>
  972.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For blocking sockets, <method namespace="scktcomp" class="TCustomWinSocket">SendBuf</method> returns the number of bytes actually written. </para>
  973.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If an error occurs while writing to the connection, <method namespace="scktcomp" class="TCustomWinSocket">SendBuf</method> terminates the connection and raises an ESocketError exception.</para>
  974.          </comments>
  975.       </member>
  976.       <member name="M:ScktComp.ScktComp.SendStreamThenDrop">
  977.          <summary>
  978.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes all the information that can be read from the AStream parameter to the socket connection and then terminates the connection.</para>
  979.          </summary>
  980.          <comments>
  981.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="scktcomp" class="TCustomWinSocket">SendStreamThenDrop</method> to write to a socket connection when the connection is no longer needed after the writing is complete. SendStream reads information from the stream indicated by AStream and writes it to the socket connection, shutting down the connection when it is done. The value returned by SendStream indicates whether any information was successfully written to the connection.</para>
  982.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  983.                      
  984.                <para>The Stream passed as a parameter to SendStream becomes "owned" by the windows socket object.  The Windows socket object frees the stream when it is finished with it.  Do not attempt to free the stream after it has been passed as a parameter.</para>
  985.                   
  986.             </note>
  987.          </comments>
  988.       </member>
  989.       <member name="M:ScktComp.ScktComp.SendText">
  990.          <summary>
  991.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the string S to the socket connection.</para>
  992.          </summary>
  993.          <comments>
  994.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="scktcomp" class="TCustomWinSocket">SendText</method> to write a string to the socket connection. The writing may occur in the OnSocketEvent event handler of a Windows socket object or in the OnWrite or OnClientWrite event handler of a socket component. Alternately, <method namespace="scktcomp" class="TCustomWinSocket">SendText</method> may write from a socket that is expected to write to the connection without a notification to signal the connection's readiness to read. If an error occurs while writing to the connection, <method namespace="scktcomp" class="TCustomWinSocket">SendText</method> terminates the connection and raises an ESocketError exception.</para>
  995.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  996.                      
  997.                <method namespace="scktcomp" class="TCustomWinSocket">SendText</method> returns the number of bytes sent. Note that this may be less than the length of the string S if the socket is nonblocking.</para>
  998.          </comments>
  999.       </member>
  1000.       <member name="M:ScktComp.ScktComp.Create">
  1001.          <summary>
  1002.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1003.                      
  1004.                <method namespace="scktcomp" class="TCustomWinSocket">Create</method>s an instance of <method namespace="scktcomp" class="TCustomWinSocket">TCustomWinSocket</method> from a Windows socket handle.</para>
  1005.          </summary>
  1006.          <comments>
  1007.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="scktcomp" class="TCustomWinSocket">Create</method> to create a Windows socket object. Most Windows socket objects are created automatically by the socket component that uses them. Applications may create their own Windows socket objects in an OnGetSocket event handler for a server socket component.</para>
  1008.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After calling the inherited constructor, <method namespace="scktcomp" class="TCustomWinSocket">Create</method>
  1009.                   
  1010.             </para>
  1011.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Makes sure that Winsock.dll is initialized.</para>
  1012.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Allocates helper objects to manage multithreading issues.</para>
  1013.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes ASyncStyles to [asRead, asWrite, asConnect, asClose]</para>
  1014.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes the SocketHandle property to the ASocket parameter and sets the Connected property to reflect whether ASocket is the handle of a valid open Windows socket.</para>
  1015.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes the Addr property.</para>
  1016.          </comments>
  1017.       </member>
  1018.       <member name="M:ScktComp.ScktComp.AsyncInitSocket">
  1019.          <summary>
  1020.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Looks up information or forms socket connections asynchronously.</para>
  1021.          </summary>
  1022.          <comments>
  1023.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1024.                      
  1025.                <method namespace="scktcomp" class="TCustomWinSocket">AsyncInitSocket</method> is used internally to open a socket connection in non-blocking sockets. It is called by the Open or Listen method when that method's Block parameter is false.</para>
  1026.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Name parameter is the host name for the socket. The Address parameter is the IP address. The Service parameter is the service for which the socket is to used. The Port parameter is the port number for the socket. The QueueSize parameter indicates the number of client requests a listening connection can hold while waiting to form connections. The Client parameter indicates whether the socket address structure is to be used by a client socket to describe the destination of a connection or by a server socket to describe the listening connection.</para>
  1027.          </comments>
  1028.       </member>
  1029.       <member name="M:ScktComp.ScktComp.DoOpen">
  1030.          <summary>
  1031.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Opens a connection to a remote socket.</para>
  1032.          </summary>
  1033.          <comments>
  1034.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The socket uses <method namespace="scktcomp" class="TCustomWinSocket">DoOpen</method> internally to open a connection to a remote socket. <method namespace="scktcomp" class="TCustomWinSocket">DoOpen</method> handles those tasks that are common to establishing a connection synchronously or asynchronously.</para>
  1035.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="scktcomp" class="TCustomWinSocket">DoOpen</method> to open a connection. Instead, call the public Open method, which orchestrates the opening of a connection either synchronously or asynchronously, depending on the socket type.</para>
  1036.          </comments>
  1037.       </member>
  1038.       <member name="M:ScktComp.ScktComp.DoListen">
  1039.          <summary>
  1040.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Opens a listening connection.</para>
  1041.          </summary>
  1042.          <comments>
  1043.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The socket uses <method namespace="scktcomp" class="TCustomWinSocket">DoListen</method> internally to open a listening connection with a queue that can hold QueueSize client connection requests. <method namespace="scktcomp" class="TCustomWinSocket">DoListen</method> handles those tasks that are common to opening a listening connection synchronously or asynchronously.</para>
  1044.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="scktcomp" class="TCustomWinSocket">DoListen</method> to open a listening connection. Instead, call the public Listen method, which orchestrates the opening of a connection either synchronously or asynchronously, depending on the socket type.</para>
  1045.          </comments>
  1046.       </member>
  1047.       <member name="M:ScktComp.ScktComp.Error">
  1048.          <summary>
  1049.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an On<method namespace="scktcomp" class="TCustomWinSocket">Error</method>Event event.</para>
  1050.          </summary>
  1051.          <comments>
  1052.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1053.                      
  1054.                <method namespace="scktcomp" class="TCustomWinSocket">Error</method> is called automatically when the Windows socket object receives error notifications. It generates the On<method namespace="scktcomp" class="TCustomWinSocket">Error</method>Event event. When overriding this method, be sure to call the inherited method, because socket components rely on the On<method namespace="scktcomp" class="TCustomWinSocket">Error</method>Event event for their own error handling.</para>
  1055.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Socket parameter indicates the Windows socket object that encounters the error condition. </para>
  1056.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="scktcomp" class="TCustomWinSocket">Error</method>Event parameter indicates what the socket was trying to do when the error occurred. It has one of the following values:</para>
  1057.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1058.                      
  1059.                <tr>
  1060.                         
  1061.                   <th>Value</th>
  1062.                         
  1063.                   <th>Meaning</th>
  1064.                      
  1065.                </tr>
  1066.                      
  1067.                <tr>
  1068.                         
  1069.                   <td>
  1070.                            
  1071.                      <para>eeGeneral</para>
  1072.                         
  1073.                   </td>
  1074.                         
  1075.                   <td>
  1076.                            
  1077.                      <para>The socket received an error message that does not fit into any of the following categories.</para>
  1078.                         
  1079.                   </td>
  1080.                      
  1081.                </tr>
  1082.                      
  1083.                <tr>
  1084.                         
  1085.                   <td>
  1086.                            
  1087.                      <para>eeSend</para>
  1088.                         
  1089.                   </td>
  1090.                         
  1091.                   <td>
  1092.                            
  1093.                      <para>An error occurred when trying to write to the socket connection.</para>
  1094.                         
  1095.                   </td>
  1096.                      
  1097.                </tr>
  1098.                      
  1099.                <tr>
  1100.                         
  1101.                   <td>
  1102.                            
  1103.                      <para>eeReceive</para>
  1104.                         
  1105.                   </td>
  1106.                         
  1107.                   <td>
  1108.                            
  1109.                      <para>An error occurred when trying to read from the socket connection.</para>
  1110.                         
  1111.                   </td>
  1112.                      
  1113.                </tr>
  1114.                      
  1115.                <tr>
  1116.                         
  1117.                   <td>
  1118.                            
  1119.                      <para>eeConnect</para>
  1120.                         
  1121.                   </td>
  1122.                         
  1123.                   <td>
  1124.                            
  1125.                      <para>For client sockets, this indicates that the client socket can't locate the server, or that a problem on the server prevents the opening of a connection. For server sockets, this indicates that a client connection request that has already been accepted could not be completed. </para>
  1126.                         
  1127.                   </td>
  1128.                      
  1129.                </tr>
  1130.                      
  1131.                <tr>
  1132.                         
  1133.                   <td>
  1134.                            
  1135.                      <para>eeDisconnect</para>
  1136.                         
  1137.                   </td>
  1138.                         
  1139.                   <td>
  1140.                            
  1141.                      <para>An error occurred when trying to close a connection.</para>
  1142.                         
  1143.                   </td>
  1144.                      
  1145.                </tr>
  1146.                      
  1147.                <tr>
  1148.                         
  1149.                   <td>
  1150.                            
  1151.                      <para>eeAccept</para>
  1152.                         
  1153.                   </td>
  1154.                         
  1155.                   <td>
  1156.                            
  1157.                      <para>For server sockets only, this indicates that a problem occurred when trying to accept a client connection request.</para>
  1158.                         
  1159.                   </td>
  1160.                      
  1161.                </tr>
  1162.                   
  1163.             </table>
  1164.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="scktcomp" class="TCustomWinSocket">Error</method>Code parameter is the error code received by the Windows socket object. Changing this value to 0 in the <method namespace="scktcomp" class="TCustomWinSocket">Error</method> method prevents the socket from raising an exception. For information on possible error codes, see the Microsoft documentation on Windows sockets.</para>
  1165.          </comments>
  1166.       </member>
  1167.       <member name="M:ScktComp.ScktComp.Close">
  1168.          <summary>
  1169.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Shuts down the socket connection if it is open.</para>
  1170.          </summary>
  1171.          <comments>
  1172.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="scktcomp" class="TCustomWinSocket">Close</method> to terminate an open socket connection. <method namespace="scktcomp" class="TCustomWinSocket">Close</method> triggers an OnSocketEvent of type seDisconnect before the connection is shut down. If the Windows socket is a listening server socket, <method namespace="scktcomp" class="TCustomWinSocket">Close</method> shuts down all open connections to client sockets before shutting down the listening connection.</para>
  1173.          </comments>
  1174.       </member>
  1175.       <member name="M:ScktComp.ScktComp.DefaultHandler">
  1176.          <summary>
  1177.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Processes message records.</para>
  1178.          </summary>
  1179.          <comments>
  1180.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1181.                      
  1182.                <method namespace="scktcomp" class="TCustomWinSocket">DefaultHandler</method> overrides the inherited method in order to process all messages that are sent to the Windows socket object. <method namespace="scktcomp" class="TCustomWinSocket">DefaultHandler</method> passes the messages to the Windows CallWindowProc function.</para>
  1183.          </comments>
  1184.       </member>
  1185.       <member name="M:ScktComp.ScktComp.Lock">
  1186.          <summary>
  1187.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Starts a critical section, blocking all other execution threads until the Unlock method is called.</para>
  1188.          </summary>
  1189.          <comments>
  1190.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="scktcomp" class="TCustomWinSocket">Lock</method> before beginning a section of code that is not thread-safe. Call Unlock when the critical section of code is completed. Unless absolutely necessary, do not use <method namespace="scktcomp" class="TCustomWinSocket">Lock</method> to lock lengthy operations such as reading and writing over a blocking connection. <method namespace="scktcomp" class="TCustomWinSocket">Lock</method>ing lengthy operations can severely impact performance, because all execution threads in the application that use the Windows socket object must wait until Unlock is called.</para>
  1191.          </comments>
  1192.       </member>
  1193.       <member name="M:ScktComp.ScktComp.Unlock">
  1194.          <summary>
  1195.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reenables execution in other threads after a critical section begun by the Lock method.</para>
  1196.          </summary>
  1197.          <comments>
  1198.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="scktcomp" class="TCustomWinSocket">Unlock</method> at the end of a section of code that is not thread-safe. Every call to <method namespace="scktcomp" class="TCustomWinSocket">Unlock</method> should match a call to the Lock method at the beginning of the critical section of code. </para>
  1199.          </comments>
  1200.       </member>
  1201.       <member name="M:ScktComp.ScktComp.Listen">
  1202.          <summary>
  1203.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Opens a listening connection for a server socket.</para>
  1204.          </summary>
  1205.          <comments>
  1206.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Server socket components call <method namespace="scktcomp" class="TCustomWinSocket">Listen</method> to open a listening connection.</para>
  1207.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1208.                      
  1209.                <method namespace="scktcomp" class="TCustomWinSocket">Listen</method> creates the Windows socket that will make the listening connection, and binds the Windows Internet socket address derived from the parameters to the socket. <method namespace="scktcomp" class="TCustomWinSocket">Listen</method> then generates an OnSocketEvent of type se<method namespace="scktcomp" class="TCustomWinSocket">Listen</method>. Finally, <method namespace="scktcomp" class="TCustomWinSocket">Listen</method> opens the socket as a listening connection with a queue that can hold QueueSize client requests, setting the Connected property to true.</para>
  1210.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Name, Address, Service, and Port parameters are taken from the Host, Address, Service and Port properties of the server socket component. </para>
  1211.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">QueueSize indicates how many client requests the listening connection can hold. TServerSocket sets the QueueSize to 5. </para>
  1212.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Block indicates whether the socket can look up the information it needs to establish a connection asynchronously. When Block is true, the socket blocks execution for each lookup instead of retrieving information about the connection using asynchronous notifications. </para>
  1213.          </comments>
  1214.       </member>
  1215.       <member name="M:ScktComp.ScktComp.Open">
  1216.          <summary>
  1217.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1218.                      
  1219.                <method namespace="scktcomp" class="TCustomWinSocket">Open</method>s a connection to a remote socket.</para>
  1220.          </summary>
  1221.          <comments>
  1222.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Client socket components call <method namespace="scktcomp" class="TCustomWinSocket">Open</method> to open a connection to a server socket.</para>
  1223.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1224.                      
  1225.                <method namespace="scktcomp" class="TCustomWinSocket">Open</method> creates the Windows socket that will connect to the server socket, and generates an OnSocketEvent of type seLookup. After the OnSocketEvent, <method namespace="scktcomp" class="TCustomWinSocket">Open</method> binds the Windows Internet socket address derived from the parameters to the socket, locating the server socket. <method namespace="scktcomp" class="TCustomWinSocket">Open</method> then generates an OnSocketEvent of type seConnecting. When the server socket accepts the connection, <method namespace="scktcomp" class="TCustomWinSocket">Open</method> completes the connection to the server socket. Then it generates an OnSocketEvent of type seConnect. After the OnSocketEvent, the Connected property is set to true.</para>
  1226.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Name, Address, Service, and Port parameters are taken from the Host, Address, Service and Port properties of the client socket component.</para>
  1227.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Block indicates whether the socket can look up the information it needs to establish a connection asynchronously. When Block is true, the socket blocks execution for each lookup instead of retrieving information about the connection using asynchronous notifications. </para>
  1228.          </comments>
  1229.       </member>
  1230.       <member name="M:ScktComp.ScktComp.Accept">
  1231.          <summary>
  1232.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides the interface for a method that accepts a connection to a client socket.</para>
  1233.          </summary>
  1234.          <comments>
  1235.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1236.                      
  1237.                <method namespace="scktcomp" class="TCustomWinSocket">Accept</method> is called automatically in response to notifications that a client socket is requesting a connection. The Socket parameter is the Windows socket handle for the socket that receives the notification.</para>
  1238.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="scktcomp" class="TCustomWinSocket">Accept</method> method for <method namespace="scktcomp" class="TCustomWinSocket">TCustomWinSocket</method> does nothing with the notification. Descendants of <method namespace="scktcomp" class="TCustomWinSocket">TCustomWinSocket</method> that represent listening server sockets override this method to accept the connection to the client socket.</para>
  1239.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1240.                      
  1241.                <method namespace="scktcomp" class="TCustomWinSocket">Accept</method> is only called if the ASyncStyles property includes as<method namespace="scktcomp" class="TCustomWinSocket">Accept</method>.</para>
  1242.          </comments>
  1243.       </member>
  1244.       <member name="M:ScktComp.ScktComp.Connect">
  1245.          <summary>
  1246.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides the interface for a method that responds to connection notifications from client sockets.</para>
  1247.          </summary>
  1248.          <comments>
  1249.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1250.                      
  1251.                <method namespace="scktcomp" class="TCustomWinSocket">Connect</method> is called automatically in response to notifications that the client socket has successfully completed a connection to a server socket. The Socket parameter is the Windows socket handle for the socket that receives the notification.</para>
  1252.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="scktcomp" class="TCustomWinSocket">Connect</method> method for <method namespace="scktcomp" class="TCustomWinSocket">TCustomWinSocket</method> does nothing with the notification. Descendants of <method namespace="scktcomp" class="TCustomWinSocket">TCustomWinSocket</method> that represent client sockets override this method to respond to connection notifications.</para>
  1253.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1254.                      
  1255.                <method namespace="scktcomp" class="TCustomWinSocket">Connect</method> is only called if the ASyncStyles property includes as<method namespace="scktcomp" class="TCustomWinSocket">Connect</method>.</para>
  1256.          </comments>
  1257.       </member>
  1258.       <member name="M:ScktComp.ScktComp.Disconnect">
  1259.          <summary>
  1260.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Shuts down the socket connection represented by a Windows socket handle.</para>
  1261.          </summary>
  1262.          <comments>
  1263.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1264.                      
  1265.                <method namespace="scktcomp" class="TCustomWinSocket">Disconnect</method> is called by the Close method to terminate an individual socket connection.</para>
  1266.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1267.                      
  1268.                <method namespace="scktcomp" class="TCustomWinSocket">Disconnect</method> calls the Lock method to make sure the method is thread-safe. Then, it generates an OnSocketEvent of type se<method namespace="scktcomp" class="TCustomWinSocket">Disconnect</method>. After the OnSocketEvent, <method namespace="scktcomp" class="TCustomWinSocket">Disconnect</method> closes the connection. Finally, it calls Unlock to end the critical section started by Lock.</para>
  1269.          </comments>
  1270.       </member>
  1271.       <member name="M:ScktComp.ScktComp.Read">
  1272.          <summary>
  1273.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an OnSocketEvent of type se<method namespace="scktcomp" class="TCustomWinSocket">Read</method> in response to notifications that the socket connection is ready.</para>
  1274.          </summary>
  1275.          <comments>
  1276.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1277.                      
  1278.                <method namespace="scktcomp" class="TCustomWinSocket">Read</method> is called in response to asynchronous notifications that the socket connection is ready for reading. The Windows socket can then read from the connection in the OnSocketEvent event handler or the socket component can read from the connection in an On<method namespace="scktcomp" class="TCustomWinSocket">Read</method> or OnClient<method namespace="scktcomp" class="TCustomWinSocket">Read</method> event handler. The event handler can use the ReceiveBuf method or the ReceiveText method to read the information from the connection.</para>
  1279.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1280.                      
  1281.                <para>
  1282.                         
  1283.                   <method namespace="scktcomp" class="TCustomWinSocket">Read</method> is only called for asynchronous read notifications in a non-blocking socket. Blocking sockets must use a TWinSocketStream object for reading. The TWinSocketStream object waits for the remote socket to be ready before transferring information.</para>
  1284.                   
  1285.             </note>
  1286.          </comments>
  1287.       </member>
  1288.       <member name="M:ScktComp.ScktComp.Write">
  1289.          <summary>
  1290.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an OnSocketEvent of type se<method namespace="scktcomp" class="TCustomWinSocket">Write</method> in response to notifications that the socket connection is ready.</para>
  1291.          </summary>
  1292.          <comments>
  1293.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1294.                      
  1295.                <method namespace="scktcomp" class="TCustomWinSocket">Write</method> is called in response to asynchronous notifications that the socket connection is ready for the socket to send information. The Windows socket can write to the connection in the OnSocketEvent event handler or the socket component can write to the connection in an On<method namespace="scktcomp" class="TCustomWinSocket">Write</method> or OnClient<method namespace="scktcomp" class="TCustomWinSocket">Write</method> event handler. The event handler can use the SendBuf method, the SendStream method, or the SendText method to write the information to the connection.</para>
  1296.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1297.                      
  1298.                <para>
  1299.                         
  1300.                   <method namespace="scktcomp" class="TCustomWinSocket">Write</method> is only called for asynchronous write notifications in a non-blocking socket. Blocking sockets must use their own mechanisms for determining when the connection is ready for the socket to write.</para>
  1301.                   
  1302.             </note>
  1303.          </comments>
  1304.       </member>
  1305.       <member name="M:ScktComp.ScktComp.Destroy">
  1306.          <summary>
  1307.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1308.                      
  1309.                <method namespace="scktcomp" class="TCustomWinSocket">Destroy</method>s an instance of <method namespace="scktcomp" class="TCustomWinSocket">TCustomWinSocket</method>.</para>
  1310.          </summary>
  1311.          <comments>
  1312.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Most applications do not need to explicitly free Windows socket objects.  They are freed by the socket components that use them.</para>
  1313.          </comments>
  1314.       </member>
  1315.       <member name="P:ScktComp.ScktComp.LocalHost">
  1316.          <summary>
  1317.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the name of the local system.</para>
  1318.          </summary>
  1319.          <comments>
  1320.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TCustomWinSocket">LocalHost</property> to get the name of the system that is running the application that uses the Windows socket. <property namespace="scktcomp" class="TCustomWinSocket">LocalHost</property> is a string containing the domain name and service of the local socket endpoint, such as </para>
  1321.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">http://www.wSite.Com</codeBlock>
  1322.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1323.                      
  1324.                <property namespace="scktcomp" class="TCustomWinSocket">LocalHost</property> provides an alias for the local IP address given in the LocalAddress property. Most Intranets provide host names for the IP addresses of systems on the net. On Windows 95 and NT machines, if a host name is not available, create one for the local IP address by entering the name into the HOSTS file. See the Microsoft documentation on Windows sockets for more information on the HOSTS file.</para>
  1325.          </comments>
  1326.       </member>
  1327.       <member name="P:ScktComp.ScktComp.LocalAddress">
  1328.          <summary>
  1329.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the IP address of the local system that was bound to the socket connection.</para>
  1330.          </summary>
  1331.          <comments>
  1332.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1333.                      
  1334.                <property namespace="scktcomp" class="TCustomWinSocket">LocalAddress</property> is a string of four numeric (byte) values in the standard Internet dot notation, such as</para>
  1335.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">123.197.1.2</codeBlock>
  1336.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each address identifies the system and indicates the types of interfaces supported by the socket. A single system (machine) can support multiple addresses. <property namespace="scktcomp" class="TCustomWinSocket">LocalAddress</property> is the address from among the possible addresses supported by the local system that is bound to the socket connection.</para>
  1337.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A single <property namespace="scktcomp" class="TCustomWinSocket">LocalAddress</property> can be used simultaneously by multiple socket connections. Each of those connections must have a unique LocalPort number to distinguish it from other connections to the same <property namespace="scktcomp" class="TCustomWinSocket">LocalAddress</property>.</para>
  1338.          </comments>
  1339.       </member>
  1340.       <member name="P:ScktComp.ScktComp.LocalPort">
  1341.          <summary>
  1342.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the ID number of the port used by the socket connection.</para>
  1343.          </summary>
  1344.          <comments>
  1345.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TCustomWinSocket">LocalPort</property> to determine the port number that is bound to the socket connection. For server endpoints of listening connections, <property namespace="scktcomp" class="TCustomWinSocket">LocalPort</property> is the ID associated with the service the server socket provides. For client or server endpoints of connections to another socket, <property namespace="scktcomp" class="TCustomWinSocket">LocalPort</property> is usually an arbitrary value picked when the connection was made.</para>
  1346.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Port numbers allow a single system, identified by the LocalAddress property, to host multiple connections simultaneously. Each combination of <property namespace="scktcomp" class="TCustomWinSocket">LocalPort</property> and LocalAddress can only be bound to a single socket connection. This combination is represented by the Addr property.</para>
  1347.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Many values of <property namespace="scktcomp" class="TCustomWinSocket">LocalPort</property> are associated by convention with a particular service such as ftp or http. To determine whether the value of <property namespace="scktcomp" class="TCustomWinSocket">LocalPort</property> is associated with a specific service, use the LookupService method.</para>
  1348.          </comments>
  1349.       </member>
  1350.       <member name="P:ScktComp.ScktComp.RemoteHost">
  1351.          <summary>
  1352.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the name of the remote system.</para>
  1353.          </summary>
  1354.          <comments>
  1355.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TCustomWinSocket">RemoteHost</property> to get the name of the system on the other end of the socket connection. <property namespace="scktcomp" class="TCustomWinSocket">RemoteHost</property> is a string containing the domain name and service of the remote endpoint of the socket connection, such as </para>
  1356.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">http://www.wSite.Com</codeBlock>
  1357.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">LocalHost provides an alias for the local IP address given in the RemoteAddress property.</para>
  1358.          </comments>
  1359.       </member>
  1360.       <member name="P:ScktComp.ScktComp.RemoteAddress">
  1361.          <summary>
  1362.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the IP address of the remote system that was bound to the socket connection.</para>
  1363.          </summary>
  1364.          <comments>
  1365.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1366.                      
  1367.                <property namespace="scktcomp" class="TCustomWinSocket">RemoteAddress</property> is a string of four numeric (byte) values in the standard Internet dot notation, such as</para>
  1368.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">123.197.1.2</codeBlock>
  1369.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each address identifies the system on the other end of the socket connection and indicates the types of interfaces supported by the remote socket. A single system can support multiple addresses. <property namespace="scktcomp" class="TCustomWinSocket">RemoteAddress</property> is the address from among the possible addresses supported by the remote system that is bound to the socket connection.</para>
  1370.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A single <property namespace="scktcomp" class="TCustomWinSocket">RemoteAddress</property> may be participating in multiple socket connections. Each of those connections has a unique RemotePort number to distinguish it from other connections to the same <property namespace="scktcomp" class="TCustomWinSocket">RemoteAddress</property>. The RemoteAddr property uniquely identifies the <property namespace="scktcomp" class="TCustomWinSocket">RemoteAddress</property> and RemotePort combination used by the socket connection.</para>
  1371.          </comments>
  1372.       </member>
  1373.       <member name="P:ScktComp.ScktComp.RemotePort">
  1374.          <summary>
  1375.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the ID number of the port used by the RemoteHost to form the socket connection.</para>
  1376.          </summary>
  1377.          <comments>
  1378.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TCustomWinSocket">RemotePort</property> to determine the port number used by the socket on the other end of the socket connection.</para>
  1379.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Port numbers allow a single system, identified by the RemoteAddress or RemoteHost property, to host multiple connections simultaneously. Each combination of <property namespace="scktcomp" class="TCustomWinSocket">RemotePort</property> and RemoteAddress can only be bound to a single socket connection. This combination is represented by the RemoteAddr property.</para>
  1380.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Many port numbers are associated by convention with a particular service such as ftp or http. To determine whether the value of <property namespace="scktcomp" class="TCustomWinSocket">RemotePort</property> is associated with a specific service, use the LookupService method.</para>
  1381.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1382.                      
  1383.                <para>If a client socket requests a specific port to indicate a desired service, the value of <property namespace="scktcomp" class="TCustomWinSocket">RemotePort</property> for the actual connection may differ from the requested port number. Most server sockets listen on the port associated with a service, but switch to an arbitrary available port number for forming connections.</para>
  1384.                   
  1385.             </note>
  1386.          </comments>
  1387.       </member>
  1388.       <member name="P:ScktComp.ScktComp.RemoteAddr">
  1389.          <summary>
  1390.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the Internet socket address structure used in Windows socket API calls to represent the full specification of the remote socket port.</para>
  1391.          </summary>
  1392.          <comments>
  1393.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When working directly with Windows socket API calls, use <property namespace="scktcomp" class="TCustomWinSocket">RemoteAddr</property> to represent the port used by the socket on the other end of the connection. The value of <property namespace="scktcomp" class="TCustomWinSocket">RemoteAddr</property> is determined by the values of the <property namespace="scktcomp" class="TCustomWinSocket">RemoteAddr</property>ess and RemotePort properties.</para>
  1394.          </comments>
  1395.       </member>
  1396.       <member name="P:ScktComp.ScktComp.Connected">
  1397.          <summary>
  1398.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the socket connection is open and available for communication with other machines.</para>
  1399.          </summary>
  1400.          <comments>
  1401.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="scktcomp" class="TCustomWinSocket">Connected</property> before trying to use or change the Windows socket connection. <property namespace="scktcomp" class="TCustomWinSocket">Connected</property> indicates whether the socket connection has been established. When <property namespace="scktcomp" class="TCustomWinSocket">Connected</property> is true, the Windows socket is open and available for use. When <property namespace="scktcomp" class="TCustomWinSocket">Connected</property> is false, the Windows socket is closed and can be changed.</para>
  1402.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To open a client Windows socket, use the Open method. To open a server Windows socket, use the Listen method. The Windows socket that represents the server endpoint of a connection to a client socket is opened in its constructor.</para>
  1403.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To close a Windows socket, use the Close method.</para>
  1404.          </comments>
  1405.       </member>
  1406.       <member name="P:ScktComp.ScktComp.Addr">
  1407.          <summary>
  1408.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the Internet socket address structure used in Windows socket API calls to represent the full specification of the socket port.</para>
  1409.          </summary>
  1410.          <comments>
  1411.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TCustomWinSocket">Addr</property> to represent the port used by the socket when working directly with Windows socket API calls. For client sockets, the value of <property namespace="scktcomp" class="TCustomWinSocket">Addr</property> represents the target remote port. For server sockets, <property namespace="scktcomp" class="TCustomWinSocket">Addr</property> is determined by the values of the Local<property namespace="scktcomp" class="TCustomWinSocket">Addr</property>ess and LocalPort properties.</para>
  1412.          </comments>
  1413.       </member>
  1414.       <member name="P:ScktComp.ScktComp.ASyncStyles">
  1415.          <summary>
  1416.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines which asynchronous events the socket can receive.</para>
  1417.          </summary>
  1418.          <comments>
  1419.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TCustomWinSocket">ASyncStyles</property> to determine what sorts of notifications the socket needs to respond to. Set <property namespace="scktcomp" class="TCustomWinSocket">ASyncStyles</property> to change the notifications that the socket receives from the socket connection. <property namespace="scktcomp" class="TCustomWinSocket">ASyncStyles</property> is a set drawn from the following values:</para>
  1420.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1421.                      
  1422.                <tr>
  1423.                         
  1424.                   <th>Value</th>
  1425.                         
  1426.                   <th>Meaning</th>
  1427.                      
  1428.                </tr>
  1429.                      
  1430.                <tr>
  1431.                         
  1432.                   <td>
  1433.                            
  1434.                      <para>asRead</para>
  1435.                         
  1436.                   </td>
  1437.                         
  1438.                   <td>
  1439.                            
  1440.                      <para>The socket receives notification that the connection is ready for reading.</para>
  1441.                         
  1442.                   </td>
  1443.                      
  1444.                </tr>
  1445.                      
  1446.                <tr>
  1447.                         
  1448.                   <td>
  1449.                            
  1450.                      <para>asWrite</para>
  1451.                         
  1452.                   </td>
  1453.                         
  1454.                   <td>
  1455.                            
  1456.                      <para>The socket receives notification that the connection is ready for writing.</para>
  1457.                         
  1458.                   </td>
  1459.                      
  1460.                </tr>
  1461.                      
  1462.                <tr>
  1463.                         
  1464.                   <td>
  1465.                            
  1466.                      <para>asOOB</para>
  1467.                         
  1468.                   </td>
  1469.                         
  1470.                   <td>
  1471.                            
  1472.                      <para>The socket receives notification when out-of-band data arrives.</para>
  1473.                         
  1474.                   </td>
  1475.                      
  1476.                </tr>
  1477.                      
  1478.                <tr>
  1479.                         
  1480.                   <td>
  1481.                            
  1482.                      <para>asAccept</para>
  1483.                         
  1484.                   </td>
  1485.                         
  1486.                   <td>
  1487.                            
  1488.                      <para>The socket receives notification when another socket requests a connection.</para>
  1489.                         
  1490.                   </td>
  1491.                      
  1492.                </tr>
  1493.                      
  1494.                <tr>
  1495.                         
  1496.                   <td>
  1497.                            
  1498.                      <para>asConnect</para>
  1499.                         
  1500.                   </td>
  1501.                         
  1502.                   <td>
  1503.                            
  1504.                      <para>The socket receives notification when a communication link to another socket is opened.</para>
  1505.                         
  1506.                   </td>
  1507.                      
  1508.                </tr>
  1509.                      
  1510.                <tr>
  1511.                         
  1512.                   <td>
  1513.                            
  1514.                      <para>asClose</para>
  1515.                         
  1516.                   </td>
  1517.                         
  1518.                   <td>
  1519.                            
  1520.                      <para>The socket receives notification when a communication link to another socket is terminated.</para>
  1521.                         
  1522.                   </td>
  1523.                      
  1524.                </tr>
  1525.                   
  1526.             </table>
  1527.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Any notification specified by <property namespace="scktcomp" class="TCustomWinSocket">ASyncStyles</property> arrives as a window message to the Handle property.</para>
  1528.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1529.                      
  1530.                <para>If the socket is a non-blocking socket, then <property namespace="scktcomp" class="TCustomWinSocket">ASyncStyles</property> should include asRead and asWrite so that the socket will be informed of asynchronous reading and writing events.</para>
  1531.                   
  1532.             </note>
  1533.          </comments>
  1534.       </member>
  1535.       <member name="P:ScktComp.ScktComp.Handle">
  1536.          <summary>
  1537.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the handle of the window that receives notifications from the Windows socket.</para>
  1538.          </summary>
  1539.          <comments>
  1540.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TCustomWinSocket">Handle</property> to send messages to the Windows socket or to subclass the Window procedure that receives messages of asynchronous events from the socket connection.</para>
  1541.          </comments>
  1542.       </member>
  1543.       <member name="P:ScktComp.ScktComp.SocketHandle">
  1544.          <summary>
  1545.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the Windows handle for the socket.</para>
  1546.          </summary>
  1547.          <comments>
  1548.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TCustomWinSocket">SocketHandle</property> for Windows socket API calls that require the handle to the socket. When the Connected property is false, <property namespace="scktcomp" class="TCustomWinSocket">SocketHandle</property> is INVALID_SOCKET.</para>
  1549.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1550.                      
  1551.                <property namespace="scktcomp" class="TCustomWinSocket">SocketHandle</property> is set to a valid Windows socket handle by the Listen or Open method.</para>
  1552.          </comments>
  1553.       </member>
  1554.       <member name="P:ScktComp.ScktComp.LookupState">
  1555.          <summary>
  1556.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates any asynchronous activities occurring while opening a connection.</para>
  1557.          </summary>
  1558.          <comments>
  1559.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1560.                      
  1561.                <property namespace="scktcomp" class="TCustomWinSocket">LookupState</property> is used internally to coordinate asynchronous activities while opening a connection. The AsyncInitSocket method sets the value of <property namespace="scktcomp" class="TCustomWinSocket">LookupState</property> to indicate when it is looking up various types of information. The following table lists the possible values:</para>
  1562.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1563.                      
  1564.                <tr>
  1565.                         
  1566.                   <th>Value</th>
  1567.                         
  1568.                   <th>Meaning</th>
  1569.                      
  1570.                </tr>
  1571.                      
  1572.                <tr>
  1573.                         
  1574.                   <td>
  1575.                            
  1576.                      <para>lsIdle</para>
  1577.                         
  1578.                   </td>
  1579.                         
  1580.                   <td>
  1581.                            
  1582.                      <para>The socket is not currently looking up any information asynchronously.</para>
  1583.                         
  1584.                   </td>
  1585.                      
  1586.                </tr>
  1587.                      
  1588.                <tr>
  1589.                         
  1590.                   <td>
  1591.                            
  1592.                      <para>lsLookupAddress</para>
  1593.                         
  1594.                   </td>
  1595.                         
  1596.                   <td>
  1597.                            
  1598.                      <para>The socket is looking up an IP address asynchronously and has not yet received the result.</para>
  1599.                         
  1600.                   </td>
  1601.                      
  1602.                </tr>
  1603.                      
  1604.                <tr>
  1605.                         
  1606.                   <td>
  1607.                            
  1608.                      <para>lsLookupService</para>
  1609.                         
  1610.                   </td>
  1611.                         
  1612.                   <td>
  1613.                            
  1614.                      <para>The socket is looking up a Service asynchronously and has not yet received the result.</para>
  1615.                         
  1616.                   </td>
  1617.                      
  1618.                </tr>
  1619.                   
  1620.             </table>
  1621.          </comments>
  1622.       </member>
  1623.       <member name="P:ScktComp.ScktComp.Data">
  1624.          <summary>
  1625.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Points to application-specific data associated with the socket.</para>
  1626.          </summary>
  1627.          <comments>
  1628.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TCustomWinSocket">Data</property> to associate information specific to the socket connection with the Windows socket object. For example, <property namespace="scktcomp" class="TCustomWinSocket">Data</property> can be used to store access and authentication information used by a server socket to evaluate client connection requests. </para>
  1629.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1630.                      
  1631.                <property namespace="scktcomp" class="TCustomWinSocket">Data</property> can store information in a thread-safe manner that would otherwise require the use of global variables. This is useful given the multi-threaded nature of many client-server applications.</para>
  1632.          </comments>
  1633.       </member>
  1634.       <member name="E:ScktComp.ScktComp.OnSocketEvent">
  1635.          <summary>
  1636.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the Windows socket receives notification of asynchronous events.</para>
  1637.          </summary>
  1638.          <comments>
  1639.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Socket components provide an <event namespace="scktcomp" class="TCustomWinSocket">OnSocketEvent</event> event handler that converts Windows socket notifications into events on the socket component. Most applications will therefore not provide an event handler for <event namespace="scktcomp" class="TCustomWinSocket">OnSocketEvent</event>. Replacing this event handler can prevent some expected events from occurring.</para>
  1640.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the Windows socket object that owns the event handler. Usually, this is the same as the Socket parameter.</para>
  1641.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Socket parameter indicates the Windows socket that generates or receives notification of the event. </para>
  1642.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The SocketEvent parameter indicates the event that occurred.</para>
  1643.          </comments>
  1644.       </member>
  1645.       <member name="E:ScktComp.ScktComp.OnErrorEvent">
  1646.          <summary>
  1647.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the socket fails in making, using, or shutting down a connection.</para>
  1648.          </summary>
  1649.          <comments>
  1650.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Socket components provide an <event namespace="scktcomp" class="TCustomWinSocket">OnErrorEvent</event> event handler that converts error notifications into error events on the socket component. Most applications will therefore not provide an event handler for <event namespace="scktcomp" class="TCustomWinSocket">OnErrorEvent</event>.</para>
  1651.          </comments>
  1652.       </member>
  1653.       <member name="T:ScktComp.TClientWinSocket">
  1654.          <summary>
  1655.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1656.                
  1657.                <class namespace="scktcomp">TClientWinSocket</class> describes the client endpoint of a Windows socket connection.</para>
  1658.          </summary>
  1659.          <comments>
  1660.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Client socket components use <class namespace="scktcomp">TClientWinSocket</class> to manage the Windows socket API calls for a TCP/IP client application. <class namespace="scktcomp">TClientWinSocket</class> differs from its immediate ancestor TCustomWinSocket only in that it introduces a ClientType property to distinguish blocking from non-blocking client sockets.</para>
  1661.          </comments>
  1662.       </member>
  1663.       <member name="M:ScktComp.ScktComp.Connect">
  1664.          <summary>
  1665.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Responds to connection notifications.</para>
  1666.          </summary>
  1667.          <comments>
  1668.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications can not call this protected method. <method namespace="scktcomp" class="TClientWinSocket">Connect</method> is called in response to notifications that the client socket has successfully completed a connection to a server socket. The Socket parameter is the Windows socket handle for the socket that receives the notification.</para>
  1669.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1670.                      
  1671.                <method namespace="scktcomp" class="TClientWinSocket">Connect</method> generates an OnSocketEvent event with the SocketEvent parameter set to se<method namespace="scktcomp" class="TClientWinSocket">Connect</method>. Socket components assign an OnSocketEvent event handler that responds to this event by generating an On<method namespace="scktcomp" class="TClientWinSocket">Connect</method> event on the socket component.</para>
  1672.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1673.                      
  1674.                <para>
  1675.                         
  1676.                   <method namespace="scktcomp" class="TClientWinSocket">Connect</method> is only called if the ASyncStyles property includes as<method namespace="scktcomp" class="TClientWinSocket">Connect</method>.</para>
  1677.                   
  1678.             </note>
  1679.          </comments>
  1680.       </member>
  1681.       <member name="P:ScktComp.ScktComp.ClientType">
  1682.          <summary>
  1683.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies whether the client Windows socket reads and writes information asynchronously over the socket connection.</para>
  1684.          </summary>
  1685.          <comments>
  1686.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Client socket components set <property namespace="scktcomp" class="TClientWinSocket">ClientType</property> to reflect their own <property namespace="scktcomp" class="TClientWinSocket">ClientType</property> property. When <property namespace="scktcomp" class="TClientWinSocket">ClientType</property> is ctNonBlocking, the client Windows socket responds to asynchronous reading and writing events, and execution is not blocked by reading and writing over the connection. OnSocketEvent events occur when the socket needs to read or write over the connection.</para>
  1687.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When <property namespace="scktcomp" class="TClientWinSocket">ClientType</property> is ctBlocking, all reading and writing occur synchronously. It is a good idea to perform all reading and writing in a separate thread if <property namespace="scktcomp" class="TClientWinSocket">ClientType</property> is ctBlocking. Reading and writing in a separate thread ensures that these operations do not block all execution within the client application. </para>
  1688.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When <property namespace="scktcomp" class="TClientWinSocket">ClientType</property> is ctBlocking, use a TWinSocketStream object for reading and writing. TWinSocketStream times out so that the application does not hang when a problem occurs while reading or writing. TWinSocketStream also provides a method to wait, before reading, until the socket connection is ready to send information.</para>
  1689.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use a non-blocking socket when the socket needs to synchronize reading and writing with server sockets.</para>
  1690.          </comments>
  1691.       </member>
  1692.       <member name="T:ScktComp.TServerClientWinSocket">
  1693.          <summary>
  1694.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1695.                
  1696.                <class namespace="ScktComp">TServerClientWinSocket</class> describes the server endpoint of a socket connection to a client socket.</para>
  1697.          </summary>
  1698.          <comments>
  1699.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1700.                
  1701.                <class namespace="ScktComp">TServerClientWinSocket</class> is used by server socket components to manage the Windows socket API calls for the socket connection to an individual client socket. <class namespace="ScktComp">TServerClientWinSocket</class> objects are created when a client socket connection is accepted by a listening server socket. </para>
  1702.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications can create and customize the properties of a <class namespace="ScktComp">TServerClientWinSocket</class> object in an OnGetSocket event handler for a server socket component. Component writers can create descendants of <class namespace="ScktComp">TServerClientWinSocket</class> that may be substituted for <class namespace="ScktComp">TServerClientWinSocket</class> in the OnGetSocket event handler.</para>
  1703.          </comments>
  1704.       </member>
  1705.       <member name="M:ScktComp.ScktComp.Create">
  1706.          <summary>
  1707.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1708.                      
  1709.                <method namespace="ScktComp" class="TServerClientWinSocket">Create</method>s and initializes an instance of <method namespace="ScktComp" class="TServerClientWinSocket">TServerClientWinSocket</method>.</para>
  1710.          </summary>
  1711.          <comments>
  1712.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="ScktComp" class="TServerClientWinSocket">Create</method> to create an instance of <method namespace="ScktComp" class="TServerClientWinSocket">TServerClientWinSocket</method> in the OnGetSocket event handler of a server socket component. The Socket parameter is the Windows socket handle for the accepted socket connection to a client socket. The ServerWinSocket parameter is the Windows socket object for the listening connection that accepted the connection to the client socket.</para>
  1713.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1714.                      
  1715.                <method namespace="ScktComp" class="TServerClientWinSocket">Create</method> adds the new <method namespace="ScktComp" class="TServerClientWinSocket">TServerClientWinSocket</method> object to the list of connections maintained by the listening server socket. It then sets the OnSocketEvent event handler so that notifications from the connection to the client can be passed on to the server socket. After setting up the connection to the server socket, <method namespace="ScktComp" class="TServerClientWinSocket">Create</method> calls the inherited constructor.</para>
  1716.          </comments>
  1717.       </member>
  1718.       <member name="M:ScktComp.ScktComp.Destroy">
  1719.          <summary>
  1720.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1721.                      
  1722.                <method namespace="ScktComp" class="TServerClientWinSocket">Destroy</method>s an instance of <method namespace="ScktComp" class="TServerClientWinSocket">TServerClientWinSocket</method>.</para>
  1723.          </summary>
  1724.          <comments>
  1725.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="ScktComp" class="TServerClientWinSocket">Destroy</method> directly in an application. Instead, call Free. Free verifies that the <method namespace="ScktComp" class="TServerClientWinSocket">TServerClientWinSocket</method> reference is not nil, and only then calls <method namespace="ScktComp" class="TServerClientWinSocket">Destroy</method>. Instances of <method namespace="ScktComp" class="TServerClientWinSocket">TServerClientWinSocket</method> are freed automatically when the connection is closed.</para>
  1726.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1727.                      
  1728.                <method namespace="ScktComp" class="TServerClientWinSocket">Destroy</method> removes the <method namespace="ScktComp" class="TServerClientWinSocket">TServerClientWinSocket</method> from the list of connections maintained by the listening windows socket.</para>
  1729.          </comments>
  1730.       </member>
  1731.       <member name="P:ScktComp.ScktComp.ServerWinSocket">
  1732.          <summary>
  1733.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Describes the endpoint of the listening connection that accepted the connection to the client socket which is managed by this <property namespace="ScktComp" class="TServerClientWinSocket">TServerClientWinSocket</property>.</para>
  1734.          </summary>
  1735.          <comments>
  1736.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="ScktComp" class="TServerClientWinSocket">ServerWinSocket</property> to gain access to the Windows socket object for the listening connection that spawned this <property namespace="ScktComp" class="TServerClientWinSocket">TServerClientWinSocket</property>. Use the <property namespace="ScktComp" class="TServerClientWinSocket">ServerWinSocket</property> to trigger events that can be handled by the event handlers of the server socket, to get execution threads from the cache maintained by the Windows server socket, or to get information about the other active connections accepted by the server socket.</para>
  1737.          </comments>
  1738.       </member>
  1739.       <member name="T:ScktComp.TServerWinSocket">
  1740.          <summary>
  1741.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1742.                
  1743.                <class namespace="scktcomp">TServerWinSocket</class> describes the endpoint of a listening server socket connection.</para>
  1744.          </summary>
  1745.          <comments>
  1746.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1747.                
  1748.                <class namespace="scktcomp">TServerWinSocket</class> is used by server socket components to manage the Windows socket API calls for a TCP/IP listening connection. <class namespace="scktcomp">TServerWinSocket</class> introduces new properties, events, and methods to manage multiple socket connections to different client sockets, and to generate or reuse TServerClientThread objects that allow each client connection to have its own execution thread.</para>
  1749.          </comments>
  1750.       </member>
  1751.       <member name="M:ScktComp.ScktComp.GetClientThread">
  1752.          <summary>
  1753.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the execution thread used by the client connection managed by the ClientSocket parameter.</para>
  1754.          </summary>
  1755.          <comments>
  1756.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="scktcomp" class="TServerWinSocket">GetClientThread</method> to obtain access to the TServerClientThread for a particular client connection. <method namespace="scktcomp" class="TServerWinSocket">GetClientThread</method> allows an OnClient<condition language="Delphi">...</condition> event handler to access thread-global information saved in the Data property of the thread.</para>
  1757.          </comments>
  1758.       </member>
  1759.       <member name="M:ScktComp.ScktComp.Create">
  1760.          <summary>
  1761.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1762.                      
  1763.                <method namespace="scktcomp" class="TServerWinSocket">Create</method>s an instance of <method namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</method> from a Windows socket handle.</para>
  1764.          </summary>
  1765.          <comments>
  1766.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="scktcomp" class="TServerWinSocket">Create</method> to create a Windows listening socket object. Windows listening socket objects are created automatically by the server socket component that uses them.</para>
  1767.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1768.                      
  1769.                <method namespace="scktcomp" class="TServerWinSocket">Create</method> allocates the helper objects that manage the list of active client connections and the thread cache before calling the inherited constructor. <method namespace="scktcomp" class="TServerWinSocket">Create</method> also initializes the ASyncStyles property to [asAccept].</para>
  1770.          </comments>
  1771.       </member>
  1772.       <member name="M:ScktComp.ScktComp.Listen">
  1773.          <summary>
  1774.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Opens a listening connection for a server socket.</para>
  1775.          </summary>
  1776.          <comments>
  1777.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Server socket components call <method namespace="scktcomp" class="TServerWinSocket">Listen</method> to open a listening connection.</para>
  1778.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1779.                      
  1780.                <method namespace="scktcomp" class="TServerWinSocket">Listen</method> creates the Windows socket that will make the listening connection, and binds the Windows Internet socket address derived from the parameters to the socket. <method namespace="scktcomp" class="TServerWinSocket">Listen</method> then generates an OnSocketEvent of type se<method namespace="scktcomp" class="TServerWinSocket">Listen</method>. Finally, <method namespace="scktcomp" class="TServerWinSocket">Listen</method> opens the socket as a listening connection with a queue that can hold QueueSize client requests, setting the Connected property to true.</para>
  1781.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Name, Address, Service, and Port parameters are taken from the Host, Address, Service and Port properties of the server socket component. The QueueSize is set to 5 by TServerSocket.</para>
  1782.          </comments>
  1783.       </member>
  1784.       <member name="M:ScktComp.ScktComp.Accept">
  1785.          <summary>
  1786.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1787.                      
  1788.                <method namespace="scktcomp" class="TServerWinSocket">Accept</method>s a connection to a client socket.</para>
  1789.          </summary>
  1790.          <comments>
  1791.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1792.                      
  1793.                <method namespace="scktcomp" class="TServerWinSocket">Accept</method> is called automatically in response to notifications that a client socket is requesting a connection. The Socket parameter is the Windows socket handle for the listening connection.</para>
  1794.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1795.                      
  1796.                <method namespace="scktcomp" class="TServerWinSocket">Accept</method> accepts the client connection request, obtaining the Windows socket handle for the client connection. It then generates an OnGetSocket event, passing this socket handle as an argument to any event handler. If a TServerClientWinSocket is not created by an OnGetSocket event handler, <method namespace="scktcomp" class="TServerWinSocket">Accept</method> creates a TServerClientWinSocket to represent the server endpoint of the accepted connection. Next, <method namespace="scktcomp" class="TServerWinSocket">Accept</method> obtains a running TServerClientThread, either by restarting a thread in the cache, obtaining one from an OnGetThread event, or creating a new TServerClientThread object. This new thread handles the connection to the client socket.</para>
  1797.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1798.                      
  1799.                <method namespace="scktcomp" class="TServerWinSocket">Accept</method> is only called if the ASyncStyles property includes as<method namespace="scktcomp" class="TServerWinSocket">Accept</method>.</para>
  1800.          </comments>
  1801.       </member>
  1802.       <member name="M:ScktComp.ScktComp.Disconnect">
  1803.          <summary>
  1804.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Shuts down the socket connection represented by a Windows socket handle.</para>
  1805.          </summary>
  1806.          <comments>
  1807.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1808.                      
  1809.                <method namespace="scktcomp" class="TServerWinSocket">Disconnect</method> is called by the Close method to terminate the socket connection.</para>
  1810.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1811.                      
  1812.                <method namespace="scktcomp" class="TServerWinSocket">Disconnect</method> calls the Lock method to make sure the method is thread-safe. Then, it terminates all open connections to client sockets. Next it generates an OnSocketEvent of type se<method namespace="scktcomp" class="TServerWinSocket">Disconnect</method>. Finally, it closes the listening connection and calls Unlock to end the critical section started by Lock.</para>
  1813.          </comments>
  1814.       </member>
  1815.       <member name="M:ScktComp.ScktComp.Destroy">
  1816.          <summary>
  1817.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1818.                      
  1819.                <method namespace="scktcomp" class="TServerWinSocket">Destroy</method>s an instance of <method namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</method>.</para>
  1820.          </summary>
  1821.          <comments>
  1822.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="scktcomp" class="TServerWinSocket">Destroy</method> directly in an application. Instead, call Free. Free verifies that the Windows listening socket object is not nil, and only then calls <method namespace="scktcomp" class="TServerWinSocket">Destroy</method>. Unless the Windows socket object is not used by a server socket component, it is freed automatically by the socket component.</para>
  1823.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1824.                      
  1825.                <method namespace="scktcomp" class="TServerWinSocket">Destroy</method> frees the helper objects that manage the list of active client connections and the thread cache.</para>
  1826.          </comments>
  1827.       </member>
  1828.       <member name="P:ScktComp.ScktComp.ActiveConnections">
  1829.          <summary>
  1830.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the number of connections to client sockets accepted by this listening socket that are currently open.</para>
  1831.          </summary>
  1832.          <comments>
  1833.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TServerWinSocket">ActiveConnections</property> to monitor the use of the server socket. <property namespace="scktcomp" class="TServerWinSocket">ActiveConnections</property> is the number of entries in the Connections array. </para>
  1834.          </comments>
  1835.       </member>
  1836.       <member name="P:ScktComp.ScktComp.ActiveThreads">
  1837.          <summary>
  1838.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the number of TServerClientThread objects currently in use by the socket connections listed in the Connections array.</para>
  1839.          </summary>
  1840.          <comments>
  1841.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TServerWinSocket">ActiveThreads</property> to monitor thread usage by the listening socket. If <property namespace="scktcomp" class="TServerWinSocket">ActiveThreads</property> is usually much higher than ThreadCacheSize, increasing ThreadCacheSize should improve performance. To determine whether ThreadCacheSize is too high, use the IdleThreads property.</para>
  1842.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the ServerType property is stThreadBlocking, each client connection automatically spawns a thread which is added to the cache and counted by <property namespace="scktcomp" class="TServerWinSocket">ActiveThreads</property>.</para>
  1843.          </comments>
  1844.       </member>
  1845.       <member name="P:ScktComp.ScktComp.Connections">
  1846.          <summary>
  1847.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Lists all TServerClientWinSocket objects that represent open socket connections to client sockets that were accepted by this listening socket.</para>
  1848.          </summary>
  1849.          <comments>
  1850.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TServerWinSocket">Connections</property> with the Active<property namespace="scktcomp" class="TServerWinSocket">Connections</property> property to iterate over all open socket connections accepted by the listening socket. Each entry in the <property namespace="scktcomp" class="TServerWinSocket">Connections</property> array is a TServerClientWinSocket object, where an Index of 0 gives the first TServerClientWinSocket, an Index of 1 returns the second TServerClientWinSocket, and so on.</para>
  1851.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If ServerType is stThreadBlocking, the thread associated with each of the TServerClientWinSocket objects in the <property namespace="scktcomp" class="TServerWinSocket">Connections</property> array can be obtained using the GetClientThread method.</para>
  1852.          </comments>
  1853.       </member>
  1854.       <member name="P:ScktComp.ScktComp.IdleThreads">
  1855.          <summary>
  1856.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the number of unused TServerClientThread objects available in the cache.</para>
  1857.          </summary>
  1858.          <comments>
  1859.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TServerWinSocket">IdleThreads</property> to monitor thread cache usage by the listening socket. If <property namespace="scktcomp" class="TServerWinSocket">IdleThreads</property> often very high, the thread cache is tying up a lot of unused memory storing extra threads. Monitor the ActiveThreads property to determine an appropriate value for ThreadCacheSize.</para>
  1860.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the ServerType property is stThreadBlocking, each client connection automatically spawns a thread which is added to the cache. As the threads in the cache complete their execution, they become available for reuse, and are counted by <property namespace="scktcomp" class="TServerWinSocket">IdleThreads</property>. When there are more active threads than ThreadCacheSize, the extra threads are freed when they finish execution instead.</para>
  1861.          </comments>
  1862.       </member>
  1863.       <member name="P:ScktComp.ScktComp.ServerType">
  1864.          <summary>
  1865.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies whether each connection accepted by the server socket is non-blocking, or if it is automatically given a separate execution thread.</para>
  1866.          </summary>
  1867.          <comments>
  1868.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="scktcomp" class="TServerWinSocket">ServerType</property> to stThreadBlocking to automatically spawn a new thread for each socket connection accepted by the listening socket connection. When <property namespace="scktcomp" class="TServerWinSocket">ServerType</property> is stThreadBlocking, the TServerClientThread object for a connection generates OnClientRead or OnClientWrite events when the server socket needs to read or write. </para>
  1869.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="scktcomp" class="TServerWinSocket">ServerType</property> to stNonBlocking to handle all reading and writing over socket connections accepted by the listening socket asynchronously. When <property namespace="scktcomp" class="TServerWinSocket">ServerType</property> is stNonBlocking, all client connections are handled in a single execution thread by default. OnClientRead or OnClientWrite events occur when the server socket needs to attend to I/O over one of the connections.</para>
  1870.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use a non-blocking socket when reading and writing must be synchronized with client sockets.</para>
  1871.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1872.                      
  1873.                <para>When <property namespace="scktcomp" class="TServerWinSocket">ServerType</property> is stThreadBlocking, it is important that the OnClient<condition language="Delphi">...</condition> event handlers contain thread-safe code.</para>
  1874.                   
  1875.             </note>
  1876.          </comments>
  1877.       </member>
  1878.       <member name="P:ScktComp.ScktComp.ThreadCacheSize">
  1879.          <summary>
  1880.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the number of TServerClientThread objects cached for reuse by new connections to client sockets.</para>
  1881.          </summary>
  1882.          <comments>
  1883.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When ServerType is stThreadBlocking, each new connection that is accepted by the server socket is given a separate execution thread. In order to improve performance, server sockets store these threads in a cache rather than freeing them when the connection is closed. New connections can then reuse threads from the cache, rather than requiring the socket server to create a new thread every time a connection is accepted.</para>
  1884.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="scktcomp" class="TServerWinSocket">ThreadCacheSize</property> to specify the number of threads that are cached for reuse. The ideal value for <property namespace="scktcomp" class="TServerWinSocket">ThreadCacheSize</property> depends on the number and frequency of client socket requests received by the server socket. If <property namespace="scktcomp" class="TServerWinSocket">ThreadCacheSize</property> is too low, the server socket will spend more time freeing and creating threads when client connections are accepted. If <property namespace="scktcomp" class="TServerWinSocket">ThreadCacheSize</property> is too high, the server socket may unnecessarily lock up the memory for threads that are never reused.</para>
  1885.          </comments>
  1886.       </member>
  1887.       <member name="E:ScktComp.ScktComp.OnGetSocket">
  1888.          <summary>
  1889.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the server socket needs to create a new TServerClientWinSocket object to form the connection to a client socket.</para>
  1890.          </summary>
  1891.          <comments>
  1892.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="scktcomp" class="TServerWinSocket">OnGetSocket</event> event handler to create a specialized TServerClientWinSocket object to use in the connection represented by the Socket parameter. Return the new TServerClientWinSocket object in the ClientSocket parameter. </para>
  1893.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> object that received the client request. The Socket parameter is the Windows socket handle for the socket connection to the client socket.</para>
  1894.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1895.                      
  1896.                <para>The <event namespace="scktcomp" class="TServerWinSocket">OnGetSocket</event> event handler for <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> is also set when setting the <event namespace="scktcomp" class="TServerWinSocket">OnGetSocket</event> event handler of the associated TServerSocket.</para>
  1897.                   
  1898.             </note>
  1899.          </comments>
  1900.       </member>
  1901.       <member name="E:ScktComp.ScktComp.OnGetThread">
  1902.          <summary>
  1903.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the server socket needs to create a new execution thread for a connection to a client socket.</para>
  1904.          </summary>
  1905.          <comments>
  1906.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="scktcomp" class="TServerWinSocket">OnGetThread</event> event handler to create a specialized descendant of TServerClientThread for the connection to the client socket. Create the new thread with the CreateSuspended parameter set to false, and return it in the SocketThread parameter. <event namespace="scktcomp" class="TServerWinSocket">OnGetThread</event> only occurs if there are no idle threads in the cache.</para>
  1907.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Most applications that use thread-blocking connections will want to create a new descendant of TServerClientThread in an <event namespace="scktcomp" class="TServerWinSocket">OnGetThread</event> event handler. This is because the default behavior of TServerClientThread uses the OnClientRead and OnClientWrite event handlers for reading and writing. These events occur on the server socket, which is not thread-local.</para>
  1908.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> object that received the client request. The ClientSocket parameter is the TServerClientWinSocket object that will communicate with the client socket.</para>
  1909.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1910.                      
  1911.                <para>The <event namespace="scktcomp" class="TServerWinSocket">OnGetThread</event> event handler for <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> is also set when setting the <event namespace="scktcomp" class="TServerWinSocket">OnGetThread</event> event handler of the associated TServerSocket.</para>
  1912.                   
  1913.             </note>
  1914.          </comments>
  1915.       </member>
  1916.       <member name="E:ScktComp.ScktComp.OnThreadStart">
  1917.          <summary>
  1918.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the execution thread for a connection to a client socket starts up.</para>
  1919.          </summary>
  1920.          <comments>
  1921.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="scktcomp" class="TServerWinSocket">OnThreadStart</event> to initialize the TServerClientThread for the connection to a single client socket. The Sender parameter is the <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> that received the client request. The Thread parameter is the thread that is about to start execution.</para>
  1922.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1923.                      
  1924.                <para>The <event namespace="scktcomp" class="TServerWinSocket">OnThreadStart</event> event handler for <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> is also set when setting the <event namespace="scktcomp" class="TServerWinSocket">OnThreadStart</event> event handler of the associated TServerSocket.</para>
  1925.                   
  1926.             </note>
  1927.          </comments>
  1928.       </member>
  1929.       <member name="E:ScktComp.ScktComp.OnThreadEnd">
  1930.          <summary>
  1931.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a client socket connection is terminated and the associated thread finishes execution.</para>
  1932.          </summary>
  1933.          <comments>
  1934.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="scktcomp" class="TServerWinSocket">OnThreadEnd</event> to take specific action when the thread for a client connection finishes execution. <event namespace="scktcomp" class="TServerWinSocket">OnThreadEnd</event> occurs after the OnClientDisconnect event.</para>
  1935.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> that received the client request. The Thread parameter is the thread that is finishing up.</para>
  1936.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1937.                      
  1938.                <para>The <event namespace="scktcomp" class="TServerWinSocket">OnThreadEnd</event> event handler for <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> is also set when setting the <event namespace="scktcomp" class="TServerWinSocket">OnThreadEnd</event> event handler of the associated TServerSocket.</para>
  1939.                   
  1940.             </note>
  1941.          </comments>
  1942.       </member>
  1943.       <member name="E:ScktComp.ScktComp.OnClientConnect">
  1944.          <summary>
  1945.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a client socket completes a connection accepted by the listening socket.</para>
  1946.          </summary>
  1947.          <comments>
  1948.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="scktcomp" class="TServerWinSocket">OnClientConnect</event> event handler to take specific action when a client socket completes the socket connection to a TServerClientWinSocket object. Depending on the service, this is the point when the socket should begin reading or writing.</para>
  1949.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The order of Windows server socket events leading up to <event namespace="scktcomp" class="TServerWinSocket">OnClientConnect</event> is as follows:</para>
  1950.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1An OnSocketEvent event of type seListen occurs just before the Windows socket is opened for listening.</para>
  1951.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2The listening Windows socket receives client requests in a listening queue. The listening socket accepts one of those requests, and receives a Windows socket handle for the new socket connection.</para>
  1952.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">3The listening socket generates an OnGetSocket event, passing in the Windows socket handle. If a TServerClientWinSocket object for the Windows socket handle was not created in the OnGetSocket event handler, the Windows socket creates one. The Windows socket continues to listen for other clients.</para>
  1953.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">4An OnSocketEvent event of type seAccept occurs, using the new TServerClientWinSocket object.</para>
  1954.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">5If ServerType is stThreadBlocking and no thread is available in the cache, an OnGetThread event occurs. If the OnGetThread event handler does not create a thread, the Windows socket object creates a TServerClientThread.</para>
  1955.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">6If ServerType is stThreadBlocking, an OnThreadStart event occurs as the thread begins execution.</para>
  1956.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">7The client completes the connection to the TServerClientWinSocket object and an <event namespace="scktcomp" class="TServerWinSocket">OnClientConnect</event> event occurs.</para>
  1957.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the TServerWinClient object that listens for client requests. The Socket parameter is the TServerClientWinSocket object that forms a connection to the client socket.</para>
  1958.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1959.                      
  1960.                <para>If ServerType is stThreadBlocking, make sure that all code in an <event namespace="scktcomp" class="TServerWinSocket">OnClientConnect</event> event handler is thread-safe. Use the GetClientThread method to access thread-specific information.</para>
  1961.                   
  1962.             </note>
  1963.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1964.                      
  1965.                <para>The <event namespace="scktcomp" class="TServerWinSocket">OnClientConnect</event> event handler for <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> is also set when setting the <event namespace="scktcomp" class="TServerWinSocket">OnClientConnect</event> event handler of the associated TServerSocket.</para>
  1966.                   
  1967.             </note>
  1968.          </comments>
  1969.       </member>
  1970.       <member name="E:ScktComp.ScktComp.OnClientDisconnect">
  1971.          <summary>
  1972.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when one of the connections to a client socket is closed.</para>
  1973.          </summary>
  1974.          <comments>
  1975.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="scktcomp" class="TServerWinSocket">OnClientDisconnect</event> event handler to take specific action when the connection to a client socket is ending. The termination of a client request does not close the listening socket. The listening connection remains open for accepting new client connection requests.</para>
  1976.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The TServerClientWinSocket object associated with the client connection is freed after <event namespace="scktcomp" class="TServerWinSocket">OnClientDisconnect</event>. If ServerType is stThreadBlocking, OnThreadEnd occurs after <event namespace="scktcomp" class="TServerWinSocket">OnClientDisconnect</event>.</para>
  1977.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the TServerWinClient object that received the client request. The Socket parameter is the TServerClientWinSocket object that is ending a connection with the client socket.</para>
  1978.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1979.                      
  1980.                <para>If ServerType is stThreadBlocking, make sure that all code in an <event namespace="scktcomp" class="TServerWinSocket">OnClientDisconnect</event> event handler is thread-safe.Use the GetClientThread method to access thread-specific information.</para>
  1981.                   
  1982.             </note>
  1983.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <event namespace="scktcomp" class="TServerWinSocket">OnClientDisconnect</event> event handler for <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> is also set when setting the <event namespace="scktcomp" class="TServerWinSocket">OnClientDisconnect</event> event handler of the associated TServerSocket.</para>
  1984.          </comments>
  1985.       </member>
  1986.       <member name="E:ScktComp.ScktComp.OnClientRead">
  1987.          <summary>
  1988.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the server socket should read information from a client socket.</para>
  1989.          </summary>
  1990.          <comments>
  1991.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="scktcomp" class="TServerWinSocket">OnClientRead</event> event handler to read from the socket connection. Use a TWinSocketStream object or the methods of the Socket parameter to do the reading.</para>
  1992.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the TServerWinClient object that received the client request. The Socket parameter is the TServerClientWinSocket object that encapsulates the Windows socket connection. </para>
  1993.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1994.                      
  1995.                <para>If ServerType is stThreadBlocking, make sure that all code in an <event namespace="scktcomp" class="TServerWinSocket">OnClientRead</event> event handler is thread-safe. Use the GetClientThread method to access thread-specific information.</para>
  1996.                   
  1997.             </note>
  1998.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1999.                      
  2000.                <para>The <event namespace="scktcomp" class="TServerWinSocket">OnClientRead</event> event handler for <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> is also set when setting the <event namespace="scktcomp" class="TServerWinSocket">OnClientRead</event> event handler of the associated TServerSocket.</para>
  2001.                   
  2002.             </note>
  2003.          </comments>
  2004.       </member>
  2005.       <member name="E:ScktComp.ScktComp.OnClientWrite">
  2006.          <summary>
  2007.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the server socket should write information to a client socket.</para>
  2008.          </summary>
  2009.          <comments>
  2010.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="scktcomp" class="TServerWinSocket">OnClientWrite</event> event handler to write to the socket connection. Use a TWinSocketStream object or the methods of the Socket parameter to do the actual writing.</para>
  2011.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the TServerWinClient object that received the client request. The Socket parameter is the TServerClientWinSocket object that encapsulates the Windows socket connection.</para>
  2012.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2013.                      
  2014.                <para>If ServerType is stThreadBlocking, make sure that all code in an <event namespace="scktcomp" class="TServerWinSocket">OnClientWrite</event> event handler is thread-safe. Use the GetClientThread method to access thread-specific information.</para>
  2015.                   
  2016.             </note>
  2017.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2018.                      
  2019.                <para>The <event namespace="scktcomp" class="TServerWinSocket">OnClientWrite</event> event handler for <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> is also set when setting the <event namespace="scktcomp" class="TServerWinSocket">OnClientWrite</event> event handler of the associated TServerSocket.</para>
  2020.                   
  2021.             </note>
  2022.          </comments>
  2023.       </member>
  2024.       <member name="E:ScktComp.ScktComp.OnClientError">
  2025.          <summary>
  2026.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a failure is encountered when establishing, using, or terminating the socket connection to an individual client socket.</para>
  2027.          </summary>
  2028.          <comments>
  2029.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="scktcomp" class="TServerWinSocket">OnClientError</event> event handler to respond to errors that arise with the connection to a client socket. Set the ErrorCode parameter to 0 if the <event namespace="scktcomp" class="TServerWinSocket">OnClientError</event> event handler successfully deals with the error condition, to prevent an ESocketError from being raised.</para>
  2030.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the TServerWinClient object that received the client request. The Socket parameter is the TServerClientWinSocket object that manages the connection to the client. The ErrorEvent parameter indicates what Socket was attempting to do when the error occurred. The ErrorCode parameter is the error code returned by the Windows socket API call.</para>
  2031.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2032.                      
  2033.                <para>If ServerType is stThreadBlocking, make sure that all code in an <event namespace="scktcomp" class="TServerWinSocket">OnClientError</event> event handler is thread-safe. Use the GetClientThread method to access thread-specific information.</para>
  2034.                   
  2035.             </note>
  2036.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2037.                      
  2038.                <para>The <event namespace="scktcomp" class="TServerWinSocket">OnClientError</event> event handler for <event namespace="scktcomp" class="TServerWinSocket">TServerWinSocket</event> is also set when setting the <event namespace="scktcomp" class="TServerWinSocket">OnClientError</event> event handler of the associated TServerSocket.</para>
  2039.                   
  2040.             </note>
  2041.          </comments>
  2042.       </member>
  2043.       <member name="T:ScktComp.TServerClientThread">
  2044.          <summary>
  2045.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2046.                
  2047.                <class namespace="scktcomp">TServerClientThread</class> is an execution thread used for a single connection to a client socket accepted by a Windows server socket.</para>
  2048.          </summary>
  2049.          <comments>
  2050.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">TServerWinSocket objects spawn <class namespace="scktcomp">TServerClientThread</class> objects to handle separate client connections in separate execution threads. This allows server sockets to perform slow reading and writing operations with client sockets without adversely affecting the performance on other connections.</para>
  2051.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2052.                
  2053.                <class namespace="scktcomp">TServerClientThread</class> introduces new properties to</para>
  2054.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Access the TServerWinSocket object that spawned the thread and the TServerClientWinSocket that is connected to the client socket.</para>
  2055.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Store and access thread-specific data.</para>
  2056.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determine if the thread is stored in a thread cache maintained by the TServerWinSocket.</para>
  2057.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications that receive frequent client requests will want to derive a descendant class from <class namespace="scktcomp">TServerClientThread</class> to handle reading and writing to separate clients. This is because <class namespace="scktcomp">TServerClientThread</class> objects use the OnClientRead and OnClientWrite events of the associated server socket. These events are not thread-local.</para>
  2058.          </comments>
  2059.       </member>
  2060.       <member name="M:ScktComp.ScktComp.StartConnect">
  2061.          <summary>
  2062.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates when the thread is ready to execute.</para>
  2063.          </summary>
  2064.          <comments>
  2065.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Execute method calls <method namespace="scktcomp" class="TServerClientThread">StartConnect</method> to determine when to call ClientExecute. <method namespace="scktcomp" class="TServerClientThread">StartConnect</method> waits until the Reactivate method has signaled that the thread is properly initialized, and then returns true if the thread is ready to run. If the thread is terminated for any reason before it is fully initialized, <method namespace="scktcomp" class="TServerClientThread">StartConnect</method> returns false.</para>
  2066.          </comments>
  2067.       </member>
  2068.       <member name="M:ScktComp.ScktComp.EndConnect">
  2069.          <summary>
  2070.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the thread should execute again for another client.</para>
  2071.          </summary>
  2072.          <comments>
  2073.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Execute method calls <method namespace="scktcomp" class="TServerClientThread">EndConnect</method> when the ClientExecute method finishes. It frees all memory associated with the current client connection and checks whether the Thread is being reused for another client connection. If the thread should be reused, <method namespace="scktcomp" class="TServerClientThread">EndConnect</method> returns true to indicate that the ClientExecute method should be called again.</para>
  2074.          </comments>
  2075.       </member>
  2076.       <member name="M:ScktComp.ScktComp.Create">
  2077.          <summary>
  2078.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2079.                      
  2080.                <method namespace="scktcomp" class="TServerClientThread">Create</method>s an instance of <method namespace="scktcomp" class="TServerClientThread">TServerClientThread</method>.</para>
  2081.          </summary>
  2082.          <comments>
  2083.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="scktcomp" class="TServerClientThread">Create</method> to create an instance of <method namespace="scktcomp" class="TServerClientThread">TServerClientThread</method> for a connection to a client socket, and add the thread to the cache maintained by the associated listening socket.</para>
  2084.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes FreeOnTerminate to true.</para>
  2085.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes Priority to tpHigher.</para>
  2086.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes ClientSocket to the ASocket parameter and ServerSocket to ASocket.ServerWinSocket.</para>
  2087.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Starts the thread executing.</para>
  2088.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Adds the thread to the cache maintained by ServerSocket.</para>
  2089.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the OnErrorEvent and OnSocketEvent event handlers of ClientSocket so that events are sent to ServerSocket.</para>
  2090.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Signals when initialization is complete and the thread is ready for reading from or writing to the client connection.</para>
  2091.          </comments>
  2092.       </member>
  2093.       <member name="M:ScktComp.ScktComp.DoTerminate">
  2094.          <summary>
  2095.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Removes the thread from the list of active threads maintained by the associated server socket.</para>
  2096.          </summary>
  2097.          <comments>
  2098.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2099.                      
  2100.                <method namespace="scktcomp" class="TServerClientThread">DoTerminate</method> overrides the inherited method to suppress the OnTerminate event. Instead, it removes the thread from the Connections property of the associated TServerWinSocket. The thread is then either added to the server socket's thread cache or destroyed.</para>
  2101.          </comments>
  2102.       </member>
  2103.       <member name="M:ScktComp.ScktComp.Execute">
  2104.          <summary>
  2105.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Manages the caching of server client threads and calls the Client<method namespace="scktcomp" class="TServerClientThread">Execute</method> method to run the thread for individual client connections. </para>
  2106.          </summary>
  2107.          <comments>
  2108.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2109.                      
  2110.                <method namespace="scktcomp" class="TServerClientThread">Execute</method> is called automatically when the thread runs. A thread runs when Create is called if CreateSuspended set to false, or when Resume is first called after the thread is created if CreateSuspended set to true.</para>
  2111.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not override the <method namespace="scktcomp" class="TServerClientThread">Execute</method> method to implement the thread function of a <method namespace="scktcomp" class="TServerClientThread">TServerClientThread</method> descendant. Instead, override the Client<method namespace="scktcomp" class="TServerClientThread">Execute</method> method, which is run after the thread is initialized for a particular client connection.</para>
  2112.          </comments>
  2113.       </member>
  2114.       <member name="M:ScktComp.ScktComp.ClientExecute">
  2115.          <summary>
  2116.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Simulates OnClientRead and OnClientWrite events for the associated server socket.</para>
  2117.          </summary>
  2118.          <comments>
  2119.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2120.                      
  2121.                <method namespace="scktcomp" class="TServerClientThread">TServerClientThread</method> calls <method namespace="scktcomp" class="TServerClientThread">ClientExecute</method> from its Execute method. <method namespace="scktcomp" class="TServerClientThread">ClientExecute</method> checks whether there is any information to read from the associated socket connection, and if so, simulates an OnClientRead event on the associated server socket. If there is no information sent from the client, <method namespace="scktcomp" class="TServerClientThread">ClientExecute</method> simulates an OnClientWrite event.</para>
  2122.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Because the server socket that receives these events is not local to the thread, the events occur within the main VCL thread using the Synchronize method. This method can be too slow if the server socket has many client connections, because each thread must wait for any other thread to finish reading or writing. When a server socket receives many client connection requests, override <method namespace="scktcomp" class="TServerClientThread">ClientExecute</method> to handle the reading or writing using a thread-local instance of TWinSocketStream. In the <method namespace="scktcomp" class="TServerClientThread">ClientExecute</method> method, be sure to check the Terminated property periodically.</para>
  2123.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2124.                      
  2125.                <para>Do not use the properties and methods of global objects directly in the <method namespace="scktcomp" class="TServerClientThread">ClientExecute</method> method.  Instead, separate the use of objects that are not thread-local into a separate procedure call, and call that procedure by passing it as a parameter to the Synchronize method.</para>
  2126.                   
  2127.             </note>
  2128.          </comments>
  2129.       </member>
  2130.       <member name="M:ScktComp.ScktComp.Error">
  2131.          <summary>
  2132.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an OnClient<method namespace="scktcomp" class="TServerClientThread">Error</method> event for the associated server socket.</para>
  2133.          </summary>
  2134.          <comments>
  2135.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2136.                      
  2137.                <method namespace="scktcomp" class="TServerClientThread">TServerClientThread</method> assigns the <method namespace="scktcomp" class="TServerClientThread">Error</method> method as an event handler for the On<method namespace="scktcomp" class="TServerClientThread">Error</method>Event method of the associated TClientWinSocket object. This allows errors received from the client to generate OnClient<method namespace="scktcomp" class="TServerClientThread">Error</method> events on the server socket.</para>
  2138.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2139.                      
  2140.                <para>
  2141.                         
  2142.                   <method namespace="scktcomp" class="TServerClientThread">Error</method> is not thread-safe. It should not be called from the server client thread. It is only intended for use by the associated client socket, which is not local to the server client thread.</para>
  2143.                   
  2144.             </warning>
  2145.          </comments>
  2146.       </member>
  2147.       <member name="M:ScktComp.ScktComp.HandleException">
  2148.          <summary>
  2149.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Displays an error message using the main VCL thread. </para>
  2150.          </summary>
  2151.          <comments>
  2152.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2153.                      
  2154.                <method namespace="scktcomp" class="TServerClientThread">HandleException</method> obtains the current exception object and calls TApplication.ShowException (for descendants of Exception) or the global ShowException procedure (for other objects) to display an error message. <method namespace="scktcomp" class="TServerClientThread">HandleException</method> wraps the call to ShowException in the Synchronize method to ensure that the call is thread-safe.</para>
  2155.          </comments>
  2156.       </member>
  2157.       <member name="M:ScktComp.ScktComp.ReActivate">
  2158.          <summary>
  2159.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes the thread for a particular client connection. </para>
  2160.          </summary>
  2161.          <comments>
  2162.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2163.                      
  2164.                <method namespace="scktcomp" class="TServerClientThread">Reactivate</method> is called when the thread is created or reactivated from the server socket's cache of threads. It assigns the Error and Event methods as event handlers for the associated TServerWinSocket, and informs the server socket that the thread is now active.</para>
  2165.          </comments>
  2166.       </member>
  2167.       <member name="M:ScktComp.ScktComp.Destroy">
  2168.          <summary>
  2169.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2170.                      
  2171.                <method namespace="scktcomp" class="TServerClientThread">Destroy</method>s the server client thread object and releases the memory allocated to it.</para>
  2172.          </summary>
  2173.          <comments>
  2174.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="scktcomp" class="TServerClientThread">Destroy</method> directly in an application. ServerClientThread objects are freed by the TServerWinSocket object that manages them.</para>
  2175.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2176.                      
  2177.                <method namespace="scktcomp" class="TServerClientThread">Destroy</method> frees the TServerClientWinSocket object that encapsulates the connection to the client socket before calling the inherited destructor.</para>
  2178.          </comments>
  2179.       </member>
  2180.       <member name="P:ScktComp.ScktComp.ClientSocket">
  2181.          <summary>
  2182.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the TServerClientWinSocket object that uses the thread for all reading and writing over the socket connection.</para>
  2183.          </summary>
  2184.          <comments>
  2185.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TServerClientThread">ClientSocket</property> to gain direct access to the Windows socket component that uses the thread. If <property namespace="scktcomp" class="TServerClientThread">ClientSocket</property> is nil (Delphi) or NULL (C++), the thread is idle and available for reuse by another TServerClientWinSocket object. <property namespace="scktcomp" class="TServerClientThread">TServerClientThread</property> uses <property namespace="scktcomp" class="TServerClientThread">ClientSocket</property> to read from or write to the socket connection.</para>
  2186.          </comments>
  2187.       </member>
  2188.       <member name="P:ScktComp.ScktComp.ServerSocket">
  2189.          <summary>
  2190.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the TServerWinSocket object that manages all the <property namespace="scktcomp" class="TServerClientThread">TServerClientThread</property> objects for its client connections.</para>
  2191.          </summary>
  2192.          <comments>
  2193.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TServerClientThread">ServerSocket</property> to get direct access to the listening Windows socket object that spawned the thread for a client connection it accepted. <property namespace="scktcomp" class="TServerClientThread">TServerClientThread</property> passes events and errors to the appropriate event handlers assigned to <property namespace="scktcomp" class="TServerClientThread">ServerSocket</property>. <property namespace="scktcomp" class="TServerClientThread">TServerClientThread</property> adds itself to the cache of threads maintained by <property namespace="scktcomp" class="TServerClientThread">ServerSocket</property> from its constructor, and removes itself when the thread terminates.</para>
  2194.          </comments>
  2195.       </member>
  2196.       <member name="P:ScktComp.ScktComp.KeepInCache">
  2197.          <summary>
  2198.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether the thread should be kept in the thread cache maintained by ServerSocket.</para>
  2199.          </summary>
  2200.          <comments>
  2201.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The TServerWinSocket that spawns server client threads for its connections to client sockets maintains a cache of server client threads for reuse. As server client threads are activated, the TServerWinSocket object sets the <property namespace="scktcomp" class="TServerClientThread">KeepInCache</property> property to indicate whether the thread will fit in the thread cache.</para>
  2202.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When <property namespace="scktcomp" class="TServerClientThread">KeepInCache</property> is true, FreeOnTerminate is set to false before the thread terminates, and the thread is left in the thread cache. When <property namespace="scktcomp" class="TServerClientThread">KeepInCache</property> is false, the thread is freed when execution terminates.</para>
  2203.          </comments>
  2204.       </member>
  2205.       <member name="P:ScktComp.ScktComp.Data">
  2206.          <summary>
  2207.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Points to application-specific data associated with the thread.</para>
  2208.          </summary>
  2209.          <comments>
  2210.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="scktcomp" class="TServerClientThread">Data</property> to associate information with the thread object. <property namespace="scktcomp" class="TServerClientThread">Data</property> can store information in a thread-safe manner that would otherwise require the use of global variables.</para>
  2211.          </comments>
  2212.       </member>
  2213.       <member name="T:ScktComp.TAbstractSocket">
  2214.          <summary>
  2215.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2216.                
  2217.                <class namespace="Scktcomp">TAbstractSocket</class> is the abstract base class for all socket components.</para>
  2218.          </summary>
  2219.          <comments>
  2220.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2221.                
  2222.                <class namespace="Scktcomp">TAbstractSocket</class> introduces properties and methods to enable an application to work with sockets. A socket encapsulates a set of communication protocols to allow the application to connect to other machines for reading or writing information. Sockets provide connections based on the TCP/IP protocol. They also allow connections that use the Xerox Network System (XNS), Digital's DECnet protocol, or Novell's IPX/SPX family. Sockets allow an application to form connections to other machines without being concerned with the details of the actual networking software.</para>
  2223.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The properties of <class namespace="Scktcomp">TAbstractSocket</class> describe the IP address of the socket and service it provides or seeks. Not all descendants of <class namespace="Scktcomp">TAbstractSocket</class> use all of these properties. For example, server sockets do not surface the IP address because it is read implicitly from the system running the application.</para>
  2224.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not create instances of <class namespace="Scktcomp">TAbstractSocket</class>. Use a descendant of <class namespace="Scktcomp">TAbstractSocket</class> to add the ability to communicate with other machines to an application. To create a socket that initiates the connection with another machine, use TClientSocket. To create a socket that responds to requests for connections from other machines, use TServerSocket.</para>
  2225.          </comments>
  2226.       </member>
  2227.       <member name="M:ScktComp.ScktComp.Event">
  2228.          <summary>
  2229.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2230.                      
  2231.                <condition os="Windows">Provides the prototype of a method that responds when specific socket events occur.</condition>
  2232.                   
  2233.             </para>
  2234.          </summary>
  2235.          <comments>
  2236.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2237.                      
  2238.                <condition os="Windows">Descendants of <method namespace="Scktcomp" class="TAbstractSocket">TAbstractSocket</method> must override the abstract or, in C++ terminology, pure virtual <method namespace="Scktcomp" class="TAbstractSocket">Event</method> method to provide a response to calls that arise during the normal functioning of the socket. Applications cannot call <method namespace="Scktcomp" class="TAbstractSocket">Event</method>. The Windows socket object calls <method namespace="Scktcomp" class="TAbstractSocket">Event</method> at appropriate times.</condition>
  2239.                   
  2240.             </para>
  2241.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2242.                      
  2243.                <condition os="Windows">The Socket parameter indicates the Windows socket object that calls <method namespace="Scktcomp" class="TAbstractSocket">Event</method> to indicate when specific events occur. </condition>
  2244.                   
  2245.             </para>
  2246.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2247.                      
  2248.                <condition os="Windows">The Socket<method namespace="Scktcomp" class="TAbstractSocket">Event</method> parameter indicates the event that occurred. It has one of the following values:</condition>
  2249.                   
  2250.             </para>
  2251.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2252.                      
  2253.                <tr>
  2254.                         
  2255.                   <th>Value</th>
  2256.                         
  2257.                   <th>Meaning</th>
  2258.                      
  2259.                </tr>
  2260.                      
  2261.                <tr>
  2262.                         
  2263.                   <td>
  2264.                            
  2265.                      <para>seLookup</para>
  2266.                         
  2267.                   </td>
  2268.                         
  2269.                   <td>
  2270.                            
  2271.                      <para>(client sockets only) The Windows socket object is about to locate the server socket. Changing the properties of the client socket has no effect at this point, but changes to the Windows socket object specified by the Socket parameter will affect the attempted connection.</para>
  2272.                         
  2273.                   </td>
  2274.                      
  2275.                </tr>
  2276.                      
  2277.                <tr>
  2278.                         
  2279.                   <td>
  2280.                            
  2281.                      <para>seConnecting</para>
  2282.                         
  2283.                   </td>
  2284.                         
  2285.                   <td>
  2286.                            
  2287.                      <para>(client sockets only) The server socket has been located but the connection isn't completed. This is the first opportunity to obtain the actual server port and IP address used for the connection, which may differ from those of the listening socket contacted initially.</para>
  2288.                         
  2289.                   </td>
  2290.                      
  2291.                </tr>
  2292.                      
  2293.                <tr>
  2294.                         
  2295.                   <td>
  2296.                            
  2297.                      <para>seConnect</para>
  2298.                         
  2299.                   </td>
  2300.                         
  2301.                   <td>
  2302.                            
  2303.                      <para>The socket connection has just been established. This is the point when a socket starts reading or writing over the connection.</para>
  2304.                         
  2305.                   </td>
  2306.                      
  2307.                </tr>
  2308.                      
  2309.                <tr>
  2310.                         
  2311.                   <td>
  2312.                            
  2313.                      <para>seListen</para>
  2314.                         
  2315.                   </td>
  2316.                         
  2317.                   <td>
  2318.                            
  2319.                      <para>(server sockets only) The Windows socket object has been initialized and is about to open a listening connection. Changing the properties of the server socket has no effect at this point, but changes to the Windows socket object specified by the Socket parameter will the listening connection.</para>
  2320.                         
  2321.                   </td>
  2322.                      
  2323.                </tr>
  2324.                      
  2325.                <tr>
  2326.                         
  2327.                   <td>
  2328.                            
  2329.                      <para>seAccept</para>
  2330.                         
  2331.                   </td>
  2332.                         
  2333.                   <td>
  2334.                            
  2335.                      <para>(server sockets only) A client connection request has just been accepted. This is the first opportunity to obtain the port and IP address of the individual client connection.</para>
  2336.                         
  2337.                   </td>
  2338.                      
  2339.                </tr>
  2340.                      
  2341.                <tr>
  2342.                         
  2343.                   <td>
  2344.                            
  2345.                      <para>seWrite</para>
  2346.                         
  2347.                   </td>
  2348.                         
  2349.                   <td>
  2350.                            
  2351.                      <para>The socket is ready for information to be written.</para>
  2352.                         
  2353.                   </td>
  2354.                      
  2355.                </tr>
  2356.                      
  2357.                <tr>
  2358.                         
  2359.                   <td>
  2360.                            
  2361.                      <para>seRead</para>
  2362.                         
  2363.                   </td>
  2364.                         
  2365.                   <td>
  2366.                            
  2367.                      <para>The socket is receiving information from a socket on the other end of the connection.</para>
  2368.                         
  2369.                   </td>
  2370.                      
  2371.                </tr>
  2372.                   
  2373.             </table>
  2374.          </comments>
  2375.       </member>
  2376.       <member name="M:ScktComp.ScktComp.Error">
  2377.          <summary>
  2378.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2379.                      
  2380.                <condition os="Windows">Provides the prototype of a method that responds to error conditions.</condition>
  2381.                   
  2382.             </para>
  2383.          </summary>
  2384.          <comments>
  2385.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2386.                      
  2387.                <condition os="Windows">Descendants of <method namespace="Scktcomp" class="TAbstractSocket">TAbstractSocket</method> must override the abstract or, in C++ terminology, pure virtual <method namespace="Scktcomp" class="TAbstractSocket">Error</method> method to provide a response when socket errors occur. Applications cannot call <method namespace="Scktcomp" class="TAbstractSocket">Error</method>. The Windows socket object that encounters the error condition calls <method namespace="Scktcomp" class="TAbstractSocket">Error</method> automatically.</condition>
  2388.                   
  2389.             </para>
  2390.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2391.                      
  2392.                <condition os="Windows">The Socket parameter indicates the Windows socket object that encounters the error condition. </condition>
  2393.                   
  2394.             </para>
  2395.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2396.                      
  2397.                <condition os="Windows">The <method namespace="Scktcomp" class="TAbstractSocket">Error</method>Event parameter indicates what the socket was trying to do when the error occurred. It has one of the following values:</condition>
  2398.                   
  2399.             </para>
  2400.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2401.                      
  2402.                <tr>
  2403.                         
  2404.                   <th>Value</th>
  2405.                         
  2406.                   <th>Meaning</th>
  2407.                      
  2408.                </tr>
  2409.                      
  2410.                <tr>
  2411.                         
  2412.                   <td>
  2413.                            
  2414.                      <para>eeGeneral</para>
  2415.                         
  2416.                   </td>
  2417.                         
  2418.                   <td>
  2419.                            
  2420.                      <para>The socket received an error message that does not fit into any of the following categories.</para>
  2421.                         
  2422.                   </td>
  2423.                      
  2424.                </tr>
  2425.                      
  2426.                <tr>
  2427.                         
  2428.                   <td>
  2429.                            
  2430.                      <para>eeSend</para>
  2431.                         
  2432.                   </td>
  2433.                         
  2434.                   <td>
  2435.                            
  2436.                      <para>An error occurred when trying to write to the socket connection.</para>
  2437.                         
  2438.                   </td>
  2439.                      
  2440.                </tr>
  2441.                      
  2442.                <tr>
  2443.                         
  2444.                   <td>
  2445.                            
  2446.                      <para>eeReceive</para>
  2447.                         
  2448.                   </td>
  2449.                         
  2450.                   <td>
  2451.                            
  2452.                      <para>An error occurred when trying to read from the socket connection.</para>
  2453.                         
  2454.                   </td>
  2455.                      
  2456.                </tr>
  2457.                      
  2458.                <tr>
  2459.                         
  2460.                   <td>
  2461.                            
  2462.                      <para>eeConnect</para>
  2463.                         
  2464.                   </td>
  2465.                         
  2466.                   <td>
  2467.                            
  2468.                      <para>For client sockets, this indicates that the client socket can't locate the server, or that a problem on the server prevents the opening of a connection. For server sockets, this indicates that a client connection request that has already been accepted could not be completed. </para>
  2469.                         
  2470.                   </td>
  2471.                      
  2472.                </tr>
  2473.                      
  2474.                <tr>
  2475.                         
  2476.                   <td>
  2477.                            
  2478.                      <para>eeDisconnect</para>
  2479.                         
  2480.                   </td>
  2481.                         
  2482.                   <td>
  2483.                            
  2484.                      <para>An error occurred when trying to close a connection.</para>
  2485.                         
  2486.                   </td>
  2487.                      
  2488.                </tr>
  2489.                      
  2490.                <tr>
  2491.                         
  2492.                   <td>
  2493.                            
  2494.                      <para>eeAccept</para>
  2495.                         
  2496.                   </td>
  2497.                         
  2498.                   <td>
  2499.                            
  2500.                      <para>For server sockets only, this indicates that a problem occurred when trying to accept a client connection request.</para>
  2501.                         
  2502.                   </td>
  2503.                      
  2504.                </tr>
  2505.                   
  2506.             </table>
  2507.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2508.                      
  2509.                <condition os="Windows">The <method namespace="Scktcomp" class="TAbstractSocket">Error</method>Code parameter is the error code received by the Windows socket object. Setting this value to 0 in the <method namespace="Scktcomp" class="TAbstractSocket">Error</method> method prevents the socket from raising an exception. For information on possible error codes, see the Microsoft documentation on Windows sockets.</condition>
  2510.                   
  2511.             </para>
  2512.          </comments>
  2513.       </member>
  2514.       <member name="M:ScktComp.ScktComp.DoActivate">
  2515.          <summary>
  2516.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides the prototype of a method to open or close the socket connection.</para>
  2517.          </summary>
  2518.          <comments>
  2519.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendants of <method namespace="Scktcomp" class="TAbstractSocket">TAbstractSocket</method> override <method namespace="Scktcomp" class="TAbstractSocket">DoActivate</method> to provide a method that initiates or terminates the socket connection. The steps that need to be taken to open or close a connection depend on whether the socket is a client socket or a server socket.</para>
  2520.          </comments>
  2521.       </member>
  2522.       <member name="M:ScktComp.ScktComp.InitSocket">
  2523.          <summary>
  2524.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2525.                      
  2526.                <condition os="Windows">Tells a Windows socket object to call the Error and Event methods.</condition>
  2527.                   
  2528.             </para>
  2529.          </summary>
  2530.          <comments>
  2531.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2532.                      
  2533.                <condition os="Windows">Applications cannot call this protected method. <method namespace="Scktcomp" class="TAbstractSocket">InitSocket</method> is called automatically by the socket's constructor, immediately after the Windows socket object is created. It allows the socket component to respond to events on the Windows socket object by assigning an OnErrorEvent handler that calls Error and an OnSocketEvent handler that calls Event.</condition>
  2534.                   
  2535.             </para>
  2536.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2537.                      
  2538.                <condition os="Windows">The Socket parameter specifies the Windows socket object that passes events on to the socket component.</condition>
  2539.                   
  2540.             </para>
  2541.          </comments>
  2542.       </member>
  2543.       <member name="M:ScktComp.ScktComp.Loaded">
  2544.          <summary>
  2545.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Opens or closes the socket connection when the socket is loaded from a file, depending on the saved value of the Active property. </para>
  2546.          </summary>
  2547.          <comments>
  2548.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications cannot call this protected method. <method namespace="Scktcomp" class="TAbstractSocket">Loaded</method> is called automatically after the socket component has been loaded from a stream. <method namespace="Scktcomp" class="TAbstractSocket">Loaded</method> overrides the default method to implement the value of the Active property that was saved with the socket component.</para>
  2549.          </comments>
  2550.       </member>
  2551.       <member name="M:ScktComp.ScktComp.Open">
  2552.          <summary>
  2553.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2554.                      
  2555.                <method namespace="Scktcomp" class="TAbstractSocket">Open</method>s the socket connection.</para>
  2556.          </summary>
  2557.          <comments>
  2558.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Scktcomp" class="TAbstractSocket">Open</method> to initiate the socket connection. <method namespace="Scktcomp" class="TAbstractSocket">Open</method> sets the Active property to true.</para>
  2559.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For client sockets, <method namespace="Scktcomp" class="TAbstractSocket">Open</method> locates and connects to a server. For server sockets, <method namespace="Scktcomp" class="TAbstractSocket">Open</method> opens the socket connection in a listening mode, but does not complete the connection to a client socket.</para>
  2560.          </comments>
  2561.       </member>
  2562.       <member name="M:ScktComp.ScktComp.Close">
  2563.          <summary>
  2564.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Shuts down the socket connection.</para>
  2565.          </summary>
  2566.          <comments>
  2567.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Scktcomp" class="TAbstractSocket">Close</method> to shut down the socket connection. <method namespace="Scktcomp" class="TAbstractSocket">Close</method> sets the Active property to false.</para>
  2568.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For client sockets, <method namespace="Scktcomp" class="TAbstractSocket">Close</method> terminates the connection to the server. For server sockets, <method namespace="Scktcomp" class="TAbstractSocket">Close</method> shuts down the connection so that the server socket is no longer listening for client requests.</para>
  2569.          </comments>
  2570.       </member>
  2571.       <member name="P:ScktComp.ScktComp.Active">
  2572.          <summary>
  2573.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the socket connection is open and available for communication with other machines.</para>
  2574.          </summary>
  2575.          <comments>
  2576.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Before attempting to use or change the socket connection, read <property namespace="Scktcomp" class="TAbstractSocket">Active</property> to determine whether the connection is open and ready. For client sockets, setting <property namespace="Scktcomp" class="TAbstractSocket">Active</property> opens or shuts down a socket connection to another machine. For server sockets, setting <property namespace="Scktcomp" class="TAbstractSocket">Active</property> opens or shuts down a listening connection that makes the socket available for client requests.</para>
  2577.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">At design time, set <property namespace="Scktcomp" class="TAbstractSocket">Active</property> to true to make the socket open a connection when the application starts running. At runtime, use the Open or Close method to open or close the connection.</para>
  2578.          </comments>
  2579.       </member>
  2580.       <member name="P:ScktComp.ScktComp.Address">
  2581.          <summary>
  2582.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the IP address of the server system.</para>
  2583.          </summary>
  2584.          <comments>
  2585.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2586.                      
  2587.                <property namespace="Scktcomp" class="TAbstractSocket">Address</property> is a string of four numeric (byte) values in the standard Internet dot notation, such as</para>
  2588.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">123.197.1.2</codeBlock>
  2589.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For client sockets, set <property namespace="Scktcomp" class="TAbstractSocket">Address</property> to the IP address of the server to which the socket should connect. When the connection is opened, the value of <property namespace="Scktcomp" class="TAbstractSocket">Address</property> is bound to the connection.</para>
  2590.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the socket specifies the Host property, the address for the connection is taken from the IP address associated with Host, rather than the value of <property namespace="Scktcomp" class="TAbstractSocket">Address</property>. Specifying the server system by giving the IP address is faster, because the socket doesn't need to search for the IP address associated with the host name before it can locate the server system.</para>
  2591.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A single system may support more than one IP address.</para>
  2592.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2593.                      
  2594.                <para>Trying to change <property namespace="Scktcomp" class="TAbstractSocket">Address</property> when the connection is open will raise an ESocketError exception.</para>
  2595.                   
  2596.             </note>
  2597.          </comments>
  2598.       </member>
  2599.       <member name="P:ScktComp.ScktComp.Host">
  2600.          <summary>
  2601.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies an alias for the IP address of the server system.</para>
  2602.          </summary>
  2603.          <comments>
  2604.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2605.                      
  2606.                <property namespace="Scktcomp" class="TAbstractSocket">Host</property> is a string containing the domain name and service of a particular system, such as </para>
  2607.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">http://www.wSite.Com</codeBlock>
  2608.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For client sockets, set <property namespace="Scktcomp" class="TAbstractSocket">Host</property> to the system with which the client socket should form a connection. When the socket opens a connection, it looks up the IP address for the server socket using the value of <property namespace="Scktcomp" class="TAbstractSocket">Host</property>.</para>
  2609.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Some servers change the system or IP address that is associated with a particular host name. Using a host name allows the client socket to find the abstract site represented by the host name, even when it has moved to a new IP address.</para>
  2610.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="Scktcomp" class="TAbstractSocket">Host</property> is set, it takes precedence over the Address property when looking up the address of the server.</para>
  2611.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2612.                      
  2613.                <para>Trying to change <property namespace="Scktcomp" class="TAbstractSocket">Host</property> when the connection is open will raise an ESocketError exception.</para>
  2614.                   
  2615.             </note>
  2616.          </comments>
  2617.       </member>
  2618.       <member name="P:ScktComp.ScktComp.Port">
  2619.          <summary>
  2620.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the ID number that identifies the server socket connection.</para>
  2621.          </summary>
  2622.          <comments>
  2623.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2624.                      
  2625.                <property namespace="Scktcomp" class="TAbstractSocket">Port</property> numbers allow a single system, identified by the Host or Address property, to host multiple connections simultaneously. Many values of <property namespace="Scktcomp" class="TAbstractSocket">Port</property> are associated by convention with a particular service such as ftp or http.</para>
  2626.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For server sockets, <property namespace="Scktcomp" class="TAbstractSocket">Port</property> is the ID of the connection on which the server socket listens for client requests. Server sockets generally set <property namespace="Scktcomp" class="TAbstractSocket">Port</property> to a predefined value which clients can use to initiate connections.</para>
  2627.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For client sockets, <property namespace="Scktcomp" class="TAbstractSocket">Port</property> is the ID of the desired server connection. The value of <property namespace="Scktcomp" class="TAbstractSocket">Port</property> is usually associated with the service the client wishes to use on the server application.</para>
  2628.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2629.                      
  2630.                <para>Trying to change <property namespace="Scktcomp" class="TAbstractSocket">Port</property> when the connection is open will raise an ESocketError exception.</para>
  2631.                   
  2632.             </note>
  2633.          </comments>
  2634.       </member>
  2635.       <member name="P:ScktComp.ScktComp.Service">
  2636.          <summary>
  2637.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the name of the service for which the socket connection is used.</para>
  2638.          </summary>
  2639.          <comments>
  2640.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Scktcomp" class="TAbstractSocket">Service</property> to identify the use of the connection. <condition os="Windows">Windows provides</condition>
  2641.                      
  2642.                <condition os="Linux">There are</condition> a number of standard service names such as ftp, http, finger, and time. Servers can specify additional services and their associated ports<condition os="Windows"> in a SERVICES file</condition>.<condition os="Windows"> For more information, see the Microsoft documentation for Windows sockets.</condition>
  2643.                   
  2644.             </para>
  2645.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Certain port numbers are reserved for specific values of service. Thus, <property namespace="Scktcomp" class="TAbstractSocket">Service</property> provides a more meaningful way to specify the server Port to use for the socket connection. For server sockets, using <property namespace="Scktcomp" class="TAbstractSocket">Service</property> rather than Port ensures that the server will listen for TCP/IP requests on the appropriate port.</para>
  2646.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2647.                      
  2648.                <para>Trying to change <property namespace="Scktcomp" class="TAbstractSocket">Service</property> when the connection is open will raise an ESocketError exception.</para>
  2649.                   
  2650.             </note>
  2651.          </comments>
  2652.       </member>
  2653.       <member name="T:ScktComp.TCustomSocket">
  2654.          <summary>
  2655.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2656.                
  2657.                <class namespace="Scktcomp">TCustomSocket</class> is the base class for socket components.</para>
  2658.          </summary>
  2659.          <comments>
  2660.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Override <class namespace="Scktcomp">TCustomSocket</class> to create a socket component that can be assigned event handlers for the events and error conditions that occur. In addition to the properties and methods introduced by TAbstractSocket that enable an application to work with <condition os="Windows">Windows </condition>sockets, <class namespace="Scktcomp">TCustomSocket</class> introduces several events that can be used by applications.</para>
  2661.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not create instances of <class namespace="Scktcomp">TCustomSocket</class>. Use a descendant of <class namespace="Scktcomp">TCustomSocket</class> to add the ability to communicate with other machines using TCP/IP. To create a socket that initiates the connection with another machine, use TClientSocket. To create a socket that responds to requests for connections from other machines, use TServerSocket.</para>
  2662.          </comments>
  2663.       </member>
  2664.       <member name="M:ScktComp.ScktComp.Event">
  2665.          <summary>
  2666.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2667.                      
  2668.                <condition os="Windows">Dispatches the events that occur in the normal operation of the socket to the appropriate event handlers.</condition>
  2669.                   
  2670.             </para>
  2671.          </summary>
  2672.          <comments>
  2673.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2674.                      
  2675.                <condition os="Windows">Applications cannot call <method namespace="Scktcomp" class="TCustomSocket">Event</method>. It is called automatically when various events occur. Override <method namespace="Scktcomp" class="TCustomSocket">Event</method> to introduce class-specific responses when certain events occur or to prevent the socket from calling the associated event handler.</condition>
  2676.                   
  2677.             </para>
  2678.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2679.                      
  2680.                <condition os="Windows">The Socket parameter indicates the Windows socket object that calls <method namespace="Scktcomp" class="TCustomSocket">Event</method> to indicate when specific events occur. </condition>
  2681.                   
  2682.             </para>
  2683.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2684.                      
  2685.                <condition os="Windows">The Socket<method namespace="Scktcomp" class="TCustomSocket">Event</method> parameter indicates the event that occurred.</condition>
  2686.                   
  2687.             </para>
  2688.          </comments>
  2689.       </member>
  2690.       <member name="M:ScktComp.ScktComp.Error">
  2691.          <summary>
  2692.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2693.                      
  2694.                <condition os="Windows">Generates an On<method namespace="Scktcomp" class="TCustomSocket">Error</method> event.</condition>
  2695.                   
  2696.             </para>
  2697.          </summary>
  2698.          <comments>
  2699.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2700.                      
  2701.                <condition os="Windows">Applications cannot call <method namespace="Scktcomp" class="TCustomSocket">Error</method>. It responds to error conditions by calling the On<method namespace="Scktcomp" class="TCustomSocket">Error</method> event handler if it is assigned. Override <method namespace="Scktcomp" class="TCustomSocket">Error</method> to add class-specific error processing or to block the On<method namespace="Scktcomp" class="TCustomSocket">Error</method> event.</condition>
  2702.                   
  2703.             </para>
  2704.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2705.                      
  2706.                <condition os="Windows">The Socket parameter indicates the Windows socket object which encounters the error condition. </condition>
  2707.                   
  2708.             </para>
  2709.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2710.                      
  2711.                <condition os="Windows">The <method namespace="Scktcomp" class="TCustomSocket">Error</method>Event parameter indicates what the socket was trying to do when the error occurred. It has one of the following values:</condition>
  2712.                   
  2713.             </para>
  2714.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2715.                      
  2716.                <tr>
  2717.                         
  2718.                   <th>Value</th>
  2719.                         
  2720.                   <th>Meaning</th>
  2721.                      
  2722.                </tr>
  2723.                      
  2724.                <tr>
  2725.                         
  2726.                   <td>
  2727.                            
  2728.                      <para>eeGeneral</para>
  2729.                         
  2730.                   </td>
  2731.                         
  2732.                   <td>
  2733.                            
  2734.                      <para>The socket received an error message that does not fit into any of the following categories.</para>
  2735.                         
  2736.                   </td>
  2737.                      
  2738.                </tr>
  2739.                      
  2740.                <tr>
  2741.                         
  2742.                   <td>
  2743.                            
  2744.                      <para>eeSend</para>
  2745.                         
  2746.                   </td>
  2747.                         
  2748.                   <td>
  2749.                            
  2750.                      <para>An error occurred when trying to write to the socket connection.</para>
  2751.                         
  2752.                   </td>
  2753.                      
  2754.                </tr>
  2755.                      
  2756.                <tr>
  2757.                         
  2758.                   <td>
  2759.                            
  2760.                      <para>eeReceive</para>
  2761.                         
  2762.                   </td>
  2763.                         
  2764.                   <td>
  2765.                            
  2766.                      <para>An error occurred when trying to read from the socket connection.</para>
  2767.                         
  2768.                   </td>
  2769.                      
  2770.                </tr>
  2771.                      
  2772.                <tr>
  2773.                         
  2774.                   <td>
  2775.                            
  2776.                      <para>eeConnect</para>
  2777.                         
  2778.                   </td>
  2779.                         
  2780.                   <td>
  2781.                            
  2782.                      <para>For client sockets, this indicates that the client socket can't locate the server, or that a problem on the server prevents the opening of a connection. For server sockets, this indicates that a client connection request that has already been accepted could not be completed. </para>
  2783.                         
  2784.                   </td>
  2785.                      
  2786.                </tr>
  2787.                      
  2788.                <tr>
  2789.                         
  2790.                   <td>
  2791.                            
  2792.                      <para>eeDisconnect</para>
  2793.                         
  2794.                   </td>
  2795.                         
  2796.                   <td>
  2797.                            
  2798.                      <para>An error occurred when trying to close a connection.</para>
  2799.                         
  2800.                   </td>
  2801.                      
  2802.                </tr>
  2803.                      
  2804.                <tr>
  2805.                         
  2806.                   <td>
  2807.                            
  2808.                      <para>eeAccept</para>
  2809.                         
  2810.                   </td>
  2811.                         
  2812.                   <td>
  2813.                            
  2814.                      <para>For server sockets only, this indicates that a problem occurred when trying to accept a client connection request.</para>
  2815.                         
  2816.                   </td>
  2817.                      
  2818.                </tr>
  2819.                   
  2820.             </table>
  2821.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2822.                      
  2823.                <condition os="Windows">The <method namespace="Scktcomp" class="TCustomSocket">Error</method>Code parameter is the error code received by the Windows socket object. Setting this value to 0 in the <method namespace="Scktcomp" class="TCustomSocket">Error</method> method prevents the socket from raising an exception. For information on possible error codes, see the Microsoft documentation on Windows sockets.</condition>
  2824.                   
  2825.             </para>
  2826.          </comments>
  2827.       </member>
  2828.       <member name="E:ScktComp.ScktComp.OnLookup">
  2829.          <summary>
  2830.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a client socket is about to look up the server socket with which it wants to connect.</para>
  2831.          </summary>
  2832.          <comments>
  2833.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Scktcomp" class="TCustomSocket">OnLookup</event> event handler for a client socket to take specific action just before attempting to locate a server socket.<condition os="Windows"> This is the first opportunity to make Windows API calls that affect the client properties of the socket, such as specifying a particular port number. Use the SocketHandle property of the Socket parameter for Windows API calls.</condition>
  2834.                   
  2835.             </para>
  2836.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2837.                      
  2838.                <condition os="Windows">When a client socket opens a connection, the following events occur:</condition>
  2839.                   
  2840.             </para>
  2841.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2842.                      
  2843.                <condition os="Windows">1An <event namespace="Scktcomp" class="TCustomSocket">OnLookup</event> event occurs prior to an attempt to locate the server socket.</condition>
  2844.                   
  2845.             </para>
  2846.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2847.                      
  2848.                <condition os="Windows">2The Windows socket is set up, and initialized for event notification.</condition>
  2849.                   
  2850.             </para>
  2851.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2852.                      
  2853.                <condition os="Windows">3An OnConnecting event occurs after the server socket is located.</condition>
  2854.                   
  2855.             </para>
  2856.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2857.                      
  2858.                <condition os="Windows">4The connection request is accepted by the server and completed by the client socket.</condition>
  2859.                   
  2860.             </para>
  2861.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2862.                      
  2863.                <condition os="Windows">5An OnConnect event occurs after the connection is established.</condition>
  2864.                   
  2865.             </para>
  2866.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2867.                      
  2868.                <para>Changing the Address, Host, Port, or Service properties of socket component in an <event namespace="Scktcomp" class="TCustomSocket">OnLookup</event> event handler has no effect on the address or port used to locate a server socket. These properties must be correct before the Open method is called.</para>
  2869.                   
  2870.             </note>
  2871.          </comments>
  2872.       </member>
  2873.       <member name="E:ScktComp.ScktComp.OnConnecting">
  2874.          <summary>
  2875.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs for a client socket after the server socket has been located, but before the connection is established.</para>
  2876.          </summary>
  2877.          <comments>
  2878.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Scktcomp" class="TCustomSocket">OnConnecting</event> event handler for a client socket to take specific action just before the connection to a server socket is established. This is the first opportunity to obtain the actual port and IP address of the server endpoint of the connection that is about to form.</para>
  2879.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2880.                      
  2881.                <condition os="Windows">When a client socket opens a connection, the following events occur:</condition>
  2882.                   
  2883.             </para>
  2884.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2885.                      
  2886.                <condition os="Windows">1An OnLookup event occurs prior to an attempt to locate the server socket.</condition>
  2887.                   
  2888.             </para>
  2889.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2890.                      
  2891.                <condition os="Windows">2The Windows socket is set up, and initialized for event notification.</condition>
  2892.                   
  2893.             </para>
  2894.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2895.                      
  2896.                <condition os="Windows">3An <event namespace="Scktcomp" class="TCustomSocket">OnConnecting</event> event occurs after the server socket is located.</condition>
  2897.                   
  2898.             </para>
  2899.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2900.                      
  2901.                <condition os="Windows">4The connection request is accepted by the server and completed by the client socket.</condition>
  2902.                   
  2903.             </para>
  2904.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2905.                      
  2906.                <condition os="Windows">5An OnConnect event occurs after the connection is established.</condition>
  2907.                   
  2908.             </para>
  2909.          </comments>
  2910.       </member>
  2911.       <member name="E:ScktComp.ScktComp.OnConnect">
  2912.          <summary>
  2913.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs on client sockets just after the connection to the server is opened.</para>
  2914.          </summary>
  2915.          <comments>
  2916.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Scktcomp" class="TCustomSocket">OnConnect</event> event handler for a client socket to take specific action after the connection to a server socket has been established. Depending on the service, this may be the point when the socket should start reading or writing over the connection.</para>
  2917.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2918.                      
  2919.                <condition os="Windows">When a client socket opens a connection, the following events occur:</condition>
  2920.                   
  2921.             </para>
  2922.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2923.                      
  2924.                <condition os="Windows">1An OnLookup event occurs prior to an attempt to locate the server socket.</condition>
  2925.                   
  2926.             </para>
  2927.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2928.                      
  2929.                <condition os="Windows">2The Windows socket is set up, and initialized for event notification.</condition>
  2930.                   
  2931.             </para>
  2932.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2933.                      
  2934.                <condition os="Windows">3An <event namespace="Scktcomp" class="TCustomSocket">OnConnect</event>ing event occurs after the server socket is located.</condition>
  2935.                   
  2936.             </para>
  2937.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2938.                      
  2939.                <condition os="Windows">4The connection request is accepted by the server and completed by the client socket.</condition>
  2940.                   
  2941.             </para>
  2942.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2943.                      
  2944.                <condition os="Windows">5An <event namespace="Scktcomp" class="TCustomSocket">OnConnect</event> event occurs after the connection is established.</condition>
  2945.                   
  2946.             </para>
  2947.          </comments>
  2948.       </member>
  2949.       <member name="E:ScktComp.ScktComp.OnDisconnect">
  2950.          <summary>
  2951.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs just before a client socket closes the connection to a server socket.</para>
  2952.          </summary>
  2953.          <comments>
  2954.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Scktcomp" class="TCustomSocket">OnDisconnect</event> event handler to take specific action when the connection to a server socket is about to be terminated. <event namespace="Scktcomp" class="TCustomSocket">OnDisconnect</event> occurs after the value of the Active property is set to false, but before the actual connection is closed.</para>
  2955.          </comments>
  2956.       </member>
  2957.       <member name="E:ScktComp.ScktComp.OnListen">
  2958.          <summary>
  2959.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs just before a server socket is opened for listening.</para>
  2960.          </summary>
  2961.          <comments>
  2962.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Scktcomp" class="TCustomSocket">OnListen</event> event handler for a server socket to take specific action just before the socket is opened for listening. <event namespace="Scktcomp" class="TCustomSocket">OnListen</event> occurs after Address and Port have been bound to the socket connection, but before it is opened. This is the last opportunity to make changes to the socket endpoint before it is opened for listening.<condition os="Windows"> Use the SocketHandle property of the Socket parameter for Windows API calls that change the socket.</condition>
  2963.                   
  2964.             </para>
  2965.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Server sockets open a socket connection for listening to establish a queue to hold client requests. The connection to a client socket is completed when a request from the queue is accepted.</para>
  2966.          </comments>
  2967.       </member>
  2968.       <member name="E:ScktComp.ScktComp.OnAccept">
  2969.          <summary>
  2970.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs on server sockets just after the connection to a client socket is accepted.</para>
  2971.          </summary>
  2972.          <comments>
  2973.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Scktcomp" class="TCustomSocket">OnAccept</event> event handler for a server socket to take specific action after the connection to a client socket has been accepted. This is the first point when information is available about the local port and IP address that will be used in the server endpoint of the connection. The port number, and possibly the IP address, will differ from those of the listening socket.</para>
  2974.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Server sockets open a socket connection for listening to establish a queue to hold client requests. After a request from the queue is accepted by the server socket, an <event namespace="Scktcomp" class="TCustomSocket">OnAccept</event> event occurs. After the server socket accepts the connection, the client socket completes the connection, and an OnConnect event occurs for the client socket.</para>
  2975.          </comments>
  2976.       </member>
  2977.       <member name="E:ScktComp.ScktComp.OnRead">
  2978.          <summary>
  2979.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a client socket should read information from the socket connection.</para>
  2980.          </summary>
  2981.          <comments>
  2982.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Scktcomp" class="TCustomSocket">OnRead</event> event handler to read from the socket connection. <condition os="Windows">If the socket is a blocking socket, use a TWinSocketStream object to read from the connection. Otherwise, u</condition>
  2983.                      
  2984.                <condition os="Linux">U</condition>se the methods of the Socket parameter to perform the actual reading.</para>
  2985.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2986.                      
  2987.                <para>Non-blocking sockets do not always receive an <event namespace="Scktcomp" class="TCustomSocket">OnRead</event> event for the last bit of data passed over the connection. When using a non-blocking socket, check for any unread data in the OnDisconnect event to make sure that everything is handled.</para>
  2988.                   
  2989.             </note>
  2990.          </comments>
  2991.       </member>
  2992.       <member name="E:ScktComp.ScktComp.OnWrite">
  2993.          <summary>
  2994.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a client socket should write information to the socket connection.</para>
  2995.          </summary>
  2996.          <comments>
  2997.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Scktcomp" class="TCustomSocket">OnWrite</event> to write from the socket connection. <condition os="Windows">If the socket is a blocking socket, use a TWinSocketStream object to write to the connection. Otherwise, u</condition>
  2998.                      
  2999.                <condition os="Linux">U</condition>se the methods of the Socket parameter to perform the actual writing.</para>
  3000.          </comments>
  3001.       </member>
  3002.       <member name="E:ScktComp.ScktComp.OnError">
  3003.          <summary>
  3004.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the socket fails in making, using, or shutting down a connection.</para>
  3005.          </summary>
  3006.          <comments>
  3007.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Scktcomp" class="TCustomSocket">OnError</event> event handler to respond to errors that arise with the socket connection. Set the ErrorCode parameter to 0 if the <event namespace="Scktcomp" class="TCustomSocket">OnError</event> event handler successfully deals with the error condition, to prevent an ESocketError from being raised.</para>
  3008.          </comments>
  3009.       </member>
  3010.       <member name="T:ScktComp.TWinSocketStream">
  3011.          <summary>
  3012.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3013.                
  3014.                <class namespace="scktcomp">TWinSocketStream</class> is a stream that provides services which allow applications to read from or write to socket connections.</para>
  3015.          </summary>
  3016.          <comments>
  3017.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="scktcomp">TWinSocketStream</class> to read or write information over a blocking socket connection. Windows socket objects include methods to read from or write to the socket connection they represent. However, these methods do not provide a mechanism for timing out when the socket connection is dropped or for waiting until the socket connection is ready before reading. </para>
  3018.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the socket is a non-blocking socket, this lack of a time-out or waiting mechanism is not a problem, because reading and writing occur asynchronously in response to notifications from the socket connection. For blocking sockets, however, these mechanisms provided by <class namespace="scktcomp">TWinSocketStream</class> are necessary so that the application using the socket does not hang indefinitely.</para>
  3019.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To use a Windows socket stream, create an instance of <class namespace="scktcomp">TWinSocketStream</class>, use the methods of the stream to read or write the data, and then free the Windows socket stream.</para>
  3020.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3021.                
  3022.                <para>
  3023.                   
  3024.                   <class namespace="scktcomp">TWinSocketStream</class> does not work with non-blocking sockets.</para>
  3025.             
  3026.             </note>
  3027.          </comments>
  3028.       </member>
  3029.       <member name="M:ScktComp.ScktComp.WaitForData">
  3030.          <summary>
  3031.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Waits up to TimeOut milliseconds for the socket connection to be ready to transfer data.</para>
  3032.          </summary>
  3033.          <comments>
  3034.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="scktcomp" class="TWinSocketStream">WaitForData</method> to ensure that the socket connection is ready to read or write information. <method namespace="scktcomp" class="TWinSocketStream">WaitForData</method> returns true if the socket connection is ready. <method namespace="scktcomp" class="TWinSocketStream">WaitForData</method> returns false if the socket connection is not ready after TimeOut milliseconds elapse.</para>
  3035.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="scktcomp" class="TWinSocketStream">WaitForData</method> before reading or writing information over the socket connection. Otherwise, Read or Write method calls may time out before any data is transferred.</para>
  3036.          </comments>
  3037.       </member>
  3038.       <member name="M:ScktComp.ScktComp.Read">
  3039.          <summary>
  3040.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3041.                      
  3042.                <method namespace="scktcomp" class="TWinSocketStream">Read</method>s up to Count bytes from the socket connection into Buffer.</para>
  3043.          </summary>
  3044.          <comments>
  3045.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="scktcomp" class="TWinSocketStream">Read</method> to read data from the socket connection when the number of bytes to be transferred is unknown. Buffer must have at least Count bytes allocated to hold the data that is read from the connection. <method namespace="scktcomp" class="TWinSocketStream">Read</method> returns the number of bytes actually transferred (which may be less than the number requested in Count.) </para>
  3046.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3047.                      
  3048.                <method namespace="scktcomp" class="TWinSocketStream">Read</method> may return 0 if the socket connection is extremely slow and the read operation has not completed after TimeOut milliseconds. This ensures that the <method namespace="scktcomp" class="TWinSocketStream">Read</method> method does not hang indefinitely when a problem occurs with the socket connection.</para>
  3049.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To guard against the <method namespace="scktcomp" class="TWinSocketStream">Read</method> method timing out because of a slow connection, set Count fairly low, and make several calls to <method namespace="scktcomp" class="TWinSocketStream">Read</method>, rather than fewer calls with a large value of Count.</para>
  3050.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To ensure that the socket connection is ready to send data before calling <method namespace="scktcomp" class="TWinSocketStream">Read</method>, use the WaitForData method.</para>
  3051.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Unlike the <method namespace="scktcomp" class="TWinSocketStream">Read</method>Buffer method, <method namespace="scktcomp" class="TWinSocketStream">Read</method> does not raise an exception if Count bytes are not read from the socket connection.</para>
  3052.          </comments>
  3053.       </member>
  3054.       <member name="M:ScktComp.ScktComp.Write">
  3055.          <summary>
  3056.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3057.                      
  3058.                <method namespace="scktcomp" class="TWinSocketStream">Write</method>s Count bytes from Buffer to the socket connection.</para>
  3059.          </summary>
  3060.          <comments>
  3061.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="scktcomp" class="TWinSocketStream">Write</method> to write data from a Buffer to the socket connection. <method namespace="scktcomp" class="TWinSocketStream">Write</method> returns the number of bytes transferred.</para>
  3062.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3063.                      
  3064.                <method namespace="scktcomp" class="TWinSocketStream">Write</method> may return 0 if the socket connection is extremely slow and the write operation has not completed after TimeOut milliseconds. This ensures that the <method namespace="scktcomp" class="TWinSocketStream">Write</method> method does not hang indefinitely when a problem occurs with the socket connection.</para>
  3065.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To guard against the <method namespace="scktcomp" class="TWinSocketStream">Write</method> method timing out because of a slow connection, set Count fairly low, and make several calls to <method namespace="scktcomp" class="TWinSocketStream">Write</method>, rather than fewer calls with a large value of Count.</para>
  3066.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Unlike the <method namespace="scktcomp" class="TWinSocketStream">Write</method>Buffer method, <method namespace="scktcomp" class="TWinSocketStream">Write</method> does not raise an exception if Count bytes are not written. For example, if the connection is too slow to transfer all the data, <method namespace="scktcomp" class="TWinSocketStream">Write</method> will return 0, where <method namespace="scktcomp" class="TWinSocketStream">Write</method>Buffer will raise an exception.</para>
  3067.          </comments>
  3068.       </member>
  3069.       <member name="M:ScktComp.ScktComp.Seek">
  3070.          <summary>
  3071.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Always returns 0.</para>
  3072.          </summary>
  3073.          <comments>
  3074.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3075.                      
  3076.                <method namespace="scktcomp" class="TWinSocketStream">Seek</method> overrides the inherited method to always set the Position property of the <method namespace="scktcomp" class="TWinSocketStream">TWinSocketStream</method> object to 0. Socket connections do not support random access. The Position property of a Windows socket stream can only reflect the position at the beginning of all remaining data.</para>
  3077.          </comments>
  3078.       </member>
  3079.       <member name="M:ScktComp.ScktComp.Create">
  3080.          <summary>
  3081.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3082.                      
  3083.                <method namespace="scktcomp" class="TWinSocketStream">Create</method>s an instance of <method namespace="scktcomp" class="TWinSocketStream">TWinSocketStream</method> for a Windows socket object.</para>
  3084.          </summary>
  3085.          <comments>
  3086.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="scktcomp" class="TWinSocketStream">Create</method> to obtain an instance of <method namespace="scktcomp" class="TWinSocketStream">TWinSocketStream</method> for reading from or writing to the socket connection represented by the ASocket parameter. ASocket should be the endpoint of an open blocking socket connection to another Windows socket.</para>
  3087.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3088.                      
  3089.                <method namespace="scktcomp" class="TWinSocketStream">Create</method> associates the stream with the socket connection, and allocates helper objects to allow it to determine when the socket connection is ready for reading or writing. The TimeOut property (the number of milliseconds before a read or write operation aborts) is initialized to the value of the TimeOut parameter.</para>
  3090.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If ASocket represents a non-blocking socket connection, <method namespace="scktcomp" class="TWinSocketStream">Create</method> raises an ESocketError exception.</para>
  3091.          </comments>
  3092.       </member>
  3093.       <member name="M:ScktComp.ScktComp.Destroy">
  3094.          <summary>
  3095.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3096.                      
  3097.                <method namespace="scktcomp" class="TWinSocketStream">Destroy</method>s an instance of <method namespace="scktcomp" class="TWinSocketStream">TWinSocketStream</method>.</para>
  3098.          </summary>
  3099.          <comments>
  3100.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="scktcomp" class="TWinSocketStream">Destroy</method> directly in an application. Instead call Free. Free verifies that the <method namespace="scktcomp" class="TWinSocketStream">TWinSocketStream</method> reference is not nil and only then calls <method namespace="scktcomp" class="TWinSocketStream">Destroy</method>.</para>
  3101.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Free the <method namespace="scktcomp" class="TWinSocketStream">TWinSocketStream</method> object when it is no longer needed for reading from or writing to the socket connection.</para>
  3102.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3103.                      
  3104.                <method namespace="scktcomp" class="TWinSocketStream">Destroy</method> frees the helper objects allocated in the Create method before calling the default destructor.</para>
  3105.          </comments>
  3106.       </member>
  3107.       <member name="P:ScktComp.ScktComp.TimeOut">
  3108.          <summary>
  3109.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the time, in milliseconds, that the socket stream should wait before timing out on a read or write call.</para>
  3110.          </summary>
  3111.          <comments>
  3112.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="scktcomp" class="TWinSocketStream">TimeOut</property> to the amount of time that should elapse before a read or write operation aborts under the assumption that the socket connection has failed.</para>
  3113.          </comments>
  3114.       </member>
  3115.       <member name="T:ScktComp.TClientSocket">
  3116.          <summary>
  3117.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3118.                
  3119.                <class namespace="ScktComp">TClientSocket</class> manages socket connections for a TCP/IP client.</para>
  3120.          </summary>
  3121.          <comments>
  3122.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Add a <class namespace="ScktComp">TClientSocket</class> object to a form or data module to turn an application into a TCP/IP client. <class namespace="ScktComp">TClientSocket</class> specifies a desired connection to a TCP/IP server, manages the connection when it is open, and terminates the connection when the application is through.</para>
  3123.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3124.                
  3125.                <para>See the CHAT demo for an example of how to use <class namespace="ScktComp">TClientSocket</class>.</para>
  3126.             
  3127.             </note>
  3128.          </comments>
  3129.       </member>
  3130.       <member name="M:ScktComp.ScktComp.Create">
  3131.          <summary>
  3132.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3133.                      
  3134.                <method namespace="ScktComp" class="TClientSocket">Create</method>s an instance of <method namespace="ScktComp" class="TClientSocket">TClientSocket</method>.</para>
  3135.          </summary>
  3136.          <comments>
  3137.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="ScktComp" class="TClientSocket">Create</method> to create and initialize a client socket component at runtime. <method namespace="ScktComp" class="TClientSocket">TClientSocket</method> objects placed at design time are created automatically.</para>
  3138.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After calling the inherited constructor, <method namespace="ScktComp" class="TClientSocket">Create</method>
  3139.                   
  3140.             </para>
  3141.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3142.                      
  3143.                <condition os="Windows">Allocates the TClientWinSocket object that describes the client endpoint of the Windows socket connection.</condition>
  3144.                   
  3145.             </para>
  3146.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3147.                      
  3148.                <condition os="Windows">I</condition>
  3149.                      
  3150.                <condition os="Linux">i</condition>nitializes the event and error dispatchers for the client socket.</para>
  3151.          </comments>
  3152.       </member>
  3153.       <member name="M:ScktComp.ScktComp.Destroy">
  3154.          <summary>
  3155.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3156.                      
  3157.                <method namespace="ScktComp" class="TClientSocket">Destroy</method>s an instance of <method namespace="ScktComp" class="TClientSocket">TClientSocket</method>.</para>
  3158.          </summary>
  3159.          <comments>
  3160.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="ScktComp" class="TClientSocket">Destroy</method> directly in an application. Instead, call Free. Free verifies that the client socket is not nil, and only then calls <method namespace="ScktComp" class="TClientSocket">Destroy</method>.</para>
  3161.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3162.                      
  3163.                <method namespace="ScktComp" class="TClientSocket">Destroy</method> frees the TClientWinSocket object that describes the client endpoint of the Windows socket connection.</para>
  3164.          </comments>
  3165.       </member>
  3166.       <member name="P:ScktComp.ScktComp.Socket">
  3167.          <summary>
  3168.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Describes the client endpoint of the Windows client socket connection.</para>
  3169.          </summary>
  3170.          <comments>
  3171.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="ScktComp" class="TClientSocket">Socket</property> to </para>
  3172.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determine the address and port of both the client and server sockets that are bound to the connection.</para>
  3173.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read or write information through the socket connection.</para>
  3174.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determine what server notifications the client will respond to.</para>
  3175.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3176.                      
  3177.                <condition os="Windows">Obtain the Windows socket handle for making Windows socket API calls.</condition>
  3178.                   
  3179.             </para>
  3180.          </comments>
  3181.       </member>
  3182.       <member name="P:ScktComp.ScktComp.ClientType">
  3183.          <summary>
  3184.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies whether the client socket reads and writes information asynchronously over the socket connection.</para>
  3185.          </summary>
  3186.          <comments>
  3187.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="ScktComp" class="TClientSocket">ClientType</property> to ctNonBlocking to enable the client socket to respond to asynchronous reading and writing events. When <property namespace="ScktComp" class="TClientSocket">ClientType</property> is ctNonBlocking, execution is not blocked by reading and writing over the socket connection. OnRead or OnWrite events occur when the socket needs to read or write over the connection.</para>
  3188.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="ScktComp" class="TClientSocket">ClientType</property> to ctBlocking to force all reading and writing to occur synchronously. It is a good idea to include the client socket object in a thread if the <property namespace="ScktComp" class="TClientSocket">ClientType</property> is ctBlocking, so that I/O does not block all execution within the client application. </para>
  3189.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3190.                      
  3191.                <condition os="Windows">When <property namespace="ScktComp" class="TClientSocket">ClientType</property> is ctBlocking, use a TWinSocketStream object for reading and writing. TWinSocketStream prevents the application from hanging indefinitely if a problem occurs while reading or writing. It also can wait for the socket connection to indicate its readiness for reading.</condition>
  3192.                   
  3193.             </para>
  3194.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use a non-blocking socket when the socket needs to synchronize reading and writing with server sockets.</para>
  3195.          </comments>
  3196.       </member>
  3197.       <member name="T:ScktComp.TCustomServerSocket">
  3198.          <summary>
  3199.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3200.                
  3201.                <class namespace="ScktComp">TCustomServerSocket</class> is the base class for all server socket components.</para>
  3202.          </summary>
  3203.          <comments>
  3204.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3205.                
  3206.                <class namespace="ScktComp">TCustomServerSocket</class> introduces new properties and events specific to the functions of a TCP/IP server. </para>
  3207.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not create instances of <class namespace="ScktComp">TCustomServerSocket</class>. Use <class namespace="ScktComp">TCustomServerSocket</class> as a base class when declaring server socket objects that listen for connection requests from other machines.</para>
  3208.          </comments>
  3209.       </member>
  3210.       <member name="M:ScktComp.ScktComp.DoActivate">
  3211.          <summary>
  3212.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Opens or Closes the socket connection.</para>
  3213.          </summary>
  3214.          <comments>
  3215.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3216.                      
  3217.                <method namespace="ScktComp" class="TCustomServerSocket">DoActivate</method> provides the underlying implementation of the Open and Close methods. When Value is true, <method namespace="ScktComp" class="TCustomServerSocket">DoActivate</method> opens a listening connection to accept connection requests. When Value is false, <method namespace="ScktComp" class="TCustomServerSocket">DoActivate</method> terminates the current listening connection and any connections to client sockets.</para>
  3218.          </comments>
  3219.       </member>
  3220.       <member name="M:ScktComp.ScktComp.Destroy">
  3221.          <summary>
  3222.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3223.                      
  3224.                <method namespace="ScktComp" class="TCustomServerSocket">Destroy</method>s an instance of <method namespace="ScktComp" class="TCustomServerSocket">TCustomServerSocket</method>.</para>
  3225.          </summary>
  3226.          <comments>
  3227.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="ScktComp" class="TCustomServerSocket">Destroy</method> directly in an application. Instead, call Free. Free checks that the server socket is not nil, and only then calls <method namespace="ScktComp" class="TCustomServerSocket">Destroy</method>.</para>
  3228.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3229.                      
  3230.                <method namespace="ScktComp" class="TCustomServerSocket">Destroy</method> frees the TServerWinSocket object that describes the server endpoint of the listening connection.</para>
  3231.          </comments>
  3232.       </member>
  3233.       <member name="P:ScktComp.ScktComp.ServerType">
  3234.          <summary>
  3235.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies whether each connection accepted by the server socket is non-blocking, or if it is automatically given a separate execution thread.</para>
  3236.          </summary>
  3237.          <comments>
  3238.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="ScktComp" class="TCustomServerSocket">ServerType</property> to stThreadBlocking to automatically spawn a new thread for each socket connection accepted by the server socket. When <property namespace="ScktComp" class="TCustomServerSocket">ServerType</property> is stThreadBlocking, the execution of the connection thread is suspended while reading or writing until all information has been transferred over the connection. The thread for each connection generates OnClientRead or OnClientWrite events when the server socket needs to read or write.</para>
  3239.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="ScktComp" class="TCustomServerSocket">ServerType</property> to stNonBlocking to handle all reading and writing over the socket connections asynchronously. When <property namespace="ScktComp" class="TCustomServerSocket">ServerType</property> is stNonBlocking, all client connections are handled in a single execution thread by default. OnClientRead or OnClientWrite events occur when the client socket on the other end of one of the connections tries to send or receive information over the connection.</para>
  3240.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use a non-blocking socket when the socket needs to synchronize reading and writing with client sockets.</para>
  3241.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3242.                      
  3243.                <para>When <property namespace="ScktComp" class="TCustomServerSocket">ServerType</property> is stThreadBlocking, it is important that the OnClient... event handlers contain thread-safe code. </para>
  3244.                   
  3245.             </note>
  3246.          </comments>
  3247.       </member>
  3248.       <member name="P:ScktComp.ScktComp.ThreadCacheSize">
  3249.          <summary>
  3250.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the maximum number of threads that can be reused for new client connections.</para>
  3251.          </summary>
  3252.          <comments>
  3253.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When ServerType is stThreadBlocking, each new connection that is accepted by the server socket is given a separate execution thread. In order to improve performance, server sockets store these threads in a cache rather than freeing them when the connection is closed. New connections can then reuse threads from the cache, rather than requiring the socket server to create a new thread every time a connection is accepted.</para>
  3254.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="ScktComp" class="TCustomServerSocket">ThreadCacheSize</property> to specify the number of threads that are cached for reuse. The ideal value for <property namespace="ScktComp" class="TCustomServerSocket">ThreadCacheSize</property> depends on the number and frequency of client socket requests received by the server socket. If <property namespace="ScktComp" class="TCustomServerSocket">ThreadCacheSize</property> is too low, the server socket will spend more time freeing and creating threads when client connections are accepted. If <property namespace="ScktComp" class="TCustomServerSocket">ThreadCacheSize</property> is too high, the server socket may unnecessarily lock up the memory for threads that are never reused.</para>
  3255.          </comments>
  3256.       </member>
  3257.       <member name="E:ScktComp.ScktComp.OnGetThread">
  3258.          <summary>
  3259.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the server socket needs to create a new execution thread for a connection to a client socket.</para>
  3260.          </summary>
  3261.          <comments>
  3262.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="ScktComp" class="TCustomServerSocket">OnGetThread</event> event handler to create a specialized descendant of TServerClientThread for the connection to the client socket. Return the new TServerClientThread object in the SocketThread parameter. </para>
  3263.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Most applications that use thread-blocking server components will want to provide an <event namespace="ScktComp" class="TCustomServerSocket">OnGetThread</event> event handler and implement a TServerClientThread that handles its own reading and writing in a thread-safe manner rather than relying on the default TServerClientThread which triggers OnClientRead and OnClientWrite events. This is because the OnClientRead and OnClientWrite event handlers reside on the server socket, which is in global memory.</para>
  3264.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the TServerWinSocket object that describes the server endpoint of the listening connection. The ClientSocket parameter is the TServerClientWinSocket object that describes the server endpoint of the connection to the client socket that is about to be formed.</para>
  3265.          </comments>
  3266.       </member>
  3267.       <member name="E:ScktComp.ScktComp.OnGetSocket">
  3268.          <summary>
  3269.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the server socket needs to create a new TServerClientWinSocket object to represent the server endpoint of a connection to a client socket.</para>
  3270.          </summary>
  3271.          <comments>
  3272.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="ScktComp" class="TCustomServerSocket">OnGetSocket</event> event handler to create a specialized descendant of TServerClientWinSocket for the server socket component to use. Return the new TServerClientWinSocket object in the ClientSocket parameter. The Sender parameter is the TServerWinSocket object that describes the server endpoint of the listening connection.</para>
  3273.          </comments>
  3274.       </member>
  3275.       <member name="E:ScktComp.ScktComp.OnThreadStart">
  3276.          <summary>
  3277.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the execution thread for a connection to a client socket starts up.</para>
  3278.          </summary>
  3279.          <comments>
  3280.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="ScktComp" class="TCustomServerSocket">OnThreadStart</event> to initialize the TServerClientThread for the connection to a single client socket. The Sender parameter is the TServerWinSocket that describes the server endpoint of the listening connection. The Thread parameter is the thread that is about to start execution.</para>
  3281.          </comments>
  3282.       </member>
  3283.       <member name="E:ScktComp.ScktComp.OnThreadEnd">
  3284.          <summary>
  3285.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a client socket connection is terminated and the associated thread finishes execution.</para>
  3286.          </summary>
  3287.          <comments>
  3288.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="ScktComp" class="TCustomServerSocket">OnThreadEnd</event> to take specific action when the thread for a client connection finishes execution. <event namespace="ScktComp" class="TCustomServerSocket">OnThreadEnd</event> occurs after the OnClientDisconnect event.</para>
  3289.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the TServerWinSocket that describes the server endpoint of the listening connection. The Thread parameter is the thread that is finishing up.</para>
  3290.          </comments>
  3291.       </member>
  3292.       <member name="E:ScktComp.ScktComp.OnClientConnect">
  3293.          <summary>
  3294.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a client socket completes a connection accepted by the server socket.</para>
  3295.          </summary>
  3296.          <comments>
  3297.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="ScktComp" class="TCustomServerSocket">OnClientConnect</event> event handler to take specific action when a client socket completes the socket connection to the server socket. For example, the socket may start reading or writing over the connection in an <event namespace="ScktComp" class="TCustomServerSocket">OnClientConnect</event> event handler.</para>
  3298.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The order of server socket events leading up to <event namespace="ScktComp" class="TCustomServerSocket">OnClientConnect</event> is as follows:</para>
  3299.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1An OnListen event occurs just before the server socket is opened for listening.</para>
  3300.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2The server socket receives client requests in a listening queue. The server socket accepts one of those requests, and receives a Windows socket handle for the new socket connection.</para>
  3301.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">3The server socket generates an OnGetSocket event, passing in the Windows socket handle. If a TServerClientWinSocket object for the server endpoint of the new connection is not created in an OnGetSocket event handler, the server socket creates one. The TServerWinSocket object continues to listen for other clients.</para>
  3302.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">4An OnAccept event occurs, using the new TServerClientWinSocket object.</para>
  3303.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">5If ServerType is stThreadBlocking and no thread is available in the cache, an OnGetThread event occurs. If the OnGetThread event handler does not create a thread, the server socket creates a TServerClientThread.</para>
  3304.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">6If ServerType is stThreadBlocking, an OnThreadStart event occurs as the thread begins execution.</para>
  3305.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">7The client completes the connection to the TServerClientWinSocket object and an <event namespace="ScktComp" class="TCustomServerSocket">OnClientConnect</event> event occurs.</para>
  3306.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3307.                      
  3308.                <para>If ServerType is stThreadBlocking, make sure that all code in an <event namespace="ScktComp" class="TCustomServerSocket">OnClientConnect</event> event handler is thread-safe. Use the GetClientThread method of the Sender parameter to access thread-specific information.</para>
  3309.                   
  3310.             </note>
  3311.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3312.                      
  3313.                <para>The <event namespace="ScktComp" class="TCustomServerSocket">OnClientConnect</event> event handler for TServerSocket is also set when setting the <event namespace="ScktComp" class="TCustomServerSocket">OnClientConnect</event> event handler of the associated TServerWinSocket.</para>
  3314.                   
  3315.             </note>
  3316.          </comments>
  3317.       </member>
  3318.       <member name="E:ScktComp.ScktComp.OnClientDisconnect">
  3319.          <summary>
  3320.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when one of the connections to a client socket is closed.</para>
  3321.          </summary>
  3322.          <comments>
  3323.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="ScktComp" class="TCustomServerSocket">OnClientDisconnect</event> event handler to take specific action when the connection to a client socket is ending. The termination of a client connection does not close the server socket. The server socket remains open and listening for client requests on its listening connection. </para>
  3324.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The TServerClientWinSocket that describes the server endpoint of the client connection is freed after <event namespace="ScktComp" class="TCustomServerSocket">OnClientDisconnect</event>. If ServerType is stThreadBlocking, OnThreadEnd occurs after <event namespace="ScktComp" class="TCustomServerSocket">OnClientDisconnect</event>.</para>
  3325.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3326.                      
  3327.                <para>If ServerType is stThreadBlocking, make sure that all code in an <event namespace="ScktComp" class="TCustomServerSocket">OnClientDisconnect</event> event handler is thread-safe. Use the GetClientThread method of the Sender parameter to access thread-specific information.</para>
  3328.                   
  3329.             </note>
  3330.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3331.                      
  3332.                <para>The <event namespace="ScktComp" class="TCustomServerSocket">OnClientDisconnect</event> event handler for TServerSocket is also set when setting the <event namespace="ScktComp" class="TCustomServerSocket">OnClientDisconnect</event> event handler of the associated TServerWinSocket.</para>
  3333.                   
  3334.             </note>
  3335.          </comments>
  3336.       </member>
  3337.       <member name="E:ScktComp.ScktComp.OnClientRead">
  3338.          <summary>
  3339.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the server socket should read information from a client socket.</para>
  3340.          </summary>
  3341.          <comments>
  3342.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an OnClientWrite event handler to write to the socket connection. If the ServerType property is stThreadBlocking, use a TWinSocketStream object to prevent problems that arise while writing from causing the execution thread to hang indefinitely. Otherwise, uUse the methods of the Socket parameter to perform the actual writing.</para>
  3343.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3344.                      
  3345.                <para>If ServerType is stThreadBlocking, make sure that all code in an <event namespace="ScktComp" class="TCustomServerSocket">OnClientRead</event> event handler is thread-safe. Use the GetClientThread method of the Sender parameter to access thread-specific information.</para>
  3346.                   
  3347.             </note>
  3348.          </comments>
  3349.       </member>
  3350.       <member name="E:ScktComp.ScktComp.OnClientWrite">
  3351.          <summary>
  3352.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the server socket should write information to a client socket.</para>
  3353.          </summary>
  3354.          <comments>
  3355.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="ScktComp" class="TCustomServerSocket">OnClientWrite</event> event handler to write to the socket connection. If the ServerType property is stThreadBlocking, use a TWinSocketStream object to prevent problems that arise while writing from causing the execution thread to hang indefinitely. Otherwise, uUse the methods of the Socket parameter to perform the actual writing.</para>
  3356.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3357.                      
  3358.                <para>If ServerType is stThreadBlocking, make sure that all code in an <event namespace="ScktComp" class="TCustomServerSocket">OnClientWrite</event> event handler is thread-safe. Use the GetClientThread method of the Sender parameter to access thread-specific information.</para>
  3359.                   
  3360.             </note>
  3361.          </comments>
  3362.       </member>
  3363.       <member name="E:ScktComp.ScktComp.OnClientError">
  3364.          <summary>
  3365.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when there is a failure in establishing, using, or terminating the socket connection to an individual client socket.</para>
  3366.          </summary>
  3367.          <comments>
  3368.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="ScktComp" class="TCustomServerSocket">OnClientError</event> event handler to respond to errors that arise with a connection to an individual client. Set the ErrorCode parameter to 0 if the <event namespace="ScktComp" class="TCustomServerSocket">OnClientError</event> event handler successfully deals with the error condition to prevent an ESocketError from being raised.</para>
  3369.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3370.                      
  3371.                <para>If ServerType is stThreadBlocking, make sure that all code in an <event namespace="ScktComp" class="TCustomServerSocket">OnClientError</event> event handler is thread-safe. Use the GetClientThread method of the Sender parameter to access thread-specific information.</para>
  3372.                   
  3373.             </note>
  3374.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3375.                      
  3376.                <para>The <event namespace="ScktComp" class="TCustomServerSocket">OnClientError</event> event handler for TServerSocket is also set when setting the <event namespace="ScktComp" class="TCustomServerSocket">OnClientError</event> event handler of the associated TServerWinSocket.</para>
  3377.                   
  3378.             </note>
  3379.          </comments>
  3380.       </member>
  3381.       <member name="T:ScktComp.TServerSocket">
  3382.          <summary>
  3383.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3384.                
  3385.                <class namespace="ScktComp">TServerSocket</class> manages server socket connections for a TCP/IP server.</para>
  3386.          </summary>
  3387.          <comments>
  3388.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Add a <class namespace="ScktComp">TServerSocket</class> object to a form or data module to turn an application into a TCP/IP server. <class namespace="ScktComp">TServerSocket</class> listens for requests for TCP/IP connections from other machines, and establishes connections when requests are received.</para>
  3389.          </comments>
  3390.       </member>
  3391.       <member name="M:ScktComp.ScktComp.Create">
  3392.          <summary>
  3393.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3394.                      
  3395.                <method namespace="ScktComp" class="TServerSocket">Create</method>s an instance of <method namespace="ScktComp" class="TServerSocket">TServerSocket</method>.</para>
  3396.          </summary>
  3397.          <comments>
  3398.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="ScktComp" class="TServerSocket">Create</method> to create and initialize a server socket component at runtime. <method namespace="ScktComp" class="TServerSocket">TServerSocket</method> objects placed at design time are created automatically.</para>
  3399.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After calling the inherited constructor, <method namespace="ScktComp" class="TServerSocket">Create</method>
  3400.                   
  3401.             </para>
  3402.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Allocates the TServerWinSocket object that encapsulates the Windows socket connection for the server socket.</para>
  3403.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes the event and error dispatchers for the server socket.</para>
  3404.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes ThreadCacheSize to 10.</para>
  3405.          </comments>
  3406.       </member>
  3407.       <member name="P:ScktComp.ScktComp.Socket">
  3408.          <summary>
  3409.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the TServerWin<property namespace="ScktComp" class="TServerSocket">Socket</property> object that describes the endpoint of the listening connection.</para>
  3410.          </summary>
  3411.          <comments>
  3412.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="ScktComp" class="TServerSocket">Socket</property> to obtain</para>
  3413.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Information about the connections currently active on the server socket.</para>
  3414.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Information about the connection threads that are cached for use by the server socket.</para>
  3415.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Access to the Windows socket handle for the listening connection that is needed for Windows socket API calls.</para>
  3416.          </comments>
  3417.       </member>
  3418.       <member name="M:ScktComp.SetErrorProc">
  3419.          <summary>
  3420.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Replaces the exception handler for error messages that are received from a Windows socket connection.</para>
  3421.          </summary>
  3422.          <comments>
  3423.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="ScktComp">SetErrorProc</routine> to assign an exception handler for error messages from Windows socket API calls. By default, socket components have no special error handler and simply raise an ESocketError exception when they receive error messages. If an exception handler is assigned using <routine namespace="ScktComp">SetErrorProc</routine>, the socket component does not raise this exception.</para>
  3424.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The ErrorProc parameter specifies the exception handler. It is passed the Windows socket error code. Inside this exception handler an application can compensate for the error or raise an exception. Passing a value of nil (Delphi) or NULL (C++) for the ErrorProc parameter restores the default behavior, where the socket component raises an ESocketError exception.</para>
  3425.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3426.                
  3427.                <routine namespace="ScktComp">SetErrorProc</routine> returns the current exception handler. This value is nil (Delphi) or NULL (C++) when <routine namespace="ScktComp">SetErrorProc</routine> is called for the first time, and is the value of the ErrorProc parameter from the previous invocation of <routine namespace="ScktComp">SetErrorProc</routine> thereafter.</para>
  3428.          </comments>
  3429.       </member>
  3430.       <member name="T:HelpIntfs.IHelpSelector">
  3431.          <summary>
  3432.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Interface for Help Selector object.</para>
  3433.          </summary>
  3434.          <comments>
  3435.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When an application uses more than one Help Viewer, there may be multiple responses to a Help request. By default, the Help System polls the Viewers in the order they were registered, and gives the request to the first viewer that claims to be able to handle it.</para>
  3436.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">An application can optionally provide a Help Selector, which determines the Viewer for keyword-based Help requests and for requests to display a Table of Contents. To define a Help Selector, create an object that implements <class namespace="HelpIntfs">IHelpSelector</class> and pass it to the Help System, using AssignHelpSelector.</para>
  3437.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help Selector cannot affect context-based or topic-based Help requests, which always go to the first Viewer that claims to be able to handle the request.</para>
  3438.          </comments>
  3439.       </member>
  3440.       <member name="M:HelpIntfs.HelpIntfs.SelectKeyword">
  3441.          <summary>
  3442.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Keyword-based Help support for multiple Viewers.</para>
  3443.          </summary>
  3444.          <comments>
  3445.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System calls <method namespace="HelpIntfs" class="IHelpSelector">SelectKeyword</method> when more than one Help Viewer has topics that match a keyword-based Help request. The Keywords parameter contains a merged list of Help Strings, obtained by calling GetHelpStrings for each Viewer. <method namespace="HelpIntfs" class="IHelpSelector">SelectKeyword</method> indicates a specific topic by returning the index of a specific Help String. The Help System then passes this Help String to the ShowHelp method of the appropriate Viewer. If the return value is negative, the Help System assumes that the Help request has been aborted and does nothing.</para>
  3446.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Typically, <method namespace="HelpIntfs" class="IHelpSelector">SelectKeyword</method> displays a dialog box so the user can choose one of the Help Strings, and returns the index of the user's choice, or a negative value if the user cancels the dialog. This duplicates a feature of most Viewers, but allows the user to see all matching topics in a single list.</para>
  3447.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3448.                      
  3449.                <para>
  3450.                         
  3451.                   <method namespace="HelpIntfs" class="IHelpSelector">SelectKeyword</method> must not modify or rearrange the Help Strings list.</para>
  3452.                   
  3453.             </note>
  3454.          </comments>
  3455.       </member>
  3456.       <member name="M:HelpIntfs.HelpIntfs.TableOfContents">
  3457.          <summary>
  3458.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Choose Viewer to display Table of Contents.</para>
  3459.          </summary>
  3460.          <comments>
  3461.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System calls <method namespace="HelpIntfs" class="IHelpSelector">TableOfContents</method> when more than one Help Viewer responds to a request to show a Help Table of Contents. The Help System passes a list of Viewer names in the Contents parameter. <method namespace="HelpIntfs" class="IHelpSelector">TableOfContents</method> should return the index of the chosen Viewer's name.</para>
  3462.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3463.                      
  3464.                <para>
  3465.                         
  3466.                   <method namespace="HelpIntfs" class="IHelpSelector">TableOfContents</method> must not modify or rearrange the Viewer names list.</para>
  3467.                   
  3468.             </note>
  3469.          </comments>
  3470.       </member>
  3471.       <member name="T:HelpIntfs.IHelpSystem">
  3472.          <summary>
  3473.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Application Help System that supports multiple Help Viewers.</para>
  3474.          </summary>
  3475.          <comments>
  3476.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Run-Time Library Help System allows an application to access one or more Help Viewers through a uniform interface, <class namespace="HelpIntfs">IHelpSystem</class>. To obtain an object that implements <class namespace="HelpIntfs">IHelpSystem</class>, use the HelpSystem property of the Application global variable, or call the global GetHelpSystem function.</para>
  3477.          </comments>
  3478.       </member>
  3479.       <member name="M:HelpIntfs.HelpIntfs.Hook">
  3480.          <summary>
  3481.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do a WinHelp-style Help request.</para>
  3482.          </summary>
  3483.          <comments>
  3484.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3485.                      
  3486.                <method namespace="HelpIntfs" class="IHelpSystem">Hook</method> accepts Help requests that uses the same conventions as the Microsoft Windows WinHelp API. <method namespace="HelpIntfs" class="IHelpSystem">Hook</method> should only be called for requests that cannot be translated into calls to ShowContextHelp, ShowHelp, ShowTableOfContents, or ShowTopicHelp.</para>
  3487.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3488.                      
  3489.                <para>If the Help System is unable to decipher the Help request, it looks for a Viewer that implements ISpecialWinHelpViewer. If the application has registered such a viewer, the request succeeds if the Viewer is able to handle it. Otherwise the request fails.</para>
  3490.                   
  3491.             </note>
  3492.          </comments>
  3493.       </member>
  3494.       <member name="M:HelpIntfs.HelpIntfs.ShowHelp">
  3495.          <summary>
  3496.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do Keyword-based Help request.</para>
  3497.          </summary>
  3498.          <comments>
  3499.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="HelpIntfs" class="IHelpSystem">ShowHelp</method> to submit a keyword-based Help request. By default, the RTL Help System gives the request to the first Help Viewer that claims to be able to handle it. Typically, the Viewer passes the Help request to an external Help engine, which displays a list of matching topics (if more than one topic matches) or goes directly to a specific topic (if a single topic matches).</para>
  3500.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To support keyword-based Help requests using multiple Help Viewers, assign a Help Selector, using the AssignHelpSelector method. </para>
  3501.          </comments>
  3502.       </member>
  3503.       <member name="M:HelpIntfs.HelpIntfs.ShowContextHelp">
  3504.          <summary>
  3505.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do Context-based Help request.</para>
  3506.          </summary>
  3507.          <comments>
  3508.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="HelpIntfs" class="IHelpSystem">ShowContextHelp</method> to display a single Help topic, identified by ContextID and HelpFileName. For context-based Help requests to work, the application must have previously registered at least one Help Viewer that implements IExtendedHelpViewer. If no such Viewer is found, an EHelpSystemException is raised.</para>
  3509.          </comments>
  3510.       </member>
  3511.       <member name="M:HelpIntfs.HelpIntfs.ShowTableOfContents">
  3512.          <summary>
  3513.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Show Table of Contents.</para>
  3514.          </summary>
  3515.          <comments>
  3516.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="HelpIntfs" class="IHelpSystem">ShowTableOfContents</method> to request that the Help System display a Table of Contents.</para>
  3517.          </comments>
  3518.       </member>
  3519.       <member name="M:HelpIntfs.HelpIntfs.ShowTopicHelp">
  3520.          <summary>
  3521.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Show Help topic.</para>
  3522.          </summary>
  3523.          <comments>
  3524.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="HelpIntfs" class="IHelpSystem">ShowTopicHelp</method> to request that the Help System display a specific Help topic. </para>
  3525.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Topic parameter is a short string identifying the specific topic.</para>
  3526.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The HelpFileName parameter is the name of the file containing the topic. If this parameter is a zero-length string, the HelpFile property of the global Application variable is used.</para>
  3527.          </comments>
  3528.       </member>
  3529.       <member name="M:HelpIntfs.HelpIntfs.AssignHelpSelector">
  3530.          <summary>
  3531.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Assign a Help Selector object.</para>
  3532.          </summary>
  3533.          <comments>
  3534.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="HelpIntfs" class="IHelpSystem">AssignHelpSelector</method> to provide a Help Selector object. Use of a Help Selector allows an application to define the way a Help Viewer is chosen to handle keyword-based Help requests and requests to display a Table of Contents.</para>
  3535.          </comments>
  3536.       </member>
  3537.       <member name="T:HelpIntfs.ICustomHelpViewer">
  3538.          <summary>
  3539.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Help Viewer access for Help System..</para>
  3540.          </summary>
  3541.          <comments>
  3542.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A Help Viewer is an object which handles application Help requests passed to it by the Help System on behalf of an application. A Help Viewer is typically a wrapper for an external application, such as a help engine or web browser.</para>
  3543.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help Viewer class must implement the <class namespace="HelpIntfs">ICustomHelpViewer</class> interface, or one of its descendant interfaces, IExtendedHelpViewer and ISpecialWinHelpViewer. The Help System uses methods from these interfaces to pass Help requests to the Help Viewer.</para>
  3544.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To use a Help Viewer, an application must call the global RegisterViewer function. </para>
  3545.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3546.                
  3547.                <para>ISpecialWinHelpViewer is only provided with Windows products. Do not use this type in cross-platform applications.</para>
  3548.             
  3549.             </note>
  3550.          </comments>
  3551.       </member>
  3552.       <member name="M:HelpIntfs.HelpIntfs.GetViewerName">
  3553.          <summary>
  3554.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Return string identifying Help Viewer.</para>
  3555.          </summary>
  3556.          <comments>
  3557.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System calls <method namespace="HelpIntfs" class="ICustomHelpViewer">GetViewerName</method> to obtain a string identifying the Help Viewer. Every Help Viewer within an application must return a unique Viewer Name.</para>
  3558.          </comments>
  3559.       </member>
  3560.       <member name="M:HelpIntfs.HelpIntfs.UnderstandsKeyword">
  3561.          <summary>
  3562.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Would respond to a keyword-based Help request.</para>
  3563.          </summary>
  3564.          <comments>
  3565.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System calls <method namespace="HelpIntfs" class="ICustomHelpViewer">UnderstandsKeyword</method> to determine to determine if the Help Viewer can provide topics for a keyword-based Help request based on HelpString. <method namespace="HelpIntfs" class="ICustomHelpViewer">UnderstandsKeyword</method> should return the number of Help topics that would match such a request.</para>
  3566.          </comments>
  3567.       </member>
  3568.       <member name="M:HelpIntfs.HelpIntfs.GetHelpStrings">
  3569.          <summary>
  3570.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Return Help Strings that match a keyword.</para>
  3571.          </summary>
  3572.          <comments>
  3573.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System calls <method namespace="HelpIntfs" class="ICustomHelpViewer">GetHelpStrings</method> to obtain a list of Help Strings for topics that match a keyword-based Help request. <method namespace="HelpIntfs" class="ICustomHelpViewer">GetHelpStrings</method> should expect the keyword in the parameter and return the Help Strings in a TStringList object.</para>
  3574.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A Help String is an identifying string associated with a specific topic. The Help System requires that each of the topics provided by a given Viewer have a different Help String. The Help System does not require that two Viewers never use the same Help String, but an application should still avoid doing this. One strategy is to include the Viewer Name in the Help String.</para>
  3575.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System uses Help Strings to provide the Help Selector with a merged list of Help topics that match a request. Typically, Help Strings are human-readable topic descriptions, and the Help Selector simply displays them to the user so the user can choose which topic will be displayed.</para>
  3576.          </comments>
  3577.       </member>
  3578.       <member name="M:HelpIntfs.HelpIntfs.CanShowTableOfContents">
  3579.          <summary>
  3580.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Query support for Table of Contents.</para>
  3581.          </summary>
  3582.          <comments>
  3583.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System uses <method namespace="HelpIntfs" class="ICustomHelpViewer">CanShowTableOfContents</method> to determine which Help Viewers know how to display a Table of Contents. <method namespace="HelpIntfs" class="ICustomHelpViewer">CanShowTableOfContents</method> should return true if the Viewer is ready for a subsequent call to ShowTableOfContents. The Help System should not call ShowTableOfContents for a Viewer after <method namespace="HelpIntfs" class="ICustomHelpViewer">CanShowTableOfContents</method> returns false; if this occurs, the Viewer should raise an EHelpSystemException.</para>
  3584.          </comments>
  3585.       </member>
  3586.       <member name="M:HelpIntfs.HelpIntfs.ShowTableOfContents">
  3587.          <summary>
  3588.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Show a Table of Contents.</para>
  3589.          </summary>
  3590.          <comments>
  3591.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System calls <method namespace="HelpIntfs" class="ICustomHelpViewer">ShowTableOfContents</method> when it needs the Help Viewer to display a Table of Contents. The Help System does not call <method namespace="HelpIntfs" class="ICustomHelpViewer">ShowTableOfContents</method> for a Viewer unless that Viewer has previously returned true for a call to Can<method namespace="HelpIntfs" class="ICustomHelpViewer">ShowTableOfContents</method>.</para>
  3592.          </comments>
  3593.       </member>
  3594.       <member name="M:HelpIntfs.HelpIntfs.ShowHelp">
  3595.          <summary>
  3596.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Show a specific Help topic.</para>
  3597.          </summary>
  3598.          <comments>
  3599.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System calls <method namespace="HelpIntfs" class="ICustomHelpViewer">ShowHelp</method> when it needs the Help Viewer to display the Help Topic identified by HelpString. The HelpString parameter is a value previously provided by the Help Viewer in response to a GetHelpStrings call.</para>
  3600.          </comments>
  3601.       </member>
  3602.       <member name="M:HelpIntfs.HelpIntfs.NotifyID">
  3603.          <summary>
  3604.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Save Viewer's numeric ID.</para>
  3605.          </summary>
  3606.          <comments>
  3607.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System calls <method namespace="HelpIntfs" class="ICustomHelpViewer">NotifyID</method> to pass the application a unique numeric ID associated with a Viewer. The application uses this ID to identify a specific viewer in calls to Release (IHelpManager).</para>
  3608.          </comments>
  3609.       </member>
  3610.       <member name="M:HelpIntfs.HelpIntfs.SoftShutDown">
  3611.          <summary>
  3612.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Temporary Viewer shut down.</para>
  3613.          </summary>
  3614.          <comments>
  3615.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System calls <method namespace="HelpIntfs" class="ICustomHelpViewer">SoftShutDown</method> when it is notified that the application want to close all open Help Topics. A Viewer should respond to this call by terminating any external applications used to display Help topics, but should be prepared to restart them as needed.</para>
  3616.          </comments>
  3617.       </member>
  3618.       <member name="M:HelpIntfs.HelpIntfs.ShutDown">
  3619.          <summary>
  3620.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Permanent Viewer shut down.</para>
  3621.          </summary>
  3622.          <comments>
  3623.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Help System calls <method namespace="HelpIntfs" class="ICustomHelpViewer">ShutDown</method> when it is notified that the application is shutting down. A Viewer should respond to this call by terminating any external applications used to display Help topics. After a call to <method namespace="HelpIntfs" class="ICustomHelpViewer">ShutDown</method>, a Viewer can assume that no more Help requests will arrive.</para>
  3624.          </comments>
  3625.       </member>
  3626.       <member name="T:HelpIntfs.IExtendedHelpViewer">
  3627.          <summary>
  3628.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Help Viewer with context help support.</para>
  3629.          </summary>
  3630.          <comments>
  3631.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3632.                
  3633.                <class namespace="HelpIntfs">IExtendedHelpViewer</class> extends ICustomHelpViewer by adding support for Topic IDs and Context IDs.</para>
  3634.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A topic ID is a short string that uniquely identifies each topic provided by a Help Viewer. A topic ID provides a simple way for an application to display a specific Help topic without searching for it.</para>
  3635.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A context ID is an integer value that uniquely identifies each Help topic. Context IDs support context-sensitive Help by providing a value that associates forms and controls with their help topics. A form or control can be associated a topic simply by setting its HelpContext property.</para>
  3636.          </comments>
  3637.       </member>
  3638.       <member name="M:HelpIntfs.HelpIntfs.UnderstandsTopic">
  3639.          <summary>
  3640.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Can Help Viewer respond to Topic-based. Help request?</para>
  3641.          </summary>
  3642.          <comments>
  3643.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3644.                      
  3645.                <method namespace="HelpIntfs" class="IExtendedHelpViewer">UnderstandsTopic</method> should return true if the Viewer is able to display the topic identified by the Topic parameter. When the RTL Help System receives a Topic-based Help request, it calls <method namespace="HelpIntfs" class="IExtendedHelpViewer">UnderstandsTopic</method> for each Viewer that implements it until the method returns true. (Viewers are polled in the order they were registered.) The Help System than calls that Viewer's DisplayTopic method.</para>
  3646.          </comments>
  3647.       </member>
  3648.       <member name="M:HelpIntfs.HelpIntfs.UnderstandsContext">
  3649.          <summary>
  3650.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Can Help Viewer respond to Context-based. Help request?</para>
  3651.          </summary>
  3652.          <comments>
  3653.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3654.                      
  3655.                <method namespace="HelpIntfs" class="IExtendedHelpViewer">UnderstandsContext</method> should return true if the Viewer is able to display the topic identified by ContextID in the file HelpFileName. When the RTL Help System receives a Context-based Help request, it calls <method namespace="HelpIntfs" class="IExtendedHelpViewer">UnderstandsContext</method> for each Viewer that implements it until the method returns true. (Viewers are polled in the order they were registered.) The Help System than calls that Viewer's DisplayHelpByContext method.</para>
  3656.          </comments>
  3657.       </member>
  3658.       <member name="M:HelpIntfs.HelpIntfs.DisplayTopic">
  3659.          <summary>
  3660.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use Topic ID to display topic.</para>
  3661.          </summary>
  3662.          <comments>
  3663.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The RTL Help System calls <method namespace="HelpIntfs" class="IExtendedHelpViewer">DisplayTopic</method> to have the Viewer handle a topic-based Help request. Topic is the Topic ID, a short string that must be unique for all the topics maintained by a particular Viewer.</para>
  3664.          </comments>
  3665.       </member>
  3666.       <member name="M:HelpIntfs.HelpIntfs.DisplayHelpByContext">
  3667.          <summary>
  3668.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use Context ID to display topic.</para>
  3669.          </summary>
  3670.          <comments>
  3671.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The RTL Help System calls <method namespace="HelpIntfs" class="IExtendedHelpViewer">DisplayHelpByContext</method> to have the Viewer handle a context-based Help request. ContextID is the topic's Context ID. HelpFileName is the name of the file containing the topic. Note that some Help engines require the file name to be fully qualified.</para>
  3672.          </comments>
  3673.       </member>
  3674.       <member name="T:HelpIntfs.ISpecialWinHelpViewer">
  3675.          <summary>
  3676.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Help Viewer that supports special Windows Help requests.</para>
  3677.          </summary>
  3678.          <comments>
  3679.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3680.                
  3681.                <class namespace="HelpIntfs">ISpecialWinHelpViewer</class> supports Help requests that cannot be easily generalized, and should only be handled by the Microsoft Windows Help engine or a closely compatible application.</para>
  3682.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3683.                
  3684.                <class namespace="HelpIntfs">ISpecialWinHelpViewer</class> consists of a single method, CallWinHelp, which should pass the Help request to the Help engine with as little manipulation as possible. An application needs to provide only one Viewer that implements <class namespace="HelpIntfs">ISpecialWinHelpViewer</class>. If more than one Viewer is registered that implements <class namespace="HelpIntfs">ISpecialWinHelpViewer</class>, only the first Viewer ever receives calls to CallWinHelp.</para>
  3685.          </comments>
  3686.       </member>
  3687.       <member name="M:HelpIntfs.HelpIntfs.CallWinHelp">
  3688.          <summary>
  3689.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Pass Help request directly to engine.</para>
  3690.          </summary>
  3691.          <comments>
  3692.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The RTL Help System calls <method namespace="HelpIntfs" class="ISpecialWinHelpViewer">CallWinHelp</method> when it receives a Windows-style Help request that cannot be generalized as a Topic-based or Context-based request. <method namespace="HelpIntfs" class="ISpecialWinHelpViewer">CallWinHelp</method> should pass the request directly to the Windows winhelp() API or to a functional equivalent. </para>
  3693.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3694.                      
  3695.                <method namespace="HelpIntfs" class="ISpecialWinHelpViewer">CallWinHelp</method> should return true if it was able to handle the request.</para>
  3696.          </comments>
  3697.       </member>
  3698.       <member name="T:HelpIntfs.IHelpManager">
  3699.          <summary>
  3700.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3701.                
  3702.                <class namespace="HelpIntfs">IHelpManager</class> provides access to the Help System for a Help Viewer.</para>
  3703.          </summary>
  3704.          <comments>
  3705.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3706.                
  3707.                <class namespace="HelpIntfs">IHelpManager</class> defines methods that a Help Viewer uses to interact with the Help System. A Viewer accesses these methods using the object that the global RegisterViewer function returns.</para>
  3708.          </comments>
  3709.       </member>
  3710.       <member name="M:HelpIntfs.HelpIntfs.GetHandle">
  3711.          <summary>
  3712.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Get application window handle.</para>
  3713.          </summary>
  3714.          <comments>
  3715.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3716.                      
  3717.                <method namespace="HelpIntfs" class="IHelpManager">GetHandle</method> returns the main window handle of the application responsible for the current Help request.</para>
  3718.          </comments>
  3719.       </member>
  3720.       <member name="M:HelpIntfs.HelpIntfs.GetHelpFile">
  3721.          <summary>
  3722.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Get Help File name.</para>
  3723.          </summary>
  3724.          <comments>
  3725.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3726.                      
  3727.                <method namespace="HelpIntfs" class="IHelpManager">GetHelpFile</method> returns the name of the Help File associated with the current Help request.</para>
  3728.          </comments>
  3729.       </member>
  3730.       <member name="M:HelpIntfs.HelpIntfs.Release">
  3731.          <summary>
  3732.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Notify Help System of Help Viewer shutdown.</para>
  3733.          </summary>
  3734.          <comments>
  3735.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3736.                      
  3737.                <method namespace="HelpIntfs" class="IHelpManager">Release</method> disconnects the Help Viewer from the RTL Help System. The ViewerID parameter is the value the Help System previously passed to the Viewer by calling NotifyID.</para>
  3738.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A Help Viewer should call <method namespace="HelpIntfs" class="IHelpManager">Release</method> when it is about to shut down, unless the Viewer is shutting down in response to a call to ShutDown.</para>
  3739.          </comments>
  3740.       </member>
  3741.       <member name="T:HelpIntfs.EHelpSystemException">
  3742.          <summary>
  3743.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3744.                
  3745.                <class namespace="HelpIntfs">EHelpSystemException</class> is the class for errors raised by the RTL Help System.</para>
  3746.          </summary>
  3747.          <comments>
  3748.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Run-Time Library Help System raises <class namespace="HelpIntfs">EHelpSystemException</class> when an error occurs while registering or invoking a help viewer.</para>
  3749.          </comments>
  3750.       </member>
  3751.       <member name="M:HelpIntfs.RegisterViewer">
  3752.          <summary>
  3753.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Register Help Viewer to receive requests.</para>
  3754.          </summary>
  3755.          <comments>
  3756.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="HelpIntfs">RegisterViewer</routine> to register a Help Viewer with the Help System. An application can register any number of Viewers. The order in which Help Viewers are registered is significant, because each Help request causes the RTL Help System to poll the Viewers in the order they were registered, and give the Help request to the first viewer that claims to be able to handle it. An application can override this behavior for keyword-based Help requests and for requests to display a Table of Contents by providing a Help Selector object.</para>
  3757.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Pass the Viewer object in the newViewer parameter.</para>
  3758.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3759.                
  3760.                <routine namespace="HelpIntfs">RegisterViewer</routine> returns a Help Manager object in the Manager parameter; the Viewer uses this object to interact with the Help System.</para>
  3761.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The return value of <routine namespace="HelpIntfs">RegisterViewer</routine> is 1 is the Viewer was successfully registered, 0 otherwise.</para>
  3762.          </comments>
  3763.       </member>
  3764.       <member name="M:HelpIntfs.GetHelpSystem">
  3765.          <summary>
  3766.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns Help System object.</para>
  3767.          </summary>
  3768.          <comments>
  3769.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3770.                
  3771.                <routine namespace="HelpIntfs">GetHelpSystem</routine> returns an object that implements IHelpSystem. An application calls IHelpSystem methods to interact with the Help System.</para>
  3772.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3773.                
  3774.                <routine namespace="HelpIntfs">GetHelpSystem</routine> returns 1 if the Help System object was successfully obtained, 0 otherwise.</para>
  3775.          </comments>
  3776.       </member>
  3777.       <member name="T:MaskUtils.TMaskedText">
  3778.          <summary>
  3779.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3780.                
  3781.                <type namespace="Qt">TMaskedText</type> is the type for the text that is typed into a masked edit control.</para>
  3782.          </summary>
  3783.          <comments>
  3784.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3785.                
  3786.                <type namespace="Qt">TMaskedText</type> is the value of a masked edit control's text before the mask is applied.</para>
  3787.          </comments>
  3788.       </member>
  3789.       <member name="T:MaskUtils.TEditMask">
  3790.          <summary>
  3791.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Represents the mask that validates and formats user input.</para>
  3792.          </summary>
  3793.          <comments>
  3794.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3795.                
  3796.                <type namespace="Qt">TEditMask</type> is a string that consists of three fields with semicolons separating them. The first part of the mask is the mask itself. The second part is the character that determines whether the literal characters of a mask are saved as part of the data. The third part of the mask is the character used to represent unentered characters in the mask.</para>
  3797.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">These are the special characters used in the first field of the mask:</para>
  3798.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3799.                
  3800.                <tr>
  3801.                   
  3802.                   <th>Character</th>
  3803.                   
  3804.                   <th>Meaning in mask</th>
  3805.                
  3806.                </tr>
  3807.                
  3808.                <tr>
  3809.                   
  3810.                   <td>
  3811.                      
  3812.                      <para> !</para>
  3813.                   
  3814.                   </td>
  3815.                   
  3816.                   <td>
  3817.                      
  3818.                      <para>If a ! character appears in the mask, optional characters are represented in the text as leading blanks. If a ! character is not present, optional characters are represented in the text as trailing blanks.</para>
  3819.                   
  3820.                   </td>
  3821.                
  3822.                </tr>
  3823.                
  3824.                <tr>
  3825.                   
  3826.                   <td>
  3827.                      
  3828.                      <para> ></para>
  3829.                   
  3830.                   </td>
  3831.                   
  3832.                   <td>
  3833.                      
  3834.                      <para>If a > character appears in the mask, all characters that follow are in uppercase until the end of the mask or until a < character is encountered.</para>
  3835.                   
  3836.                   </td>
  3837.                
  3838.                </tr>
  3839.                
  3840.                <tr>
  3841.                   
  3842.                   <td>
  3843.                      
  3844.                      <para> <</para>
  3845.                   
  3846.                   </td>
  3847.                   
  3848.                   <td>
  3849.                      
  3850.                      <para>If a < character appears in the mask, all characters that follow are in lowercase until the end of the mask or until a > character is encountered.</para>
  3851.                   
  3852.                   </td>
  3853.                
  3854.                </tr>
  3855.                
  3856.                <tr>
  3857.                   
  3858.                   <td>
  3859.                      
  3860.                      <para> <></para>
  3861.                   
  3862.                   </td>
  3863.                   
  3864.                   <td>
  3865.                      
  3866.                      <para>If these two characters appear together in a mask, no case checking is done and the data is formatted with the case the user uses to enter the data.</para>
  3867.                   
  3868.                   </td>
  3869.                
  3870.                </tr>
  3871.                
  3872.                <tr>
  3873.                   
  3874.                   <td>
  3875.                      
  3876.                      <para>\</para>
  3877.                   
  3878.                   </td>
  3879.                   
  3880.                   <td>
  3881.                      
  3882.                      <para>The character that follows a \ character is a literal character. Use this character to use any of the mask special characters as a literal in the data.</para>
  3883.                   
  3884.                   </td>
  3885.                
  3886.                </tr>
  3887.                
  3888.                <tr>
  3889.                   
  3890.                   <td>
  3891.                      
  3892.                      <para> L</para>
  3893.                   
  3894.                   </td>
  3895.                   
  3896.                   <td>
  3897.                      
  3898.                      <para>The L character requires an alphabetic character only in this position. For the US, this is A-Z, a-z.</para>
  3899.                   
  3900.                   </td>
  3901.                
  3902.                </tr>
  3903.                
  3904.                <tr>
  3905.                   
  3906.                   <td>
  3907.                      
  3908.                      <para> l</para>
  3909.                   
  3910.                   </td>
  3911.                   
  3912.                   <td>
  3913.                      
  3914.                      <para>The l character permits only an alphabetic character in this position, but doesn't require it.</para>
  3915.                   
  3916.                   </td>
  3917.                
  3918.                </tr>
  3919.                
  3920.                <tr>
  3921.                   
  3922.                   <td>
  3923.                      
  3924.                      <para>A</para>
  3925.                   
  3926.                   </td>
  3927.                   
  3928.                   <td>
  3929.                      
  3930.                      <para>The A character requires an alphanumeric character only in this position. For the US, this is A-Z, a-z, 0-9.</para>
  3931.                   
  3932.                   </td>
  3933.                
  3934.                </tr>
  3935.                
  3936.                <tr>
  3937.                   
  3938.                   <td>
  3939.                      
  3940.                      <para> a</para>
  3941.                   
  3942.                   </td>
  3943.                   
  3944.                   <td>
  3945.                      
  3946.                      <para>The a character permits an alphanumeric character in this position, but doesn't require it.</para>
  3947.                   
  3948.                   </td>
  3949.                
  3950.                </tr>
  3951.                
  3952.                <tr>
  3953.                   
  3954.                   <td>
  3955.                      
  3956.                      <para>C</para>
  3957.                   
  3958.                   </td>
  3959.                   
  3960.                   <td>
  3961.                      
  3962.                      <para>The C character requires an arbitrary character in this position.</para>
  3963.                   
  3964.                   </td>
  3965.                
  3966.                </tr>
  3967.                
  3968.                <tr>
  3969.                   
  3970.                   <td>
  3971.                      
  3972.                      <para> c</para>
  3973.                   
  3974.                   </td>
  3975.                   
  3976.                   <td>
  3977.                      
  3978.                      <para>The c character permits an arbitrary character in this position, but doesn't require it.</para>
  3979.                   
  3980.                   </td>
  3981.                
  3982.                </tr>
  3983.                
  3984.                <tr>
  3985.                   
  3986.                   <td>
  3987.                      
  3988.                      <para> 0</para>
  3989.                   
  3990.                   </td>
  3991.                   
  3992.                   <td>
  3993.                      
  3994.                      <para>The 0 character requires a numeric character only in this position.</para>
  3995.                   
  3996.                   </td>
  3997.                
  3998.                </tr>
  3999.                
  4000.                <tr>
  4001.                   
  4002.                   <td>
  4003.                      
  4004.                      <para> 9</para>
  4005.                   
  4006.                   </td>
  4007.                   
  4008.                   <td>
  4009.                      
  4010.                      <para>The 9 character permits a numeric character in this position, but doesn't require it.</para>
  4011.                   
  4012.                   </td>
  4013.                
  4014.                </tr>
  4015.                
  4016.                <tr>
  4017.                   
  4018.                   <td>
  4019.                      
  4020.                      <para>#</para>
  4021.                   
  4022.                   </td>
  4023.                   
  4024.                   <td>
  4025.                      
  4026.                      <para>The # character permits a numeric character or a plus or minus sign in this position, but doesn't require it.</para>
  4027.                   
  4028.                   </td>
  4029.                
  4030.                </tr>
  4031.                
  4032.                <tr>
  4033.                   
  4034.                   <td>
  4035.                      
  4036.                      <para>:</para>
  4037.                   
  4038.                   </td>
  4039.                   
  4040.                   <td>
  4041.                      
  4042.                      <para>The : character is used to separate hours, minutes, and seconds in times. If the character that separates hours, minutes, and seconds is different in the regional settings of the Control Panel utility on your computer system, that character is used instead.</para>
  4043.                   
  4044.                   </td>
  4045.                
  4046.                </tr>
  4047.                
  4048.                <tr>
  4049.                   
  4050.                   <td>
  4051.                      
  4052.                      <para> /</para>
  4053.                   
  4054.                   </td>
  4055.                   
  4056.                   <td>
  4057.                      
  4058.                      <para>The / character is used to separate months, days, and years in dates. If the character that separates months, days, and years is different in the regional settings of the Control Panel utility on your computer system, that character is used instead.</para>
  4059.                   
  4060.                   </td>
  4061.                
  4062.                </tr>
  4063.                
  4064.                <tr>
  4065.                   
  4066.                   <td>
  4067.                      
  4068.                      <para> ;</para>
  4069.                   
  4070.                   </td>
  4071.                   
  4072.                   <td>
  4073.                      
  4074.                      <para>The ; character is used to separate the three fields of the mask.</para>
  4075.                   
  4076.                   </td>
  4077.                
  4078.                </tr>
  4079.                
  4080.                <tr>
  4081.                   
  4082.                   <td>
  4083.                      
  4084.                      <para> _</para>
  4085.                   
  4086.                   </td>
  4087.                   
  4088.                   <td>
  4089.                      
  4090.                      <para>The _ character automatically inserts spaces into the text. When the user enters characters in the field, the cursor skips the _ character.</para>
  4091.                   
  4092.                   </td>
  4093.                
  4094.                </tr>
  4095.             
  4096.             </table>
  4097.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Any character that does not appear in the preceding table can appear in the first part of the mask as a literal character. Literal characters must be matched exactly in the edit control. They are inserted automatically, and the cursor skips over them during editing. The special mask characters can also appear as literal characters if preceded by a backslash character (\).</para>
  4098.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The second field of the mask is a single character that indicates whether literal characters from the mask should be included as part of the text for the edit control. For example, the mask for a telephone number with area code could be the following string:</para>
  4099.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">(000)_000-0000;0;*</para>
  4100.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The 0 in the second field indicates that the Text property for the edit control would consist of the 10 digits that were entered, rather than the 14 characters that make up the telephone number as it appears in the edit control.</para>
  4101.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A 0 in the second field indicates that literals should not be included, any other character indicates that they should be included. The character that indicates whether literals should be included can be changed in the Edit Mask property editor, or programmatically by changing the MaskNoSave typed constant.</para>
  4102.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The third field of the mask is the character that appears in the edit control for blanks (characters that have not been entered). By default, this is the same as the character that stands for literal spaces. The two characters appear the same in an edit window. However, when a user edits the text in a masked edit control, the cursor selects each blank character in turn, and skips over the space character.</para>
  4103.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4104.                
  4105.                <para>When working with multibyte character sets, each special mask character represents a single byte. To specify multi-byte characters using the L, l, A, a, C, or c specifiers, the mask characters must be duplicated as well. For example, LL would represent two single-byte alphabetic characters or a one double-byte character. Only single-byte literal characters are supported.</para>
  4106.             
  4107.             </note>
  4108.          </comments>
  4109.       </member>
  4110.       <member name="M:MaskUtils.FormatMaskText">
  4111.          <summary>
  4112.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns a string formatted using an edit mask.</para>
  4113.          </summary>
  4114.          <comments>
  4115.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="MaskUtils">FormatMaskText</routine> to apply the mask specified by the EditMask parameter to the text string specified by the Value parameter. The edit mask string consists of three fields with semicolons separating them. The first part of the mask is the mask itself. The second part is the character that determines whether the literal characters of the mask are matched to characters in the Value parameter or are inserted into the Value string. The third part of the mask is the character used to represent missing characters in the mask.</para>
  4116.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">These are the special characters used in the first field of the mask:</para>
  4117.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4118.                
  4119.                <tr>
  4120.                   
  4121.                   <th>Character</th>
  4122.                   
  4123.                   <th>Meaning in mask</th>
  4124.                
  4125.                </tr>
  4126.                
  4127.                <tr>
  4128.                   
  4129.                   <td>
  4130.                      
  4131.                      <para>!</para>
  4132.                   
  4133.                   </td>
  4134.                   
  4135.                   <td>
  4136.                      
  4137.                      <para>If a ! character appears in the mask, optional characters are represented in the returned string as leading blanks. If a ! character is not present, optional characters are represented in the returned string as trailing blanks.</para>
  4138.                   
  4139.                   </td>
  4140.                
  4141.                </tr>
  4142.                
  4143.                <tr>
  4144.                   
  4145.                   <td>
  4146.                      
  4147.                      <para>></para>
  4148.                   
  4149.                   </td>
  4150.                   
  4151.                   <td>
  4152.                      
  4153.                      <para>If a > character appears in the mask, all characters that follow are in uppercase until the end of the mask or until a < character is encountered.</para>
  4154.                   
  4155.                   </td>
  4156.                
  4157.                </tr>
  4158.                
  4159.                <tr>
  4160.                   
  4161.                   <td>
  4162.                      
  4163.                      <para><</para>
  4164.                   
  4165.                   </td>
  4166.                   
  4167.                   <td>
  4168.                      
  4169.                      <para>If a < character appears in the mask, all characters that follow are in lowercase until the end of the mask or until a > character is encountered.</para>
  4170.                   
  4171.                   </td>
  4172.                
  4173.                </tr>
  4174.                
  4175.                <tr>
  4176.                   
  4177.                   <td>
  4178.                      
  4179.                      <para><></para>
  4180.                   
  4181.                   </td>
  4182.                   
  4183.                   <td>
  4184.                      
  4185.                      <para>If these two characters appear together in a mask, no case checking is done and the data is formatted with the case present in the Value parameter.</para>
  4186.                   
  4187.                   </td>
  4188.                
  4189.                </tr>
  4190.                
  4191.                <tr>
  4192.                   
  4193.                   <td>
  4194.                      
  4195.                      <para>\</para>
  4196.                   
  4197.                   </td>
  4198.                   
  4199.                   <td>
  4200.                      
  4201.                      <para>The character that follows a \ character is a literal character. Use this character to use any of the mask special characters as a literal.</para>
  4202.                   
  4203.                   </td>
  4204.                
  4205.                </tr>
  4206.                
  4207.                <tr>
  4208.                   
  4209.                   <td>
  4210.                      
  4211.                      <para>L</para>
  4212.                   
  4213.                   </td>
  4214.                   
  4215.                   <td>
  4216.                      
  4217.                      <para>The L character requires an alphabetic character only in this position. For the US, this is A-Z, a-z.</para>
  4218.                   
  4219.                   </td>
  4220.                
  4221.                </tr>
  4222.                
  4223.                <tr>
  4224.                   
  4225.                   <td>
  4226.                      
  4227.                      <para>l</para>
  4228.                   
  4229.                   </td>
  4230.                   
  4231.                   <td>
  4232.                      
  4233.                      <para>The l character permits only an alphabetic character in this position, but doesn't require it.</para>
  4234.                   
  4235.                   </td>
  4236.                
  4237.                </tr>
  4238.                
  4239.                <tr>
  4240.                   
  4241.                   <td>
  4242.                      
  4243.                      <para>A</para>
  4244.                   
  4245.                   </td>
  4246.                   
  4247.                   <td>
  4248.                      
  4249.                      <para>The A character requires an alphanumeric character only in this position. For the US, this is A-Z, a-z, 0-9.</para>
  4250.                   
  4251.                   </td>
  4252.                
  4253.                </tr>
  4254.                
  4255.                <tr>
  4256.                   
  4257.                   <td>
  4258.                      
  4259.                      <para>a</para>
  4260.                   
  4261.                   </td>
  4262.                   
  4263.                   <td>
  4264.                      
  4265.                      <para>The a character permits an alphanumeric character in this position, but doesn't require it.</para>
  4266.                   
  4267.                   </td>
  4268.                
  4269.                </tr>
  4270.                
  4271.                <tr>
  4272.                   
  4273.                   <td>
  4274.                      
  4275.                      <para>C</para>
  4276.                   
  4277.                   </td>
  4278.                   
  4279.                   <td>
  4280.                      
  4281.                      <para>The C character requires an arbitrary character in this position.</para>
  4282.                   
  4283.                   </td>
  4284.                
  4285.                </tr>
  4286.                
  4287.                <tr>
  4288.                   
  4289.                   <td>
  4290.                      
  4291.                      <para>c</para>
  4292.                   
  4293.                   </td>
  4294.                   
  4295.                   <td>
  4296.                      
  4297.                      <para>The c character permits an arbitrary character in this position, but doesn't require it.</para>
  4298.                   
  4299.                   </td>
  4300.                
  4301.                </tr>
  4302.                
  4303.                <tr>
  4304.                   
  4305.                   <td>
  4306.                      
  4307.                      <para>0</para>
  4308.                   
  4309.                   </td>
  4310.                   
  4311.                   <td>
  4312.                      
  4313.                      <para>The 0 character requires a numeric character only in this position.</para>
  4314.                   
  4315.                   </td>
  4316.                
  4317.                </tr>
  4318.                
  4319.                <tr>
  4320.                   
  4321.                   <td>
  4322.                      
  4323.                      <para>9</para>
  4324.                   
  4325.                   </td>
  4326.                   
  4327.                   <td>
  4328.                      
  4329.                      <para>The 9 character permits a numeric character in this position, but doesn't require it.</para>
  4330.                   
  4331.                   </td>
  4332.                
  4333.                </tr>
  4334.                
  4335.                <tr>
  4336.                   
  4337.                   <td>
  4338.                      
  4339.                      <para>#</para>
  4340.                   
  4341.                   </td>
  4342.                   
  4343.                   <td>
  4344.                      
  4345.                      <para>The # character permits a numeric character or a plus or minus sign in this position, but doesn't require it.</para>
  4346.                   
  4347.                   </td>
  4348.                
  4349.                </tr>
  4350.                
  4351.                <tr>
  4352.                   
  4353.                   <td>
  4354.                      
  4355.                      <para>:</para>
  4356.                   
  4357.                   </td>
  4358.                   
  4359.                   <td>
  4360.                      
  4361.                      <para>The : character is used to separate hours, minutes, and seconds in times. If the character that separates hours, minutes, and seconds is different in the regional settings of the Control Panel, that character is substituted in the returned string.</para>
  4362.                   
  4363.                   </td>
  4364.                
  4365.                </tr>
  4366.                
  4367.                <tr>
  4368.                   
  4369.                   <td>
  4370.                      
  4371.                      <para>/</para>
  4372.                   
  4373.                   </td>
  4374.                   
  4375.                   <td>
  4376.                      
  4377.                      <para>The / character is used to separate months, days, and years in dates. If the character that separates months, days, and years is different in the regional settings of the Control Panel, that character is substituted in the returned string.</para>
  4378.                   
  4379.                   </td>
  4380.                
  4381.                </tr>
  4382.                
  4383.                <tr>
  4384.                   
  4385.                   <td>
  4386.                      
  4387.                      <para>;</para>
  4388.                   
  4389.                   </td>
  4390.                   
  4391.                   <td>
  4392.                      
  4393.                      <para>The ; character is used to separate the three fields of the mask.</para>
  4394.                   
  4395.                   </td>
  4396.                
  4397.                </tr>
  4398.                
  4399.                <tr>
  4400.                   
  4401.                   <td>
  4402.                      
  4403.                      <para>_</para>
  4404.                   
  4405.                   </td>
  4406.                   
  4407.                   <td>
  4408.                      
  4409.                      <para>The _ character automatically inserts spaces into the returned string.</para>
  4410.                   
  4411.                   </td>
  4412.                
  4413.                </tr>
  4414.             
  4415.             </table>
  4416.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Any character that does not appear in the preceding table can appear in the first part of the mask as a literal character. Literal characters are inserted automatically if the second field of the mask is 0, or matched to characters in the Value parameter if the second field is any other value. The special mask characters can also appear as literal characters if preceded by a backslash character (\).</para>
  4417.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The second field of the mask is a single character that indicates whether literal characters from the mask are included in the Value parameter. For example, the mask for a telephone number with area code could be the following string:</para>
  4418.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">(000)_000-0000;0;*</para>
  4419.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The 0 in the second field indicates that the Value parameter should consist of the 10 digits of the phone number, rather than the 14 characters that make up the final formatted string.</para>
  4420.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A 0 in the second field indicates that literals are inserted into the Value string, any other character indicates that they should be included. The character to indicate whether literals should be included can be changed by changing the MaskNoSave constant that is declared in the MaskUtils unit.</para>
  4421.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The third field of the mask is the character that appears in the returned string for blanks (characters that do not appear in Value). By default, this is the same as the character that stands for literal spaces. The two characters appear the same in the returned string.</para>
  4422.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4423.                
  4424.                <para>When working with multibyte character sets, each special mask character represents a single byte. To specify double-byte characters using the L, l, A, a, C, or c specifiers, the mask characters must be doubled as well. For example, LL would represent two single-byte alphabetic characters or a one double-byte character. Only single-byte literal characters are supported.</para>
  4425.             
  4426.             </note>
  4427.          </comments>
  4428.       </member>
  4429.       <member name="T:Classes.TSeekOrigin">
  4430.          <summary>
  4431.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4432.                
  4433.                <type namespace="Qt">TSeekOrigin</type> indicates where to start a seek operation.</para>
  4434.          </summary>
  4435.          <comments>
  4436.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <type namespace="Qt">TSeekOrigin</type> type indicates where to start a seek origin and the direction in which to seek. The following table lists the possible values:</para>
  4437.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4438.                
  4439.                <tr>
  4440.                   
  4441.                   <th>Value</th>
  4442.                   
  4443.                   <th>Meaning</th>
  4444.                
  4445.                </tr>
  4446.                
  4447.                <tr>
  4448.                   
  4449.                   <td>
  4450.                      
  4451.                      <para>soFromBeginning</para>
  4452.                   
  4453.                   </td>
  4454.                   
  4455.                   <td>
  4456.                      
  4457.                      <para>Seek from the beginning of the resource. The seek operation moves to a specified position (offset), which must be greater than or equal to zero.</para>
  4458.                   
  4459.                   </td>
  4460.                
  4461.                </tr>
  4462.                
  4463.                <tr>
  4464.                   
  4465.                   <td>
  4466.                      
  4467.                      <para>soFromCurrent</para>
  4468.                   
  4469.                   </td>
  4470.                   
  4471.                   <td>
  4472.                      
  4473.                      <para>Seek from the current position in the resource. The seek operation moves to an offset from the current position (position + offset). The offset is positive to move forward, negative to move backward.</para>
  4474.                   
  4475.                   </td>
  4476.                
  4477.                </tr>
  4478.                
  4479.                <tr>
  4480.                   
  4481.                   <td>
  4482.                      
  4483.                      <para>soFromEnd</para>
  4484.                   
  4485.                   </td>
  4486.                   
  4487.                   <td>
  4488.                      
  4489.                      <para>Seek from the end of the resource. The seek operation moves to an offset from the end of the resource, where the offset is expressed as a negative value because it is moving toward the beginning of the resource.</para>
  4490.                   
  4491.                   </td>
  4492.                
  4493.                </tr>
  4494.             
  4495.             </table>
  4496.          </comments>
  4497.       </member>
  4498.       <member name="T:Classes.TAlignment">
  4499.          <summary>
  4500.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4501.                
  4502.                <type namespace="Qt">TAlignment</type> specifies how text is aligned within a control.</para>
  4503.          </summary>
  4504.          <comments>
  4505.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The following are possible values of <type namespace="Qt">TAlignment</type>:</para>
  4506.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4507.                
  4508.                <tr>
  4509.                   
  4510.                   <th>Value</th>
  4511.                   
  4512.                   <th>Meaning</th>
  4513.                
  4514.                </tr>
  4515.                
  4516.                <tr>
  4517.                   
  4518.                   <td>
  4519.                      
  4520.                      <para>taLeftJustify</para>
  4521.                   
  4522.                   </td>
  4523.                   
  4524.                   <td>
  4525.                      
  4526.                      <para>Text is left-justified: Lines all begin at the left edge of the control.</para>
  4527.                   
  4528.                   </td>
  4529.                
  4530.                </tr>
  4531.                
  4532.                <tr>
  4533.                   
  4534.                   <td>
  4535.                      
  4536.                      <para>taCenter</para>
  4537.                   
  4538.                   </td>
  4539.                   
  4540.                   <td>
  4541.                      
  4542.                      <para>Text is centered in the control.</para>
  4543.                   
  4544.                   </td>
  4545.                
  4546.                </tr>
  4547.                
  4548.                <tr>
  4549.                   
  4550.                   <td>
  4551.                      
  4552.                      <para>taRightJustify</para>
  4553.                   
  4554.                   </td>
  4555.                   
  4556.                   <td>
  4557.                      
  4558.                      <para>Text is right-justified: Lines all end at the right edge of the control.</para>
  4559.                   
  4560.                   </td>
  4561.                
  4562.                </tr>
  4563.             
  4564.             </table>
  4565.          </comments>
  4566.       </member>
  4567.       <member name="T:Classes.TLeftRight">
  4568.          <summary>
  4569.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4570.                
  4571.                <type namespace="Qt">TLeftRight</type> is a subset of TAlignment that allows left or right justification.</para>
  4572.          </summary>
  4573.          <comments>
  4574.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4575.                
  4576.                <type namespace="Qt">TLeftRight</type> is a subset of the TAlignment type that allows left or right justification, but no center justification. The following table lists the possible values.</para>
  4577.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4578.                
  4579.                <tr>
  4580.                   
  4581.                   <th>Value</th>
  4582.                   
  4583.                   <th>Meaning</th>
  4584.                
  4585.                </tr>
  4586.                
  4587.                <tr>
  4588.                   
  4589.                   <td>
  4590.                      
  4591.                      <para>taLeftJustify</para>
  4592.                   
  4593.                   </td>
  4594.                   
  4595.                   <td>
  4596.                      
  4597.                      <para>Left-justified: The left edges line up.</para>
  4598.                   
  4599.                   </td>
  4600.                
  4601.                </tr>
  4602.                
  4603.                <tr>
  4604.                   
  4605.                   <td>
  4606.                      
  4607.                      <para>taRightJustify</para>
  4608.                   
  4609.                   </td>
  4610.                   
  4611.                   <td>
  4612.                      
  4613.                      <para>Right-justified: The right edges line up.</para>
  4614.                   
  4615.                   </td>
  4616.                
  4617.                </tr>
  4618.             
  4619.             </table>
  4620.          </comments>
  4621.       </member>
  4622.       <member name="T:Classes.TBiDiMode">
  4623.          <summary>
  4624.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4625.                
  4626.                <condition os="Windows">
  4627.                   
  4628.                   <type namespace="OleAuto">TBiDiMode</type> specifies the reading order (bidirectional mode) of a control.</condition>
  4629.             
  4630.             </para>
  4631.          </summary>
  4632.          <comments>
  4633.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4634.                
  4635.                <condition os="Windows">
  4636.                   
  4637.                   <type namespace="OleAuto">TBiDiMode</type> determines the reading order of the text, placement of the vertical scrollbar, and any alignment modifications. It is used to tailor the user interface for locales where text is bi-directional.</condition>
  4638.             
  4639.             </para>
  4640.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4641.                
  4642.                <condition os="Windows">The following table describes the possible values:</condition>
  4643.             
  4644.             </para>
  4645.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4646.                
  4647.                <tr>
  4648.                   
  4649.                   <th>Value</th>
  4650.                   
  4651.                   <th>Meaning</th>
  4652.                
  4653.                </tr>
  4654.                
  4655.                <tr>
  4656.                   
  4657.                   <td>
  4658.                      
  4659.                      <para>bdLeftToRight</para>
  4660.                   
  4661.                   </td>
  4662.                   
  4663.                   <td>
  4664.                      
  4665.                      <para>Reading order is left to right. Alignment is not changed. The vertical scroll bar appears on the right edge of the control.</para>
  4666.                   
  4667.                   </td>
  4668.                
  4669.                </tr>
  4670.                
  4671.                <tr>
  4672.                   
  4673.                   <td>
  4674.                      
  4675.                      <para>bdRightToLeft</para>
  4676.                   
  4677.                   </td>
  4678.                   
  4679.                   <td>
  4680.                      
  4681.                      <para>Reading order is right to left. Alignment is changed. The vertical scroll bar appears on the left edge of the control.</para>
  4682.                   
  4683.                   </td>
  4684.                
  4685.                </tr>
  4686.                
  4687.                <tr>
  4688.                   
  4689.                   <td>
  4690.                      
  4691.                      <para>bdRightToLeftNoAlign</para>
  4692.                   
  4693.                   </td>
  4694.                   
  4695.                   <td>
  4696.                      
  4697.                      <para>Reading order is right to left. Alignment is not changed. The vertical scroll bar appears on the left edge of the control.</para>
  4698.                   
  4699.                   </td>
  4700.                
  4701.                </tr>
  4702.                
  4703.                <tr>
  4704.                   
  4705.                   <td>
  4706.                      
  4707.                      <para>bdRightToLeftReadingOnly</para>
  4708.                   
  4709.                   </td>
  4710.                   
  4711.                   <td>
  4712.                      
  4713.                      <para>Reading order is right to left. Alignment and scroll bar are not changed.</para>
  4714.                   
  4715.                   </td>
  4716.                
  4717.                </tr>
  4718.             
  4719.             </table>
  4720.          </comments>
  4721.       </member>
  4722.       <member name="T:Classes.TShiftState">
  4723.          <summary>
  4724.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4725.                
  4726.                <type namespace="Qt">TShiftState</type> indicates the state of the Alt, Ctrl, and Shift keys and the mouse buttons.</para>
  4727.          </summary>
  4728.          <comments>
  4729.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <type namespace="Qt">TShiftState</type> type is used by key-event and mouse-event handlers to determine the state of the Alt, Ctrl, and Shift keys and the state of the mouse buttons when the event occurs.  It is a set of flags that indicate the following:</para>
  4730.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4731.                
  4732.                <tr>
  4733.                   
  4734.                   <th>Value</th>
  4735.                   
  4736.                   <th>Meaning</th>
  4737.                
  4738.                </tr>
  4739.                
  4740.                <tr>
  4741.                   
  4742.                   <td>
  4743.                      
  4744.                      <para>ssShift</para>
  4745.                   
  4746.                   </td>
  4747.                   
  4748.                   <td>
  4749.                      
  4750.                      <para>The Shift key is held down.</para>
  4751.                   
  4752.                   </td>
  4753.                
  4754.                </tr>
  4755.                
  4756.                <tr>
  4757.                   
  4758.                   <td>
  4759.                      
  4760.                      <para>ssAlt</para>
  4761.                   
  4762.                   </td>
  4763.                   
  4764.                   <td>
  4765.                      
  4766.                      <para>The Alt key is held down.</para>
  4767.                   
  4768.                   </td>
  4769.                
  4770.                </tr>
  4771.                
  4772.                <tr>
  4773.                   
  4774.                   <td>
  4775.                      
  4776.                      <para>ssCtrl</para>
  4777.                   
  4778.                   </td>
  4779.                   
  4780.                   <td>
  4781.                      
  4782.                      <para>The Ctrl key is held down.</para>
  4783.                   
  4784.                   </td>
  4785.                
  4786.                </tr>
  4787.                
  4788.                <tr>
  4789.                   
  4790.                   <td>
  4791.                      
  4792.                      <para>ssLeft</para>
  4793.                   
  4794.                   </td>
  4795.                   
  4796.                   <td>
  4797.                      
  4798.                      <para>The left mouse button is held down.</para>
  4799.                   
  4800.                   </td>
  4801.                
  4802.                </tr>
  4803.                
  4804.                <tr>
  4805.                   
  4806.                   <td>
  4807.                      
  4808.                      <para>ssRight</para>
  4809.                   
  4810.                   </td>
  4811.                   
  4812.                   <td>
  4813.                      
  4814.                      <para>The right mouse button is held down.</para>
  4815.                   
  4816.                   </td>
  4817.                
  4818.                </tr>
  4819.                
  4820.                <tr>
  4821.                   
  4822.                   <td>
  4823.                      
  4824.                      <para>ssMiddle</para>
  4825.                   
  4826.                   </td>
  4827.                   
  4828.                   <td>
  4829.                      
  4830.                      <para>The middle mouse button is held down.</para>
  4831.                   
  4832.                   </td>
  4833.                
  4834.                </tr>
  4835.                
  4836.                <tr>
  4837.                   
  4838.                   <td>
  4839.                      
  4840.                      <para>ssDouble</para>
  4841.                   
  4842.                   </td>
  4843.                   
  4844.                   <td>
  4845.                      
  4846.                      <para>The mouse was double-clicked.</para>
  4847.                   
  4848.                   </td>
  4849.                
  4850.                </tr>
  4851.             
  4852.             </table>
  4853.          </comments>
  4854.       </member>
  4855.       <member name="T:Classes.THelpType">
  4856.          <summary>
  4857.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4858.                
  4859.                <type namespace="Qt">THelpType</type> indicates whether components invoke the help system using a context ID or a keyword.</para>
  4860.          </summary>
  4861.          <comments>
  4862.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">These are the possible values of the <type namespace="Qt">THelpType</type> type:</para>
  4863.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4864.                
  4865.                <tr>
  4866.                   
  4867.                   <th>Value</th>
  4868.                   
  4869.                   <th>Meaning</th>
  4870.                
  4871.                </tr>
  4872.                
  4873.                <tr>
  4874.                   
  4875.                   <td>
  4876.                      
  4877.                      <para>htKeyword</para>
  4878.                   
  4879.                   </td>
  4880.                   
  4881.                   <td>
  4882.                      
  4883.                      <para>Help topics are identified by a string. The HelpKeyword property is used to identify help topics. This mechanism is available for all help systems.</para>
  4884.                   
  4885.                   </td>
  4886.                
  4887.                </tr>
  4888.                
  4889.                <tr>
  4890.                   
  4891.                   <td>
  4892.                      
  4893.                      <para>htContext</para>
  4894.                   
  4895.                   </td>
  4896.                   
  4897.                   <td>
  4898.                      
  4899.                      <para>Help topics are identified by a context ID. The HelpContext property is used to identify help topics. This mechanism is not available for all help systems, but is typically faster for those systems that support it.</para>
  4900.                   
  4901.                   </td>
  4902.                
  4903.                </tr>
  4904.             
  4905.             </table>
  4906.          </comments>
  4907.       </member>
  4908.       <member name="T:Classes.EStreamError">
  4909.          <summary>
  4910.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4911.                
  4912.                <class namespace="Classes">EStreamError</class> is the exception class for streaming errors.</para>
  4913.          </summary>
  4914.          <comments>
  4915.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4916.                
  4917.                <class namespace="Classes">EStreamError</class> is the ancestor from which all streaming exception classes descend. <class namespace="Classes">EStreamError</class> is itself raised when resources cannot be allocated for a memory stream.</para>
  4918.          </comments>
  4919.       </member>
  4920.       <member name="T:Classes.EFileStreamError">
  4921.          <summary>
  4922.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4923.                
  4924.                <class namespace="Classes">EFileStreamError</class> is the exception class for general stream errors.</para>
  4925.          </summary>
  4926.          <comments>
  4927.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4928.                
  4929.                <class namespace="Classes">EFileStreamError</class> is raised when an error occurs while streaming data. Some, but not all, data streaming errors raise descendants of <class namespace="Classes">EFileStreamError</class>, as follows.</para>
  4930.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4931.                
  4932.                <tr>
  4933.                   
  4934.                   <th>Exception</th>
  4935.                   
  4936.                   <th>Description</th>
  4937.                
  4938.                </tr>
  4939.                
  4940.                <tr>
  4941.                   
  4942.                   <td>
  4943.                      
  4944.                      <para>EFCreateError</para>
  4945.                   
  4946.                   </td>
  4947.                   
  4948.                   <td>
  4949.                      
  4950.                      <para>Error while creating a new file for streaming.</para>
  4951.                   
  4952.                   </td>
  4953.                
  4954.                </tr>
  4955.                
  4956.                <tr>
  4957.                   
  4958.                   <td>
  4959.                      
  4960.                      <para>EFOpenError</para>
  4961.                   
  4962.                   </td>
  4963.                   
  4964.                   <td>
  4965.                      
  4966.                      <para>Error while opening an existing file for streaming.</para>
  4967.                   
  4968.                   </td>
  4969.                
  4970.                </tr>
  4971.             
  4972.             </table>
  4973.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4974.                
  4975.                <class namespace="Classes">EFileStreamError</class> differs from EFilerError, which is raised by errors in component streams.</para>
  4976.          </comments>
  4977.       </member>
  4978.       <member name="T:Classes.EFCreateError">
  4979.          <summary>
  4980.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4981.                
  4982.                <class namespace="Classes">EFCreateError</class> is the exception class for streaming file-creation errors.</para>
  4983.          </summary>
  4984.          <comments>
  4985.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4986.                
  4987.                <class namespace="Classes">EFCreateError</class> is raised when an application unsuccessfully attempts to create a file. This can occur, for example, if a user specifies an invalid file name, or specifies the name of an existing file that cannot be overwritten because the user lacks appropriate access permission.</para>
  4988.          </comments>
  4989.       </member>
  4990.       <member name="T:Classes.EFOpenError">
  4991.          <summary>
  4992.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4993.                
  4994.                <class namespace="classes">EFOpenError</class> is the exception class for file-opening errors during streaming.</para>
  4995.          </summary>
  4996.          <comments>
  4997.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4998.                
  4999.                <class namespace="classes">EFOpenError</class> is raised when an application cannot open a specified file. This can occur, for example, because the file doesn't exist or is not in the directory where the application is searching for it.</para>
  5000.          </comments>
  5001.       </member>
  5002.       <member name="T:Classes.EFilerError">
  5003.          <summary>
  5004.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5005.                
  5006.                <class namespace="Classes">EFilerError</class> is the exception class for component stream errors.</para>
  5007.          </summary>
  5008.          <comments>
  5009.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5010.                
  5011.                <class namespace="Classes">EFilerError</class> is raised when an error occurs while streaming a component. Some, but not all, component streaming errors raise descendants of <class namespace="Classes">EFilerError</class>, as follows.</para>
  5012.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5013.                
  5014.                <tr>
  5015.                   
  5016.                   <th>Exception</th>
  5017.                   
  5018.                   <th>Description</th>
  5019.                
  5020.                </tr>
  5021.                
  5022.                <tr>
  5023.                   
  5024.                   <td>
  5025.                      
  5026.                      <para>EReadError</para>
  5027.                   
  5028.                   </td>
  5029.                   
  5030.                   <td>
  5031.                      
  5032.                      <para>Cannot read the specified number of bytes</para>
  5033.                   
  5034.                   </td>
  5035.                
  5036.                </tr>
  5037.                
  5038.                <tr>
  5039.                   
  5040.                   <td>
  5041.                      
  5042.                      <para>EWriteError</para>
  5043.                   
  5044.                   </td>
  5045.                   
  5046.                   <td>
  5047.                      
  5048.                      <para>Cannot write the specified number of bytes</para>
  5049.                   
  5050.                   </td>
  5051.                
  5052.                </tr>
  5053.                
  5054.                <tr>
  5055.                   
  5056.                   <td>
  5057.                      
  5058.                      <para>EClassNotFound</para>
  5059.                   
  5060.                   </td>
  5061.                   
  5062.                   <td>
  5063.                      
  5064.                      <para>Component is not linked to application</para>
  5065.                   
  5066.                   </td>
  5067.                
  5068.                </tr>
  5069.                
  5070.                <tr>
  5071.                   
  5072.                   <td>
  5073.                      
  5074.                      <para>EInvalidImage</para>
  5075.                   
  5076.                   </td>
  5077.                   
  5078.                   <td>
  5079.                      
  5080.                      <para>Cannot read an resource file</para>
  5081.                   
  5082.                   </td>
  5083.                
  5084.                </tr>
  5085.             
  5086.             </table>
  5087.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5088.                
  5089.                <class namespace="Classes">EFilerError</class> differs from EFileStreamError, which is raised by errors in general file streams.</para>
  5090.          </comments>
  5091.       </member>
  5092.       <member name="T:Classes.EReadError">
  5093.          <summary>
  5094.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5095.                
  5096.                <class namespace="Classes">EReadError</class> is the exception class for unsuccessful attempts to read data from a stream.</para>
  5097.          </summary>
  5098.          <comments>
  5099.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5100.                
  5101.                <class namespace="Classes">EReadError</class> is raised when an application attempts to read data from a stream but cannot read the specified number of bytes.</para>
  5102.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">An <class namespace="Classes">EReadError</class> exception may also be raised if a property cant be read while creating a form. This can occur because a component reads the form resource incorrectly, or because the resource is corrupt.</para>
  5103.          </comments>
  5104.       </member>
  5105.       <member name="T:Classes.EWriteError">
  5106.          <summary>
  5107.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5108.                
  5109.                <class namespace="Classes">EWriteError</class> is the exception class for unsuccessful attempts to write data to a stream.</para>
  5110.          </summary>
  5111.          <comments>
  5112.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5113.                
  5114.                <class namespace="Classes">EWriteError</class> is raised when:</para>
  5115.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The WriteBuffer method of a stream object is unable to write the specified number of bytes.</para>
  5116.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The IDE is unable to write one of a component's properties to a stream. This can occur when you try to save a form at design time.</para>
  5117.          </comments>
  5118.       </member>
  5119.       <member name="T:Classes.EClassNotFound">
  5120.          <summary>
  5121.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5122.                
  5123.                <class namespace="Classes">EClassNotFound</class> is the exception class for the failure to find a specified component when reading from a stream.</para>
  5124.          </summary>
  5125.          <comments>
  5126.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5127.                
  5128.                <class namespace="Classes">EClassNotFound</class> is raised if a class name that has not been linked into the current application is encountered when reading a component from a stream. This can happen when a component exists on a form, but has been removed from the type declaration.</para>
  5129.          </comments>
  5130.       </member>
  5131.       <member name="T:Classes.EInvalidImage">
  5132.          <summary>
  5133.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5134.                
  5135.                <class namespace="Classes">EInvalidImage</class> is the exception class for unsuccessful attempts to read resources.</para>
  5136.          </summary>
  5137.          <comments>
  5138.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5139.                
  5140.                <class namespace="Classes">EInvalidImage</class> is raised when an application cannot read a resource. This occurs most often because the specified file is not a resource file.</para>
  5141.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">This error can occur if the TStream object's read and write methods are used inconsistently. Always use ReadComponentRes to read components written with WriteComponentRes, and ReadComponent to read components written with WriteComponent. Failure to use the corresponding read and write methods can result in <class namespace="Classes">EInvalidImage</class> exceptions.</para>
  5142.          </comments>
  5143.       </member>
  5144.       <member name="T:Classes.EResNotFound">
  5145.          <summary>
  5146.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5147.                
  5148.                <class namespace="Classes">EResNotFound</class> is the exception class for unlocatable resources.</para>
  5149.          </summary>
  5150.          <comments>
  5151.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5152.                
  5153.                <class namespace="Classes">EResNotFound</class> is raised when a specified resource (such as a form or bitmap) can't be found in a form file or a resource file, or when the resource is not linked into the application.</para>
  5154.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If you receive this exception on startup of an application, or when you create a form, check the form's unit file for the compiler directive that links in the form file.</para>
  5155.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5156.                
  5157.                <para>In Delphi, this directive is {$R *.xfm} (for CLX forms) or {$R *.dfm} (for VCL forms)</para>
  5158.             
  5159.             </note>
  5160.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5161.                
  5162.                <para>In C++, this directive #pragma resource "*.xfm" (for CLX forms) or #pragma resource "*.dfm" (for VCL forms)</para>
  5163.             
  5164.             </note>
  5165.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If this directive is missing or commented out, the form file is not included in the executable and an <class namespace="Classes">EResNotFound</class> exception is generated.</para>
  5166.          </comments>
  5167.       </member>
  5168.       <member name="T:Classes.EListError">
  5169.          <summary>
  5170.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5171.                
  5172.                <class namespace="Classes">EListError</class> is the exception class for list and string errors.</para>
  5173.          </summary>
  5174.          <comments>
  5175.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5176.                
  5177.                <class namespace="Classes">EListError</class> is raised when an error is made in a list, TStrings, or TStringList object. This exception commonly occurs when an application refers to an item that is out of the list's range.</para>
  5178.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5179.                
  5180.                <class namespace="Classes">EListError</class> also occurs if an application tries to add a duplicate string to a TStringList object when the value of the Duplicates property is dupError.</para>
  5181.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">An <class namespace="Classes">EListError</class> exception is raised when an application attempts to insert a string into a sorted string list, since the insertion of a string at a specified position may put the list out of order.</para>
  5182.          </comments>
  5183.       </member>
  5184.       <member name="T:Classes.EBitsError">
  5185.          <summary>
  5186.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5187.                
  5188.                <class namespace="classes">EBitsError</class> is the exception class for invalid attempts to access an array of boolean values.</para>
  5189.          </summary>
  5190.          <comments>
  5191.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5192.                
  5193.                <class namespace="classes">EBitsError</class> is raised when an application attempts to access a boolean array (an instance of the TBits class) using an index value that is too large or too small. This can occur when the value of the Index parameter of the Bits property is</para>
  5194.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Less than zero.</para>
  5195.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Equal to or greater than the Size property.</para>
  5196.          </comments>
  5197.       </member>
  5198.       <member name="T:Classes.EStringListError">
  5199.          <summary>
  5200.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5201.                
  5202.                <class namespace="Classes">EStringListError</class> is the exception class for invalid listbox references.</para>
  5203.          </summary>
  5204.          <comments>
  5205.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5206.                
  5207.                <class namespace="Classes">EStringListError</class> is raised when an application attempts to access a list box (for example, to add an item) using an invalid index.</para>
  5208.          </comments>
  5209.       </member>
  5210.       <member name="T:Classes.EComponentError">
  5211.          <summary>
  5212.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5213.                
  5214.                <class namespace="Classes">EComponentError</class> is the exception class for registering and renaming components.</para>
  5215.          </summary>
  5216.          <comments>
  5217.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5218.                
  5219.                <class namespace="Classes">EComponentError</class> is raised when:</para>
  5220.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">An attempt to register a component fails.</para>
  5221.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">An application cannot rename a component.</para>
  5222.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">(Windows-only) A request is made to retrieve the COM interface of a component that doesn't support COM.</para>
  5223.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To register a component, write a procedure called "Register", declared in the interface section (Delphi) or namespace (C++) of the component's unit file. Note that unlike most Delphi procedure names, the name of the Register procedure is case-sensitive. Register must call RegisterComponents for each component you want to register.</para>
  5224.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Failure to rename a component occurs when an application tries to rename the component at runtime, and the new name is the same as the name of another component with the same Owner or is not a valid identifier.</para>
  5225.          </comments>
  5226.       </member>
  5227.       <member name="T:Classes.EParserError">
  5228.          <summary>
  5229.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5230.                
  5231.                <class namespace="Classes">EParserError</class> is the exception class for text-to-binary streaming conversion errors.</para>
  5232.          </summary>
  5233.          <comments>
  5234.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5235.                
  5236.                <class namespace="Classes">EParserError</class> is raised when an error occurs during text-to-binary conversion, usually due to a syntax error in the source text.</para>
  5237.          </comments>
  5238.       </member>
  5239.       <member name="T:Classes.EOutOfResources">
  5240.          <summary>
  5241.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5242.                
  5243.                <class namespace="Classes">EOutOfResources</class> is the exception class for unsuccessful attempts to allocate handles.</para>
  5244.          </summary>
  5245.          <comments>
  5246.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5247.                
  5248.                <class namespace="Classes">EOutOfResources</class> is raised when an application attempts to create a Windows or widget handle and there are no more handles to allocate.</para>
  5249.          </comments>
  5250.       </member>
  5251.       <member name="T:Classes.EInvalidOperation">
  5252.          <summary>
  5253.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5254.                
  5255.                <class namespace="Classes">EInvalidOperation</class> is the exception class for invalid operations on a component.</para>
  5256.          </summary>
  5257.          <comments>
  5258.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5259.                
  5260.                <class namespace="Classes">EInvalidOperation</class> is raised when an application attempts an operation that requires a window or widget handle on a component that does not have a parent (The Parent property is Nil in Delphi or NULL in C++). This exception can also occur if a drag-and-drop operation is attempted from a form (for example, when calling the BeginDrag method of a form).</para>
  5261.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5262.                
  5263.                <para>Do not confuse this object with EInvalidOp.</para>
  5264.             
  5265.             </note>
  5266.          </comments>
  5267.       </member>
  5268.       <member name="T:Classes.TDuplicates">
  5269.          <summary>
  5270.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5271.                
  5272.                <type namespace="Qt">TDuplicates</type> indicates the response when an application attempts to add a duplicate entry to a list.</para>
  5273.          </summary>
  5274.          <comments>
  5275.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5276.                
  5277.                <type namespace="Qt">TDuplicates</type> can have one of the following values:</para>
  5278.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5279.                
  5280.                <tr>
  5281.                   
  5282.                   <th>Value</th>
  5283.                   
  5284.                   <th>Meaning</th>
  5285.                
  5286.                </tr>
  5287.                
  5288.                <tr>
  5289.                   
  5290.                   <td>
  5291.                      
  5292.                      <para>dupIgnore</para>
  5293.                   
  5294.                   </td>
  5295.                   
  5296.                   <td>
  5297.                      
  5298.                      <para>Ignore attempts to add duplicate entries (do not add the duplicate). </para>
  5299.                   
  5300.                   </td>
  5301.                
  5302.                </tr>
  5303.                
  5304.                <tr>
  5305.                   
  5306.                   <td>
  5307.                      
  5308.                      <para>dupAccept</para>
  5309.                   
  5310.                   </td>
  5311.                   
  5312.                   <td>
  5313.                      
  5314.                      <para>Allow the list to contain duplicate entries (add the duplicate).</para>
  5315.                   
  5316.                   </td>
  5317.                
  5318.                </tr>
  5319.                
  5320.                <tr>
  5321.                   
  5322.                   <td>
  5323.                      
  5324.                      <para>dupError</para>
  5325.                   
  5326.                   </td>
  5327.                   
  5328.                   <td>
  5329.                      
  5330.                      <para>Raise an exception when the application tries to add a duplicate.</para>
  5331.                   
  5332.                   </td>
  5333.                
  5334.                </tr>
  5335.             
  5336.             </table>
  5337.          </comments>
  5338.       </member>
  5339.       <member name="T:Classes.TListAssignOp">
  5340.          <summary>
  5341.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5342.                
  5343.                <type namespace="Qt">TListAssignOp</type> indicates how two lists should be merged.</para>
  5344.          </summary>
  5345.          <comments>
  5346.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5347.                
  5348.                <type namespace="Qt">TListAssignOp</type>s describes how the Assign method combines a source and destination list:</para>
  5349.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5350.                
  5351.                <tr>
  5352.                   
  5353.                   <th>Value</th>
  5354.                   
  5355.                   <th>Meaning</th>
  5356.                
  5357.                </tr>
  5358.                
  5359.                <tr>
  5360.                   
  5361.                   <td>
  5362.                      
  5363.                      <para>laAnd</para>
  5364.                   
  5365.                   </td>
  5366.                   
  5367.                   <td>
  5368.                      
  5369.                      <para>Removes all elements from the destination list that do not appear in the source list. The destination list ends up containing the intersection of the two lists.</para>
  5370.                   
  5371.                   </td>
  5372.                
  5373.                </tr>
  5374.                
  5375.                <tr>
  5376.                   
  5377.                   <td>
  5378.                      
  5379.                      <para>laCopy</para>
  5380.                   
  5381.                   </td>
  5382.                   
  5383.                   <td>
  5384.                      
  5385.                      <para>Overwrites the destination list with the source list.</para>
  5386.                   
  5387.                   </td>
  5388.                
  5389.                </tr>
  5390.                
  5391.                <tr>
  5392.                   
  5393.                   <td>
  5394.                      
  5395.                      <para>laDestUnique</para>
  5396.                   
  5397.                   </td>
  5398.                   
  5399.                   <td>
  5400.                      
  5401.                      <para>Removes all elements from the destination list that appear in the source list. The destination list ends up containing the elements unique to the original destination list. (same as laOr followed by laXor)</para>
  5402.                   
  5403.                   </td>
  5404.                
  5405.                </tr>
  5406.                
  5407.                <tr>
  5408.                   
  5409.                   <td>
  5410.                      
  5411.                      <para>laOr</para>
  5412.                   
  5413.                   </td>
  5414.                   
  5415.                   <td>
  5416.                      
  5417.                      <para>Adds any elements from the source list that do not already appear in the destination list. The destination list ends up containing the union of the two lists.</para>
  5418.                   
  5419.                   </td>
  5420.                
  5421.                </tr>
  5422.                
  5423.                <tr>
  5424.                   
  5425.                   <td>
  5426.                      
  5427.                      <para>laSrcUnique</para>
  5428.                   
  5429.                   </td>
  5430.                   
  5431.                   <td>
  5432.                      
  5433.                      <para>Replaces the destination list with those elements of the source list that do not appear in the destination list. (same as laAnd followed by laXor)</para>
  5434.                   
  5435.                   </td>
  5436.                
  5437.                </tr>
  5438.                
  5439.                <tr>
  5440.                   
  5441.                   <td>
  5442.                      
  5443.                      <para>laXor</para>
  5444.                   
  5445.                   </td>
  5446.                   
  5447.                   <td>
  5448.                      
  5449.                      <para>Removes all elements from the destination list that appear in the source list and adds any elements from the source list that do not appear in the original destination list. The destination list ends up with the elements unique to both the source and destination lists.</para>
  5450.                   
  5451.                   </td>
  5452.                
  5453.                </tr>
  5454.             
  5455.             </table>
  5456.          </comments>
  5457.       </member>
  5458.       <member name="T:Classes.TList">
  5459.          <summary>
  5460.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5461.                
  5462.                <class namespace="Classes">TList</class> stores an array of pointers.</para>
  5463.          </summary>
  5464.          <comments>
  5465.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5466.                
  5467.                <class namespace="Classes">TList</class>, which stores an array of pointers, is often used to maintain lists of objects. <class namespace="Classes">TList</class> introduces properties and methods to </para>
  5468.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Add or delete the objects in the list.</para>
  5469.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Rearrange the objects in the list.</para>
  5470.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Locate and access objects in the list.</para>
  5471.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sort the objects in the list.</para>
  5472.          </comments>
  5473.       </member>
  5474.       <member name="M:Classes.Classes.Add">
  5475.          <summary>
  5476.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Inserts a new item at the end of the list.</para>
  5477.          </summary>
  5478.          <comments>
  5479.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Add</method> to insert a new object at the end of the Items array. <method namespace="Classes" class="TList">Add</method> returns the index of the new item, where the first item in the list has an index of 0.</para>
  5480.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5481.                      
  5482.                <method namespace="Classes" class="TList">Add</method> increments Count and, if necessary, allocates memory by increasing the value of Capacity.</para>
  5483.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5484.                      
  5485.                <para>
  5486.                         
  5487.                   <method namespace="Classes" class="TList">Add</method> always inserts the Item pointer at the end of the Items array, even if the Items array contains nil (Delphi) or NULL (C++) pointers.</para>
  5488.                   
  5489.             </note>
  5490.          </comments>
  5491.       </member>
  5492.       <member name="M:Classes.Classes.Expand">
  5493.          <summary>
  5494.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Increases the Capacity of the list.</para>
  5495.          </summary>
  5496.          <comments>
  5497.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Expand</method> to create more space for adding new items to the list. <method namespace="Classes" class="TList">Expand</method> does nothing if the list is not already filled to Capacity.</para>
  5498.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If Count = Capacity, <method namespace="Classes" class="TList">Expand</method> increases the Capacity of the list as follows. If the value of Capacity is greater than 8, <method namespace="Classes" class="TList">Expand</method> increases the Capacity of the list by 16. If the value of Capacity is greater than 4, but less than 9, the Capacity of the list increases by 8. If the value of Capacity is less than 4, the Capacity of the list grows by 4.</para>
  5499.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The returned value is the expanded list object.</para>
  5500.          </comments>
  5501.       </member>
  5502.       <member name="M:Classes.Classes.Extract">
  5503.          <summary>
  5504.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Removes a specified item from the list.</para>
  5505.          </summary>
  5506.          <comments>
  5507.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Extract</method> to remove an item from the list. After the item is removed, all the objects that follow it are moved up in index position and Count is decremented.</para>
  5508.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To remove the reference to an item without deleting the entry from the Items array and changing the Count, set the Items property for Index to nil (Delphi) or NULL (C++).</para>
  5509.          </comments>
  5510.       </member>
  5511.       <member name="M:Classes.Classes.First">
  5512.          <summary>
  5513.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns Items[0].</para>
  5514.          </summary>
  5515.          <comments>
  5516.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">First</method> to get the first pointer in the Items array.</para>
  5517.          </comments>
  5518.       </member>
  5519.       <member name="M:Classes.Classes.IndexOf">
  5520.          <summary>
  5521.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the index of the first entry in the Items array with a specified value.</para>
  5522.          </summary>
  5523.          <comments>
  5524.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">IndexOf</method> to get the index for a pointer in the Items array. Specify the pointer as the Item parameter. </para>
  5525.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The first item in the array has index 0, the second item has index 1, and so on. If an item is not in the list, <method namespace="Classes" class="TList">IndexOf</method> returns -1. If a pointer appears more than once in the array, <method namespace="Classes" class="TList">IndexOf</method> returns the index of the first appearance.</para>
  5526.          </comments>
  5527.       </member>
  5528.       <member name="M:Classes.Classes.Last">
  5529.          <summary>
  5530.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns Items[Count - 1].</para>
  5531.          </summary>
  5532.          <comments>
  5533.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Last</method> to retrieve the last pointer in the Items array.</para>
  5534.          </comments>
  5535.       </member>
  5536.       <member name="M:Classes.Classes.Remove">
  5537.          <summary>
  5538.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Deletes the first reference to the Item parameter from the Items array.</para>
  5539.          </summary>
  5540.          <comments>
  5541.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Remove</method> to remove a specific item from the Items array when its index is unknown. The value returned is the index of the item in the Items array before it was removed. After an item is removed, all the items that follow it are moved up in index position and the Count is reduced by one.</para>
  5542.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the Items array contains more than one copy of the pointer, only the first copy is deleted.</para>
  5543.          </comments>
  5544.       </member>
  5545.       <member name="M:Classes.Classes.Notify">
  5546.          <summary>
  5547.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5548.                      
  5549.                <condition status="hold">Responds when items are added, removed, or extracted from the list.</condition>
  5550.                   
  5551.             </para>
  5552.          </summary>
  5553.          <comments>
  5554.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5555.                      
  5556.                <condition status="hold">
  5557.                         
  5558.                   <method namespace="Classes" class="TList">Notify</method> is called automatically when the items in the collection change.</condition>
  5559.                   
  5560.             </para>
  5561.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5562.                      
  5563.                <condition status="hold">Ptr points to item affected by the change.</condition>
  5564.                   
  5565.             </para>
  5566.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5567.                      
  5568.                <condition status="hold">Action indicates the change.</condition>
  5569.                   
  5570.             </para>
  5571.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5572.                      
  5573.                <condition status="hold">As implemented in <method namespace="Classes" class="TList">TList</method>, <method namespace="Classes" class="TList">Notify</method> does nothing. Descendant classes can override <method namespace="Classes" class="TList">Notify</method> in order to implement an appropriate response to the change notification.</condition>
  5574.                   
  5575.             </para>
  5576.          </comments>
  5577.       </member>
  5578.       <member name="M:Classes.Classes.Clear">
  5579.          <summary>
  5580.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Deletes all items from the list. </para>
  5581.          </summary>
  5582.          <comments>
  5583.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Clear</method> to empty the Items array and set the Count to 0. <method namespace="Classes" class="TList">Clear</method> also frees the memory used to store the Items array and sets the Capacity to 0.</para>
  5584.          </comments>
  5585.       </member>
  5586.       <member name="M:Classes.Classes.Delete">
  5587.          <summary>
  5588.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Removes the item at the position given by the Index parameter. </para>
  5589.          </summary>
  5590.          <comments>
  5591.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Delete</method> to remove the item at a specific position from the list. The index is zero-based, so the first item has an Index value of 0, the second item has an Index value of 1, and so on. Calling <method namespace="Classes" class="TList">Delete</method> moves up all items in the Items array that follow the deleted item, and reduces the Count.</para>
  5592.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To remove the reference to an item without deleting the entry from the Items array and changing the Count, set the Items property for Index to nil (Delphi) or NULL (C++).</para>
  5593.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5594.                      
  5595.                <para>
  5596.                         
  5597.                   <method namespace="Classes" class="TList">Delete</method> does not free any memory associated with the item. To free the memory that was used to store a deleted item, set the Capacity property.</para>
  5598.                   
  5599.             </note>
  5600.          </comments>
  5601.       </member>
  5602.       <member name="M:Classes.Classes.Error">
  5603.          <summary>
  5604.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Raises an EList<method namespace="Classes" class="TList">Error</method> exception.</para>
  5605.          </summary>
  5606.          <comments>
  5607.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Error</method> to raise an exception when an error occurs working with a <method namespace="Classes" class="TList">TList</method> object. <method namespace="Classes" class="TList">Error</method> assembles an error message from the format string (or resource string) passed as the Msg parameter and the data value passed as the Data parameter, and then raises an EList<method namespace="Classes" class="TList">Error</method> exception.</para>
  5608.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Error</method> rather than adding a line such as</para>
  5609.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5610.                      
  5611.                <para>raise EList<method namespace="Classes" class="TList">Error</method>.CreateFmt(MyMsg, iBadValue);</para>
  5612.                   
  5613.             </note>
  5614.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5615.                      
  5616.                <para>or</para>
  5617.                   
  5618.             </note>
  5619.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5620.                      
  5621.                <para>resourcestring sBadValueMessage = '%s not a valid list value';</para>
  5622.                   
  5623.             </note>
  5624.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5625.                      
  5626.                <para>...</para>
  5627.                   
  5628.             </note>
  5629.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5630.                      
  5631.                <para>EList<method namespace="Classes" class="TList">Error</method>.Create(@sBadValueMessage, iBadValue);</para>
  5632.                   
  5633.             </note>
  5634.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5635.                      
  5636.                <para>throw EList<method namespace="Classes" class="TList">Error</method>(MyMsg, iBadValue);</para>
  5637.                   
  5638.             </note>
  5639.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">to reduce the code size of an application.</para>
  5640.          </comments>
  5641.       </member>
  5642.       <member name="M:Classes.Classes.Exchange">
  5643.          <summary>
  5644.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Swaps the position of two items in the Items array. </para>
  5645.          </summary>
  5646.          <comments>
  5647.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Exchange</method> to swap the positions of the items at positions Index1 and Index2 of the Items array. The indexes are zero-based, so the first item in the list has an index value of 0, the second item has an index value of 1, and so on.</para>
  5648.          </comments>
  5649.       </member>
  5650.       <member name="M:Classes.Classes.Insert">
  5651.          <summary>
  5652.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Adds an object to the Items array at the position specified by Index. </para>
  5653.          </summary>
  5654.          <comments>
  5655.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Insert</method> to add Item to the middle of the Items array. The Index parameter is a zero-based index, so the first position in the array has an index of 0. <method namespace="Classes" class="TList">Insert</method> adds the item at the indicated position, shifting the item that previously occupied that position, and all subsequent items, up. <method namespace="Classes" class="TList">Insert</method> increments Count and, if necessary, allocates memory by increasing the value of Capacity.</para>
  5656.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To replace a nil (Delphi) or NULL (C++) pointer in the array with a new item, without growing the Items array, set the Items property.</para>
  5657.          </comments>
  5658.       </member>
  5659.       <member name="M:Classes.Classes.Move">
  5660.          <summary>
  5661.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Changes the position of an item in the Items array.</para>
  5662.          </summary>
  5663.          <comments>
  5664.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Move</method> to move the item at the position CurIndex so that it occupies the position NewIndex. CurIndex and NewIndex are zero-based indexes into the Items array.</para>
  5665.          </comments>
  5666.       </member>
  5667.       <member name="M:Classes.Classes.Pack">
  5668.          <summary>
  5669.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Deletes all nil (Delphi) or NULL (C++) items from the Items array.</para>
  5670.          </summary>
  5671.          <comments>
  5672.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Pack</method> to move all non-nil (Delphi) or non-NULL (C++) items to the front of the Items array and reduce the Count property to the number of items actually used. <method namespace="Classes" class="TList">Pack</method> does not free up the memory used to store the nil (Delphi) or NULL (C++) pointers. To free up the memory for the unused entries removed by <method namespace="Classes" class="TList">Pack</method>, set the Capacity property to the new value of Count.</para>
  5673.          </comments>
  5674.       </member>
  5675.       <member name="M:Classes.Classes.Sort">
  5676.          <summary>
  5677.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Performs a Quick<method namespace="Classes" class="TList">Sort</method> on the list based on the comparison function Compare. </para>
  5678.          </summary>
  5679.          <comments>
  5680.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Sort</method> to sort the items in the Items array. Compare is a comparison function that indicates how the items are to be ordered. </para>
  5681.          </comments>
  5682.       </member>
  5683.       <member name="M:Classes.Classes.Assign">
  5684.          <summary>
  5685.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Copies elements of one list to another. </para>
  5686.          </summary>
  5687.          <comments>
  5688.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TList">Assign</method> to assign the elements of another list to this one. <method namespace="Classes" class="TList">Assign</method> combines the source list with this one using the logical operator specified by the AOperator parameter.</para>
  5689.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the ListB parameter is specified (Delphi) or not NULL (C++), then <method namespace="Classes" class="TList">Assign</method> first replaces all the elements of this list with those in ListA, and then merges ListB into this list using the operator specified by AOperator.</para>
  5690.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the ListB parameter is not specified (Delphi) or NULL (C++), then <method namespace="Classes" class="TList">Assign</method> merges ListA into this list using the operator specified by AOperator.</para>
  5691.          </comments>
  5692.       </member>
  5693.       <member name="M:Classes.Classes.Destroy">
  5694.          <summary>
  5695.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5696.                      
  5697.                <method namespace="Classes" class="TList">Destroy</method>s an instance of <method namespace="Classes" class="TList">TList</method>.</para>
  5698.          </summary>
  5699.          <comments>
  5700.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TList">Destroy</method> directly. Instead, call Free. Free verifies that the <method namespace="Classes" class="TList">TList</method> reference is not nil, and only then calls <method namespace="Classes" class="TList">Destroy</method>.</para>
  5701.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5702.                      
  5703.                <method namespace="Classes" class="TList">Destroy</method> frees the memory used to store the list of items.</para>
  5704.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5705.                      
  5706.                <para>
  5707.                         
  5708.                   <method namespace="Classes" class="TList">Destroy</method> does not free the memory pointed to by the elements of the list.</para>
  5709.                   
  5710.             </note>
  5711.          </comments>
  5712.       </member>
  5713.       <member name="P:Classes.Classes.Capacity">
  5714.          <summary>
  5715.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the allocated size of the array of pointers maintained by the <property namespace="Classes" class="TList">TList</property> object.</para>
  5716.          </summary>
  5717.          <comments>
  5718.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Classes" class="TList">Capacity</property> to the number of pointers the list will need to contain. When setting the <property namespace="Classes" class="TList">Capacity</property> property, an EOutOfMemory exception occurs if there is not enough memory to expand the list to its new size.</para>
  5719.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="Classes" class="TList">Capacity</property> to learn number of objects the list can hold without reallocating memory. Do not confuse <property namespace="Classes" class="TList">Capacity</property> with the Count property, which is the number of entries in the list that are in use. The value of <property namespace="Classes" class="TList">Capacity</property> is always greater than or equal to the value of Count. When <property namespace="Classes" class="TList">Capacity</property> is greater than Count, the unused memory can be reclaimed by setting <property namespace="Classes" class="TList">Capacity</property> to Count.</para>
  5720.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When an object is added to a list that is already filled to capacity, the <property namespace="Classes" class="TList">Capacity</property> property is automatically increased. Setting <property namespace="Classes" class="TList">Capacity</property> before adding objects can reduce the number of memory reallocations and thereby improve performance. For example,</para>
  5721.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5722.                      
  5723.                <para>Delphi example:</para>
  5724.                   
  5725.             </note>
  5726.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  List.Clear;
  5727.   List.Capacity := Count;
  5728.   for I := 1 to Count do List.Add(...);</codeBlock>
  5729.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5730.                      
  5731.                <para>C++ example:</para>
  5732.                   
  5733.             </note>
  5734.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  List->Clear();
  5735.   List->Capacity = Count;
  5736.   for (int I = 0; I < Count; I++)
  5737.     List->Add(...);</codeBlock>
  5738.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The assignment to <property namespace="Classes" class="TList">Capacity</property> before the for loop ensures that each of the following Add operations doesn't cause the list to be reallocated. Avoiding reallocations on the calls to Add improves performance and ensures that the Add operations never raise an exception.</para>
  5739.          </comments>
  5740.       </member>
  5741.       <member name="P:Classes.Classes.Count">
  5742.          <summary>
  5743.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the number of entries in the list that are in use.</para>
  5744.          </summary>
  5745.          <comments>
  5746.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="Classes" class="TList">Count</property> to determine the number of entries in the Items array.</para>
  5747.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Increasing the size of <property namespace="Classes" class="TList">Count</property> will add the necessary number of nil (Delphi) or NULL (C++) pointers to the end of the Items array. Decreasing the size of <property namespace="Classes" class="TList">Count</property> will remove the necessary number of entries from the end of the Items array.</para>
  5748.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5749.                      
  5750.                <property namespace="Classes" class="TList">Count</property> is not always the same as the number of objects referenced in the list. Some of the entries in the Items array may contain nil (Delphi) or NULL (C++) pointers. To remove the nil (Delphi) or NULL (C++) pointers and set <property namespace="Classes" class="TList">Count</property> to the number of entries that contain references to objects, call the Pack method.</para>
  5751.          </comments>
  5752.       </member>
  5753.       <member name="P:Classes.Classes.Items">
  5754.          <summary>
  5755.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Lists the object references.</para>
  5756.          </summary>
  5757.          <comments>
  5758.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TList">Items</property> to obtain a pointer to a specific object in the array. The Index parameter indicates the index of the object, where 0 is the index of the first object, 1 is the index of the second object, and so on. Set <property namespace="Classes" class="TList">Items</property> to change the reference at a specific location.</para>
  5759.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TList">Items</property> with the Count property to iterate through all of the objects in the list.</para>
  5760.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Not all of the entries in the <property namespace="Classes" class="TList">Items</property> array need to contain references to objects. Some of the entries may be nil (Delphi) or NULL (C++) pointers. To remove the nil (Delphi) or NULL (C++) pointers and reduce the size of the <property namespace="Classes" class="TList">Items</property> array to the number of objects, call the Pack method.</para>
  5761.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5762.                      
  5763.                <para>
  5764.                         
  5765.                   <property namespace="Classes" class="TList">Items</property> is the default property for <property namespace="Classes" class="TList">TList</property>. This means you can omit the property name. Thus, instead of </para>
  5766.                   
  5767.             </note>
  5768.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5769.                      
  5770.                <para>MyList.<property namespace="Classes" class="TList">Items</property>[i]</para>
  5771.                   
  5772.             </note>
  5773.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5774.                      
  5775.                <para>you can write</para>
  5776.                   
  5777.             </note>
  5778.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5779.                      
  5780.                <para>MyList[i]</para>
  5781.                   
  5782.             </note>
  5783.          </comments>
  5784.       </member>
  5785.       <member name="P:Classes.Classes.List">
  5786.          <summary>
  5787.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the array of pointers that make up the Items array.</para>
  5788.          </summary>
  5789.          <comments>
  5790.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TList">List</property> to gain direct access to the Items array.</para>
  5791.          </comments>
  5792.       </member>
  5793.       <member name="T:Classes.TThreadList">
  5794.          <summary>
  5795.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5796.                
  5797.                <class namespace="Classes">TThreadList</class> represents a thread-safe list.</para>
  5798.          </summary>
  5799.          <comments>
  5800.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A <class namespace="Classes">TThreadList</class> object is a thread-safe list. Each <class namespace="Classes">TThreadList</class> maintains a private TList (a list of pointers to objects). You can add or remove items in a <class namespace="Classes">TThreadList</class> from multiple threads without explicit locks.</para>
  5801.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To access the actual TList object managed by the thread list, first lock the list by calling the LockList method.  Unlock the list by calling the Unlock method when done.</para>
  5802.             <tip xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5803.                
  5804.                <para>By default, <class namespace="Classes">TThreadList</class> ignores attempts to add duplicate entries to the list. If the list is large, this default is computationally expensive. For better performance, you may want to change the Duplicates property to dupAccept where possible. </para>
  5805.             
  5806.             </tip>
  5807.          </comments>
  5808.       </member>
  5809.       <member name="M:Classes.Classes.LockList">
  5810.          <summary>
  5811.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Locks the thread-safe list and returns a TList object.</para>
  5812.          </summary>
  5813.          <comments>
  5814.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5815.                      
  5816.                <para>In Windows, <method namespace="Classes" class="TThreadList">LockList</method> calls the Windows EnterCriticalSection function to lock the thread-safe list. It then returns the TList object that contains the list.</para>
  5817.                   
  5818.             </note>
  5819.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5820.                      
  5821.                <para>In Linux, <method namespace="Classes" class="TThreadList">LockList</method> returns the TList object that contains the list, after locking out all other threads.</para>
  5822.                   
  5823.             </note>
  5824.          </comments>
  5825.       </member>
  5826.       <member name="M:Classes.Classes.Create">
  5827.          <summary>
  5828.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5829.                      
  5830.                <method namespace="Classes" class="TThreadList">Create</method>s and initializes a <method namespace="Classes" class="TThreadList">TThreadList</method> instance.</para>
  5831.          </summary>
  5832.          <comments>
  5833.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TThreadList">Create</method> method generates a <method namespace="Classes" class="TThreadList">TThreadList</method> object.</para>
  5834.          </comments>
  5835.       </member>
  5836.       <member name="M:Classes.Classes.Add">
  5837.          <summary>
  5838.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5839.                      
  5840.                <method namespace="Classes" class="TThreadList">Add</method>s an item to the list.</para>
  5841.          </summary>
  5842.          <comments>
  5843.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TThreadList">Add</method> to insert a new object at the end of the thread-safe list.</para>
  5844.          </comments>
  5845.       </member>
  5846.       <member name="M:Classes.Classes.Clear">
  5847.          <summary>
  5848.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Deletes all items from the list.</para>
  5849.          </summary>
  5850.          <comments>
  5851.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5852.                      
  5853.                <method namespace="Classes" class="TThreadList">Clear</method> locks the list, calls the <method namespace="Classes" class="TThreadList">Clear</method> method in TList, then unlocks the list.</para>
  5854.          </comments>
  5855.       </member>
  5856.       <member name="M:Classes.Classes.Remove">
  5857.          <summary>
  5858.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5859.                      
  5860.                <method namespace="Classes" class="TThreadList">Remove</method>s an item from the list.</para>
  5861.          </summary>
  5862.          <comments>
  5863.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TThreadList">Remove</method> to remove a specific item from the list without having to determine its index. <method namespace="Classes" class="TThreadList">Remove</method> locks the list, calls the <method namespace="Classes" class="TThreadList">Remove</method> method in TList, then unlocks the list.</para>
  5864.          </comments>
  5865.       </member>
  5866.       <member name="M:Classes.Classes.UnlockList">
  5867.          <summary>
  5868.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Unlocks the thread-safe list.</para>
  5869.          </summary>
  5870.          <comments>
  5871.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5872.                      
  5873.                <method namespace="Classes" class="TThreadList">UnlockList</method> unlocks the list. </para>
  5874.          </comments>
  5875.       </member>
  5876.       <member name="M:Classes.Classes.Destroy">
  5877.          <summary>
  5878.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5879.                      
  5880.                <method namespace="Classes" class="TThreadList">Destroy</method>s the <method namespace="Classes" class="TThreadList">TThreadList</method> and frees its memory.</para>
  5881.          </summary>
  5882.          <comments>
  5883.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TThreadList">Destroy</method> directly in an application. Instead, call Free. Free verifies that the thread list is not nil, and only then calls <method namespace="Classes" class="TThreadList">Destroy</method>.</para>
  5884.          </comments>
  5885.       </member>
  5886.       <member name="P:Classes.Classes.Duplicates">
  5887.          <summary>
  5888.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the thread list allows duplicate entries.</para>
  5889.          </summary>
  5890.          <comments>
  5891.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Classes" class="TThreadList">Duplicates</property> to specify what should happen when an attempt is made to add a duplicate item to the list. The value of <property namespace="Classes" class="TThreadList">Duplicates</property> should be one of the following.</para>
  5892.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5893.                      
  5894.                <tr>
  5895.                         
  5896.                   <th>Value</th>
  5897.                         
  5898.                   <th>Meaning</th>
  5899.                      
  5900.                </tr>
  5901.                      
  5902.                <tr>
  5903.                         
  5904.                   <td>
  5905.                            
  5906.                      <para>dupIgnore</para>
  5907.                         
  5908.                   </td>
  5909.                         
  5910.                   <td>
  5911.                            
  5912.                      <para>Ignore attempts to add duplicate items to the list.</para>
  5913.                         
  5914.                   </td>
  5915.                      
  5916.                </tr>
  5917.                      
  5918.                <tr>
  5919.                         
  5920.                   <td>
  5921.                            
  5922.                      <para>dupError</para>
  5923.                         
  5924.                   </td>
  5925.                         
  5926.                   <td>
  5927.                            
  5928.                      <para>raise an EListError exception when an attempt is made to add duplicate items to the list.</para>
  5929.                         
  5930.                   </td>
  5931.                      
  5932.                </tr>
  5933.                      
  5934.                <tr>
  5935.                         
  5936.                   <td>
  5937.                            
  5938.                      <para>dupAccept</para>
  5939.                         
  5940.                   </td>
  5941.                         
  5942.                   <td>
  5943.                            
  5944.                      <para>Permit duplicate items in the list.</para>
  5945.                         
  5946.                   </td>
  5947.                      
  5948.                </tr>
  5949.                   
  5950.             </table>
  5951.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Classes" class="TThreadList">Duplicates</property> before adding any items to the list. Setting <property namespace="Classes" class="TThreadList">Duplicates</property> to dupIgnore or dupError does nothing about duplicates that are already in the list.</para>
  5952.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5953.                      
  5954.                <para>Setting duplicates to dupIgnore (the default) or dupError can be computationally expensive if the list has many items.</para>
  5955.                   
  5956.             </note>
  5957.          </comments>
  5958.       </member>
  5959.       <member name="T:Classes.IInterfaceList">
  5960.          <summary>
  5961.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5962.                
  5963.                <class namespace="Classes">IInterfaceList</class> provides access to a list of interfaces.</para>
  5964.          </summary>
  5965.          <comments>
  5966.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="Classes">IInterfaceList</class> to manage a list of interfaces. Typically, <class namespace="Classes">IInterfaceList</class> is implemented by the TInterfaceList class.</para>
  5967.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5968.                
  5969.                <para>C++ method declarations that use <class namespace="Classes">IInterfaceList</class> use the _di_<class namespace="Classes">IInterfaceList</class> type instead. This type is a DelphiInterface wrapper around the <class namespace="Classes">IInterfaceList</class> interface:</para>
  5970.             
  5971.             </note>
  5972.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="CBuilder">typedef System::DelphiInterfaceDelphiInterface_object< IInterfaceList >  _di_IInterfaceList;</codeBlock>
  5973.          </comments>
  5974.       </member>
  5975.       <member name="M:Classes.Classes.First">
  5976.          <summary>
  5977.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the first interface in the list.</para>
  5978.          </summary>
  5979.          <comments>
  5980.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="IInterfaceList">First</method> to obtain the first interface in the list.</para>
  5981.          </comments>
  5982.       </member>
  5983.       <member name="M:Classes.Classes.IndexOf">
  5984.          <summary>
  5985.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the index of an interface.</para>
  5986.          </summary>
  5987.          <comments>
  5988.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="IInterfaceList">IndexOf</method> to obtain the index of an interface.</para>
  5989.          </comments>
  5990.       </member>
  5991.       <member name="M:Classes.Classes.Add">
  5992.          <summary>
  5993.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5994.                      
  5995.                <method namespace="Classes" class="IInterfaceList">Add</method>s an interface to the list.</para>
  5996.          </summary>
  5997.          <comments>
  5998.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="IInterfaceList">Add</method> to add an interface to the list.</para>
  5999.          </comments>
  6000.       </member>
  6001.       <member name="M:Classes.Classes.Last">
  6002.          <summary>
  6003.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the last interface in the list.</para>
  6004.          </summary>
  6005.          <comments>
  6006.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="IInterfaceList">Last</method> to obtain the last interface in the list.</para>
  6007.          </comments>
  6008.       </member>
  6009.       <member name="M:Classes.Classes.Remove">
  6010.          <summary>
  6011.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6012.                      
  6013.                <method namespace="Classes" class="IInterfaceList">Remove</method>s an interface from the list.</para>
  6014.          </summary>
  6015.          <comments>
  6016.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="IInterfaceList">Remove</method> to remove an interface from the list.</para>
  6017.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6018.                      
  6019.                <method namespace="Classes" class="IInterfaceList">Remove</method> returns the index of the removed interface, or ΓÇô1 if the interface was not found.</para>
  6020.          </comments>
  6021.       </member>
  6022.       <member name="M:Classes.Classes.Clear">
  6023.          <summary>
  6024.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6025.                      
  6026.                <method namespace="Classes" class="IInterfaceList">Clear</method>s the interface list.</para>
  6027.          </summary>
  6028.          <comments>
  6029.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="IInterfaceList">Clear</method> to remove all interfaces from the list.</para>
  6030.          </comments>
  6031.       </member>
  6032.       <member name="M:Classes.Classes.Delete">
  6033.          <summary>
  6034.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6035.                      
  6036.                <method namespace="Classes" class="IInterfaceList">Delete</method>s an interface from the list.</para>
  6037.          </summary>
  6038.          <comments>
  6039.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="IInterfaceList">Delete</method> to delete an interface from the list.</para>
  6040.          </comments>
  6041.       </member>
  6042.       <member name="M:Classes.Classes.Exchange">
  6043.          <summary>
  6044.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Swaps the position of two interfaces in the list.</para>
  6045.          </summary>
  6046.          <comments>
  6047.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="IInterfaceList">Exchange</method> to move the interface at position Index1 so that it appears at position Index2 and move the interface at position Index2 so that it appears at position Index1. Index1 and Index2 identify two positions (zero offset) in the Items property array.</para>
  6048.          </comments>
  6049.       </member>
  6050.       <member name="M:Classes.Classes.Insert">
  6051.          <summary>
  6052.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6053.                      
  6054.                <method namespace="Classes" class="IInterfaceList">Insert</method>s an interface into the list at a specified position.</para>
  6055.          </summary>
  6056.          <comments>
  6057.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="IInterfaceList">Insert</method> to insert an interface into the list. Item is the interface to insert, and Index indicates the position (zero-offset) where the interface should be added.</para>
  6058.          </comments>
  6059.       </member>
  6060.       <member name="M:Classes.Classes.Lock">
  6061.          <summary>
  6062.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Prevents other threads from accessing the list.</para>
  6063.          </summary>
  6064.          <comments>
  6065.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="IInterfaceList">Lock</method> to lock the list, preventing other threads from accessing the list.</para>
  6066.          </comments>
  6067.       </member>
  6068.       <member name="M:Classes.Classes.Unlock">
  6069.          <summary>
  6070.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6071.                      
  6072.                <method namespace="Classes" class="IInterfaceList">Unlock</method>s the list, allowing other threads to access it.</para>
  6073.          </summary>
  6074.          <comments>
  6075.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="IInterfaceList">Unlock</method> to unlock the list so that other threads can have access to the interfaces it contains.</para>
  6076.          </comments>
  6077.       </member>
  6078.       <member name="P:Classes.Classes.Capacity">
  6079.          <summary>
  6080.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the list capacity.</para>
  6081.          </summary>
  6082.          <comments>
  6083.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="IInterfaceList">Capacity</property> to determine the list capacity. Before adding many interfaces to the list, you can improve performance by setting <property namespace="Classes" class="IInterfaceList">Capacity</property> to the final number of interfaces. This prevents the interface list from having to reallocate the list every time an interface is added.</para>
  6084.          </comments>
  6085.       </member>
  6086.       <member name="P:Classes.Classes.Count">
  6087.          <summary>
  6088.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the number of interfaces in the list.</para>
  6089.          </summary>
  6090.          <comments>
  6091.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="IInterfaceList">Count</property> to determine the number of interfaces in the list.</para>
  6092.          </comments>
  6093.       </member>
  6094.       <member name="P:Classes.Classes.Items">
  6095.          <summary>
  6096.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides direct access to an interface in the list.</para>
  6097.          </summary>
  6098.          <comments>
  6099.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="IInterfaceList">Items</property> to directly access an interface in the list. Index identifies each interface by its position in the list, where 0 is the first item, 1 is the second item, and so on.</para>
  6100.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6101.                      
  6102.                <para>In Delphi, <property namespace="Classes" class="IInterfaceList">Items</property> is the default property of <property namespace="Classes" class="IInterfaceList">IInterfaceList</property>. This means that the name of the property can be omitted in code, and the subscript applied directly to the interface.</para>
  6103.                   
  6104.             </note>
  6105.          </comments>
  6106.       </member>
  6107.       <member name="T:Classes.TInterfaceList">
  6108.          <summary>
  6109.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6110.                
  6111.                <class namespace="Classes">TInterfaceList</class> represents a list of interfaces.</para>
  6112.          </summary>
  6113.          <comments>
  6114.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="Classes">TInterfaceList</class> to manage a list of interfaces.</para>
  6115.          </comments>
  6116.       </member>
  6117.       <member name="M:Classes.Classes.Expand">
  6118.          <summary>
  6119.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Increases the capacity of the interface list.</para>
  6120.          </summary>
  6121.          <comments>
  6122.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If Capacity is greater than 64, then Capacity is increased by Capacity / 4. If Capacity is between eight and 64, Capacity is increased by 16. If Capacity is less than eight, Capacity is increased by four.</para>
  6123.          </comments>
  6124.       </member>
  6125.       <member name="M:Classes.Classes.First">
  6126.          <summary>
  6127.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the first interface in the list.</para>
  6128.          </summary>
  6129.          <comments>
  6130.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">First</method> to obtain the first interface in the list.</para>
  6131.          </comments>
  6132.       </member>
  6133.       <member name="M:Classes.Classes.IndexOf">
  6134.          <summary>
  6135.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the index of an interface.</para>
  6136.          </summary>
  6137.          <comments>
  6138.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">IndexOf</method> to obtain the index of an interface.</para>
  6139.          </comments>
  6140.       </member>
  6141.       <member name="M:Classes.Classes.Add">
  6142.          <summary>
  6143.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6144.                      
  6145.                <method namespace="Classes" class="TInterfaceList">Add</method>s an interface to the list.</para>
  6146.          </summary>
  6147.          <comments>
  6148.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">Add</method> to add an interface to the list.</para>
  6149.          </comments>
  6150.       </member>
  6151.       <member name="M:Classes.Classes.Last">
  6152.          <summary>
  6153.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the last interface in the list.</para>
  6154.          </summary>
  6155.          <comments>
  6156.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">Last</method> to obtain the last interface in the list.</para>
  6157.          </comments>
  6158.       </member>
  6159.       <member name="M:Classes.Classes.Remove">
  6160.          <summary>
  6161.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6162.                      
  6163.                <method namespace="Classes" class="TInterfaceList">Remove</method>s an interface from the list.</para>
  6164.          </summary>
  6165.          <comments>
  6166.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">Remove</method> to remove an interface from the list.</para>
  6167.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6168.                      
  6169.                <method namespace="Classes" class="TInterfaceList">Remove</method> returns the index of the removed interface, or ΓÇô1 if the interface was not found.</para>
  6170.          </comments>
  6171.       </member>
  6172.       <member name="M:Classes.Classes.Create">
  6173.          <summary>
  6174.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6175.                      
  6176.                <method namespace="Classes" class="TInterfaceList">Create</method>s an interface list.</para>
  6177.          </summary>
  6178.          <comments>
  6179.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">Create</method> to create an interface list.</para>
  6180.          </comments>
  6181.       </member>
  6182.       <member name="M:Classes.Classes.Clear">
  6183.          <summary>
  6184.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6185.                      
  6186.                <method namespace="Classes" class="TInterfaceList">Clear</method>s the interface list.</para>
  6187.          </summary>
  6188.          <comments>
  6189.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">Clear</method> to remove all interfaces from the list.</para>
  6190.          </comments>
  6191.       </member>
  6192.       <member name="M:Classes.Classes.Delete">
  6193.          <summary>
  6194.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6195.                      
  6196.                <method namespace="Classes" class="TInterfaceList">Delete</method>s an interface from the list.</para>
  6197.          </summary>
  6198.          <comments>
  6199.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">Delete</method> to delete an interface from the list.</para>
  6200.          </comments>
  6201.       </member>
  6202.       <member name="M:Classes.Classes.Exchange">
  6203.          <summary>
  6204.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Swaps the position of two interfaces in the list.</para>
  6205.          </summary>
  6206.          <comments>
  6207.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">Exchange</method> to move the interface at position Index1 so that it appears at position Index2 and move the interface at position Index2 so that it appears at position Index1. Index1 and Index2 identify two positions (zero offset) in the Items property array.</para>
  6208.          </comments>
  6209.       </member>
  6210.       <member name="M:Classes.Classes.Insert">
  6211.          <summary>
  6212.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6213.                      
  6214.                <method namespace="Classes" class="TInterfaceList">Insert</method>s an interface into the list at a specified position.</para>
  6215.          </summary>
  6216.          <comments>
  6217.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">Insert</method> to insert an interface into the list. Item is the interface to insert, and Index indicates the position (zero-offset) where the interface should be added.</para>
  6218.          </comments>
  6219.       </member>
  6220.       <member name="M:Classes.Classes.Lock">
  6221.          <summary>
  6222.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Prevents other threads from accessing the list.</para>
  6223.          </summary>
  6224.          <comments>
  6225.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">Lock</method> to lock the list, preventing other threads from accessing the list.</para>
  6226.          </comments>
  6227.       </member>
  6228.       <member name="M:Classes.Classes.Unlock">
  6229.          <summary>
  6230.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6231.                      
  6232.                <method namespace="Classes" class="TInterfaceList">Unlock</method>s the list, allowing other threads to access it.</para>
  6233.          </summary>
  6234.          <comments>
  6235.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TInterfaceList">Unlock</method> to unlock the list so that other threads can have access to the interfaces it contains.</para>
  6236.          </comments>
  6237.       </member>
  6238.       <member name="M:Classes.Classes.Destroy">
  6239.          <summary>
  6240.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6241.                      
  6242.                <method namespace="Classes" class="TInterfaceList">Destroy</method>s the interface list.</para>
  6243.          </summary>
  6244.          <comments>
  6245.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TInterfaceList">Destroy</method> directly in an application. Instead, call the Free method.</para>
  6246.          </comments>
  6247.       </member>
  6248.       <member name="P:Classes.Classes.Capacity">
  6249.          <summary>
  6250.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the list capacity.</para>
  6251.          </summary>
  6252.          <comments>
  6253.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TInterfaceList">Capacity</property> to determine the list capacity. Before adding many interfaces to the list, you can improve performance by setting <property namespace="Classes" class="TInterfaceList">Capacity</property> to the final number of interfaces. This prevents the interface list from having to reallocate the list every time an interface is added.</para>
  6254.          </comments>
  6255.       </member>
  6256.       <member name="P:Classes.Classes.Count">
  6257.          <summary>
  6258.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the number of interfaces in the list.</para>
  6259.          </summary>
  6260.          <comments>
  6261.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TInterfaceList">Count</property> to determine the number of interfaces in the list.</para>
  6262.          </comments>
  6263.       </member>
  6264.       <member name="P:Classes.Classes.Items">
  6265.          <summary>
  6266.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides direct access to an interface in the list.</para>
  6267.          </summary>
  6268.          <comments>
  6269.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TInterfaceList">Items</property> to directly access an interface in the list. Index identifies each interface by its position in the list.</para>
  6270.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6271.                      
  6272.                <para>In Delphi, <property namespace="Classes" class="TInterfaceList">Items</property> is the default property of <property namespace="Classes" class="TInterfaceList">TInterfaceList</property>. That means you can omit the property name. Thus, instead of writing</para>
  6273.                   
  6274.             </note>
  6275.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6276.                      
  6277.                <para>InterfaceList1.<property namespace="Classes" class="TInterfaceList">Items</property>[i]</para>
  6278.                   
  6279.             </note>
  6280.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6281.                      
  6282.                <para>you can write</para>
  6283.                   
  6284.             </note>
  6285.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6286.                      
  6287.                <para>InterfaceList1[i]</para>
  6288.                   
  6289.             </note>
  6290.          </comments>
  6291.       </member>
  6292.       <member name="T:Classes.TPersistent">
  6293.          <summary>
  6294.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6295.                
  6296.                <class namespace="Classes">TPersistent</class> is the ancestor for all objects that have assignment and streaming capabilities.</para>
  6297.          </summary>
  6298.          <comments>
  6299.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6300.                
  6301.                <class namespace="Classes">TPersistent</class> encapsulates the behavior common to all objects that can be assigned to other objects, and that can read and write their properties to and from a form file (.xfm or .dfm file). For this purpose <class namespace="Classes">TPersistent</class> introduces methods that can be overridden to:</para>
  6302.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Define the procedure for loading and storing unpublished data to a stream.</para>
  6303.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provide the means to assign values to properties.</para>
  6304.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provide the means to assign the contents of one object to another.</para>
  6305.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not create instances of <class namespace="Classes">TPersistent</class>. Use <class namespace="Classes">TPersistent</class> as a base class when declaring objects that are not components, but that need to be saved to a stream or have their properties assigned to other objects.</para>
  6306.          </comments>
  6307.       </member>
  6308.       <member name="M:Classes.Classes.GetOwner">
  6309.          <summary>
  6310.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the owner of an object.</para>
  6311.          </summary>
  6312.          <comments>
  6313.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6314.                      
  6315.                <method namespace="Classes" class="TPersistent">GetOwner</method> is used by the GetNamePath method to find the owner of a persistent object. GetNamePath and <method namespace="Classes" class="TPersistent">GetOwner</method> are introduced in <method namespace="Classes" class="TPersistent">TPersistent</method> so descendants such as collections can appear in the Object Inspector. As implemented in <method namespace="Classes" class="TPersistent">TPersistent</method>, <method namespace="Classes" class="TPersistent">GetOwner</method> returns nil (Delphi) or NULL (C++). </para>
  6316.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For TCollection, <method namespace="Classes" class="TPersistent">GetOwner</method> returns the owner of the collection. For collection items, it returns the collection object into which the collection item has been inserted. For TComponent it is the value of the Owner property.</para>
  6317.          </comments>
  6318.       </member>
  6319.       <member name="M:Classes.Classes.GetNamePath">
  6320.          <summary>
  6321.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the name of the object as it appears in the Object Inspector.</para>
  6322.          </summary>
  6323.          <comments>
  6324.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6325.                      
  6326.                <method namespace="Classes" class="TPersistent">GetNamePath</method> is for internal use only. It determines the text that the Object Inspector displays for the name of the object being edited. <method namespace="Classes" class="TPersistent">GetNamePath</method> is introduced in <method namespace="Classes" class="TPersistent">TPersistent</method> so descendants such as collections can appear in the Object Inspector. Do not call <method namespace="Classes" class="TPersistent">GetNamePath</method> directly.</para>
  6327.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For components, <method namespace="Classes" class="TPersistent">GetNamePath</method> returns the component name. For TCollectionItem objects it returns the name of the hosting component, the name of the property, and the index into the collection surrounded by brackets.</para>
  6328.          </comments>
  6329.       </member>
  6330.       <member name="M:Classes.Classes.AssignTo">
  6331.          <summary>
  6332.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Copies the properties of an object to a destination object.</para>
  6333.          </summary>
  6334.          <comments>
  6335.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Override the <method namespace="Classes" class="TPersistent">AssignTo</method> method to extend the functionality of the Assign method of destination objects so that they handle newly created object classes. When defining a new object class, override the Assign method for every existing object class that should be able to copy its properties to the new class.  Override the <method namespace="Classes" class="TPersistent">AssignTo</method> method for every existing class to which the new class can copy.</para>
  6336.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Assign method of <method namespace="Classes" class="TPersistent">TPersistent</method> calls <method namespace="Classes" class="TPersistent">AssignTo</method> if the descendant object does not succeed in copying the properties of a source object. The <method namespace="Classes" class="TPersistent">AssignTo</method> method defined by <method namespace="Classes" class="TPersistent">TPersistent</method> raises an EConvertError exception. </para>
  6337.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For example, given the following code in which A and B are instance variables:</para>
  6338.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="Delphi">A.Assign(B); {Delphi}</codeBlock>
  6339.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="CBuilder">A->Assign(B); // C++</codeBlock>
  6340.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">if A knows how to handle B, then it does so and returns. If A doesn't know how to handle B's type, execution will trickle to the <method namespace="Classes" class="TPersistent">TPersistent</method> version of Assign, which calls:</para>
  6341.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="Delphi">B.AssignTo(A); {Delphi}</codeBlock>
  6342.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="CBuilder">B->AssignTo(A); // C++</codeBlock>
  6343.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If B knows how to copy to A, the assignment succeeds. Otherwise, <method namespace="Classes" class="TPersistent">TPersistent</method> raises an exception.</para>
  6344.          </comments>
  6345.       </member>
  6346.       <member name="M:Classes.Classes.DefineProperties">
  6347.          <summary>
  6348.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides an interface for a method that reads and writes otherwise unpublished data.</para>
  6349.          </summary>
  6350.          <comments>
  6351.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendants of <method namespace="Classes" class="TPersistent">TPersistent</method> override <method namespace="Classes" class="TPersistent">DefineProperties</method> to designate a method for storing the object's unpublished data to a stream such as a form file. By default, writing an object to a stream writes the values of all its published properties, and reading the object in reads those values and assigns them to the properties. Objects can also specify methods that read and write data other than published properties by overriding the <method namespace="Classes" class="TPersistent">DefineProperties</method> method.</para>
  6352.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When overriding <method namespace="Classes" class="TPersistent">DefineProperties</method>, consider including some or all of the following:</para>
  6353.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A call to the inherited method</para>
  6354.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Calls to the filer object's DefineProperty method</para>
  6355.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Calls to the filer object's DefineBinaryProperty method</para>
  6356.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6357.                      
  6358.                <method namespace="Classes" class="TPersistent">DefineProperties</method> is virtual, so descendant classes can override it as necessary but are not required to do so.</para>
  6359.          </comments>
  6360.       </member>
  6361.       <member name="M:Classes.Classes.Assign">
  6362.          <summary>
  6363.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Copies the contents of another, similar object.</para>
  6364.          </summary>
  6365.          <comments>
  6366.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TPersistent">Assign</method> to copy the properties or other attributes of one object from another. The standard form of a call to <method namespace="Classes" class="TPersistent">Assign</method> is</para>
  6367.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="Delphi">Destination.Assign(Source); {Delphi}</codeBlock>
  6368.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="CBuilder">Destination->Assign(Source); // C++</codeBlock>
  6369.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">which tells the Destination object to copy the contents of the Source object to itself.</para>
  6370.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Most objects override <method namespace="Classes" class="TPersistent">Assign</method> to handle the assignment of properties from similar objects. When overriding <method namespace="Classes" class="TPersistent">Assign</method>, call the inherited method if the destination object can't handle the assignment of properties from the class of the Source parameter.</para>
  6371.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If no overridden <method namespace="Classes" class="TPersistent">Assign</method> method can handle the assignment of properties from Source, the method implemented in <method namespace="Classes" class="TPersistent">TPersistent</method> calls the source object's <method namespace="Classes" class="TPersistent">Assign</method>To method. This allows the source object to handle the assignment. If the Source object is nil (Delphi) or NULL (C++), <method namespace="Classes" class="TPersistent">Assign</method> raises an EConvertError exception.</para>
  6372.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">In general, the statement </para>
  6373.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="Delphi">Destination := Source; {Delphi}</codeBlock>
  6374.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="CBuilder">Destination = Source; // C++</codeBlock>
  6375.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">is not the same as the statement </para>
  6376.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="Delphi">Destination.Assign(Source); {Delphi}</codeBlock>
  6377.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="CBuilder">Destination->Assign(Source); // C++</codeBlock>
  6378.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The assignment operator makes Destination reference the same object as Source, whereas the <method namespace="Classes" class="TPersistent">Assign</method> method copies the contents of the object referenced by Source into the object referenced by Destination.</para>
  6379.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6380.                      
  6381.                <para>The types of some properties are also objects. If these properties have write methods that use <method namespace="Classes" class="TPersistent">Assign</method> to set the value of the property, then in these cases the assignment operator does the same thing as the <method namespace="Classes" class="TPersistent">Assign</method> method.</para>
  6382.                   
  6383.             </note>
  6384.          </comments>
  6385.       </member>
  6386.       <member name="M:Classes.Classes.Destroy">
  6387.          <summary>
  6388.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6389.                      
  6390.                <method namespace="Classes" class="TPersistent">Destroy</method>s the <method namespace="Classes" class="TPersistent">TPersistent</method> instance and frees its memory.</para>
  6391.          </summary>
  6392.          <comments>
  6393.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TPersistent">Destroy</method> directly. Call Free instead. Free checks that the object reference is not nil before calling <method namespace="Classes" class="TPersistent">Destroy</method>.</para>
  6394.          </comments>
  6395.       </member>
  6396.       <member name="T:Classes.TInterfacedPersistent">
  6397.          <summary>
  6398.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6399.                
  6400.                <class namespace="Classes">TInterfacedPersistent</class> is an ancestor for persistent objects that implement interfaces.</para>
  6401.          </summary>
  6402.          <comments>
  6403.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6404.                
  6405.                <class namespace="Classes">TInterfacedPersistent</class>, like all persistent objects, supports the ability to read and write its properties to and from a stream. In addition, it supplies a default implementation of the IInterface methods (_AddRef, _Release, and QueryInterface). This default implementation simply passes these calls on to the interface of the persistent object's Owner, if any.</para>
  6406.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not create instances of <class namespace="Classes">TInterfacedPersistent</class>. Use <class namespace="Classes">TInterfacedPersistent</class> as a base class when declaring objects that are not components, but that need to be saved to a stream or have their properties assigned to other objects, and that support interfaces.</para>
  6407.          </comments>
  6408.       </member>
  6409.       <member name="M:Classes.Classes._AddRef">
  6410.          <summary>
  6411.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Increments the reference count for the interfaced object's interface.</para>
  6412.          </summary>
  6413.          <comments>
  6414.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">_<method namespace="Classes" class="TInterfacedPersistent">AddRef</method> implements the IInterface method, _<method namespace="Classes" class="TInterfacedPersistent">AddRef</method>, which increments the reference count of an interface and returns the current reference count.</para>
  6415.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> If the interfaced persistent object has an Owner and that owner supports an interface, then _<method namespace="Classes" class="TInterfacedPersistent">AddRef</method> simply calls the _<method namespace="Classes" class="TInterfacedPersistent">AddRef</method> method of the Owner. Otherwise, it simply returns ΓÇô1.</para>
  6416.          </comments>
  6417.       </member>
  6418.       <member name="M:Classes.Classes._Release">
  6419.          <summary>
  6420.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Decrements the reference count for the interfaced object's interface.</para>
  6421.          </summary>
  6422.          <comments>
  6423.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">__<method namespace="Classes" class="TInterfacedPersistent">Release</method> implements the IInterface method, __<method namespace="Classes" class="TInterfacedPersistent">Release</method>, which decrements the reference count of an interface and returns the current reference count. For some interfaces, when this causes the reference count to drop to zero, the object frees itself.</para>
  6424.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the interfaced persistent object has an Owner and that owner supports an interface, then __<method namespace="Classes" class="TInterfacedPersistent">Release</method> simply calls the __<method namespace="Classes" class="TInterfacedPersistent">Release</method> method of the Owner. Otherwise, it simply returns ΓÇô1.</para>
  6425.          </comments>
  6426.       </member>
  6427.       <member name="M:Classes.Classes.QueryInterface">
  6428.          <summary>
  6429.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns a reference to a specified interface if the object supports that interface.</para>
  6430.          </summary>
  6431.          <comments>
  6432.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6433.                      
  6434.                <method namespace="Classes" class="TInterfacedPersistent">QueryInterface</method> implements the IInterface method, <method namespace="Classes" class="TInterfacedPersistent">QueryInterface</method>. This method checks whether the interfaced persistent object supports the interface identified by IID. If so, it returns a reference as the Obj parameter, automatically incrementing the reference count for the interface. If the object does not support the specified interface, it returns a non-zero value.</para>
  6435.          </comments>
  6436.       </member>
  6437.       <member name="M:Classes.Classes.AfterConstruction">
  6438.          <summary>
  6439.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Obtains a reference to the Owner's interface.</para>
  6440.          </summary>
  6441.          <comments>
  6442.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6443.                      
  6444.                <method namespace="Classes" class="TInterfacedPersistent">AfterConstruction</method> is called automatically after the object's last constructor executes. Do not call it explicitly in your applications.</para>
  6445.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TInterfacedPersistent">TInterfacedPersistent</method>, <method namespace="Classes" class="TInterfacedPersistent">AfterConstruction</method> calls the GetOwner method to determine whether this object has an Owner. If so, it obtains a reference to the Owner's interface, to which it can delegate IInterface calls.</para>
  6446.          </comments>
  6447.       </member>
  6448.       <member name="T:Classes.TRecall">
  6449.          <summary>
  6450.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6451.                
  6452.                <class namespace="Classes">TRecall</class> stores the properties of a persistent object so that they can be restored at a later time.</para>
  6453.          </summary>
  6454.          <comments>
  6455.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6456.                
  6457.                <class namespace="Classes">TRecall</class> acts as a temporary repository for the properties of a persistent object. To use <class namespace="Classes">TRecall</class>
  6458.             
  6459.             </para>
  6460.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1. Create an instance of <class namespace="Classes">TRecall</class>, assigning an object to use for storing property values (the storage object), and an object whose property values it represents (the reference object). When you create an instance of <class namespace="Classes">TRecall</class>, it automatically stores the current properties of the reference object.</para>
  6461.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2. Call the Store method at any time to take a snapshot of the reference object's properties. <class namespace="Classes">TRecall</class> updates the storage object so that it reflects only the property settings from the last time you called the Store method (or, if Store was never called, from the point when the <class namespace="Classes">TRecall</class> object was created).</para>
  6462.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">3. Delete the <class namespace="Classes">TRecall</class> object to restore the reference object to the set of properties it had when you last called the Store method.</para>
  6463.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If you do not want the <class namespace="Classes">TRecall</class> object to restore the properties it is saving, call the Forget method. After you call Forget, the <class namespace="Classes">TRecall</class> object can't be used. It does not update the reference object when destroyed and can't save any more properties.</para>
  6464.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">You can use <class namespace="Classes">TRecall</class> to save the properties of any persistent object, using any explicitly specified storage object. In addition, <class namespace="Classes">TRecall</class> has several descendants with their own built-in storage objects that work only with a specific class of reference object. These include TFontRecall, TPenRecall, and TBrushRecall.</para>
  6465.          </comments>
  6466.       </member>
  6467.       <member name="M:Classes.Classes.Create">
  6468.          <summary>
  6469.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6470.                      
  6471.                <method namespace="Classes" class="TRecall">Create</method>s an instance of a <method namespace="Classes" class="TRecall">TRecall</method> object.</para>
  6472.          </summary>
  6473.          <comments>
  6474.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6475.                      
  6476.                <para>Call <method namespace="Classes" class="TRecall">Create</method> to instantiate a <method namespace="Classes" class="TRecall">TRecall</method> object to save the properties of a specific reference object.</para>
  6477.                   
  6478.             </note>
  6479.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AStorage is an object that saves the properties of the reference object. Once you create the <method namespace="Classes" class="TRecall">TRecall</method> instance, it is responsible for the memory of AStorage, and frees AStorage when it is destroyed. Do not free AStorage yourself after creating the <method namespace="Classes" class="TRecall">TRecall</method> object.</para>
  6480.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AReference is the object whose properties are saved when you create the <method namespace="Classes" class="TRecall">TRecall</method> object and, subsequently, any time you call the Store method.</para>
  6481.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AStorage and AReference do not need to be the same type of object. However, <method namespace="Classes" class="TRecall">TRecall</method> can only save and restore those properties that can be assigned from the reference object to the storage object and back again. That is, <method namespace="Classes" class="TRecall">TRecall</method> only handles those properties that are copied by the Assign method of AStorage and AReference.</para>
  6482.          </comments>
  6483.       </member>
  6484.       <member name="M:Classes.Classes.Store">
  6485.          <summary>
  6486.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Saves the current property settings of the reference object.</para>
  6487.          </summary>
  6488.          <comments>
  6489.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TRecall">Store</method> to update the <method namespace="Classes" class="TRecall">TRecall</method> object's saved property values so that they reflect the current property values of the reference object. Each call to <method namespace="Classes" class="TRecall">Store</method> completely supersedes the previously stored property values.</para>
  6490.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When you destroy the <method namespace="Classes" class="TRecall">TRecall</method> object, it assigns the most recently stored property values to the reference object.</para>
  6491.          </comments>
  6492.       </member>
  6493.       <member name="M:Classes.Classes.Forget">
  6494.          <summary>
  6495.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Discards the saved property values and prevents the <method namespace="Classes" class="TRecall">TRecall</method> object from updating the reference object.</para>
  6496.          </summary>
  6497.          <comments>
  6498.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, the <method namespace="Classes" class="TRecall">TRecall</method> destructor updates the reference object, assigning the most recently saved property values. To prevent this from happening, call <method namespace="Classes" class="TRecall">Forget</method> before destroying the <method namespace="Classes" class="TRecall">TRecall</method> object.</para>
  6499.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Once you have called <method namespace="Classes" class="TRecall">Forget</method>, the <method namespace="Classes" class="TRecall">TRecall</method> instance can not do anything. It ignores any further attempts to store property settings because it can't use them to update the reference object when it is destroyed.</para>
  6500.          </comments>
  6501.       </member>
  6502.       <member name="M:Classes.Classes.Destroy">
  6503.          <summary>
  6504.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6505.                      
  6506.                <method namespace="Classes" class="TRecall">Destroy</method>s the <method namespace="Classes" class="TRecall">TRecall</method> instance, assigning the stored properties to the reference object.</para>
  6507.          </summary>
  6508.          <comments>
  6509.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6510.                      
  6511.                <method namespace="Classes" class="TRecall">Destroy</method> a <method namespace="Classes" class="TRecall">TRecall</method> instance to restore the properties of the reference object to the last values saved to the <method namespace="Classes" class="TRecall">TRecall</method> object. The properties of the reference object are saved to the <method namespace="Classes" class="TRecall">TRecall</method> instance when you first create it, and subsequently any time you call the Store method. The <method namespace="Classes" class="TRecall">TRecall</method> destructor assigns the currently saved property values to the reference object by calling the reference object's Assign method.</para>
  6512.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If you do not want to restore the currently saved property values, call the Forget method before freeing the <method namespace="Classes" class="TRecall">TRecall</method> object. Once you call Forget, <method namespace="Classes" class="TRecall">TRecall</method> ceases to store any property information, and destroying the <method namespace="Classes" class="TRecall">TRecall</method> leaves the properties of the reference object unchanged.</para>
  6513.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6514.                      
  6515.                <para>Do not call <method namespace="Classes" class="TRecall">Destroy</method> directly. Call Free instead. Free checks that the object reference is not nil before calling <method namespace="Classes" class="TRecall">Destroy</method>.</para>
  6516.                   
  6517.             </note>
  6518.          </comments>
  6519.       </member>
  6520.       <member name="P:Classes.Classes.Reference">
  6521.          <summary>
  6522.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the reference object that is updated when you destroy the <property namespace="Classes" class="TRecall">TRecall</property> instance.</para>
  6523.          </summary>
  6524.          <comments>
  6525.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="Classes" class="TRecall">Reference</property> to determine the object that <property namespace="Classes" class="TRecall">TRecall</property> updates when it is destroyed. The value of this read-only property is assigned in the constructor.</para>
  6526.          </comments>
  6527.       </member>
  6528.       <member name="T:Classes.TCollectionItem">
  6529.          <summary>
  6530.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6531.                
  6532.                <class namespace="Classes">TCollectionItem</class> represents an item in a collection.</para>
  6533.          </summary>
  6534.          <comments>
  6535.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A TCollection holds a group of <class namespace="Classes">TCollectionItem</class> objects. <class namespace="Classes">TCollectionItem</class>s are created and destroyed by TCollection's Add and Clear methods. Each <class namespace="Classes">TCollectionItem</class> has a Collection property that points to the TCollection object to which the item belongs.</para>
  6536.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Objects descended from TCollection can contain objects descended from <class namespace="Classes">TCollectionItem</class>. For example, a TDBGridColumns object contains TColumn objects; these two classes are used by TDBGrid to represent grid columns. </para>
  6537.          </comments>
  6538.       </member>
  6539.       <member name="M:Classes.Classes.GetOwner">
  6540.          <summary>
  6541.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the collection to which this item belongs.</para>
  6542.          </summary>
  6543.          <comments>
  6544.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6545.                      
  6546.                <method namespace="Classes" class="TCollectionItem">GetOwner</method> is used by the GetNamePath method to find the collection that owns of the collection item, allowing the collection item to appear in the Object Inspector. It returns the value of the Collection property.</para>
  6547.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6548.                      
  6549.                <para>The Owner of a collection item is not synonymous with a component's Owner. It has no implications about the freeing of objects but merely serves to represent relationships to the Object Inspector.</para>
  6550.                   
  6551.             </note>
  6552.          </comments>
  6553.       </member>
  6554.       <member name="M:Classes.Classes.GetNamePath">
  6555.          <summary>
  6556.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns a string used by the Object Inspector.</para>
  6557.          </summary>
  6558.          <comments>
  6559.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6560.                      
  6561.                <method namespace="Classes" class="TCollectionItem">GetNamePath</method> determines the text that represents the collection in the Object Inspector. <method namespace="Classes" class="TCollectionItem">TCollectionItem</method> overrides the inherited method to return the name of the collection followed by the index of the item within that collection.</para>
  6562.          </comments>
  6563.       </member>
  6564.       <member name="M:Classes.Classes.Create">
  6565.          <summary>
  6566.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6567.                      
  6568.                <method namespace="Classes" class="TCollectionItem">Create</method>s and initializes a <method namespace="Classes" class="TCollectionItem">TCollectionItem</method> instance.</para>
  6569.          </summary>
  6570.          <comments>
  6571.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TCollectionItem">Create</method> to instantiate a collection item. Instead, call the Add method of the collection to which the item should belong.</para>
  6572.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Collection identifies the TCollection instance to which the new item belongs.</para>
  6573.          </comments>
  6574.       </member>
  6575.       <member name="M:Classes.Classes.Changed">
  6576.          <summary>
  6577.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Updates the collection to reflect changes to the collection item.</para>
  6578.          </summary>
  6579.          <comments>
  6580.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6581.                      
  6582.                <method namespace="Classes" class="TCollectionItem">Changed</method> is called automatically when a collection item changes in a way that must be reflected by the collection to which the item belongs. For example, when an item's Index property changes, the collection must update the indexes of all other items. Call this method in the implementation of a descendant class when making changes that require the collection to update.</para>
  6583.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The AllItems parameter indicates whether the change affects just the collection item (such as a change to its DisplayName property) or whether it requires corresponding changes to other items in the collection (such as a change to the Index property).</para>
  6584.          </comments>
  6585.       </member>
  6586.       <member name="M:Classes.Classes.Destroy">
  6587.          <summary>
  6588.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6589.                      
  6590.                <method namespace="Classes" class="TCollectionItem">Destroy</method>s the <method namespace="Classes" class="TCollectionItem">TCollectionItem</method> instance and frees its memory.</para>
  6591.          </summary>
  6592.          <comments>
  6593.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6594.                      
  6595.                <method namespace="Classes" class="TCollectionItem">Destroy</method> is called indirectly by TCollection's Clear or Delete method.</para>
  6596.          </comments>
  6597.       </member>
  6598.       <member name="P:Classes.Classes.Collection">
  6599.          <summary>
  6600.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the T<property namespace="Classes" class="TCollectionItem">Collection</property> instance to which the T<property namespace="Classes" class="TCollectionItem">Collection</property>Item belongs.</para>
  6601.          </summary>
  6602.          <comments>
  6603.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each T<property namespace="Classes" class="TCollectionItem">Collection</property>Item belongs to the T<property namespace="Classes" class="TCollectionItem">Collection</property> which creates it. The <property namespace="Classes" class="TCollectionItem">Collection</property> property points to the collection object to which the item belongs.</para>
  6604.          </comments>
  6605.       </member>
  6606.       <member name="P:Classes.Classes.ID">
  6607.          <summary>
  6608.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A unique, permanent index for the item.</para>
  6609.          </summary>
  6610.          <comments>
  6611.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">In most cases, <property namespace="Classes" class="TCollectionItem">ID</property> is the value of the item's Index property when it was first added to the collection. But, unlike Index values, <property namespace="Classes" class="TCollectionItem">ID</property> values are never changed or reassigned. If an item is removed from a collection, its <property namespace="Classes" class="TCollectionItem">ID</property> not used again.</para>
  6612.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">An item's Index may change when other items are deleted from the collection or when items are rearranged. <property namespace="Classes" class="TCollectionItem">ID</property> provides a unique identifier for each item that is unchanged for the life of the collection.</para>
  6613.          </comments>
  6614.       </member>
  6615.       <member name="P:Classes.Classes.Index">
  6616.          <summary>
  6617.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the item's position in the Items array of TCollection.</para>
  6618.          </summary>
  6619.          <comments>
  6620.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each <property namespace="Classes" class="TCollectionItem">TCollectionItem</property> is indexed in the Items array of the TCollection to which it belongs. The <property namespace="Classes" class="TCollectionItem">Index</property> property of the <property namespace="Classes" class="TCollectionItem">TCollectionItem</property> contains the item's index value in that array. Read the value of <property namespace="Classes" class="TCollectionItem">Index</property> to determine the collection item's position. Set the value of <property namespace="Classes" class="TCollectionItem">Index</property> to move the collection item to a new position.</para>
  6621.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Items is a zero-based array. The first member of the collection has an index value of 0, the second member has an index value of 1, and so forth.</para>
  6622.          </comments>
  6623.       </member>
  6624.       <member name="P:Classes.Classes.DisplayName">
  6625.          <summary>
  6626.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The name displayed in the Collection editor.</para>
  6627.          </summary>
  6628.          <comments>
  6629.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6630.                      
  6631.                <property namespace="Classes" class="TCollectionItem">DisplayName</property> is the string that represents the item in the Collection editor. When the item is selected in the Collection editor, the <property namespace="Classes" class="TCollectionItem">DisplayName</property> can also appear in the Object Inspector as the value of another property (for example, as the Text property of THeaderSection or TStatusPanel). By default, <property namespace="Classes" class="TCollectionItem">DisplayName</property> is the name of the <property namespace="Classes" class="TCollectionItem">TCollectionItem</property> descendant class of which the item is an instance.</para>
  6632.          </comments>
  6633.       </member>
  6634.       <member name="T:Classes.TCollectionItemClass">
  6635.          <summary>
  6636.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6637.                
  6638.                <type namespace="Qt">TCollectionItemClass</type> defines the metaclass for TCollectionItem.</para>
  6639.          </summary>
  6640.          <comments>
  6641.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6642.                
  6643.                <type namespace="Qt">TCollectionItemClass</type> is the metaclass for TCollectionItem. Its value is the class reference for TCollectionItem or for one of its descendants.</para>
  6644.          </comments>
  6645.       </member>
  6646.       <member name="T:Classes.TCollectionNotification">
  6647.          <summary>
  6648.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6649.                
  6650.                <type namespace="Qt">TCollectionNotification</type> indicates the type of change that is made to the items in a collection.</para>
  6651.          </summary>
  6652.          <comments>
  6653.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The following table lists the values for <type namespace="Qt">TCollectionNotification</type>:</para>
  6654.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6655.                
  6656.                <tr>
  6657.                   
  6658.                   <th>Value</th>
  6659.                   
  6660.                   <th>Meaning</th>
  6661.                
  6662.                </tr>
  6663.                
  6664.                <tr>
  6665.                   
  6666.                   <td>
  6667.                      
  6668.                      <para>cnAdded</para>
  6669.                   
  6670.                   </td>
  6671.                   
  6672.                   <td>
  6673.                      
  6674.                      <para>An item was just added to the collection.</para>
  6675.                   
  6676.                   </td>
  6677.                
  6678.                </tr>
  6679.                
  6680.                <tr>
  6681.                   
  6682.                   <td>
  6683.                      
  6684.                      <para>cnExtracting</para>
  6685.                   
  6686.                   </td>
  6687.                   
  6688.                   <td>
  6689.                      
  6690.                      <para>An item is about to be removed from the collection (but not freed).</para>
  6691.                   
  6692.                   </td>
  6693.                
  6694.                </tr>
  6695.                
  6696.                <tr>
  6697.                   
  6698.                   <td>
  6699.                      
  6700.                      <para>cnDeleting</para>
  6701.                   
  6702.                   </td>
  6703.                   
  6704.                   <td>
  6705.                      
  6706.                      <para>An item is about to be removed from the collection and then freed.</para>
  6707.                   
  6708.                   </td>
  6709.                
  6710.                </tr>
  6711.             
  6712.             </table>
  6713.          </comments>
  6714.       </member>
  6715.       <member name="T:Classes.TCollection">
  6716.          <summary>
  6717.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6718.                
  6719.                <class namespace="Classes">TCollection</class> is a container for <class namespace="Classes">TCollection</class>Item objects.</para>
  6720.          </summary>
  6721.          <comments>
  6722.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each <class namespace="Classes">TCollection</class> holds a group of <class namespace="Classes">TCollection</class>Item descendants. <class namespace="Classes">TCollection</class> maintains an index of the collection items in its Items array. The Count property contains the number of items in the collection. Use the Add and Delete methods to add items to the collection and delete items from the collection.</para>
  6723.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Objects descended from <class namespace="Classes">TCollection</class> can contain objects descended from <class namespace="Classes">TCollection</class>Item. Thus, for each <class namespace="Classes">TCollection</class> descendant, there is a corresponding <class namespace="Classes">TCollection</class>Item descendant. The following table lists some typical descendants of <class namespace="Classes">TCollection</class> with the corresponding <class namespace="Classes">TCollection</class>Item descendant and the component that uses each pair.</para>
  6724.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6725.                
  6726.                <class namespace="Classes">TCollection</class> descendant<class namespace="Classes">TCollection</class>Item descendantComponent</para>
  6727.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  6728.                
  6729.                <tr>
  6730.                   
  6731.                   <th>TCollection descendant</th>
  6732.                   
  6733.                   <th>TCollectionItem descendant</th>
  6734.                   
  6735.                   <th>Component</th>
  6736.                
  6737.                </tr>
  6738.                
  6739.                <tr>
  6740.                   
  6741.                   <td>
  6742.                      
  6743.                      <para>TAggregates</para>
  6744.                   
  6745.                   </td>
  6746.                   
  6747.                   <td>
  6748.                      
  6749.                      <para>TAggregate</para>
  6750.                   
  6751.                   </td>
  6752.                   
  6753.                   <td>
  6754.                      
  6755.                      <para>TClientDataSet</para>
  6756.                   
  6757.                   </td>
  6758.                
  6759.                </tr>
  6760.                
  6761.                <tr>
  6762.                   
  6763.                   <td>
  6764.                      
  6765.                      <para>TCookieCollection</para>
  6766.                   
  6767.                   </td>
  6768.                   
  6769.                   <td>
  6770.                      
  6771.                      <para>TCookie</para>
  6772.                   
  6773.                   </td>
  6774.                   
  6775.                   <td>
  6776.                      
  6777.                      <para>TWebResponse</para>
  6778.                   
  6779.                   </td>
  6780.                
  6781.                </tr>
  6782.                
  6783.                <tr>
  6784.                   
  6785.                   <td>
  6786.                      
  6787.                      <para>TCoolBands</para>
  6788.                   
  6789.                   </td>
  6790.                   
  6791.                   <td>
  6792.                      
  6793.                      <para>TCoolBand</para>
  6794.                   
  6795.                   </td>
  6796.                   
  6797.                   <td>
  6798.                      
  6799.                      <para>TCoolBar</para>
  6800.                   
  6801.                   </td>
  6802.                
  6803.                </tr>
  6804.                
  6805.                <tr>
  6806.                   
  6807.                   <td>
  6808.                      
  6809.                      <para>TDBGridColumns</para>
  6810.                   
  6811.                   </td>
  6812.                   
  6813.                   <td>
  6814.                      
  6815.                      <para>TColumn</para>
  6816.                   
  6817.                   </td>
  6818.                   
  6819.                   <td>
  6820.                      
  6821.                      <para>TDBGrid</para>
  6822.                   
  6823.                   </td>
  6824.                
  6825.                </tr>
  6826.                
  6827.                <tr>
  6828.                   
  6829.                   <td>
  6830.                      
  6831.                      <para>TDependencies</para>
  6832.                   
  6833.                   </td>
  6834.                   
  6835.                   <td>
  6836.                      
  6837.                      <para>TDependency</para>
  6838.                   
  6839.                   </td>
  6840.                   
  6841.                   <td>
  6842.                      
  6843.                      <para>TService</para>
  6844.                   
  6845.                   </td>
  6846.                
  6847.                </tr>
  6848.                
  6849.                <tr>
  6850.                   
  6851.                   <td>
  6852.                      
  6853.                      <para>TDisplayDims</para>
  6854.                   
  6855.                   </td>
  6856.                   
  6857.                   <td>
  6858.                      
  6859.                      <para>TDisplayDim</para>
  6860.                   
  6861.                   </td>
  6862.                   
  6863.                   <td>
  6864.                      
  6865.                      <para>TDecisionGrid</para>
  6866.                   
  6867.                   </td>
  6868.                
  6869.                </tr>
  6870.                
  6871.                <tr>
  6872.                   
  6873.                   <td>
  6874.                      
  6875.                      <para>TFieldDefs</para>
  6876.                   
  6877.                   </td>
  6878.                   
  6879.                   <td>
  6880.                      
  6881.                      <para>TFieldDef</para>
  6882.                   
  6883.                   </td>
  6884.                   
  6885.                   <td>
  6886.                      
  6887.                      <para>TDataSet</para>
  6888.                   
  6889.                   </td>
  6890.                
  6891.                </tr>
  6892.                
  6893.                <tr>
  6894.                   
  6895.                   <td>
  6896.                      
  6897.                      <para>THeaderSections</para>
  6898.                   
  6899.                   </td>
  6900.                   
  6901.                   <td>
  6902.                      
  6903.                      <para>THeaderSection</para>
  6904.                   
  6905.                   </td>
  6906.                   
  6907.                   <td>
  6908.                      
  6909.                      <para>THeaderControl</para>
  6910.                   
  6911.                   </td>
  6912.                
  6913.                </tr>
  6914.                
  6915.                <tr>
  6916.                   
  6917.                   <td>
  6918.                      
  6919.                      <para>TIndexDefs</para>
  6920.                   
  6921.                   </td>
  6922.                   
  6923.                   <td>
  6924.                      
  6925.                      <para>TIndexDef</para>
  6926.                   
  6927.                   </td>
  6928.                   
  6929.                   <td>
  6930.                      
  6931.                      <para>TTable</para>
  6932.                   
  6933.                   </td>
  6934.                
  6935.                </tr>
  6936.                
  6937.                <tr>
  6938.                   
  6939.                   <td>
  6940.                      
  6941.                      <para>TListColumns</para>
  6942.                   
  6943.                   </td>
  6944.                   
  6945.                   <td>
  6946.                      
  6947.                      <para>TListColumn</para>
  6948.                   
  6949.                   </td>
  6950.                   
  6951.                   <td>
  6952.                      
  6953.                      <para>TListView</para>
  6954.                   
  6955.                   </td>
  6956.                
  6957.                </tr>
  6958.                
  6959.                <tr>
  6960.                   
  6961.                   <td>
  6962.                      
  6963.                      <para>TParams</para>
  6964.                   
  6965.                   </td>
  6966.                   
  6967.                   <td>
  6968.                      
  6969.                      <para>TParam</para>
  6970.                   
  6971.                   </td>
  6972.                   
  6973.                   <td>
  6974.                      
  6975.                      <para>many datasets</para>
  6976.                   
  6977.                   </td>
  6978.                
  6979.                </tr>
  6980.                
  6981.                <tr>
  6982.                   
  6983.                   <td>
  6984.                      
  6985.                      <para>TStatusPanels</para>
  6986.                   
  6987.                   </td>
  6988.                   
  6989.                   <td>
  6990.                      
  6991.                      <para>TStatusPanel</para>
  6992.                   
  6993.                   </td>
  6994.                   
  6995.                   <td>
  6996.                      
  6997.                      <para>TStatusBar</para>
  6998.                   
  6999.                   </td>
  7000.                
  7001.                </tr>
  7002.                
  7003.                <tr>
  7004.                   
  7005.                   <td>
  7006.                      
  7007.                      <para>TWorkAreas</para>
  7008.                   
  7009.                   </td>
  7010.                   
  7011.                   <td>
  7012.                      
  7013.                      <para>TWorkArea</para>
  7014.                   
  7015.                   </td>
  7016.                   
  7017.                   <td>
  7018.                      
  7019.                      <para>TListView</para>
  7020.                   
  7021.                   </td>
  7022.                
  7023.                </tr>
  7024.             
  7025.             </table>
  7026.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The controls that use <class namespace="Classes">TCollection</class> and <class namespace="Classes">TCollection</class>Item descendants have a published property that holds a collection. (For example, the Panels property of TStatusBar holds a TStatusPanels.) A standard property editor, referred to generically as the Collection editor, can be invoked from the Object Inspector to edit the items in the collection. </para>
  7027.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7028.                
  7029.                <para>When writing a <class namespace="Classes">TCollection</class> descendant that is used by another control, be sure to override the protected GetOwner method of the collection so that it can appear in the Object Inspector.</para>
  7030.             
  7031.             </note>
  7032.          </comments>
  7033.       </member>
  7034.       <member name="M:Classes.Classes.GetAttrCount">
  7035.          <summary>
  7036.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the number of custom attributes associated with items in the collection.</para>
  7037.          </summary>
  7038.          <comments>
  7039.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7040.                      
  7041.                <method namespace="Classes" class="TCollection">TCollection</method> descendants can associate user-defined attributes with the items in the collection. Each attribute has a name and, for each item in the collection, a value that is a string. <method namespace="Classes" class="TCollection">GetAttrCount</method> returns the number of distinct attributes assigned to each item in the collection.</para>
  7042.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TCollection">TCollection</method>, <method namespace="Classes" class="TCollection">GetAttrCount</method> always returns 0, because <method namespace="Classes" class="TCollection">TCollection</method> defines no custom attributes.</para>
  7043.          </comments>
  7044.       </member>
  7045.       <member name="M:Classes.Classes.GetAttr">
  7046.          <summary>
  7047.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the name of a custom attribute that can be retrieved using the GetItemAttr method.</para>
  7048.          </summary>
  7049.          <comments>
  7050.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7051.                      
  7052.                <method namespace="Classes" class="TCollection">TCollection</method> descendants can associate user-defined attributes with the items in the collection. Each attribute has a name and, for each item in the collection, a value that is a string. The <method namespace="Classes" class="TCollection">GetAttr</method> method returns the name of an attribute.</para>
  7053.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index identifies the attribute whose name is requested. This is a value between 0 and n-1, where n is the value returned by <method namespace="Classes" class="TCollection">GetAttr</method>Count.</para>
  7054.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented by <method namespace="Classes" class="TCollection">TCollection</method>, <method namespace="Classes" class="TCollection">GetAttr</method> always returns an empty string, because <method namespace="Classes" class="TCollection">TCollection</method> defines no custom attributes.</para>
  7055.          </comments>
  7056.       </member>
  7057.       <member name="M:Classes.Classes.GetItemAttr">
  7058.          <summary>
  7059.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the value of a custom attribute assigned to one of the collection's items.</para>
  7060.          </summary>
  7061.          <comments>
  7062.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7063.                      
  7064.                <method namespace="Classes" class="TCollection">TCollection</method> descendants can associate user-defined attributes with the items in the collection. Each attribute has a name and, for each item in the collection, a value that is a string. <method namespace="Classes" class="TCollection">GetItemAttr</method> returns the value of one of these attributes for a specified item in the collection.</para>
  7065.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index identifies which attribute's value is desired. This is a value between 0 and n-1, where n is the value returned by GetAttrCount.</para>
  7066.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">ItemIndex identifies the item whose attribute value is desired. This is an index into the Items property array.</para>
  7067.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TCollection">TCollection</method>, <method namespace="Classes" class="TCollection">GetItemAttr</method> always returns an empty string, because <method namespace="Classes" class="TCollection">TCollection</method> defines no custom attributes.</para>
  7068.          </comments>
  7069.       </member>
  7070.       <member name="M:Classes.Classes.Owner">
  7071.          <summary>
  7072.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the <method namespace="Classes" class="TCollection">Owner</method> of the collection.</para>
  7073.          </summary>
  7074.          <comments>
  7075.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TCollection">Owner</method> to obtain a reference to the object that owns this collection. Typically, the owner uses the collection to implement one of its properties.</para>
  7076.          </comments>
  7077.       </member>
  7078.       <member name="M:Classes.Classes.Add">
  7079.          <summary>
  7080.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Creates a new <method namespace="Classes" class="TCollection">TCollection</method>Item instance and adds it to the Items array.</para>
  7081.          </summary>
  7082.          <comments>
  7083.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TCollection">Add</method> to create an item in the collection. The new item is placed at the end of the Items array.</para>
  7084.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7085.                      
  7086.                <method namespace="Classes" class="TCollection">Add</method> returns the new collection item.</para>
  7087.          </comments>
  7088.       </member>
  7089.       <member name="M:Classes.Classes.FindItemID">
  7090.          <summary>
  7091.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the item with the specified ID.</para>
  7092.          </summary>
  7093.          <comments>
  7094.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TCollection">FindItemID</method> method returns the item in the collection whose ID property is passed to it as a parameter. If no item has the specified ID, <method namespace="Classes" class="TCollection">FindItemID</method> returns nil (Delphi) or NULL (C++).</para>
  7095.          </comments>
  7096.       </member>
  7097.       <member name="M:Classes.Classes.GetNamePath">
  7098.          <summary>
  7099.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns a string used by the Object Inspector.</para>
  7100.          </summary>
  7101.          <comments>
  7102.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the collection has no owner, <method namespace="Classes" class="TCollection">GetNamePath</method> returns the name of the collection's actual (runtime) type. If the collection is owned, <method namespace="Classes" class="TCollection">GetNamePath</method> returns the owner's name followed, if applicable, by a dot and the name of the owner's property that holds the collection. For example, <method namespace="Classes" class="TCollection">GetNamePath</method> might return "TreeView1.Items".</para>
  7103.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7104.                      
  7105.                <para>For a collection to have an owner, it must override the GetOwner method.</para>
  7106.                   
  7107.             </note>
  7108.          </comments>
  7109.       </member>
  7110.       <member name="M:Classes.Classes.Insert">
  7111.          <summary>
  7112.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Creates a new <method namespace="Classes" class="TCollection">TCollection</method>Item instance and adds it to the Items array.</para>
  7113.          </summary>
  7114.          <comments>
  7115.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TCollection">Insert</method> to add a new item at a specified position in the collection. Existing items (starting from the specified position) are moved up in the Items array.</para>
  7116.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7117.                      
  7118.                <method namespace="Classes" class="TCollection">Insert</method> returns the new collection item.</para>
  7119.          </comments>
  7120.       </member>
  7121.       <member name="M:Classes.Classes.Create">
  7122.          <summary>
  7123.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7124.                      
  7125.                <method namespace="Classes" class="TCollection">Create</method>s and initializes a collection.</para>
  7126.          </summary>
  7127.          <comments>
  7128.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TCollection">Create</method> to instantiate a <method namespace="Classes" class="TCollection">TCollection</method> object at runtime. Typically, <method namespace="Classes" class="TCollection">TCollection</method> descendants are created by a component that uses the collection to implement a property.</para>
  7129.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">ItemClass identifies <method namespace="Classes" class="TCollection">TCollection</method>Item descendant that must be used to represent the items in the collection. The Add method uses this class to create items of the appropriate type.</para>
  7130.          </comments>
  7131.       </member>
  7132.       <member name="M:Classes.Classes.Added">
  7133.          <summary>
  7134.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Responds when items are added to the collection.</para>
  7135.          </summary>
  7136.          <comments>
  7137.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications can't call the protected <method namespace="Classes" class="TCollection">Added</method> method. It is called automatically immediately after items are added to the collection.</para>
  7138.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Item is the item that was just added to the collection.</para>
  7139.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7140.                      
  7141.                <method namespace="Classes" class="TCollection">Added</method> is a deprecated method. Descendant classes should override the Notify method instead when responding to changes in the list of items.</para>
  7142.          </comments>
  7143.       </member>
  7144.       <member name="M:Classes.Classes.Deleting">
  7145.          <summary>
  7146.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Responds when items are deleted from the collection.</para>
  7147.          </summary>
  7148.          <comments>
  7149.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications can't call the protected <method namespace="Classes" class="TCollection">Deleting</method> method. The Delete method calls <method namespace="Classes" class="TCollection">Deleting</method> immediately before it removes an item from the collection.</para>
  7150.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Item is the item that is about to be removed.</para>
  7151.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7152.                      
  7153.                <method namespace="Classes" class="TCollection">Deleting</method> is a deprecated method. Descendant classes should override the Notify method instead when responding to changes in the list of items.</para>
  7154.          </comments>
  7155.       </member>
  7156.       <member name="M:Classes.Classes.Notify">
  7157.          <summary>
  7158.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Responds when items are added to or removed from the collection.</para>
  7159.          </summary>
  7160.          <comments>
  7161.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7162.                      
  7163.                <method namespace="Classes" class="TCollection">Notify</method> is called automatically when the items in the collection change.</para>
  7164.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Item is the item that was just added to or that is about to be removed from the collection.</para>
  7165.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Action indicates whether item was added, is about to be removed, or is about to be deleted:</para>
  7166.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TCollection">TCollection</method>, <method namespace="Classes" class="TCollection">Notify</method> calls Added when Action is cnAdded and calls Deleting when Action is cnDeleting. <method namespace="Classes" class="TCollection">TCollection</method> ignores the cnExtracting action. Descendant classes can override <method namespace="Classes" class="TCollection">Notify</method> to modify this behavior.</para>
  7167.          </comments>
  7168.       </member>
  7169.       <member name="M:Classes.Classes.Changed">
  7170.          <summary>
  7171.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Responds when the collection or any of its items changes.</para>
  7172.          </summary>
  7173.          <comments>
  7174.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7175.                      
  7176.                <method namespace="Classes" class="TCollection">Changed</method> is called automatically when items in the collection change or when the EndUpdate method signals that an update is complete. It checks the value of UpdateCount, and if it is 0, calls the Update method, which performs any necessary updates.</para>
  7177.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When writing a <method namespace="Classes" class="TCollection">TCollection</method> descendant, there is no need to call <method namespace="Classes" class="TCollection">Changed</method>. Instead, bracket any changes by calls to BeginUpdate and EndUpdate.</para>
  7178.          </comments>
  7179.       </member>
  7180.       <member name="M:Classes.Classes.SetItemName">
  7181.          <summary>
  7182.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes the name of a newly inserted collection item.</para>
  7183.          </summary>
  7184.          <comments>
  7185.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Insert method calls <method namespace="Classes" class="TCollection">SetItemName</method> to initialize the Name property of items when it inserts them into the collection.</para>
  7186.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TCollection">TCollection</method>, <method namespace="Classes" class="TCollection">SetItemName</method> does nothing. Some <method namespace="Classes" class="TCollection">TCollection</method> descendants override this method to provide collection items with default names.</para>
  7187.          </comments>
  7188.       </member>
  7189.       <member name="M:Classes.Classes.Update">
  7190.          <summary>
  7191.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7192.                      
  7193.                <method namespace="Classes" class="TCollection">Update</method>s the collection to reflect changes to its items.</para>
  7194.          </summary>
  7195.          <comments>
  7196.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Override <method namespace="Classes" class="TCollection">Update</method> in a descendant class to make any necessary changes when the items in the collection change. This method is called automatically when an update is complete.</para>
  7197.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Item identifies the item that changed. If the Item parameter is nil (Delphi) or NULL (C++), then the change affects more than one item in the collection.</para>
  7198.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TCollection">TCollection</method>, <method namespace="Classes" class="TCollection">Update</method> does nothing. Descendant classes override this method to make any necessary adjustments.</para>
  7199.          </comments>
  7200.       </member>
  7201.       <member name="M:Classes.Classes.Assign">
  7202.          <summary>
  7203.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Copies the contents of another collection to the object where the method is executed.</para>
  7204.          </summary>
  7205.          <comments>
  7206.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TCollection">Assign</method> to copy the contents of one <method namespace="Classes" class="TCollection">TCollection</method> instance to another. The <method namespace="Classes" class="TCollection">Assign</method> method deletes all items from the destination collection (the object where it is executed), then adds a copy of each item in the source collection's Items array.</para>
  7207.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Source is another object (typically another collection) that contains the items that replace this collection's items.</para>
  7208.          </comments>
  7209.       </member>
  7210.       <member name="M:Classes.Classes.BeginUpdate">
  7211.          <summary>
  7212.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Suspends screen repainting.</para>
  7213.          </summary>
  7214.          <comments>
  7215.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TCollection">BeginUpdate</method> method suspends screen repainting until the EndUpdate method is called. Use <method namespace="Classes" class="TCollection">BeginUpdate</method> to speed processing and avoid flicker while items are added to or deleted from a collection.</para>
  7216.          </comments>
  7217.       </member>
  7218.       <member name="M:Classes.Classes.Clear">
  7219.          <summary>
  7220.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Deletes all items from the collection.</para>
  7221.          </summary>
  7222.          <comments>
  7223.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7224.                      
  7225.                <method namespace="Classes" class="TCollection">Clear</method> empties the Items array and destroys each <method namespace="Classes" class="TCollection">TCollection</method>Item.</para>
  7226.          </comments>
  7227.       </member>
  7228.       <member name="M:Classes.Classes.Delete">
  7229.          <summary>
  7230.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7231.                      
  7232.                <method namespace="Classes" class="TCollection">Delete</method>s a single item from the collection.</para>
  7233.          </summary>
  7234.          <comments>
  7235.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7236.                      
  7237.                <method namespace="Classes" class="TCollection">Delete</method> removes the specified collection item, moving up any items that come after that item in the Items property array.</para>
  7238.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index identifies the item to delete. This is the index of the item in the Items property array. That is, 0 specifies the first item, 1 specifies the second item, and so on.</para>
  7239.          </comments>
  7240.       </member>
  7241.       <member name="M:Classes.Classes.EndUpdate">
  7242.          <summary>
  7243.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Re-enables screen repainting.</para>
  7244.          </summary>
  7245.          <comments>
  7246.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TCollection">EndUpdate</method> to re-enable screen repainting that was turned off with the BeginUpdate method.</para>
  7247.          </comments>
  7248.       </member>
  7249.       <member name="M:Classes.Classes.Destroy">
  7250.          <summary>
  7251.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7252.                      
  7253.                <method namespace="Classes" class="TCollection">Destroy</method>s the collection and each item in it.</para>
  7254.          </summary>
  7255.          <comments>
  7256.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7257.                      
  7258.                <method namespace="Classes" class="TCollection">Destroy</method> calls the Clear method to free each item referenced in the Items array, then destroys the collection itself.</para>
  7259.          </comments>
  7260.       </member>
  7261.       <member name="P:Classes.Classes.NextID">
  7262.          <summary>
  7263.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies a unique ID that can be assigned to the next added collection item.</para>
  7264.          </summary>
  7265.          <comments>
  7266.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7267.                      
  7268.                <property namespace="Classes" class="TCollection">TCollection</property> uses <property namespace="Classes" class="TCollection">NextID</property> internally to assign unique identifiers to collection items. When a new item is added to the collection, it's ID property is given the value of <property namespace="Classes" class="TCollection">NextID</property> and <property namespace="Classes" class="TCollection">NextID</property> is incremented.</para>
  7269.          </comments>
  7270.       </member>
  7271.       <member name="P:Classes.Classes.PropName">
  7272.          <summary>
  7273.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the name of the property that the collection implements.</para>
  7274.          </summary>
  7275.          <comments>
  7276.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The GetNamePath method uses this protected property to assemble the name of the collection as it appears in the Object Inspector. It identifies the name of the property in the object returned by the protected GetOwner method that is implemented using this collection object.</para>
  7277.          </comments>
  7278.       </member>
  7279.       <member name="P:Classes.Classes.UpdateCount">
  7280.          <summary>
  7281.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Counts the number of times BeginUpdate was called without a corresponding call to EndUpdate.</para>
  7282.          </summary>
  7283.          <comments>
  7284.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7285.                      
  7286.                <property namespace="Classes" class="TCollection">UpdateCount</property> keeps track of calls to BeginUpdate and EndUpdate so that they can be nested. Every call to BeginUpdate increments <property namespace="Classes" class="TCollection">UpdateCount</property>. Every call to EndUpdate decrements it. When <property namespace="Classes" class="TCollection">UpdateCount</property> returns to 0, the collection updates itself to reflect all changes that occurred since the first call to BeginUpdate.</para>
  7287.          </comments>
  7288.       </member>
  7289.       <member name="P:Classes.Classes.Count">
  7290.          <summary>
  7291.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the number of items in the collection.</para>
  7292.          </summary>
  7293.          <comments>
  7294.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7295.                      
  7296.                <property namespace="Classes" class="TCollection">Count</property> contains the number of items in the Items array. Since Items is indexed starting with 0, the value of <property namespace="Classes" class="TCollection">Count</property> is always one greater than the index of the last member of Items.</para>
  7297.          </comments>
  7298.       </member>
  7299.       <member name="P:Classes.Classes.ItemClass">
  7300.          <summary>
  7301.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the class to which the collection's items belong.</para>
  7302.          </summary>
  7303.          <comments>
  7304.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7305.                      
  7306.                <property namespace="Classes" class="TCollection">ItemClass</property> is the class (descended from <property namespace="Classes" class="TCollection">TCollection</property>Item) to which the items in the collection belong. For example, in an instance of the <property namespace="Classes" class="TCollection">TCollection</property> descendant THeaderSections, the value of the <property namespace="Classes" class="TCollection">ItemClass</property> property is THeaderSection.</para>
  7307.          </comments>
  7308.       </member>
  7309.       <member name="P:Classes.Classes.Items">
  7310.          <summary>
  7311.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Lists the items in the collection.</para>
  7312.          </summary>
  7313.          <comments>
  7314.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TCollection">Items</property> to access individual items in the collection. The value of the Index parameter corresponds to the Index property of <property namespace="Classes" class="TCollection">TCollection</property>Item. It represents the position of the item in the collection.</para>
  7315.          </comments>
  7316.       </member>
  7317.       <member name="T:Classes.TOwnedCollection">
  7318.          <summary>
  7319.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7320.                
  7321.                <class namespace="Classes">TOwnedCollection</class> is a collection that maintains information about its owner.</para>
  7322.          </summary>
  7323.          <comments>
  7324.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By maintaining information about its owner, <class namespace="Classes">TOwnedCollection</class> lets the Object Inspector display the collection's name at design time. </para>
  7325.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7326.                
  7327.                <para>This information is not part of <class namespace="Classes">TOwnedCollection</class>'s public interface.</para>
  7328.             
  7329.             </note>
  7330.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">New collection classes should descend from <class namespace="Classes">TOwnedCollection</class>. By descending from <class namespace="Classes">TOwnedCollection</class>, the derived class does not need to add anything in order to appear in the Object Inspector. Classes that descend directly from TCollection must implement a GetOwner method if they are to appear in the Object Inspector.</para>
  7331.          </comments>
  7332.       </member>
  7333.       <member name="M:Classes.Classes.Create">
  7334.          <summary>
  7335.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7336.                      
  7337.                <method namespace="Classes" class="TOwnedCollection">Create</method>s and initializes a <method namespace="Classes" class="TOwnedCollection">TOwnedCollection</method> instance.</para>
  7338.          </summary>
  7339.          <comments>
  7340.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TOwnedCollection">Create</method> method takes two parameters: the name of an instance object descended from TPersistent and the name of a TCollectionItem descendant class. The first parameter is the owner of the <method namespace="Classes" class="TOwnedCollection">TOwnedCollection</method> instance. The second parameter determines the class of the items created by the Add method.</para>
  7341.          </comments>
  7342.       </member>
  7343.       <member name="T:Classes.TStrings">
  7344.          <summary>
  7345.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7346.                
  7347.                <class namespace="Classes">TStrings</class> is the base class for objects that represent a list of strings.</para>
  7348.          </summary>
  7349.          <comments>
  7350.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Derive a class from <class namespace="Classes">TStrings</class> to store and manipulate a list of strings. <class namespace="Classes">TStrings</class> contains abstract or, in C++ terminology, pure virtual methods and should not be directly instantiated.</para>
  7351.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendants of <class namespace="Classes">TStrings</class> can represent several individual strings, such as the individual lines that appear in a list box. Some objects use descendants of <class namespace="Classes">TStrings</class> to represent one long body of text so that it can be manipulated in smaller chunks.</para>
  7352.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7353.                
  7354.                <class namespace="Classes">TStrings</class> introduces many properties and methods to</para>
  7355.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Add or delete strings at specified positions in the list.</para>
  7356.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Rearrange the strings in the list.</para>
  7357.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Access the string at a particular location.</para>
  7358.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read the strings from or write the strings to a file or stream.</para>
  7359.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Associate an object with each string in the list.</para>
  7360.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Store and retrieve strings as name-value pairs.</para>
  7361.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For an explanation of name-value pairs, refer to the NameValueSeparator property.</para>
  7362.          </comments>
  7363.       </member>
  7364.       <member name="M:Classes.Classes.ExtractName">
  7365.          <summary>
  7366.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the name portion of a string that is a name value pair.</para>
  7367.          </summary>
  7368.          <comments>
  7369.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7370.                      
  7371.                <method namespace="Classes" class="TStrings">TStrings</method> calls <method namespace="Classes" class="TStrings">ExtractName</method> internally to parse strings that are name-value pairs and return the name portion.</para>
  7372.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">S is the string to parse.</para>
  7373.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If S is a name-value pair, <method namespace="Classes" class="TStrings">ExtractName</method> returns the name portion. Otherwise, <method namespace="Classes" class="TStrings">ExtractName</method> returns an empty string.</para>
  7374.          </comments>
  7375.       </member>
  7376.       <member name="M:Classes.Classes.CompareStrings">
  7377.          <summary>
  7378.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Compares two strings.</para>
  7379.          </summary>
  7380.          <comments>
  7381.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7382.                      
  7383.                <method namespace="Classes" class="TStrings">TStrings</method> uses <method namespace="Classes" class="TStrings">CompareStrings</method> internally to compare the values of strings that appear in the list. For example, the IndexOf and IndexOfName methods use <method namespace="Classes" class="TStrings">CompareStrings</method> to compare a specified string with the strings in the list.</para>
  7384.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">S1 and S2 are the strings to compare.</para>
  7385.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7386.                      
  7387.                <method namespace="Classes" class="TStrings">CompareStrings</method> returns a value less than 0 if S1 < S2, 0 if S1 =<condition language="CBuilder">=</condition> S2, and a value greater than 0 if S1 > S2.</para>
  7388.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TStrings">TStrings</method>, <method namespace="Classes" class="TStrings">CompareStrings</method> uses the global AnsiCompareText function, which compares strings case insensitively. Some descendant classes override this method to change the way strings are compared (for example, to introduce case sensitivity).</para>
  7389.          </comments>
  7390.       </member>
  7391.       <member name="M:Classes.Classes.Add">
  7392.          <summary>
  7393.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7394.                      
  7395.                <method namespace="Classes" class="TStrings">Add</method>s a string at the end of the list.</para>
  7396.          </summary>
  7397.          <comments>
  7398.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">Add</method> to add a string to the end of the list. <method namespace="Classes" class="TStrings">Add</method> returns the index of the new string.</para>
  7399.          </comments>
  7400.       </member>
  7401.       <member name="M:Classes.Classes.AddObject">
  7402.          <summary>
  7403.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Adds a string to the list, and associates an object with the string. </para>
  7404.          </summary>
  7405.          <comments>
  7406.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">AddObject</method> to add a string and its associated object to the list. <method namespace="Classes" class="TStrings">AddObject</method> returns the index of the new string and object.</para>
  7407.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7408.                      
  7409.                <para>The <method namespace="Classes" class="TStrings">TStrings</method> object does not own the objects you add this way. Objects added to the <method namespace="Classes" class="TStrings">TStrings</method> object still exist even if the <method namespace="Classes" class="TStrings">TStrings</method> instance is destroyed. They must be explicitly destroyed by the application.</para>
  7410.                   
  7411.             </note>
  7412.          </comments>
  7413.       </member>
  7414.       <member name="M:Classes.Classes.Equals">
  7415.          <summary>
  7416.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Compares the list of strings to the list from another <method namespace="Classes" class="TStrings">TStrings</method> object and returns true if the two lists match.</para>
  7417.          </summary>
  7418.          <comments>
  7419.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">Equals</method> to compare the lists in two <method namespace="Classes" class="TStrings">TStrings</method> objects. <method namespace="Classes" class="TStrings">Equals</method> compares only the strings, not any references to associated objects. <method namespace="Classes" class="TStrings">Equals</method> returns true if the lists for both <method namespace="Classes" class="TStrings">TStrings</method> objects have the same number of strings and the strings in each list match when compared using the protected CompareStrings method. <method namespace="Classes" class="TStrings">Equals</method> returns false if the lists are different in length, if they contain different strings, or if the order of the strings in the two lists differ.</para>
  7420.          </comments>
  7421.       </member>
  7422.       <member name="M:Classes.Classes.GetText">
  7423.          <summary>
  7424.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Allocates a text buffer and fills it with the value of the Text property.</para>
  7425.          </summary>
  7426.          <comments>
  7427.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">GetText</method> to obtain a dynamically allocated character buffer containing all of the strings in the list. Individual strings are separated by a carriage return and (on Windows) line feed. The caller is responsible for freeing the returned value using the StrDispose procedure.</para>
  7428.          </comments>
  7429.       </member>
  7430.       <member name="M:Classes.Classes.IndexOf">
  7431.          <summary>
  7432.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the position of a string in the list.</para>
  7433.          </summary>
  7434.          <comments>
  7435.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">IndexOf</method> to obtain the position of the first occurrence of the string S, or of a string that differs from S only by case. <method namespace="Classes" class="TStrings">IndexOf</method> returns the 0-based index of the string. Thus, if S matches the first string in the list, <method namespace="Classes" class="TStrings">IndexOf</method> returns 0, if S is the second string, <method namespace="Classes" class="TStrings">IndexOf</method> returns 1, and so on. If the string is not in the string list, <method namespace="Classes" class="TStrings">IndexOf</method> returns -1.</para>
  7436.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7437.                      
  7438.                <para>If the string appears in the list more than once, <method namespace="Classes" class="TStrings">IndexOf</method> returns the position of the first occurrence.</para>
  7439.                   
  7440.             </note>
  7441.          </comments>
  7442.       </member>
  7443.       <member name="M:Classes.Classes.IndexOfName">
  7444.          <summary>
  7445.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the position of the first name-value pair with the specified name.</para>
  7446.          </summary>
  7447.          <comments>
  7448.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">IndexOfName</method> to locate the first occurrence of a name-value pair where the name part is equal to the Name parameter or differs only in case. <method namespace="Classes" class="TStrings">IndexOfName</method> returns the 0-based index of the string. If no string in the list has the indicated name, <method namespace="Classes" class="TStrings">IndexOfName</method> returns -1.</para>
  7449.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7450.                      
  7451.                <para>If there is more than one name-value pair with a name portion matching the Name parameter, <method namespace="Classes" class="TStrings">IndexOfName</method> returns the position of the first such string.</para>
  7452.                   
  7453.             </note>
  7454.          </comments>
  7455.       </member>
  7456.       <member name="M:Classes.Classes.IndexOfObject">
  7457.          <summary>
  7458.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the index of the first string in the list associated with a given object.</para>
  7459.          </summary>
  7460.          <comments>
  7461.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">IndexOfObject</method> to locate the first string in the list associated with the object AObject. Specify the object you want to locate as the value of the AObject parameter. <method namespace="Classes" class="TStrings">IndexOfObject</method> returns the 0-based index of the string and object. If the object is not associated with any of the strings, <method namespace="Classes" class="TStrings">IndexOfObject</method> returns -1.</para>
  7462.          </comments>
  7463.       </member>
  7464.       <member name="M:Classes.Classes.DefineProperties">
  7465.          <summary>
  7466.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads and writes the Strings property as if it were published. </para>
  7467.          </summary>
  7468.          <comments>
  7469.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7470.                      
  7471.                <method namespace="Classes" class="TStrings">TStrings</method> overrides <method namespace="Classes" class="TStrings">DefineProperties</method> so that the strings in the list can be loaded and saved with a form file as if the Strings property were published.</para>
  7472.          </comments>
  7473.       </member>
  7474.       <member name="M:Classes.Classes.Error">
  7475.          <summary>
  7476.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">raises an EStringList<method namespace="Classes" class="TStrings">Error</method> exception.</para>
  7477.          </summary>
  7478.          <comments>
  7479.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7480.                      
  7481.                <method namespace="Classes" class="TStrings">TStrings</method> calls <method namespace="Classes" class="TStrings">Error</method> internally to raise an EStringList<method namespace="Classes" class="TStrings">Error</method> exception when it encounters a problem.</para>
  7482.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Msg specifies the string with a single format specifier for an integer, that appears in the exception message box. It can be either a string, or a pointer to a <condition language="Delphi">record</condition>
  7483.                      
  7484.                <condition language="CBuilder">structure</condition> that indicates the module and resource identifier for a string.</para>
  7485.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Data is an integer value that is inserted into Msg.</para>
  7486.          </comments>
  7487.       </member>
  7488.       <member name="M:Classes.Classes.SetUpdateState">
  7489.          <summary>
  7490.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Performs internal adjustments before or after a series of updates.</para>
  7491.          </summary>
  7492.          <comments>
  7493.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7494.                      
  7495.                <method namespace="Classes" class="TStrings">SetUpdateState</method> is called at the beginning or end of a series of updates. When the BeginUpdate method is first called and the <method namespace="Classes" class="TStrings">TStrings</method> object is not already in the middle of an update, <method namespace="Classes" class="TStrings">TStrings</method> calls <method namespace="Classes" class="TStrings">SetUpdateState</method> internally, with Updating set to true. When the EndUpdate method is called and it cancels out the last unmatched call to BeginUpdate, <method namespace="Classes" class="TStrings">TStrings</method> calls <method namespace="Classes" class="TStrings">SetUpdateState</method> internally, with Updating set to false.</para>
  7496.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TStrings">TStrings</method>, <method namespace="Classes" class="TStrings">SetUpdateState</method> does nothing. Descendant classes can override this method to optimize the response to updates.</para>
  7497.          </comments>
  7498.       </member>
  7499.       <member name="M:Classes.Classes.Append">
  7500.          <summary>
  7501.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Adds a string to the list.</para>
  7502.          </summary>
  7503.          <comments>
  7504.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7505.                      
  7506.                <method namespace="Classes" class="TStrings">Append</method> is the same as the Add method, except that it does not return a value. Use <method namespace="Classes" class="TStrings">Append</method> when there is no need to know the index of the string after it has been added, or with descendants of <method namespace="Classes" class="TStrings">TStrings</method> for which the index returned is not meaningful. </para>
  7507.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For example, the <method namespace="Classes" class="TStrings">TStrings</method> descendant used by memo objects uses an index to determine where to insert a string, but the inserted string does not necessarily end up as a single string in the list. Part of the inserted text may become part of the previous string, and part may be broken off into a subsequent string. The index returned by Add is not meaningful in this case. </para>
  7508.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStrings">Append</method> rather than Add as a parameter for a function requiring a TGetStrProc.</para>
  7509.          </comments>
  7510.       </member>
  7511.       <member name="M:Classes.Classes.AddStrings">
  7512.          <summary>
  7513.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Adds a group of strings to the list. </para>
  7514.          </summary>
  7515.          <comments>
  7516.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">AddStrings</method> to add the strings from another <method namespace="Classes" class="TStrings">TStrings</method> object to the list. If both the source and destination <method namespace="Classes" class="TStrings">TStrings</method> objects support objects associated with their strings, references to the associated objects will be added as well.</para>
  7517.          </comments>
  7518.       </member>
  7519.       <member name="M:Classes.Classes.Assign">
  7520.          <summary>
  7521.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the strings in the list, and possibly associated objects, from a source object.</para>
  7522.          </summary>
  7523.          <comments>
  7524.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStrings">Assign</method> to set the value of the <method namespace="Classes" class="TStrings">TStrings</method> object from another object. If Source is of type <method namespace="Classes" class="TStrings">TStrings</method>, the list is set to the list of the source <method namespace="Classes" class="TStrings">TStrings</method> object, and if associated objects are supported, any associated objects are copied from the Source as well. </para>
  7525.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If Source is not of type <method namespace="Classes" class="TStrings">TStrings</method>, the inherited <method namespace="Classes" class="TStrings">Assign</method> will set the value of the list from any object that supports <method namespace="Classes" class="TStrings">TStrings</method> in its <method namespace="Classes" class="TStrings">Assign</method>To method.</para>
  7526.          </comments>
  7527.       </member>
  7528.       <member name="M:Classes.Classes.BeginUpdate">
  7529.          <summary>
  7530.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Enables the <method namespace="Classes" class="TStrings">TStrings</method> object to track when the list of strings is changing.</para>
  7531.          </summary>
  7532.          <comments>
  7533.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7534.                      
  7535.                <method namespace="Classes" class="TStrings">BeginUpdate</method> is called automatically by any property or method that changes the list of strings. Once the changes are complete, the property or method calls EndUpdate. Call <method namespace="Classes" class="TStrings">BeginUpdate</method> before directly modifying the strings in the list, and EndUpdate after. When implementing properties or methods that change the list in descendants of <method namespace="Classes" class="TStrings">TStrings</method>, call <method namespace="Classes" class="TStrings">BeginUpdate</method> before the changes are made, and EndUpdate when the changes are complete.</para>
  7536.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7537.                      
  7538.                <method namespace="Classes" class="TStrings">TStrings</method> simply keeps track of when the list of strings is being changed. Some descendants of <method namespace="Classes" class="TStrings">TStrings</method> use this information to perform certain actions, such as telling a control to repaint, when updates are complete.</para>
  7539.          </comments>
  7540.       </member>
  7541.       <member name="M:Classes.Classes.Clear">
  7542.          <summary>
  7543.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces an abstract (Delphi) or pure virtual (C++) method to empty the list and any associated objects.</para>
  7544.          </summary>
  7545.          <comments>
  7546.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendants of <method namespace="Classes" class="TStrings">TStrings</method> implement a <method namespace="Classes" class="TStrings">Clear</method> method to delete all the strings in the list, and to remove any references to associated objects.</para>
  7547.          </comments>
  7548.       </member>
  7549.       <member name="M:Classes.Classes.Delete">
  7550.          <summary>
  7551.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces an abstract (Delphi) or pure virtual (C++) method to delete a specified string from the list.</para>
  7552.          </summary>
  7553.          <comments>
  7554.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendants of <method namespace="Classes" class="TStrings">TStrings</method> implement a <method namespace="Classes" class="TStrings">Delete</method> method to remove a specified string from the list. If an object is associated with the string, the reference to the object is removed as well. Index gives the position of the string, where 0 is the first string, 1 is the second string, and so on.</para>
  7555.          </comments>
  7556.       </member>
  7557.       <member name="M:Classes.Classes.EndUpdate">
  7558.          <summary>
  7559.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Enables the <method namespace="Classes" class="TStrings">TStrings</method> object to keep track of when the list of strings has finished changing.</para>
  7560.          </summary>
  7561.          <comments>
  7562.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7563.                      
  7564.                <method namespace="Classes" class="TStrings">EndUpdate</method> is called automatically by any property or method that changes the list of strings. Call BeginUpdate before directly modifying the strings in the list, and <method namespace="Classes" class="TStrings">EndUpdate</method> after. When implementing properties or methods that change the list in descendants of <method namespace="Classes" class="TStrings">TStrings</method>, call BeginUpdate before the changes are made, and <method namespace="Classes" class="TStrings">EndUpdate</method> when the changes are complete.</para>
  7565.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7566.                      
  7567.                <method namespace="Classes" class="TStrings">TStrings</method> simply keeps track of when the list of strings is being changed. Some descendants of <method namespace="Classes" class="TStrings">TStrings</method> use this information to perform certain actions, such as telling a control to repaint, when updates are complete.</para>
  7568.          </comments>
  7569.       </member>
  7570.       <member name="M:Classes.Classes.Exchange">
  7571.          <summary>
  7572.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Swaps the position of two strings in the list.</para>
  7573.          </summary>
  7574.          <comments>
  7575.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">Exchange</method> to rearrange the strings in the list. The strings are specified by their index values in the Index1 and Index2 parameters. Indexes are zero-based, so the first string in the list has an index value of 0, the second has an index value of 1, and so on.</para>
  7576.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If either string has an associated object, <method namespace="Classes" class="TStrings">Exchange</method> changes the position of the object as well.</para>
  7577.          </comments>
  7578.       </member>
  7579.       <member name="M:Classes.Classes.Insert">
  7580.          <summary>
  7581.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces abstract (Delphi) or pure virtual (C++) method to insert a string at a specified position.</para>
  7582.          </summary>
  7583.          <comments>
  7584.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendants of <method namespace="Classes" class="TStrings">TStrings</method> implement an <method namespace="Classes" class="TStrings">Insert</method> method to add the string S to the list at the position specified by Index. If Index is 0, the string is inserted at the beginning of the list. If Index is 1, the string is put in the second position of the list, and so on.</para>
  7585.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">All methods that add strings to the list use the <method namespace="Classes" class="TStrings">Insert</method> method to add the string.</para>
  7586.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the string has an associated object, use the <method namespace="Classes" class="TStrings">Insert</method>Object method instead.</para>
  7587.          </comments>
  7588.       </member>
  7589.       <member name="M:Classes.Classes.InsertObject">
  7590.          <summary>
  7591.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Inserts a string into the list at the specified position, and associates it with an object.</para>
  7592.          </summary>
  7593.          <comments>
  7594.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">InsertObject</method> to insert the string S into the list at the position identified by Index, and associate it with the object AObject. If Index is 0, the string is inserted at the beginning of the list. If Index is 1, the string is put in the second position of the list, and so on.</para>
  7595.          </comments>
  7596.       </member>
  7597.       <member name="M:Classes.Classes.LoadFromFile">
  7598.          <summary>
  7599.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Fills the list with the lines of text in a specified file.</para>
  7600.          </summary>
  7601.          <comments>
  7602.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">LoadFromFile</method> to fill the list of the <method namespace="Classes" class="TStrings">TStrings</method> object from the file specified by FileName. <method namespace="Classes" class="TStrings">LoadFromFile</method> first clears any strings already in the list. Then, each line in the file, as indicated by carriage return or linefeed characters, is appended as a string in the list.</para>
  7603.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7604.                      
  7605.                <para>
  7606.                         
  7607.                   <method namespace="Classes" class="TStrings">LoadFromFile</method> uses the Add method to add the strings that are read from the file.</para>
  7608.                   
  7609.             </note>
  7610.          </comments>
  7611.       </member>
  7612.       <member name="M:Classes.Classes.LoadFromStream">
  7613.          <summary>
  7614.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Fills the list with lines of text read from a stream.</para>
  7615.          </summary>
  7616.          <comments>
  7617.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">LoadFromStream</method> to fill the list of the <method namespace="Classes" class="TStrings">TStrings</method> object from the stream specified by Stream. The text read from the stream is parsed into strings separated by carriage return or linefeed characters. Thus, <method namespace="Classes" class="TStrings">LoadFromStream</method> reads the value of the Text property.</para>
  7618.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the stream is a file stream, <method namespace="Classes" class="TStrings">LoadFromStream</method> does the same thing as LoadFromFile, except the application must create and destroy the file stream.</para>
  7619.          </comments>
  7620.       </member>
  7621.       <member name="M:Classes.Classes.Move">
  7622.          <summary>
  7623.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Changes the position of a string in the list.</para>
  7624.          </summary>
  7625.          <comments>
  7626.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStrings">Move</method> to move the string at position CurIndex so that it occupies the position NewIndex. The positions are specified as 0-based indexes. For example, the following lines of code move the string in the first position to the last position.</para>
  7627.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">MyStringsObject.Move(0, MyStringsObject.Count</codeBlock>
  7628.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">MyStringsObject->Move(0, MyStringsObject->Count - 1);</codeBlock>
  7629.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the string has an associated object, the object remains associated with the string in its new position.</para>
  7630.          </comments>
  7631.       </member>
  7632.       <member name="M:Classes.Classes.SaveToFile">
  7633.          <summary>
  7634.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Saves the strings in the list to the specified file.</para>
  7635.          </summary>
  7636.          <comments>
  7637.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">SaveToFile</method> to save the strings in the list to the file specified by FileName. Each string in the list is written to a separate line in the file.</para>
  7638.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7639.                      
  7640.                <para>In Linux, <method namespace="Classes" class="TStrings">SaveToFile</method> saves the strings as they appear in the list. If the last string does not have an end-of-line marker, the resulting file may be considered incomplete by some editors. </para>
  7641.                   
  7642.             </note>
  7643.          </comments>
  7644.       </member>
  7645.       <member name="M:Classes.Classes.SaveToStream">
  7646.          <summary>
  7647.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the value of the Text property to a stream object.</para>
  7648.          </summary>
  7649.          <comments>
  7650.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">SaveToStream</method> to save the strings in the list to the stream specified by the Stream parameter. <method namespace="Classes" class="TStrings">SaveToStream</method> writes the strings delimited by carriage return, line feed pairs. If the stream is a file stream, <method namespace="Classes" class="TStrings">SaveToStream</method> does the same thing as SaveToFile, except the application must create and destroy the file stream.</para>
  7651.          </comments>
  7652.       </member>
  7653.       <member name="M:Classes.Classes.SetText">
  7654.          <summary>
  7655.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the Text property.</para>
  7656.          </summary>
  7657.          <comments>
  7658.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStrings">SetText</method> to replace the list with the strings specified by the Text parameter. <method namespace="Classes" class="TStrings">SetText</method> adds strings one at a time to the list, using the carriage returns or linefeed characters in Text as delimiters indicating when to add a new string.</para>
  7659.          </comments>
  7660.       </member>
  7661.       <member name="P:Classes.Classes.UpdateCount">
  7662.          <summary>
  7663.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the number of calls to BeginUpdate that have not been matched by a call to EndUpdate.</para>
  7664.          </summary>
  7665.          <comments>
  7666.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7667.                      
  7668.                <property namespace="Classes" class="TStrings">TStrings</property> uses <property namespace="Classes" class="TStrings">UpdateCount</property> to keep track of calls to the BeginUpdate and EndUpdate methods. Every time a call is made to BeginUpdate, <property namespace="Classes" class="TStrings">TStrings</property> increments the value of <property namespace="Classes" class="TStrings">UpdateCount</property>. Every call to EndUpdate causes <property namespace="Classes" class="TStrings">TStrings</property> to decrement <property namespace="Classes" class="TStrings">UpdateCount</property>.</para>
  7669.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When <property namespace="Classes" class="TStrings">UpdateCount</property> changes from 0 to 1, <property namespace="Classes" class="TStrings">TStrings</property> calls the SetUpdateState method with a parameter of true. When <property namespace="Classes" class="TStrings">UpdateCount</property> changes from 1 to 0, <property namespace="Classes" class="TStrings">TStrings</property> calls the SetUpdateState method with a parameter of false. This allows descendant classes to perform optimizations when handling multiple updates.</para>
  7670.          </comments>
  7671.       </member>
  7672.       <member name="P:Classes.Classes.Capacity">
  7673.          <summary>
  7674.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the number of strings the <property namespace="Classes" class="TStrings">TStrings</property> object can hold.</para>
  7675.          </summary>
  7676.          <comments>
  7677.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="Classes" class="TStrings">Capacity</property> to determine the currently allocated size of the string list. For the <property namespace="Classes" class="TStrings">TStrings</property> object, reading <property namespace="Classes" class="TStrings">Capacity</property> returns the Count property, and setting <property namespace="Classes" class="TStrings">Capacity</property> does nothing. Descendants of <property namespace="Classes" class="TStrings">TStrings</property> can override this property to allow a string list to allocate memory for entries that have not been added to the list.</para>
  7678.          </comments>
  7679.       </member>
  7680.       <member name="P:Classes.Classes.CommaText">
  7681.          <summary>
  7682.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Lists the strings in the <property namespace="Classes" class="TStrings">TStrings</property> object in system data format (SDF).</para>
  7683.          </summary>
  7684.          <comments>
  7685.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TStrings">CommaText</property> to get or set all the strings in the <property namespace="Classes" class="TStrings">TStrings</property> object in a single comma-delimited string.</para>
  7686.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When retrieving <property namespace="Classes" class="TStrings">CommaText</property>, any string in the list that include spaces, commas or quotes will be contained in double quotes, and any double quotes in a string will be repeated. For example, if the list contains the following strings:</para>
  7687.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Stri,ng 1
  7688. Stri"ng 2
  7689. String 3
  7690. String4</codeBlock>
  7691.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7692.                      
  7693.                <property namespace="Classes" class="TStrings">CommaText</property> will return: </para>
  7694.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">"Stri,ng 1","Stri""ng 2","String 3",String4</codeBlock>
  7695.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When assigning <property namespace="Classes" class="TStrings">CommaText</property>, the value is parsed as SDF formatted text. For SDF format, strings are separated by commas or spaces, and optionally enclosed in double quotes. Double quote marks that are part of the string are repeated to distinguish them from the quotes that surround the string. Spaces and commas that are not contained within double quote marks are delimiters. Two commas next to each other will indicate an empty string, but spaces that appear next to another delimiter are ignored. For example, suppose <property namespace="Classes" class="TStrings">CommaText</property> is set to:</para>
  7696.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">"Stri,ng 1", "Stri""ng 2" , String 3,String4</codeBlock>
  7697.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The list will then contain:</para>
  7698.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Stri,ng 1
  7699. Stri"ng 2
  7700. String
  7701. 3
  7702. String4</codeBlock>
  7703.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7704.                      
  7705.                <para>
  7706.                         
  7707.                   <property namespace="Classes" class="TStrings">CommaText</property> is the same as the DelimitedText property with a delimiter of ',' and a quote character of '"'.</para>
  7708.                   
  7709.             </note>
  7710.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Including a trailing comma in the source string causes a blank item to be included in the string list. For example, if <property namespace="Classes" class="TStrings">CommaText</property> is set to</para>
  7711.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">"String1, String 2, String 3,"</codeBlock>
  7712.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">the string list will contain</para>
  7713.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">String1
  7714. String2
  7715. String3
  7716. <Blank></codeBlock>
  7717.          </comments>
  7718.       </member>
  7719.       <member name="P:Classes.Classes.Count">
  7720.          <summary>
  7721.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces an abstract property to represent the number of strings in the list.</para>
  7722.          </summary>
  7723.          <comments>
  7724.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendants of <property namespace="Classes" class="TStrings">TStrings</property> implement a <property namespace="Classes" class="TStrings">Count</property> property to indicate the number of strings in the list.</para>
  7725.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use the <property namespace="Classes" class="TStrings">Count</property> property when iterating over all the strings in the list, or when trying to locate the position of a string relative to the last string in the list.</para>
  7726.          </comments>
  7727.       </member>
  7728.       <member name="P:Classes.Classes.Delimiter">
  7729.          <summary>
  7730.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the delimiter used by the DelimitedText property.</para>
  7731.          </summary>
  7732.          <comments>
  7733.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TStrings">Delimiter</property> to get or set the delimiter used by the DelimitedText property. DelimitedText represents all of the strings in the <property namespace="Classes" class="TStrings">TStrings</property> object as a single string, with individual strings separated by the character that is the value of <property namespace="Classes" class="TStrings">Delimiter</property>.</para>
  7734.          </comments>
  7735.       </member>
  7736.       <member name="P:Classes.Classes.DelimitedText">
  7737.          <summary>
  7738.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Represents all the strings in the <property namespace="Classes" class="TStrings">TStrings</property> object as a single delimited string.</para>
  7739.          </summary>
  7740.          <comments>
  7741.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TStrings">DelimitedText</property> to get or set all the strings in the <property namespace="Classes" class="TStrings">TStrings</property> object in a single string. </para>
  7742.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When reading <property namespace="Classes" class="TStrings">DelimitedText</property>, the resulting value delimits individual strings in two ways: each string is surrounded (before and after) by the quote character specified by the QuoteChar property. In addition, individual strings are separated by the character specified by the Delimiter property. </para>
  7743.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When writing <property namespace="Classes" class="TStrings">DelimitedText</property>, individual strings must be separated using QuoteChar at both ends, using Delimiter as a separator, or using both these methods.</para>
  7744.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7745.                      
  7746.                <para>CommaText is the same as the <property namespace="Classes" class="TStrings">DelimitedText</property> property when Delimiter is ',' and QuoteChar is '"'.</para>
  7747.                   
  7748.             </note>
  7749.          </comments>
  7750.       </member>
  7751.       <member name="P:Classes.Classes.Names">
  7752.          <summary>
  7753.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the name part of strings that are name-value pairs.</para>
  7754.          </summary>
  7755.          <comments>
  7756.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the list of strings for the <property namespace="Classes" class="TStrings">TStrings</property> object includes strings that are name-value pairs, read <property namespace="Classes" class="TStrings">Names</property> to access the name part of a string. <property namespace="Classes" class="TStrings">Names</property> is the name part of the string at Index, where 0 is the first string, 1 is the second string, and so on. If the string is not a name-value pair, <property namespace="Classes" class="TStrings">Names</property> contains an empty string.</para>
  7757.          </comments>
  7758.       </member>
  7759.       <member name="P:Classes.Classes.Objects">
  7760.          <summary>
  7761.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Represents a set of objects that are associated one with each of the strings in the Strings property.</para>
  7762.          </summary>
  7763.          <comments>
  7764.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Setting the <property namespace="Classes" class="TStrings">Objects</property> property for <property namespace="Classes" class="TStrings">TStrings</property> does nothing. Reading the <property namespace="Classes" class="TStrings">Objects</property> property for <property namespace="Classes" class="TStrings">TStrings</property> returns nil (Delphi) or NULL (C++). Descendant classes can associate objects with the strings in the set by implementing the <property namespace="Classes" class="TStrings">Objects</property> property.</para>
  7765.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use the <property namespace="Classes" class="TStrings">Objects</property> property of a descendant of <property namespace="Classes" class="TStrings">TStrings</property> to get or set the object associated with the string at the position indicated by Index. Index gives the position of the string associated with the object, where 0 is the first string, 1 is the second string, and so on. If a descendant of <property namespace="Classes" class="TStrings">TStrings</property> does not support the <property namespace="Classes" class="TStrings">Objects</property> property, reading this property returns nil (Delphi) or NULL (C++)</para>
  7766.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7767.                      
  7768.                <para>The <property namespace="Classes" class="TStrings">TStrings</property> object does not own the objects in the <property namespace="Classes" class="TStrings">Objects</property> array. <property namespace="Classes" class="TStrings">Objects</property> added to the <property namespace="Classes" class="TStrings">Objects</property> array still exist even if the <property namespace="Classes" class="TStrings">TStrings</property> object is destroyed. They must be explicitly destroyed by the application.</para>
  7769.                   
  7770.             </note>
  7771.          </comments>
  7772.       </member>
  7773.       <member name="P:Classes.Classes.QuoteChar">
  7774.          <summary>
  7775.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the quote character used by the DelimitedText property.</para>
  7776.          </summary>
  7777.          <comments>
  7778.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TStrings">QuoteChar</property> to get or set the quote character that is used to enclose individual strings in the DelimitedText property.</para>
  7779.          </comments>
  7780.       </member>
  7781.       <member name="P:Classes.Classes.Values">
  7782.          <summary>
  7783.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Represents the value part of a string associated with a given name, on strings that are name-value pairs.</para>
  7784.          </summary>
  7785.          <comments>
  7786.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the list of strings for the <property namespace="Classes" class="TStrings">TStrings</property> object includes strings that are name-value pairs, use <property namespace="Classes" class="TStrings">Values</property> to get or set the value part of a string associated with a specific name part. </para>
  7787.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For more information on name-value pairs, refer to the NameValueSeparator property.</para>
  7788.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7789.                      
  7790.                <para>The Name index is case-insensitive. That is, <property namespace="Classes" class="TStrings">Values</property> is the value part for the first occurrence of Name or an equivalent string that differs only in case. </para>
  7791.                   
  7792.             </note>
  7793.          </comments>
  7794.       </member>
  7795.       <member name="P:Classes.Classes.ValueFromIndex">
  7796.          <summary>
  7797.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Represents the value part of a string with a given index, on strings that are name-value pairs.</para>
  7798.          </summary>
  7799.          <comments>
  7800.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the list of strings for the <property namespace="Classes" class="TStrings">TStrings</property> object includes strings that are name-value pairs, use <property namespace="Classes" class="TStrings">ValueFromIndex</property> to get or set the value part of a string associated with an index. </para>
  7801.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For more information on name-value pairs, refer to the NameValueSeparator property.</para>
  7802.          </comments>
  7803.       </member>
  7804.       <member name="P:Classes.Classes.NameValueSeparator">
  7805.          <summary>
  7806.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the character used to separate names from values.</para>
  7807.          </summary>
  7808.          <comments>
  7809.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Strings that contain the <property namespace="Classes" class="TStrings">NameValueSeparator</property> character are considered name-value pairs. <property namespace="Classes" class="TStrings">NameValueSeparator</property> defaults to the equal sign (=). <property namespace="Classes" class="TStrings">TStrings</property> defines various methods for accessing names and values and for searching for specific names.</para>
  7810.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Strings that are name-value pairs consist of a name part, the separator character, and a value part. Any spaces around the separator character are part of the name or value. This convention corresponds to the format used in many initialization files. For example:</para>
  7811.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DisplayGrid=1
  7812. SnapToGrid=1
  7813. GridSizeX=8
  7814. GridSizeY=8</codeBlock>
  7815.          </comments>
  7816.       </member>
  7817.       <member name="P:Classes.Classes.Strings">
  7818.          <summary>
  7819.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">References the strings in the list by their positions.</para>
  7820.          </summary>
  7821.          <comments>
  7822.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendants of T<property namespace="Classes" class="TStrings">Strings</property> must implement an accessor function for the <property namespace="Classes" class="TStrings">Strings</property> property to return the string at the position indicated by Index. Index gives the position of the string, where 0 is the first string, 1 is the second string, and so on.</para>
  7823.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use the <property namespace="Classes" class="TStrings">Strings</property> property to get or set the string at a particular position.</para>
  7824.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To store a string as a name-value pair, assign <property namespace="Classes" class="TStrings">Strings</property> a value that includes the NameValueSeparator character. The name and value will then be accessible separately using the Names and Values properties.</para>
  7825.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7826.                      
  7827.                <para>In Delphi, <property namespace="Classes" class="TStrings">Strings</property> is the default property of T<property namespace="Classes" class="TStrings">Strings</property> objects. The <property namespace="Classes" class="TStrings">Strings</property> identifier can be omitted when accessing the <property namespace="Classes" class="TStrings">Strings</property> property of a descendant of T<property namespace="Classes" class="TStrings">Strings</property>. For example, the following two lines of code are both acceptable and do the same thing:</para>
  7828.                   
  7829.             </note>
  7830.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">My<property namespace="Classes" class="TStrings">Strings</property>.<property namespace="Classes" class="TStrings">Strings</property>[0] := 'This is the first string';</para>
  7831.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">My<property namespace="Classes" class="TStrings">Strings</property>[0] := 'This is the first string';</para>
  7832.          </comments>
  7833.       </member>
  7834.       <member name="P:Classes.Classes.Text">
  7835.          <summary>
  7836.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Lists the strings in the <property namespace="Classes" class="TStrings">TStrings</property> object as a single string with the individual strings delimited by carriage returns and line feeds.</para>
  7837.          </summary>
  7838.          <comments>
  7839.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TStrings">Text</property> to get or set all the strings in the <property namespace="Classes" class="TStrings">TStrings</property> object in a single string delimited by carriage return, line feed pairs.</para>
  7840.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When reading <property namespace="Classes" class="TStrings">Text</property>, the strings in the list will be separated by carriage return and (on Windows) line feed. If any of the strings in the list contain a carriage return (and line feed), the resulting value of <property namespace="Classes" class="TStrings">Text</property> will appear to contain more strings than is indicated by the Count property.</para>
  7841.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When setting <property namespace="Classes" class="TStrings">Text</property>, the value will be parsed by separating into substrings whenever a carriage return or linefeed is encountered. (The two do not need to form pairs).</para>
  7842.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the strings in the list contain carriage return or linefeed characters, a less ambiguous format for the strings is available through the Comma<property namespace="Classes" class="TStrings">Text</property> or Delimited<property namespace="Classes" class="TStrings">Text</property> property.</para>
  7843.          </comments>
  7844.       </member>
  7845.       <member name="P:Classes.Classes.StringsAdapter">
  7846.          <summary>
  7847.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements an I<property namespace="Classes" class="TStrings">StringsAdapter</property> interface for the <property namespace="Classes" class="TStrings">TStrings</property> object.</para>
  7848.          </summary>
  7849.          <comments>
  7850.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not use the <property namespace="Classes" class="TStrings">StringsAdapter</property> property. <property namespace="Classes" class="TStrings">StringsAdapter</property> is used internally.</para>
  7851.          </comments>
  7852.       </member>
  7853.       <member name="T:Classes.TStringList">
  7854.          <summary>
  7855.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7856.                
  7857.                <class namespace="Classes">TStringList</class> maintains a list of strings. </para>
  7858.          </summary>
  7859.          <comments>
  7860.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use a string list object to store and manipulate a list of strings. <class namespace="Classes">TStringList</class> implements the abstract properties and methods introduced by TStrings, and introduces new properties, events, and methods to</para>
  7861.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sort the strings in the list.</para>
  7862.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Prohibit duplicate strings in sorted lists.</para>
  7863.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Respond to changes in the contents of the list.</para>
  7864.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Control whether strings are located, sorted, and identified as duplicates in a case-sensitive or case-insensitive manner.</para>
  7865.          </comments>
  7866.       </member>
  7867.       <member name="M:Classes.Classes.Add">
  7868.          <summary>
  7869.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7870.                      
  7871.                <method namespace="Classes" class="TStringList">Add</method>s a new string to the list.</para>
  7872.          </summary>
  7873.          <comments>
  7874.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStringList">Add</method> to add the string S to the list. If the list is sorted, S is added to the appropriate position in the sort order. If the list is not sorted, S is added to the end of the list. <method namespace="Classes" class="TStringList">Add</method> returns the position of the item in the list, where the first item in the list has a value of 0.</para>
  7875.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7876.                      
  7877.                <para>For sorted lists, <method namespace="Classes" class="TStringList">Add</method> will raise an EListError exception if the string S already appears in the list and Duplicates is set to dupError. If Duplicates is set to dupIgnore, trying to add a duplicate string causes <method namespace="Classes" class="TStringList">Add</method> to return the index of the existing entry.</para>
  7878.                   
  7879.             </note>
  7880.          </comments>
  7881.       </member>
  7882.       <member name="M:Classes.Classes.AddObject">
  7883.          <summary>
  7884.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Adds a string to the list, and associates an object with the string. </para>
  7885.          </summary>
  7886.          <comments>
  7887.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStringList">AddObject</method> to add a string and its associated object to the list. <method namespace="Classes" class="TStringList">AddObject</method> returns the index of the new string and object.</para>
  7888.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7889.                      
  7890.                <para>The <method namespace="Classes" class="TStringList">TStringList</method> object does not own the objects you add this way. Objects added to the <method namespace="Classes" class="TStringList">TStringList</method> object still exist even if the <method namespace="Classes" class="TStringList">TStringList</method> instance is destroyed. They must be explicitly destroyed by the application.</para>
  7891.                   
  7892.             </note>
  7893.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7894.                      
  7895.                <para>For sorted lists, <method namespace="Classes" class="TStringList">AddObject</method> raises an EListError exception if the string S already appears in the list and Duplicates is set to dupError. If Duplicates is set to dupIgnore, trying to add a duplicate string causes <method namespace="Classes" class="TStringList">AddObject</method> to return the index of the existing entry.</para>
  7896.                   
  7897.             </note>
  7898.          </comments>
  7899.       </member>
  7900.       <member name="M:Classes.Classes.Find">
  7901.          <summary>
  7902.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Locates the index for a string in a sorted list and indicates whether a string with that value already exists in the list.</para>
  7903.          </summary>
  7904.          <comments>
  7905.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStringList">Find</method> to obtain the index in a sorted list where the string S should be added. If the string S, or a string that differs from S only in case when CaseSensitive is false, already exists in the list, <method namespace="Classes" class="TStringList">Find</method> returns true. If the list does not contain a string that matches S, <method namespace="Classes" class="TStringList">Find</method> returns false. The index where S should go is returned in the Index parameter. The value of Index is zero-based, where the first string has the index 0, the second string has the index 1, and so on.</para>
  7906.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7907.                      
  7908.                <para>Only use <method namespace="Classes" class="TStringList">Find</method> with sorted lists. For unsorted lists, use the IndexOf method instead.</para>
  7909.                   
  7910.             </note>
  7911.          </comments>
  7912.       </member>
  7913.       <member name="M:Classes.Classes.IndexOf">
  7914.          <summary>
  7915.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the position of a string in the list.</para>
  7916.          </summary>
  7917.          <comments>
  7918.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStringList">IndexOf</method> to obtain the position of the first occurrence of a string that matches S. A string matches S if it is identical to S or, if CaseSensitive is false, if it differs only in case. </para>
  7919.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7920.                      
  7921.                <method namespace="Classes" class="TStringList">IndexOf</method> returns the 0-based index of the string. Thus, if S matches the first string in the list, <method namespace="Classes" class="TStringList">IndexOf</method> returns 0, if S is the second string, <method namespace="Classes" class="TStringList">IndexOf</method> returns 1, and so on. If the string does not have a match in the string list, <method namespace="Classes" class="TStringList">IndexOf</method> returns -1.</para>
  7922.          </comments>
  7923.       </member>
  7924.       <member name="M:Classes.Classes.Clear">
  7925.          <summary>
  7926.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Deletes all the strings from the list.</para>
  7927.          </summary>
  7928.          <comments>
  7929.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call clear to empty the list of strings. All references to associated objects are also removed. However, the objects themselves are not freed.</para>
  7930.          </comments>
  7931.       </member>
  7932.       <member name="M:Classes.Classes.Delete">
  7933.          <summary>
  7934.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Removes the string specified by the Index parameter.</para>
  7935.          </summary>
  7936.          <comments>
  7937.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStringList">Delete</method> to remove a single string from the list. If an object is associated with the string, the reference to the object is removed as well. Index gives the position of the string, where 0 is the first string, 1 is the second string, and so on.</para>
  7938.          </comments>
  7939.       </member>
  7940.       <member name="M:Classes.Classes.Exchange">
  7941.          <summary>
  7942.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Swaps the position of two strings in the list.</para>
  7943.          </summary>
  7944.          <comments>
  7945.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStringList">Exchange</method> to rearrange the strings in the list. The strings are specified by their index values in the Index1 and Index2 parameters. Indexes are zero-based, so the first string in the list has an index value of 0, the second has an index value of 1, and so on.</para>
  7946.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If either string has an associated object, <method namespace="Classes" class="TStringList">Exchange</method> changes the index of the object as well.</para>
  7947.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7948.                      
  7949.                <para>Do not call <method namespace="Classes" class="TStringList">Exchange</method> on a sorted list except to swap two identical strings with different associated objects. <method namespace="Classes" class="TStringList">Exchange</method> does not check whether the list is sorted, and can destroy the sort order of a sorted list.</para>
  7950.                   
  7951.             </warning>
  7952.          </comments>
  7953.       </member>
  7954.       <member name="M:Classes.Classes.Insert">
  7955.          <summary>
  7956.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7957.                      
  7958.                <method namespace="Classes" class="TStringList">Insert</method>s a string to the list at the position specified by Index.</para>
  7959.          </summary>
  7960.          <comments>
  7961.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStringList">Insert</method> to add the string S to the list at the position specified by Index. If Index is 0, the string is inserted at the beginning of the list. If Index is 1, the string is put in the second position of the list, and so on.</para>
  7962.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the string has an associated object, use the <method namespace="Classes" class="TStringList">Insert</method>Object method instead.</para>
  7963.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7964.                      
  7965.                <para>If the list is sorted, calling <method namespace="Classes" class="TStringList">Insert</method> or <method namespace="Classes" class="TStringList">Insert</method>Object will raise an EListError exception. Use Add or AddObject with sorted lists.</para>
  7966.                   
  7967.             </note>
  7968.          </comments>
  7969.       </member>
  7970.       <member name="M:Classes.Classes.InsertObject">
  7971.          <summary>
  7972.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Inserts a string into the list at the specified position, and associates it with an object.</para>
  7973.          </summary>
  7974.          <comments>
  7975.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStringList">InsertObject</method> to insert the string S into the list at the position identified by Index, and associate it with the object AObject. If Index is 0, the string is inserted at the beginning of the list. If Index is 1, the string is put in the second position of the list, and so on.</para>
  7976.          </comments>
  7977.       </member>
  7978.       <member name="M:Classes.Classes.Sort">
  7979.          <summary>
  7980.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7981.                      
  7982.                <method namespace="Classes" class="TStringList">Sort</method>s the strings in the list in ascending order.</para>
  7983.          </summary>
  7984.          <comments>
  7985.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStringList">Sort</method> to sort the strings in a list that has the <method namespace="Classes" class="TStringList">Sort</method>ed property set to false. String lists with the <method namespace="Classes" class="TStringList">Sort</method>ed property set to true are automatically sorted.</para>
  7986.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  7987.                      
  7988.                <para>
  7989.                         
  7990.                   <method namespace="Classes" class="TStringList">Sort</method> uses AnsiCompareStr to sort the strings when CaseSensitive is true and AnsiCompareText when CaseSensitive is false. To provide your own comparison operator instead, use the Custom<method namespace="Classes" class="TStringList">Sort</method> method.</para>
  7991.                   
  7992.             </note>
  7993.          </comments>
  7994.       </member>
  7995.       <member name="M:Classes.Classes.CustomSort">
  7996.          <summary>
  7997.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sorts the strings in the list in a customized order.</para>
  7998.          </summary>
  7999.          <comments>
  8000.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStringList">CustomSort</method> to sort the strings in the list, where the sort order is defined by the Compare parameter. </para>
  8001.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Supply a value for the Compare function that compares two strings in the string list. The List parameter provides access to the string list, while the Index1 and Index2 parameters identify the strings to be compared.</para>
  8002.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not pass nil (Delphi) or NULL (C++) as the value of the Compare parameter.</para>
  8003.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8004.                      
  8005.                <para>You must explicitly call the <method namespace="Classes" class="TStringList">CustomSort</method> method. Setting the Sorted property only sorts strings using ANSI (Windows) or UTF-8 (Linux) order, as implemented in the Sort method.</para>
  8006.                   
  8007.             </note>
  8008.          </comments>
  8009.       </member>
  8010.       <member name="M:Classes.Classes.Destroy">
  8011.          <summary>
  8012.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8013.                      
  8014.                <method namespace="Classes" class="TStringList">Destroy</method>s an instance of <method namespace="Classes" class="TStringList">TStringList</method>.</para>
  8015.          </summary>
  8016.          <comments>
  8017.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TStringList">Destroy</method> directly in an application. Instead, call Free. Free verifies that the <method namespace="Classes" class="TStringList">TStringList</method> reference is not nil and only then calls <method namespace="Classes" class="TStringList">Destroy</method>.</para>
  8018.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8019.                      
  8020.                <method namespace="Classes" class="TStringList">Destroy</method> frees the memory allocated to hold the list of strings and object references before calling the inherited destructor.</para>
  8021.          </comments>
  8022.       </member>
  8023.       <member name="P:Classes.Classes.Duplicates">
  8024.          <summary>
  8025.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies whether duplicate strings can be added to sorted lists.</para>
  8026.          </summary>
  8027.          <comments>
  8028.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Classes" class="TStringList">Duplicates</property> to specify what should happen when an attempt is made to add a duplicate string to a sorted list. The CaseSensitive property controls whether two strings are considered duplicates if they are identical except for differences in case.</para>
  8029.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of <property namespace="Classes" class="TStringList">Duplicates</property> should be one of the following.</para>
  8030.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8031.                      
  8032.                <tr>
  8033.                         
  8034.                   <th>Value</th>
  8035.                         
  8036.                   <th>Meaning</th>
  8037.                      
  8038.                </tr>
  8039.                      
  8040.                <tr>
  8041.                         
  8042.                   <td>
  8043.                            
  8044.                      <para>dupIgnore</para>
  8045.                         
  8046.                   </td>
  8047.                         
  8048.                   <td>
  8049.                            
  8050.                      <para>Ignore attempts to add duplicate strings to the list.</para>
  8051.                         
  8052.                   </td>
  8053.                      
  8054.                </tr>
  8055.                      
  8056.                <tr>
  8057.                         
  8058.                   <td>
  8059.                            
  8060.                      <para>dupError</para>
  8061.                         
  8062.                   </td>
  8063.                         
  8064.                   <td>
  8065.                            
  8066.                      <para>raise an EStringListError exception when an attempt is made to add duplicate strings to the sorted list.</para>
  8067.                         
  8068.                   </td>
  8069.                      
  8070.                </tr>
  8071.                      
  8072.                <tr>
  8073.                         
  8074.                   <td>
  8075.                            
  8076.                      <para>dupAccept</para>
  8077.                         
  8078.                   </td>
  8079.                         
  8080.                   <td>
  8081.                            
  8082.                      <para>Permit duplicate strings in the sorted list.</para>
  8083.                         
  8084.                   </td>
  8085.                      
  8086.                </tr>
  8087.                   
  8088.             </table>
  8089.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Classes" class="TStringList">Duplicates</property> before adding any strings to the list. Setting <property namespace="Classes" class="TStringList">Duplicates</property> to dupIgnore or dupError does nothing about duplicate strings that are already in the list.</para>
  8090.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8091.                      
  8092.                <para>
  8093.                         
  8094.                   <property namespace="Classes" class="TStringList">Duplicates</property> does nothing if the list is not sorted.</para>
  8095.                   
  8096.             </note>
  8097.          </comments>
  8098.       </member>
  8099.       <member name="P:Classes.Classes.Sorted">
  8100.          <summary>
  8101.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies whether the strings in the list should be automatically sorted.</para>
  8102.          </summary>
  8103.          <comments>
  8104.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Classes" class="TStringList">Sorted</property> to true to cause the strings in the list to be automatically sorted in ascending order. Set <property namespace="Classes" class="TStringList">Sorted</property> to false to allow strings to remain where they are inserted. When <property namespace="Classes" class="TStringList">Sorted</property> is false, the strings in the list can be put in ascending order at any time by calling the Sort method.</para>
  8105.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When <property namespace="Classes" class="TStringList">Sorted</property> is true, do not use Insert to add strings to the list. Instead, use Add, which will insert the new strings in the appropriate position. When <property namespace="Classes" class="TStringList">Sorted</property> is false, use Insert to add strings to an arbitrary position in the list, or Add to add strings to the end of the list.</para>
  8106.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8107.                      
  8108.                <para>The CaseSensitive property controls whether the strings in the list are sorted based on a case-sensitive or case-insensitive comparison. The sort order takes into account the locale of the system on which the application is running. </para>
  8109.                   
  8110.             </note>
  8111.          </comments>
  8112.       </member>
  8113.       <member name="P:Classes.Classes.CaseSensitive">
  8114.          <summary>
  8115.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Controls whether strings are located, sorted, and identified as duplicates in a case-sensitive or case-insensitive manner.</para>
  8116.          </summary>
  8117.          <comments>
  8118.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TStringList">CaseSensitive</property> to indicate whether strings in the list should be compared in a case-sensitive or case-insensitive manner. Set <property namespace="Classes" class="TStringList">CaseSensitive</property> to true to make the string list locate, check for duplicates, and sort its strings in a case-sensitive manner. Set <property namespace="Classes" class="TStringList">CaseSensitive</property> to false to make the string list perform these operations case-insensitively.</para>
  8119.          </comments>
  8120.       </member>
  8121.       <member name="E:Classes.Classes.OnChange">
  8122.          <summary>
  8123.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs immediately after the list of strings changes.</para>
  8124.          </summary>
  8125.          <comments>
  8126.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Classes" class="TStringList">OnChange</event> event handler to respond to changes in the list of strings. For example, if the string list is associated with a control, the <event namespace="Classes" class="TStringList">OnChange</event> event handler could tell the control to repaint itself whenever the content of the list changes.</para>
  8127.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Whenever strings in the list are added, deleted, moved, or modified, the following events take place:</para>
  8128.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1An OnChanging event occurs before the change.</para>
  8129.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2The strings are added, deleted, moved, or modified.</para>
  8130.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">3An <event namespace="Classes" class="TStringList">OnChange</event> event occurs.</para>
  8131.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8132.                      
  8133.                <para>
  8134.                         
  8135.                   <event namespace="Classes" class="TStringList">OnChange</event> occurs for every change made to the list, regardless of whether the application calls BeginUpdate and EndUpdate around a series of changes.</para>
  8136.                   
  8137.             </note>
  8138.          </comments>
  8139.       </member>
  8140.       <member name="E:Classes.Classes.OnChanging">
  8141.          <summary>
  8142.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs immediately before the list of strings changes.</para>
  8143.          </summary>
  8144.          <comments>
  8145.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Classes" class="TStringList">OnChanging</event> event handler to prepare for changes in the list of strings. For example, if the string list is associated with a control, the <event namespace="Classes" class="TStringList">OnChanging</event> event handler could tell the control to disable repaints until the OnChange event when the list has finished changing.</para>
  8146.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Whenever strings in the list are added, deleted, moved, or modified, the following events take place:</para>
  8147.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1An <event namespace="Classes" class="TStringList">OnChanging</event> event occurs.</para>
  8148.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2The strings are added, deleted, moved, or modified.</para>
  8149.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">3An OnChange event occurs after the changes are complete.</para>
  8150.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8151.                      
  8152.                <para>
  8153.                         
  8154.                   <event namespace="Classes" class="TStringList">OnChanging</event> occurs for every change made to the list, regardless of whether the application calls BeginUpdate and EndUpdate around a series of changes.</para>
  8155.                   
  8156.             </note>
  8157.          </comments>
  8158.       </member>
  8159.       <member name="T:Classes.TStream">
  8160.          <summary>
  8161.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8162.                
  8163.                <class namespace="Classes">TStream</class> is the base class type for stream objects that can read from or write to various kinds of storage media, such as disk files, dynamic memory, and so on.</para>
  8164.          </summary>
  8165.          <comments>
  8166.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use specialized stream objects to read from, write to, or copy information stored in a particular medium. Each descendant of <class namespace="Classes">TStream</class> implements methods for transferring information to and from a particular storage medium, such as a disk file, dynamic memory, and so on.  In addition to methods for reading, writing, and copying bytes to and from the stream, stream objects permit applications to seek to an arbitrary position in the stream. Properties of <class namespace="Classes">TStream</class> provide information about the stream, such as its size and the current position in the stream.</para>
  8167.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8168.                
  8169.                <class namespace="Classes">TStream</class> also introduces methods that work in conjunction with components and filers for loading and saving components in simple and inherited forms. These methods are called automatically by global routines that initiate component streaming. They can also be called directly to initiate the streaming process. Note, however, that component streaming always involves two additional objects:</para>
  8170.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A component object that is passed as a parameter to the stream's methods.</para>
  8171.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A filer object that is automatically created by the stream, and associated with the stream.</para>
  8172.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8173.                
  8174.                <class namespace="Classes">TStream</class> is an abstract or, in C++ terminology, pure virtual class. It should not be instantiated; it relies on abstract or pure virtual methods that must be overridden in descendant classes. Descendant stream objects, such as memory and file streams used for component streaming, are created automatically by the global functions ReadComponentRes and WriteComponentRes. For streaming other kinds of information, choose a descendant class according to the specific data and storage needs. These include</para>
  8175.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">TFileStream (for working with files)</para>
  8176.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">TStringStream (for manipulating in-memory strings)</para>
  8177.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">TMemoryStream (for working with a memory buffer)</para>
  8178.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8179.                
  8180.                <condition os="Windows"/>
  8181.                
  8182.                <condition os="Windows">TBlobStream</condition>
  8183.                
  8184.                <condition os="Windows"> (for working with BLOB fields)</condition>
  8185.             
  8186.             </para>
  8187.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8188.                
  8189.                <condition os="Windows"/>
  8190.                
  8191.                <condition os="Windows">TWinSocketStream</condition>
  8192.                
  8193.                <condition os="Windows"> (for reading and writing over a socket connection)</condition>
  8194.             
  8195.             </para>
  8196.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8197.                
  8198.                <condition os="Windows"/>
  8199.                
  8200.                <condition os="Windows">TOleStream</condition>
  8201.                
  8202.                <condition os="Windows"> (for using a COM interface to read and write)</condition>
  8203.             
  8204.             </para>
  8205.          </comments>
  8206.       </member>
  8207.       <member name="M:Classes.Classes.Read">
  8208.          <summary>
  8209.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces an abstract or pure virtual method responsible for reading from the stream.</para>
  8210.          </summary>
  8211.          <comments>
  8212.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each descendant stream object defines a <method namespace="Classes" class="TStream">Read</method> method that reads data from its particular storage medium (such as memory or a disk file).</para>
  8213.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8214.                      
  8215.                <method namespace="Classes" class="TStream">Read</method> is used in cases where the number of bytes to read from the stream is not necessarily fixed. It attempts to read up to Count bytes into buffer and returns the number of bytes actually read.</para>
  8216.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">All the other data-reading methods of a stream (<method namespace="Classes" class="TStream">Read</method>Buffer, <method namespace="Classes" class="TStream">Read</method>Component) call <method namespace="Classes" class="TStream">Read</method> to do their actual reading.</para>
  8217.          </comments>
  8218.       </member>
  8219.       <member name="M:Classes.Classes.Write">
  8220.          <summary>
  8221.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces a pure virtual method for writing to the stream.</para>
  8222.          </summary>
  8223.          <comments>
  8224.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each descendant stream object defines a <method namespace="Classes" class="TStream">Write</method> method that writes data to its particular storage medium (such as memory or a disk file). <method namespace="Classes" class="TStream">Write</method> attempts to write up to Count bytes from Buffer, and returns the number of bytes actually written.</para>
  8225.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">All the other data-writing methods of a stream (<method namespace="Classes" class="TStream">Write</method>Buffer, <method namespace="Classes" class="TStream">Write</method>Component) call <method namespace="Classes" class="TStream">Write</method> to do their actual writing.</para>
  8226.          </comments>
  8227.       </member>
  8228.       <member name="M:Classes.Classes.Seek">
  8229.          <summary>
  8230.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Moves to a specified position in the streamed resource.</para>
  8231.          </summary>
  8232.          <comments>
  8233.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStream">Seek</method> to move the current position of the stream in its particular storage medium (such as memory or a disk file).</para>
  8234.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Origin parameter indicates how to interpret the Offset parameter. Origin should be one of the following values:</para>
  8235.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8236.                      
  8237.                <tr>
  8238.                         
  8239.                   <th>Value</th>
  8240.                         
  8241.                   <th>Meaning</th>
  8242.                      
  8243.                </tr>
  8244.                      
  8245.                <tr>
  8246.                         
  8247.                   <td>
  8248.                            
  8249.                      <para>soFromBeginning</para>
  8250.                         
  8251.                   </td>
  8252.                         
  8253.                   <td>
  8254.                            
  8255.                      <para>Offset is from the beginning of the resource. Seek moves to the position Offset. Offset must be >= 0.</para>
  8256.                         
  8257.                   </td>
  8258.                      
  8259.                </tr>
  8260.                      
  8261.                <tr>
  8262.                         
  8263.                   <td>
  8264.                            
  8265.                      <para>soFromCurrent</para>
  8266.                         
  8267.                   </td>
  8268.                         
  8269.                   <td>
  8270.                            
  8271.                      <para>Offset is from the current position in the resource. Seek moves to Position + Offset.</para>
  8272.                         
  8273.                   </td>
  8274.                      
  8275.                </tr>
  8276.                      
  8277.                <tr>
  8278.                         
  8279.                   <td>
  8280.                            
  8281.                      <para>soFromEnd</para>
  8282.                         
  8283.                   </td>
  8284.                         
  8285.                   <td>
  8286.                            
  8287.                      <para>Offset is from the end of the resource. Offset must be <= 0 to indicate a number of bytes before the end of the file.</para>
  8288.                         
  8289.                   </td>
  8290.                      
  8291.                </tr>
  8292.                   
  8293.             </table>
  8294.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8295.                      
  8296.                <method namespace="Classes" class="TStream">Seek</method> returns the new value of the Position property.</para>
  8297.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8298.                      
  8299.                <method namespace="Classes" class="TStream">Seek</method> is called by the Position and Size properties.</para>
  8300.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8301.                      
  8302.                <para>As implemented in <method namespace="Classes" class="TStream">TStream</method>, the two versions (the 32-bit or 64-bit syntax) call each other. Descendant stream classes must override at least one of these versions, and the override must not call the inherited default implementation.</para>
  8303.                   
  8304.             </note>
  8305.          </comments>
  8306.       </member>
  8307.       <member name="M:Classes.Classes.CopyFrom">
  8308.          <summary>
  8309.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Copies a specified number of bytes from one stream to another.</para>
  8310.          </summary>
  8311.          <comments>
  8312.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStream">CopyFrom</method> to copy data to the stream from a different stream. Using <method namespace="Classes" class="TStream">CopyFrom</method> eliminates the need for the user to create, read into, write from, and free a buffer when copying data.</para>
  8313.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8314.                      
  8315.                <method namespace="Classes" class="TStream">CopyFrom</method> copies Count bytes from the stream specified by Source into the stream. It then moves the current position by Count bytes, and returns the number of bytes copied. </para>
  8316.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If Count is 0, <method namespace="Classes" class="TStream">CopyFrom</method> sets Source position to 0 before reading and then copies the entire contents of Source into the stream. If Count is greater than or less than 0, <method namespace="Classes" class="TStream">CopyFrom</method> reads from the current position in Source.</para>
  8317.          </comments>
  8318.       </member>
  8319.       <member name="M:Classes.Classes.ReadComponent">
  8320.          <summary>
  8321.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initiates streaming of components and their properties.</para>
  8322.          </summary>
  8323.          <comments>
  8324.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8325.                      
  8326.                <method namespace="Classes" class="TStream">ReadComponent</method> is called indirectly by the global routine <method namespace="Classes" class="TStream">ReadComponent</method>Res, by the <method namespace="Classes" class="TStream">ReadComponent</method>Res method, or it can be called directly to initiate component streaming.</para>
  8327.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8328.                      
  8329.                <method namespace="Classes" class="TStream">ReadComponent</method> reads data values from the stream and assigns them to Instance's properties. It then constructs a reader object and calls the reader's ReadRootComponent method to read Instance's property values and construct child objects defined in the stream as children of the Instance. <method namespace="Classes" class="TStream">ReadComponent</method> returns the component.</para>
  8330.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If Instance is nil (Delphi) or NULL (C++), <method namespace="Classes" class="TStream">ReadComponent</method> constructs a component based on the type information in the stream and returns the newly-constructed component.</para>
  8331.          </comments>
  8332.       </member>
  8333.       <member name="M:Classes.Classes.ReadComponentRes">
  8334.          <summary>
  8335.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads components and their properties from a stream in a resource file format.</para>
  8336.          </summary>
  8337.          <comments>
  8338.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8339.                      
  8340.                <method namespace="Classes" class="TStream">ReadComponentRes</method> is called automatically by the global routine <method namespace="Classes" class="TStream">ReadComponentRes</method>File. It can also be called directly if the current position of the stream points to a component written using the WriteComponentRes method.</para>
  8341.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8342.                      
  8343.                <method namespace="Classes" class="TStream">ReadComponentRes</method>File creates a file stream object, which then calls its <method namespace="Classes" class="TStream">ReadComponentRes</method> method.</para>
  8344.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8345.                      
  8346.                <method namespace="Classes" class="TStream">ReadComponentRes</method> first calls the ReadResHeader method to read a resource header from the stream. If the stream does not contain a resource header at the current position, ReadResHeader will raise an EInvalidImage exception. <method namespace="Classes" class="TStream">ReadComponentRes</method> then calls ReadComponent to read the properties that must be set on Instance.</para>
  8347.          </comments>
  8348.       </member>
  8349.       <member name="M:Classes.Classes.SetSize">
  8350.          <summary>
  8351.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides a placeholder for a method to change the size of the streamed resource.</para>
  8352.          </summary>
  8353.          <comments>
  8354.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8355.                      
  8356.                <method namespace="Classes" class="TStream">SetSize</method> does nothing in <method namespace="Classes" class="TStream">TStream</method>. Descendant stream classes can override this method to set the Size property of their objects. <method namespace="Classes" class="TStream">SetSize</method> is the write procedure for the Size property. </para>
  8357.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8358.                      
  8359.                <para>
  8360.                         
  8361.                   <method namespace="Classes" class="TStream">SetSize</method> is introduced in <method namespace="Classes" class="TStream">TStream</method>, even though it does nothing, because it is not possible to change the definition of a property in a descendant class. <method namespace="Classes" class="TStream">SetSize</method> must therefore be introduced when Size is introduced.</para>
  8362.                   
  8363.             </note>
  8364.          </comments>
  8365.       </member>
  8366.       <member name="M:Classes.Classes.ReadBuffer">
  8367.          <summary>
  8368.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads bytes from the stream into Buffer.</para>
  8369.          </summary>
  8370.          <comments>
  8371.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStream">ReadBuffer</method> to read Count bytes from the stream into a buffer in cases where the number of bytes is known and fixed, for example when reading in structures. <method namespace="Classes" class="TStream">ReadBuffer</method> is used internally for loading from a stream and copying from a stream.</para>
  8372.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8373.                      
  8374.                <method namespace="Classes" class="TStream">ReadBuffer</method> calls Read to do the actual reading. If Count bytes cannot be read from the stream, an EReadError exception is raised.</para>
  8375.          </comments>
  8376.       </member>
  8377.       <member name="M:Classes.Classes.WriteBuffer">
  8378.          <summary>
  8379.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes Count bytes from Buffer onto the stream and advances the current position of the stream by Count bytes.</para>
  8380.          </summary>
  8381.          <comments>
  8382.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStream">WriteBuffer</method> to save data to a stream. <method namespace="Classes" class="TStream">WriteBuffer</method> and ReadBuffer are used in cases where the number of bytes is known and required, for example when reading in structures. Use <method namespace="Classes" class="TStream">WriteBuffer</method> for standard file I/O streaming.</para>
  8383.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8384.                      
  8385.                <method namespace="Classes" class="TStream">WriteBuffer</method> is used internally for writing to a stream and copying from a stream. It is used by other objects, such as strings and lists, for writing strings stored in a buffer.</para>
  8386.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8387.                      
  8388.                <method namespace="Classes" class="TStream">WriteBuffer</method> calls Write to handle the actual writing. If the stream fails to write all the requested bytes, an EWriteError exception is raised.</para>
  8389.          </comments>
  8390.       </member>
  8391.       <member name="M:Classes.Classes.WriteComponent">
  8392.          <summary>
  8393.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initiates the writing of components and their properties to a stream.</para>
  8394.          </summary>
  8395.          <comments>
  8396.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8397.                      
  8398.                <method namespace="Classes" class="TStream">WriteComponent</method> is used internally in the component streaming system, but can also be called directly when writing components to memory streams or database blobs.</para>
  8399.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8400.                      
  8401.                <method namespace="Classes" class="TStream">WriteComponent</method> constructs a writer object and calls its WriteRootComponent method to write the component specified by Instance, and its owned objects, to the stream.</para>
  8402.          </comments>
  8403.       </member>
  8404.       <member name="M:Classes.Classes.WriteComponentRes">
  8405.          <summary>
  8406.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes components and their properties to a stream from a resource file format.</para>
  8407.          </summary>
  8408.          <comments>
  8409.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8410.                      
  8411.                <method namespace="Classes" class="TStream">WriteComponentRes</method> is used internally in the streaming system, but can also be called directly when sending data to other applications on disk. <method namespace="Classes" class="TStream">WriteComponentRes</method> is used for streaming components that need data, such as a bitmap or icon to be stored in a resource-file format.</para>
  8412.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8413.                      
  8414.                <method namespace="Classes" class="TStream">WriteComponentRes</method> calls WriteDescendentRes, passing in nil (Delphi) or NULL (C++) as the Ancestor. Therefore, WriteDescendentRes initiates the remainder of the streaming process for a component that, in this case, is not a descendant.</para>
  8415.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To read a component written with <method namespace="Classes" class="TStream">WriteComponentRes</method>, call the ReadComponentRes method.</para>
  8416.          </comments>
  8417.       </member>
  8418.       <member name="M:Classes.Classes.WriteDescendent">
  8419.          <summary>
  8420.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Streams components and their properties in inherited forms. </para>
  8421.          </summary>
  8422.          <comments>
  8423.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TStream">WriteDescendent</method> directly. <method namespace="Classes" class="TStream">WriteDescendent</method> is called automatically by WriteComponent.</para>
  8424.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8425.                      
  8426.                <method namespace="Classes" class="TStream">WriteDescendent</method> constructs a writer object, then calls the writer object's <method namespace="Classes" class="TStream">WriteDescendent</method> method to write the component passed in Instance to the stream. Instance is either an inherited form descended from Ancestor or nil (Delphi) or NULL (C++). However, <method namespace="Classes" class="TStream">WriteDescendent</method> is never used to write owned components, only to initiate streaming on the root component.</para>
  8427.          </comments>
  8428.       </member>
  8429.       <member name="M:Classes.Classes.WriteDescendentRes">
  8430.          <summary>
  8431.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Streams components and their properties in inherited forms. </para>
  8432.          </summary>
  8433.          <comments>
  8434.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TStream">WriteDescendentRes</method> directly. <method namespace="Classes" class="TStream">WriteDescendentRes</method> is called automatically by WriteComponentRes.</para>
  8435.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8436.                      
  8437.                <method namespace="Classes" class="TStream">WriteDescendentRes</method> writes a resource-file header to the stream, using the resource name passed in ResName as the name of the resource. It then calls WriteDescendent to write Instance to the stream as a descendant of Ancestor.</para>
  8438.          </comments>
  8439.       </member>
  8440.       <member name="M:Classes.Classes.WriteResourceHeader">
  8441.          <summary>
  8442.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes a resource-file header to the stream. </para>
  8443.          </summary>
  8444.          <comments>
  8445.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TStream">WriteResourceHeader</method>, it is used internally. The WriteDescendentRes method calls <method namespace="Classes" class="TStream">WriteResourceHeader</method> before writing a component to the stream. This method writes the resource-file header, using the value passed as ResName for the name of the resource. It returns a position in FixupInfo that must be used to adjust the header after the size of the resource is known. WriteDescendentRes calls FixupResourceHeader with the value returned as FixupInfo after streaming out the component.</para>
  8446.          </comments>
  8447.       </member>
  8448.       <member name="M:Classes.Classes.FixupResourceHeader">
  8449.          <summary>
  8450.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Patches the resource header for a resource that has been written to the stream.</para>
  8451.          </summary>
  8452.          <comments>
  8453.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TStream">FixupResourceHeader</method>, it is used internally. The WriteDescendentRes method calls <method namespace="Classes" class="TStream">FixupResourceHeader</method> after writing a component to the stream. This method then uses the current position to determine the size of the resource just written and adjust the resource header accordingly.</para>
  8454.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The FixupInfo parameter is the value returned by WriteResourceHeader when it writes the resource header (before WriteDescendentRes streams out the component).</para>
  8455.          </comments>
  8456.       </member>
  8457.       <member name="M:Classes.Classes.ReadResHeader">
  8458.          <summary>
  8459.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a resource-file header from the stream.</para>
  8460.          </summary>
  8461.          <comments>
  8462.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TStream">ReadResHeader</method> directly. It is called automatically by ReadComponentRes before reading a component from a resource file.</para>
  8463.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After reading the resource-file header, <method namespace="Classes" class="TStream">ReadResHeader</method> moves the current position of the stream to just beyond the header. If the stream does not contain a valid resource-file header, <method namespace="Classes" class="TStream">ReadResHeader</method> raises an EInvalidImage exception.</para>
  8464.          </comments>
  8465.       </member>
  8466.       <member name="P:Classes.Classes.Position">
  8467.          <summary>
  8468.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the current offset into the stream for reading and writing.</para>
  8469.          </summary>
  8470.          <comments>
  8471.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TStream">Position</property> to obtain the current position of the stream. This is the number of bytes from the beginning of the streamed data.</para>
  8472.          </comments>
  8473.       </member>
  8474.       <member name="P:Classes.Classes.Size">
  8475.          <summary>
  8476.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the size in bytes of the stream.</para>
  8477.          </summary>
  8478.          <comments>
  8479.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TStream">Size</property> to find the size of the stream. <property namespace="Classes" class="TStream">Size</property> is used internally in routines that read and write to and from the stream. Setting the <property namespace="Classes" class="TStream">Size</property> property of <property namespace="Classes" class="TStream">TStream</property> does nothing. Some descendants of <property namespace="Classes" class="TStream">TStream</property> override this property to allow applications to change the size of the resource accessed using the stream. </para>
  8480.          </comments>
  8481.       </member>
  8482.       <member name="T:Classes.THandleStream">
  8483.          <summary>
  8484.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8485.                
  8486.                <class namespace="Classes">THandleStream</class> enables applications to read from and write to communications resources identified by a handle.</para>
  8487.          </summary>
  8488.          <comments>
  8489.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="Classes">THandleStream</class> to access files, sockets, named pipes, mailslots, or other communications resources that provide a handle when opened. For example, the FileOpen function provides a handle for a file on disk. <class namespace="Classes">THandleStream</class> allows applications to use a uniform stream interface when performing I/O using a handle.</para>
  8490.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To avoid the overhead of managing file handles, use TFileStream to work with disk files.</para>
  8491.          </comments>
  8492.       </member>
  8493.       <member name="M:Classes.Classes.Read">
  8494.          <summary>
  8495.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8496.                      
  8497.                <method namespace="Classes" class="THandleStream">Read</method>s up to Count bytes of data from the resource associated with the handle stream into Buffer.</para>
  8498.          </summary>
  8499.          <comments>
  8500.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="THandleStream">Read</method> to read data from the resource associated with the handle stream when the number of bytes in the file is not known. <method namespace="Classes" class="THandleStream">Read</method> transfers up to Count bytes from the resource, starting at the current position, and then advances the current position in the resource by the number of bytes actually transferred. <method namespace="Classes" class="THandleStream">Read</method> returns the number of bytes actually transferred, which may be less than Count if the end of file marker is encountered.</para>
  8501.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">All other data-reading methods of a handle stream (<method namespace="Classes" class="THandleStream">Read</method>Buffer, <method namespace="Classes" class="THandleStream">Read</method>Component) call <method namespace="Classes" class="THandleStream">Read</method> to do the actual reading.</para>
  8502.          </comments>
  8503.       </member>
  8504.       <member name="M:Classes.Classes.Write">
  8505.          <summary>
  8506.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8507.                      
  8508.                <method namespace="Classes" class="THandleStream">Write</method>s Count bytes from the Buffer to the current position in the resource.</para>
  8509.          </summary>
  8510.          <comments>
  8511.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="THandleStream">Write</method> to write Count bytes to the resource associated with the handle stream, starting at the current position. After writing to the resource, <method namespace="Classes" class="THandleStream">Write</method> advances the current position by the number bytes written, and returns the number of bytes written.</para>
  8512.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">All other data-writing methods of a handle stream (<method namespace="Classes" class="THandleStream">Write</method>Buffer, <method namespace="Classes" class="THandleStream">Write</method>Component) call <method namespace="Classes" class="THandleStream">Write</method> to do the actual writing.</para>
  8513.          </comments>
  8514.       </member>
  8515.       <member name="M:Classes.Classes.Seek">
  8516.          <summary>
  8517.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Resets the current position of the handle stream.</para>
  8518.          </summary>
  8519.          <comments>
  8520.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="THandleStream">Seek</method> to move the current position within the resource associated with the handle stream by the indicated offset. <method namespace="Classes" class="THandleStream">Seek</method> allows an application to read from or write to a particular location within the resource.</para>
  8521.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Origin parameter indicates how to interpret the Offset parameter. Origin should be one of the following values:</para>
  8522.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8523.                      
  8524.                <tr>
  8525.                         
  8526.                   <th>Value</th>
  8527.                         
  8528.                   <th>Meaning</th>
  8529.                      
  8530.                </tr>
  8531.                      
  8532.                <tr>
  8533.                         
  8534.                   <td>
  8535.                            
  8536.                      <para>soFromBeginning</para>
  8537.                         
  8538.                   </td>
  8539.                         
  8540.                   <td>
  8541.                            
  8542.                      <para>Offset is from the beginning of the resource. Seek moves to the position Offset. Offset must be >= 0.</para>
  8543.                         
  8544.                   </td>
  8545.                      
  8546.                </tr>
  8547.                      
  8548.                <tr>
  8549.                         
  8550.                   <td>
  8551.                            
  8552.                      <para>soFromCurrent</para>
  8553.                         
  8554.                   </td>
  8555.                         
  8556.                   <td>
  8557.                            
  8558.                      <para>Offset is from the current position in the resource. Seek moves to Position + Offset.</para>
  8559.                         
  8560.                   </td>
  8561.                      
  8562.                </tr>
  8563.                      
  8564.                <tr>
  8565.                         
  8566.                   <td>
  8567.                            
  8568.                      <para>soFromEnd</para>
  8569.                         
  8570.                   </td>
  8571.                         
  8572.                   <td>
  8573.                            
  8574.                      <para>Offset is from the end of the resource. Offset must be <= 0 to indicate a number of bytes before the end of the file.</para>
  8575.                         
  8576.                   </td>
  8577.                      
  8578.                </tr>
  8579.                   
  8580.             </table>
  8581.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8582.                      
  8583.                <method namespace="Classes" class="THandleStream">Seek</method> returns the new value of the Position property, the new current position in the resource.</para>
  8584.          </comments>
  8585.       </member>
  8586.       <member name="M:Classes.Classes.Create">
  8587.          <summary>
  8588.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8589.                      
  8590.                <method namespace="Classes" class="THandleStream">Create</method>s an instance of <method namespace="Classes" class="THandleStream">THandleStream</method>.</para>
  8591.          </summary>
  8592.          <comments>
  8593.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="THandleStream">Create</method> to instantiate a <method namespace="Classes" class="THandleStream">THandleStream</method> for a given handle.</para>
  8594.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The handle must be obtained by opening or creating the resource in the appropriate mode. For example, to create a handle stream for reading from a file, obtain the file handle by opening the file with an fmOpenRead or fmOpenReadWrite mode. To create a handle stream for writing to a file, obtain the file handle by opening the file with an fmOpenWrite or fmOpenReadWrite mode.</para>
  8595.          </comments>
  8596.       </member>
  8597.       <member name="M:Classes.Classes.SetSize">
  8598.          <summary>
  8599.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the end of file marker to truncate the resource at the indicated position.</para>
  8600.          </summary>
  8601.          <comments>
  8602.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="THandleStream">SetSize</method> to set the size of the resource. <method namespace="Classes" class="THandleStream">SetSize</method> calls Seek to go to the indicated position, and then writes an end of file marker. If the size of the resource can not be changed, an exception is raised. For example, calling <method namespace="Classes" class="THandleStream">SetSize</method> for a file handle that was opened in fmOpenRead mode will raise an exception.</para>
  8603.          </comments>
  8604.       </member>
  8605.       <member name="P:Classes.Classes.Handle">
  8606.          <summary>
  8607.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the handle for the communications resource the stream reads from and writes to.</para>
  8608.          </summary>
  8609.          <comments>
  8610.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="Classes" class="THandleStream">Handle</property> to get the handle for file management functions. To read from or write to the resource, use the methods of the T<property namespace="Classes" class="THandleStream">Handle</property>Stream object.</para>
  8611.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8612.                      
  8613.                <property namespace="Classes" class="THandleStream">Handle</property> is a read-only property. The handle property cannot be changed to allow the handle stream to switch from reading to writing or vice versa. For example, to change from a file handle that is opened in read-only mode to one that is opened in write mode:</para>
  8614.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1Free the stream object.</para>
  8615.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2Call FileClose to close the file.</para>
  8616.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">3Reopen the file in write mode, and use the handle to create a new instance of a handle stream. Alternately, open a TFileStream object for the file, specifying a write mode for the stream.</para>
  8617.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8618.                      
  8619.                <para>Do not call the FileClose function on the <property namespace="Classes" class="THandleStream">Handle</property> until after the T<property namespace="Classes" class="THandleStream">Handle</property>Stream object has been destroyed.</para>
  8620.                   
  8621.             </note>
  8622.          </comments>
  8623.       </member>
  8624.       <member name="T:Classes.TFileStream">
  8625.          <summary>
  8626.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8627.                
  8628.                <class namespace="Classes">TFileStream</class> enables applications to read from and write to a file on disk.</para>
  8629.          </summary>
  8630.          <comments>
  8631.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="Classes">TFileStream</class> to access the information in disk files. <class namespace="Classes">TFileStream</class> will open a named file and provide methods to read from or write to it. If an application already has a handle to the file, opened in the appropriate mode, use THandleStream instead.</para>
  8632.          </comments>
  8633.       </member>
  8634.       <member name="M:Classes.Classes.Create">
  8635.          <summary>
  8636.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8637.                      
  8638.                <method namespace="Classes" class="TFileStream">Create</method>s an instance of <method namespace="Classes" class="TFileStream">TFileStream</method>.</para>
  8639.          </summary>
  8640.          <comments>
  8641.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TFileStream">Create</method> to instantiate a file stream for reading from or writing to the named file. Specify the name of the file and the way the file should be opened as parameters.</para>
  8642.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Mode parameter indicates how the file is to be opened. The Mode parameter consists of an open mode and (possibly) a share mode or'ed together. The open mode must be one of the following values:</para>
  8643.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8644.                      
  8645.                <tr>
  8646.                         
  8647.                   <th>Value</th>
  8648.                         
  8649.                   <th>Meaning</th>
  8650.                      
  8651.                </tr>
  8652.                      
  8653.                <tr>
  8654.                         
  8655.                   <td>
  8656.                            
  8657.                      <para>fmCreate</para>
  8658.                         
  8659.                   </td>
  8660.                         
  8661.                   <td>
  8662.                            
  8663.                      <para>Create a file with the given name. If a file with the given name exists, open the file in write mode.</para>
  8664.                         
  8665.                   </td>
  8666.                      
  8667.                </tr>
  8668.                      
  8669.                <tr>
  8670.                         
  8671.                   <td>
  8672.                            
  8673.                      <para>fmOpenRead</para>
  8674.                         
  8675.                   </td>
  8676.                         
  8677.                   <td>
  8678.                            
  8679.                      <para>Open the file for reading only.</para>
  8680.                         
  8681.                   </td>
  8682.                      
  8683.                </tr>
  8684.                      
  8685.                <tr>
  8686.                         
  8687.                   <td>
  8688.                            
  8689.                      <para>fmOpenWrite</para>
  8690.                         
  8691.                   </td>
  8692.                         
  8693.                   <td>
  8694.                            
  8695.                      <para>Open the file for writing only. Writing to the file completely replaces the current contents.</para>
  8696.                         
  8697.                   </td>
  8698.                      
  8699.                </tr>
  8700.                      
  8701.                <tr>
  8702.                         
  8703.                   <td>
  8704.                            
  8705.                      <para>fmOpenReadWrite</para>
  8706.                         
  8707.                   </td>
  8708.                         
  8709.                   <td>
  8710.                            
  8711.                      <para>Open the file to modify the current contents rather than replace them.</para>
  8712.                         
  8713.                   </td>
  8714.                      
  8715.                </tr>
  8716.                      
  8717.                <tr>
  8718.                         
  8719.                   <td>
  8720.                            
  8721.                      <para>fmShareCompat</para>
  8722.                         
  8723.                   </td>
  8724.                         
  8725.                   <td>
  8726.                            
  8727.                      <para>Sharing is compatible with the way FCBs are opened.</para>
  8728.                         
  8729.                   </td>
  8730.                      
  8731.                </tr>
  8732.                      
  8733.                <tr>
  8734.                         
  8735.                   <td>
  8736.                            
  8737.                      <para>fmShareExclusive</para>
  8738.                         
  8739.                   </td>
  8740.                         
  8741.                   <td>
  8742.                            
  8743.                      <para>Other applications can not open the file for any reason.</para>
  8744.                         
  8745.                   </td>
  8746.                      
  8747.                </tr>
  8748.                      
  8749.                <tr>
  8750.                         
  8751.                   <td>
  8752.                            
  8753.                      <para>fmShareDenyWrite</para>
  8754.                         
  8755.                   </td>
  8756.                         
  8757.                   <td>
  8758.                            
  8759.                      <para>Other applications can open the file for reading but not for writing.</para>
  8760.                         
  8761.                   </td>
  8762.                      
  8763.                </tr>
  8764.                      
  8765.                <tr>
  8766.                         
  8767.                   <td>
  8768.                            
  8769.                      <para>fmShareDenyRead</para>
  8770.                         
  8771.                   </td>
  8772.                         
  8773.                   <td>
  8774.                            
  8775.                      <para>Other applications can open the file for writing but not for reading.</para>
  8776.                         
  8777.                   </td>
  8778.                      
  8779.                </tr>
  8780.                      
  8781.                <tr>
  8782.                         
  8783.                   <td>
  8784.                            
  8785.                      <para>fmShareDenyNone</para>
  8786.                         
  8787.                   </td>
  8788.                         
  8789.                   <td>
  8790.                            
  8791.                      <para>No attempt is made to prevent other applications from reading from or writing to the file.</para>
  8792.                         
  8793.                   </td>
  8794.                      
  8795.                </tr>
  8796.                   
  8797.             </table>
  8798.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The share mode must be one of the following values:</para>
  8799.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8800.                      
  8801.                <tr>
  8802.                         
  8803.                   <th>Value</th>
  8804.                         
  8805.                   <th>Meaning</th>
  8806.                      
  8807.                </tr>
  8808.                      
  8809.                <tr>
  8810.                         
  8811.                   <td>
  8812.                            
  8813.                      <para>fmShareCompat</para>
  8814.                         
  8815.                   </td>
  8816.                         
  8817.                   <td>
  8818.                            
  8819.                      <para>Sharing is compatible with the way FCBs are opened.</para>
  8820.                         
  8821.                   </td>
  8822.                      
  8823.                </tr>
  8824.                      
  8825.                <tr>
  8826.                         
  8827.                   <td>
  8828.                            
  8829.                      <para>fmShareExclusive</para>
  8830.                         
  8831.                   </td>
  8832.                         
  8833.                   <td>
  8834.                            
  8835.                      <para>Other applications can not open the file for any reason.</para>
  8836.                         
  8837.                   </td>
  8838.                      
  8839.                </tr>
  8840.                      
  8841.                <tr>
  8842.                         
  8843.                   <td>
  8844.                            
  8845.                      <para>fmShareDenyWrite</para>
  8846.                         
  8847.                   </td>
  8848.                         
  8849.                   <td>
  8850.                            
  8851.                      <para>Other applications can open the file for reading but not for writing.</para>
  8852.                         
  8853.                   </td>
  8854.                      
  8855.                </tr>
  8856.                      
  8857.                <tr>
  8858.                         
  8859.                   <td>
  8860.                            
  8861.                      <para>fmShareDenyRead</para>
  8862.                         
  8863.                   </td>
  8864.                         
  8865.                   <td>
  8866.                            
  8867.                      <para>Other applications can open the file for writing but not for reading.</para>
  8868.                         
  8869.                   </td>
  8870.                      
  8871.                </tr>
  8872.                      
  8873.                <tr>
  8874.                         
  8875.                   <td>
  8876.                            
  8877.                      <para>fmShareDenyNone</para>
  8878.                         
  8879.                   </td>
  8880.                         
  8881.                   <td>
  8882.                            
  8883.                      <para>No attempt is made to prevent other applications from reading from or writing to the file.</para>
  8884.                         
  8885.                   </td>
  8886.                      
  8887.                </tr>
  8888.                   
  8889.             </table>
  8890.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Rights parameter indicates the permission bits with which to create the file on Linux when Mode is fm<method namespace="Classes" class="TFileStream">Create</method>. Rights is ignored when used on the Windows platform.</para>
  8891.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the file can not be opened, <method namespace="Classes" class="TFileStream">Create</method> raises an exception.</para>
  8892.          </comments>
  8893.       </member>
  8894.       <member name="M:Classes.Classes.Destroy">
  8895.          <summary>
  8896.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8897.                      
  8898.                <method namespace="Classes" class="TFileStream">Destroy</method>s an instance of <method namespace="Classes" class="TFileStream">TFileStream</method>.</para>
  8899.          </summary>
  8900.          <comments>
  8901.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TFileStream">Destroy</method> directly in an application. Instead, call Free, which checks that the <method namespace="Classes" class="TFileStream">TFileStream</method> reference is not nil and only then calls <method namespace="Classes" class="TFileStream">Destroy</method>.</para>
  8902.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8903.                      
  8904.                <method namespace="Classes" class="TFileStream">Destroy</method> closes the Handle for the file stream before freeing the object.</para>
  8905.          </comments>
  8906.       </member>
  8907.       <member name="T:Classes.TCustomMemoryStream">
  8908.          <summary>
  8909.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8910.                
  8911.                <class namespace="classes">TCustomMemoryStream</class> is an abstract base class used as the common ancestor for memory streams.</para>
  8912.          </summary>
  8913.          <comments>
  8914.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="classes">TCustomMemoryStream</class> as a base class when defining a stream object that can transfer data that is stored in memory. Memory streams are useful for providing file-like access to data that is stored in a less accessible medium. Data can be moved to an internal memory buffer when the memory stream is created. After manipulating the data in a memory stream, the data can be written out to its actual storage medium when the memory stream is destroyed.</para>
  8915.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not instantiate an instance of <class namespace="classes">TCustomMemoryStream</class>. It is an abstract class that implements behavior common to all memory streams. To work with an instance of a memory stream, use one of the descendants of <class namespace="classes">TCustomMemoryStream</class>, such as TMemoryStream or TResourceStream.</para>
  8916.          </comments>
  8917.       </member>
  8918.       <member name="M:Classes.Classes.Read">
  8919.          <summary>
  8920.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8921.                      
  8922.                <method namespace="classes" class="TCustomMemoryStream">Read</method>s up to Count bytes from the memory stream into Buffer and advances the current position of the stream by the number of bytes read.</para>
  8923.          </summary>
  8924.          <comments>
  8925.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="classes" class="TCustomMemoryStream">Read</method> to read the contents of the memory stream into a buffer, starting at the current position. <method namespace="classes" class="TCustomMemoryStream">Read</method> will read up to Count bytes from the current position in Memory. If Count bytes extends beyond the end of the memory buffer, <method namespace="classes" class="TCustomMemoryStream">Read</method> will only transfer the data up to the end of the associated memory buffer. <method namespace="classes" class="TCustomMemoryStream">Read</method> returns the number of bytes actually transferred to Buffer, and advances the current position accordingly. If the return value is less than Count, it means that reading reached the end of the stream data.</para>
  8926.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">All the other data-reading methods of the memory stream (<method namespace="classes" class="TCustomMemoryStream">Read</method>Buffer, <method namespace="classes" class="TCustomMemoryStream">Read</method>Component) call <method namespace="classes" class="TCustomMemoryStream">Read</method> to do the actual reading.</para>
  8927.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8928.                      
  8929.                <para>
  8930.                         
  8931.                   <method namespace="classes" class="TCustomMemoryStream">Read</method> treats Count as an upper bound. The <method namespace="classes" class="TCustomMemoryStream">Read</method>Buffer method, by contrast, raises an exception if Count bytes cannot be read.</para>
  8932.                   
  8933.             </note>
  8934.          </comments>
  8935.       </member>
  8936.       <member name="M:Classes.Classes.Seek">
  8937.          <summary>
  8938.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Moves the current position of the stream by Offset bytes, relative to the origin specified by Origin.</para>
  8939.          </summary>
  8940.          <comments>
  8941.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="classes" class="TCustomMemoryStream">Seek</method> to move the current position within the memory stream by the indicated offset. <method namespace="classes" class="TCustomMemoryStream">Seek</method> allows an application to read from or write to a particular location within the Memory associated with the memory stream.</para>
  8942.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If Offset is a negative number, the seek is backward from the specified origin. The following table shows the different values of Origin and their meanings for seeking.</para>
  8943.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  8944.                      
  8945.                <tr>
  8946.                         
  8947.                   <th>Value</th>
  8948.                         
  8949.                   <th>Meaning</th>
  8950.                      
  8951.                </tr>
  8952.                      
  8953.                <tr>
  8954.                         
  8955.                   <td>
  8956.                            
  8957.                      <para>soFromBeginning</para>
  8958.                         
  8959.                   </td>
  8960.                         
  8961.                   <td>
  8962.                            
  8963.                      <para>Offset is from the beginning of Memory. Seek moves to the position Offset. Offset must be >= 0.</para>
  8964.                         
  8965.                   </td>
  8966.                      
  8967.                </tr>
  8968.                      
  8969.                <tr>
  8970.                         
  8971.                   <td>
  8972.                            
  8973.                      <para>soFromCurrent</para>
  8974.                         
  8975.                   </td>
  8976.                         
  8977.                   <td>
  8978.                            
  8979.                      <para>Offset is from the current position. Seek moves to Position + Offset.</para>
  8980.                         
  8981.                   </td>
  8982.                      
  8983.                </tr>
  8984.                      
  8985.                <tr>
  8986.                         
  8987.                   <td>
  8988.                            
  8989.                      <para>soFromEnd</para>
  8990.                         
  8991.                   </td>
  8992.                         
  8993.                   <td>
  8994.                            
  8995.                      <para>Offset is from the end of Memory. Offset must be <= 0 to indicate a number of bytes before the end of the memory buffer.</para>
  8996.                         
  8997.                   </td>
  8998.                      
  8999.                </tr>
  9000.                   
  9001.             </table>
  9002.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9003.                      
  9004.                <method namespace="classes" class="TCustomMemoryStream">Seek</method> returns the new value of the Position property.</para>
  9005.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9006.                      
  9007.                <para>
  9008.                         
  9009.                   <method namespace="classes" class="TCustomMemoryStream">Seek</method> does no error checking on the value provided for Offset. Do not call seek with an offset that would move the current position less than 0 (before the start of Memory) or greater than Size (beyond the end of the memory buffer).</para>
  9010.                   
  9011.             </note>
  9012.          </comments>
  9013.       </member>
  9014.       <member name="M:Classes.Classes.SetPointer">
  9015.          <summary>
  9016.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Replaces the memory buffer associated with the memory stream.</para>
  9017.          </summary>
  9018.          <comments>
  9019.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="classes" class="TCustomMemoryStream">SetPointer</method> to set the internal memory buffer, Memory, to be the value passed in by Ptr. Size is the number of bytes Ptr points to.</para>
  9020.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendants of <method namespace="classes" class="TCustomMemoryStream">TCustomMemoryStream</method> should use <method namespace="classes" class="TCustomMemoryStream">SetPointer</method> to associate the memory stream with the memory buffer that holds the data for the memory stream.</para>
  9021.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9022.                      
  9023.                <para>
  9024.                         
  9025.                   <method namespace="classes" class="TCustomMemoryStream">SetPointer</method> does not free the existing value of Memory, if any, when it replaces the memory buffer. Descendants of <method namespace="classes" class="TCustomMemoryStream">TCustomMemoryStream</method> that use <method namespace="classes" class="TCustomMemoryStream">SetPointer</method> to replace the stream's memory pool should free the memory pointed to by the Memory property before calling <method namespace="classes" class="TCustomMemoryStream">SetPointer</method> to replace the memory buffer.</para>
  9026.                   
  9027.             </note>
  9028.          </comments>
  9029.       </member>
  9030.       <member name="M:Classes.Classes.SaveToStream">
  9031.          <summary>
  9032.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the entire contents of the memory stream to the stream object specified by Stream.</para>
  9033.          </summary>
  9034.          <comments>
  9035.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="classes" class="TCustomMemoryStream">SaveToStream</method> to copy data that is stored in memory into another storage medium. <method namespace="classes" class="TCustomMemoryStream">SaveToStream</method> writes the entire contents of Memory into the indicated stream object, starting at the current position in the stream that was passed as a parameter.</para>
  9036.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the Stream parameter is a TFileStream object, <method namespace="classes" class="TCustomMemoryStream">SaveToStream</method> does much the same thing as the SaveToFile method. However, <method namespace="classes" class="TCustomMemoryStream">SaveToStream</method> writes to the current position in the target stream. Thus, for example, <method namespace="classes" class="TCustomMemoryStream">SaveToStream</method> can be used to append the contents of Memory to a file stream, rather than replace the contents of the file the way SaveToFile does.</para>
  9037.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the entire contents of the memory stream cannot be written to the target stream, <method namespace="classes" class="TCustomMemoryStream">SaveToStream</method> raises an EWriteError exception.</para>
  9038.          </comments>
  9039.       </member>
  9040.       <member name="M:Classes.Classes.SaveToFile">
  9041.          <summary>
  9042.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the entire contents of the memory stream to the file with a given file name.</para>
  9043.          </summary>
  9044.          <comments>
  9045.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="classes" class="TCustomMemoryStream">SaveToFile</method> to write the contents of Memory to a file. <method namespace="classes" class="TCustomMemoryStream">SaveToFile</method> allows an application to write out the contents of the memory stream without having to explicitly create and free a file stream object. If the named file cannot be created or opened, <method namespace="classes" class="TCustomMemoryStream">SaveToFile</method> raises an EFCreateError exception.</para>
  9046.          </comments>
  9047.       </member>
  9048.       <member name="P:Classes.Classes.Memory">
  9049.          <summary>
  9050.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides direct access to the memory pool allocated for the memory stream. </para>
  9051.          </summary>
  9052.          <comments>
  9053.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="classes" class="TCustomMemoryStream">Memory</property> to get access to the memory for the stream. The memory for the stream holds the data that is being transferred by means of the memory stream. Size is the number of bytes of <property namespace="classes" class="TCustomMemoryStream">Memory</property> that were allocated, and Position is the current position within <property namespace="classes" class="TCustomMemoryStream">Memory</property>.</para>
  9054.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9055.                      
  9056.                <para>
  9057.                         
  9058.                   <property namespace="classes" class="TCustomMemoryStream">Memory</property> is a read-only property. <property namespace="classes" class="TCustomMemoryStream">Memory</property> can be used to change the contents of the memory, but to set the actual memory the stream works with, descendants of TCustom<property namespace="classes" class="TCustomMemoryStream">Memory</property>Stream must assign a pointer to a memory buffer by calling the SetPointer method.</para>
  9059.                   
  9060.             </note>
  9061.          </comments>
  9062.       </member>
  9063.       <member name="T:Classes.TMemoryStream">
  9064.          <summary>
  9065.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9066.                
  9067.                <class namespace="Classes">TMemoryStream</class> is a stream that stores its data in dynamic memory.</para>
  9068.          </summary>
  9069.          <comments>
  9070.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="Classes">TMemoryStream</class> to store data in a dynamic memory buffer that is enhanced with file-like access capabilities. <class namespace="Classes">TMemoryStream</class> provides the general I/O capabilities of a stream object while introducing methods and properties to manage a dynamic memory buffer.</para>
  9071.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Memory streams are useful as intermediary objects that can hold information as well as read it from or write it to another storage medium. They provide a useful format for comparing the contents of streams, or for manipulating data that is stored in a less accessible medium.</para>
  9072.          </comments>
  9073.       </member>
  9074.       <member name="M:Classes.Classes.Write">
  9075.          <summary>
  9076.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9077.                      
  9078.                <method namespace="Classes" class="TMemoryStream">Write</method>s Count bytes from Buffer to the current position in the memory buffer and updates the current position by Count bytes.</para>
  9079.          </summary>
  9080.          <comments>
  9081.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TMemoryStream">Write</method> to insert Count bytes into the memory buffer of the memory stream, starting at the current position. <method namespace="Classes" class="TMemoryStream">Write</method> will increase the size of the memory buffer, if necessary, to accommodate the data being written in. If the current position is not the end of the memory buffer, <method namespace="Classes" class="TMemoryStream">Write</method> will overwrite the data following the current position.</para>
  9082.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9083.                      
  9084.                <method namespace="Classes" class="TMemoryStream">Write</method> updates the Size property to Position + Count, and sets the Position property to the new value of Size. Thus, any data that was stored in the memory stream in the Count bytes after the current position is lost when calling <method namespace="Classes" class="TMemoryStream">Write</method>.</para>
  9085.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9086.                      
  9087.                <method namespace="Classes" class="TMemoryStream">Write</method> always writes the Count bytes in the Buffer, unless there is a memory failure. Thus, for <method namespace="Classes" class="TMemoryStream">TMemoryStream</method>, <method namespace="Classes" class="TMemoryStream">Write</method> is equivalent to the <method namespace="Classes" class="TMemoryStream">Write</method>Buffer method.</para>
  9088.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">All other data-writing methods of a memory stream (<method namespace="Classes" class="TMemoryStream">Write</method>Buffer, <method namespace="Classes" class="TMemoryStream">Write</method>Component) call <method namespace="Classes" class="TMemoryStream">Write</method> to do the actual writing.</para>
  9089.          </comments>
  9090.       </member>
  9091.       <member name="M:Classes.Classes.Clear">
  9092.          <summary>
  9093.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Frees the memory buffer, discarding all data associated with the memory stream.</para>
  9094.          </summary>
  9095.          <comments>
  9096.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TMemoryStream">Clear</method> to empty the memory buffer for the memory stream and free all associated memory. In addition to freeing the memory associated with the memory buffer, <method namespace="Classes" class="TMemoryStream">Clear</method>
  9097.                   
  9098.             </para>
  9099.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the Memory property to nil (Delphi) or NULL (C++).</para>
  9100.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the Position property to 0.</para>
  9101.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the Size property to 0.</para>
  9102.          </comments>
  9103.       </member>
  9104.       <member name="M:Classes.Classes.LoadFromStream">
  9105.          <summary>
  9106.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Loads the entire contents of a stream into the memory buffer.</para>
  9107.          </summary>
  9108.          <comments>
  9109.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TMemoryStream">LoadFromStream</method> to fill the memory stream with the contents of the stream specified by the Stream parameter. <method namespace="Classes" class="TMemoryStream">LoadFromStream</method> always sets the Position of the source stream to 0, before streaming in the number of bytes indicated by the source stream's Size property.</para>
  9110.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9111.                      
  9112.                <method namespace="Classes" class="TMemoryStream">LoadFromStream</method> reallocates the memory buffer so that the contents of the source stream will exactly fit. It sets the Size property accordingly, and then reads the entire contents of the source stream into the memory buffer. Thus, <method namespace="Classes" class="TMemoryStream">LoadFromStream</method> will discard any pre-existing data stored in the memory stream.</para>
  9113.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the source stream is a TFileStream object, <method namespace="Classes" class="TMemoryStream">LoadFromStream</method> does the same thing as LoadFromFile, except that the application must create and free the TFileStream object. <method namespace="Classes" class="TMemoryStream">LoadFromStream</method> also allows applications to fill a memory stream object from other types of stream objects.</para>
  9114.          </comments>
  9115.       </member>
  9116.       <member name="M:Classes.Classes.LoadFromFile">
  9117.          <summary>
  9118.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Loads the entire contents of a file into the memory buffer.</para>
  9119.          </summary>
  9120.          <comments>
  9121.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TMemoryStream">LoadFromFile</method> to fill the memory stream with the contents of a file. Pass the name of the file as the FileName parameter. <method namespace="Classes" class="TMemoryStream">LoadFromFile</method> allows an application to read the contents of a file into the memory stream without having to explicitly create and free a file stream object.</para>
  9122.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9123.                      
  9124.                <method namespace="Classes" class="TMemoryStream">LoadFromFile</method> reallocates the memory buffer so that the contents of the file will exactly fit. It sets the Size property accordingly, and then reads the entire contents of the file into the memory buffer. Thus, <method namespace="Classes" class="TMemoryStream">LoadFromFile</method> will discard any pre-existing data stored in the memory stream.</para>
  9125.          </comments>
  9126.       </member>
  9127.       <member name="M:Classes.Classes.SetSize">
  9128.          <summary>
  9129.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the Size property of the memory stream.</para>
  9130.          </summary>
  9131.          <comments>
  9132.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TMemoryStream">SetSize</method> to set the Size of a memory stream before filling it with data. <method namespace="Classes" class="TMemoryStream">SetSize</method> allocates the memory buffer to hold NewSize bytes, preserving as much of the existing data as possible.</para>
  9133.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TMemoryStream">SetSize</method> before filling the memory buffer with data from various sources, or from a portion of another stream. If the intended contents of the memory stream is exactly the same as the contents of another stream or file, use LoadFromStream or LoadFromFile instead.</para>
  9134.          </comments>
  9135.       </member>
  9136.       <member name="M:Classes.Classes.Destroy">
  9137.          <summary>
  9138.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9139.                      
  9140.                <method namespace="Classes" class="TMemoryStream">Destroy</method>s an instance of <method namespace="Classes" class="TMemoryStream">TMemoryStream</method>.</para>
  9141.          </summary>
  9142.          <comments>
  9143.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TMemoryStream">Destroy</method> directly in an application. Instead, call Free. Free verifies that the <method namespace="Classes" class="TMemoryStream">TMemoryStream</method> reference is not nil, and only then calls <method namespace="Classes" class="TMemoryStream">Destroy</method>.</para>
  9144.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9145.                      
  9146.                <method namespace="Classes" class="TMemoryStream">Destroy</method> a <method namespace="Classes" class="TMemoryStream">TMemoryStream</method> object when it is no longer needed to store or write data. <method namespace="Classes" class="TMemoryStream">Destroy</method> calls Clear to free the memory buffer before calling the inherited destructor.</para>
  9147.          </comments>
  9148.       </member>
  9149.       <member name="T:Classes.TStringStream">
  9150.          <summary>
  9151.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9152.                
  9153.                <class namespace="Classes">TStringStream</class> provides file-like access to information stored as a long string.</para>
  9154.          </summary>
  9155.          <comments>
  9156.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="Classes">TStringStream</class> to store data as a long string enhanced with I/O capabilities. <class namespace="Classes">TStringStream</class> is useful as an intermediary object that can hold text as well as read it from or write it to another storage medium. <class namespace="Classes">TStringStream</class> provides a mechanism for manipulating text that is obtained from a less accessible medium.</para>
  9157.          </comments>
  9158.       </member>
  9159.       <member name="M:Classes.Classes.Read">
  9160.          <summary>
  9161.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9162.                      
  9163.                <method namespace="Classes" class="TStringStream">Read</method>s up to Count bytes from the string stream into Buffer, and advances the current position of the stream by the number of bytes read.</para>
  9164.          </summary>
  9165.          <comments>
  9166.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStringStream">Read</method> to read the contents of the string stream into a buffer, starting at the current position. If Count extends beyond the end of the DataString, <method namespace="Classes" class="TStringStream">Read</method> will only transfer the characters up to the end of the DataString, and advances the current position accordingly. If the return value is less than Count, it means that the end of the string was read.</para>
  9167.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TStringStream">Read</method>Buffer method and <method namespace="Classes" class="TStringStream">Read</method>Component method call <method namespace="Classes" class="TStringStream">Read</method> to do the actual reading.</para>
  9168.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9169.                      
  9170.                <para>
  9171.                         
  9172.                   <method namespace="Classes" class="TStringStream">Read</method> treats Count as an upper bound. The <method namespace="Classes" class="TStringStream">Read</method>Buffer method, by contrast, raises an exception if Count bytes cannot be read.</para>
  9173.                   
  9174.             </note>
  9175.          </comments>
  9176.       </member>
  9177.       <member name="M:Classes.Classes.ReadString">
  9178.          <summary>
  9179.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns a string that consists of up to Count bytes from the current position in the string stream, and advances the current position of the stream by the number of bytes read.</para>
  9180.          </summary>
  9181.          <comments>
  9182.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use Read to read the contents of the string stream into a string, starting at the current position. If Count extends beyond the end of the DataString, the returned string will only contain the characters up to the end of DataString, and the current position is advanced accordingly.</para>
  9183.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9184.                      
  9185.                <para>
  9186.                         
  9187.                   <method namespace="Classes" class="TStringStream">ReadString</method> does the same thing as Read, except that it returns a string rather than filling a buffer.</para>
  9188.                   
  9189.             </note>
  9190.          </comments>
  9191.       </member>
  9192.       <member name="M:Classes.Classes.Seek">
  9193.          <summary>
  9194.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Moves the current position in the stream by Offset bytes, relative to a specified origin.</para>
  9195.          </summary>
  9196.          <comments>
  9197.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStringStream">Seek</method> to move the current position within the string stream by the indicated offset. <method namespace="Classes" class="TStringStream">Seek</method> allows an application to read from or write to a particular location within the DataString.</para>
  9198.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If Offset is a negative number, the seek is backwards from the specified origin. The following table shows the different values of Origin and their meanings for seeking.</para>
  9199.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9200.                      
  9201.                <tr>
  9202.                         
  9203.                   <th>Value</th>
  9204.                         
  9205.                   <th>Meaning</th>
  9206.                      
  9207.                </tr>
  9208.                      
  9209.                <tr>
  9210.                         
  9211.                   <td>
  9212.                            
  9213.                      <para>soFromBeginning</para>
  9214.                         
  9215.                   </td>
  9216.                         
  9217.                   <td>
  9218.                            
  9219.                      <para>Offset is from the beginning of DataString. Seek moves to the position Offset. Offset must be >= 0.</para>
  9220.                         
  9221.                   </td>
  9222.                      
  9223.                </tr>
  9224.                      
  9225.                <tr>
  9226.                         
  9227.                   <td>
  9228.                            
  9229.                      <para>soFromCurrent</para>
  9230.                         
  9231.                   </td>
  9232.                         
  9233.                   <td>
  9234.                            
  9235.                      <para>Offset is from the current position. Seek moves to Position + Offset.</para>
  9236.                         
  9237.                   </td>
  9238.                      
  9239.                </tr>
  9240.                      
  9241.                <tr>
  9242.                         
  9243.                   <td>
  9244.                            
  9245.                      <para>soFromEnd</para>
  9246.                         
  9247.                   </td>
  9248.                         
  9249.                   <td>
  9250.                            
  9251.                      <para>Offset is from the end of Memory. Offset must be <= 0 to indicate a number of bytes before the end of the DataString.</para>
  9252.                         
  9253.                   </td>
  9254.                      
  9255.                </tr>
  9256.                   
  9257.             </table>
  9258.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9259.                      
  9260.                <method namespace="Classes" class="TStringStream">Seek</method> returns the new value of the Position property.</para>
  9261.          </comments>
  9262.       </member>
  9263.       <member name="M:Classes.Classes.Write">
  9264.          <summary>
  9265.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9266.                      
  9267.                <method namespace="Classes" class="TStringStream">Write</method> writes Count bytes from Buffer to the current position in the string stream and updates the current position by Count bytes.</para>
  9268.          </summary>
  9269.          <comments>
  9270.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStringStream">Write</method> to replace the end of the string from the current position on with the first Count bytes of Buffer. <method namespace="Classes" class="TStringStream">Write</method> will change the Size property to reflect the new length of the DataString.</para>
  9271.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9272.                      
  9273.                <method namespace="Classes" class="TStringStream">Write</method> always writes Count bytes from Buffer, even if a null character is included as one of the Count bytes. Thus, <method namespace="Classes" class="TStringStream">Write</method> is equivalent to the <method namespace="Classes" class="TStringStream">Write</method>Buffer method.</para>
  9274.          </comments>
  9275.       </member>
  9276.       <member name="M:Classes.Classes.Create">
  9277.          <summary>
  9278.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9279.                      
  9280.                <method namespace="Classes" class="TStringStream">Create</method>s an instance of <method namespace="Classes" class="TStringStream">TStringStream</method>.</para>
  9281.          </summary>
  9282.          <comments>
  9283.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStringStream">Create</method> to instantiate a <method namespace="Classes" class="TStringStream">TStringStream</method> object. <method namespace="Classes" class="TStringStream">Create</method> initializes the DataString property to the AString parameter.</para>
  9284.          </comments>
  9285.       </member>
  9286.       <member name="M:Classes.Classes.WriteString">
  9287.          <summary>
  9288.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Concatenates a specified string to the current position in the string stream, and updates the current position accordingly.</para>
  9289.          </summary>
  9290.          <comments>
  9291.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TStringStream">WriteString</method> to replace the end of the string from the current position on with the string specified by the AString parameter. <method namespace="Classes" class="TStringStream">WriteString</method> changes the Size property to reflect the new length of the DataString.</para>
  9292.          </comments>
  9293.       </member>
  9294.       <member name="P:Classes.Classes.DataString">
  9295.          <summary>
  9296.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides direct access to the string that stores the text represented by the <property namespace="Classes" class="TStringStream">TStringStream</property> object.</para>
  9297.          </summary>
  9298.          <comments>
  9299.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TStringStream">DataString</property> to get access to the text of the stream. The text represents the information that is being transferred by means of the string stream. Size is the number of bytes in the string, and Position is the current position within <property namespace="Classes" class="TStringStream">DataString</property>.</para>
  9300.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9301.                      
  9302.                <para>
  9303.                         
  9304.                   <property namespace="Classes" class="TStringStream">DataString</property> is a read-only property. <property namespace="Classes" class="TStringStream">DataString</property> can be used to change the contents of the string, but applications can't change the <property namespace="Classes" class="TStringStream">DataString</property> itself.</para>
  9305.                   
  9306.             </note>
  9307.          </comments>
  9308.       </member>
  9309.       <member name="T:Classes.TResourceStream">
  9310.          <summary>
  9311.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9312.                
  9313.                <class namespace="Classes">TResourceStream</class> is a memory stream that provides access to the compiled resources in an application. </para>
  9314.          </summary>
  9315.          <comments>
  9316.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="Classes">TResourceStream</class> to read the resources of an application. An instance of <class namespace="Classes">TResourceStream</class> holds the value of a single resource in a memory buffer where it is accessible to the application.</para>
  9317.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The global ReadComponentRes function uses <class namespace="Classes">TResourceStream</class> to access the compiled resources used by the application.</para>
  9318.          </comments>
  9319.       </member>
  9320.       <member name="M:Classes.Classes.Write">
  9321.          <summary>
  9322.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Overrides the inherited method to raise an exception when an attempt is made to write the resource back to the application.</para>
  9323.          </summary>
  9324.          <comments>
  9325.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications should not use a <method namespace="Classes" class="TResourceStream">TResourceStream</method> to write the resources of the running application. <method namespace="Classes" class="TResourceStream">Write</method> overrides the inherited method to raise an EStreamError exception when an application tries to write to the application's resources.</para>
  9326.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As all other data-writing methods of <method namespace="Classes" class="TResourceStream">TResourceStream</method> (<method namespace="Classes" class="TResourceStream">Write</method>Buffer, <method namespace="Classes" class="TResourceStream">Write</method>Component) call <method namespace="Classes" class="TResourceStream">Write</method> to do the actual writing, calling any of the data-writing methods of <method namespace="Classes" class="TResourceStream">TResourceStream</method> will raise an exception.</para>
  9327.          </comments>
  9328.       </member>
  9329.       <member name="M:Classes.Classes.Create">
  9330.          <summary>
  9331.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9332.                      
  9333.                <method namespace="Classes" class="TResourceStream">Create</method>s an instance of <method namespace="Classes" class="TResourceStream">TResourceStream</method> associated with a particular resource name and type.</para>
  9334.          </summary>
  9335.          <comments>
  9336.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TResourceStream">Create</method> to instantiate a <method namespace="Classes" class="TResourceStream">TResourceStream</method>, passing in parameters that identify the resource in a specified instance. <method namespace="Classes" class="TResourceStream">TResourceStream</method> finds the resource data and loads it into the Memory buffer for the <method namespace="Classes" class="TResourceStream">TResourceStream</method>.</para>
  9337.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Instance parameter is the instance handle associated with the executable or shared library that contains the resource.</para>
  9338.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">In the first constructor syntax, the ResName is the string associated with the resource in the .rc file that was compiled with the application. If the resource is associated with an integer ID rather than a string, use the string representation of the integer after a pound sign. Thus, for example, a resource with an integer identifier of 128 be identified by a ResName of #128.</para>
  9339.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9340.                      
  9341.                <para>Specifying resources by ID requires less memory than specifying resources by name.</para>
  9342.                   
  9343.             </note>
  9344.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The ResType parameter is a string identifying the type of the resource. Applications can define their own resource types and identify them by name in the .rc file. In addition, there are a number of predefined resource types (which reflect Windows resource types). To identify a resource that is one of the predefined resource types, set ResType to the appropriate value from the following table:</para>
  9345.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9346.                      
  9347.                <tr>
  9348.                         
  9349.                   <th>ResType</th>
  9350.                         
  9351.                   <th>Type of resource</th>
  9352.                      
  9353.                </tr>
  9354.                      
  9355.                <tr>
  9356.                         
  9357.                   <td>
  9358.                            
  9359.                      <para>RT_ACCELERATOR</para>
  9360.                         
  9361.                   </td>
  9362.                         
  9363.                   <td>
  9364.                            
  9365.                      <para>Accelerator table</para>
  9366.                         
  9367.                   </td>
  9368.                      
  9369.                </tr>
  9370.                      
  9371.                <tr>
  9372.                         
  9373.                   <td>
  9374.                            
  9375.                      <para>RT_BITMAP</para>
  9376.                         
  9377.                   </td>
  9378.                         
  9379.                   <td>
  9380.                            
  9381.                      <para>Bitmap resource</para>
  9382.                         
  9383.                   </td>
  9384.                      
  9385.                </tr>
  9386.                      
  9387.                <tr>
  9388.                         
  9389.                   <td>
  9390.                            
  9391.                      <para>RT_DIALOG</para>
  9392.                         
  9393.                   </td>
  9394.                         
  9395.                   <td>
  9396.                            
  9397.                      <para>Dialog box</para>
  9398.                         
  9399.                   </td>
  9400.                      
  9401.                </tr>
  9402.                      
  9403.                <tr>
  9404.                         
  9405.                   <td>
  9406.                            
  9407.                      <para>RT_FONT</para>
  9408.                         
  9409.                   </td>
  9410.                         
  9411.                   <td>
  9412.                            
  9413.                      <para>Font resource</para>
  9414.                         
  9415.                   </td>
  9416.                      
  9417.                </tr>
  9418.                      
  9419.                <tr>
  9420.                         
  9421.                   <td>
  9422.                            
  9423.                      <para>RT_FONTDIR</para>
  9424.                         
  9425.                   </td>
  9426.                         
  9427.                   <td>
  9428.                            
  9429.                      <para>Font directory resource</para>
  9430.                         
  9431.                   </td>
  9432.                      
  9433.                </tr>
  9434.                      
  9435.                <tr>
  9436.                         
  9437.                   <td>
  9438.                            
  9439.                      <para>RT_MENU</para>
  9440.                         
  9441.                   </td>
  9442.                         
  9443.                   <td>
  9444.                            
  9445.                      <para>Menu resource</para>
  9446.                         
  9447.                   </td>
  9448.                      
  9449.                </tr>
  9450.                      
  9451.                <tr>
  9452.                         
  9453.                   <td>
  9454.                            
  9455.                      <para>RT_RCDATA</para>
  9456.                         
  9457.                   </td>
  9458.                         
  9459.                   <td>
  9460.                            
  9461.                      <para>Application-defined resource (raw data)</para>
  9462.                         
  9463.                   </td>
  9464.                      
  9465.                </tr>
  9466.                      
  9467.                <tr>
  9468.                         
  9469.                   <td>
  9470.                            
  9471.                      <para>RT_STRING</para>
  9472.                         
  9473.                   </td>
  9474.                         
  9475.                   <td>
  9476.                            
  9477.                      <para>String-table entry</para>
  9478.                         
  9479.                   </td>
  9480.                      
  9481.                </tr>
  9482.                      
  9483.                <tr>
  9484.                         
  9485.                   <td>
  9486.                            
  9487.                      <para>RT_MESSAGETABLE</para>
  9488.                         
  9489.                   </td>
  9490.                         
  9491.                   <td>
  9492.                            
  9493.                      <para>Message-table entry</para>
  9494.                         
  9495.                   </td>
  9496.                      
  9497.                </tr>
  9498.                      
  9499.                <tr>
  9500.                         
  9501.                   <td>
  9502.                            
  9503.                      <para>RT_CURSOR</para>
  9504.                         
  9505.                   </td>
  9506.                         
  9507.                   <td>
  9508.                            
  9509.                      <para>Hardware-dependent cursor resource</para>
  9510.                         
  9511.                   </td>
  9512.                      
  9513.                </tr>
  9514.                      
  9515.                <tr>
  9516.                         
  9517.                   <td>
  9518.                            
  9519.                      <para>RT_GROUP_CURSOR</para>
  9520.                         
  9521.                   </td>
  9522.                         
  9523.                   <td>
  9524.                            
  9525.                      <para>Hardware-independent cursor resource</para>
  9526.                         
  9527.                   </td>
  9528.                      
  9529.                </tr>
  9530.                      
  9531.                <tr>
  9532.                         
  9533.                   <td>
  9534.                            
  9535.                      <para>RT_ICON</para>
  9536.                         
  9537.                   </td>
  9538.                         
  9539.                   <td>
  9540.                            
  9541.                      <para>Hardware-dependent icon resource</para>
  9542.                         
  9543.                   </td>
  9544.                      
  9545.                </tr>
  9546.                      
  9547.                <tr>
  9548.                         
  9549.                   <td>
  9550.                            
  9551.                      <para>RT_GROUP_ICON</para>
  9552.                         
  9553.                   </td>
  9554.                         
  9555.                   <td>
  9556.                            
  9557.                      <para>Hardware-independent icon resource</para>
  9558.                         
  9559.                   </td>
  9560.                      
  9561.                </tr>
  9562.                      
  9563.                <tr>
  9564.                         
  9565.                   <td>
  9566.                            
  9567.                      <para>RT_VERSION</para>
  9568.                         
  9569.                   </td>
  9570.                         
  9571.                   <td>
  9572.                            
  9573.                      <para>Version resource</para>
  9574.                         
  9575.                   </td>
  9576.                      
  9577.                </tr>
  9578.                   
  9579.             </table>
  9580.          </comments>
  9581.       </member>
  9582.       <member name="M:Classes.Classes.CreateFromID">
  9583.          <summary>
  9584.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Creates an instance of <method namespace="Classes" class="TResourceStream">TResourceStream</method> associated with a particular resource ID and type.</para>
  9585.          </summary>
  9586.          <comments>
  9587.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TResourceStream">CreateFromID</method> to instantiate a <method namespace="Classes" class="TResourceStream">TResourceStream</method> for a resource in the indicated instance that can be identified by an integer ID. Create finds the resource data and loads it into the Memory buffer for the <method namespace="Classes" class="TResourceStream">TResourceStream</method>.</para>
  9588.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Instance parameter is the instance handle associated with the executable or shared library that contains the resource.</para>
  9589.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The ResID is the integer ID associated with the resource in the .rc file that was compiled with the application. If the Resource was identified by a string rather than an ID number, use the Create method instead.</para>
  9590.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The ResType parameter is a string identifying the type of the resource. Applications can define their own resource types and identify them by name in the .rc file. In addition, there are a number of predefined resource types (which reflect Windows resource types). To identify a resource that is one of the predefined resource types, set ResType to the appropriate value from the following table:</para>
  9591.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9592.                      
  9593.                <tr>
  9594.                         
  9595.                   <th>ResType</th>
  9596.                         
  9597.                   <th>Type of resource</th>
  9598.                      
  9599.                </tr>
  9600.                      
  9601.                <tr>
  9602.                         
  9603.                   <td>
  9604.                            
  9605.                      <para>RT_ACCELERATOR</para>
  9606.                         
  9607.                   </td>
  9608.                         
  9609.                   <td>
  9610.                            
  9611.                      <para>Accelerator table</para>
  9612.                         
  9613.                   </td>
  9614.                      
  9615.                </tr>
  9616.                      
  9617.                <tr>
  9618.                         
  9619.                   <td>
  9620.                            
  9621.                      <para>RT_BITMAP</para>
  9622.                         
  9623.                   </td>
  9624.                         
  9625.                   <td>
  9626.                            
  9627.                      <para>Bitmap resource</para>
  9628.                         
  9629.                   </td>
  9630.                      
  9631.                </tr>
  9632.                      
  9633.                <tr>
  9634.                         
  9635.                   <td>
  9636.                            
  9637.                      <para>RT_DIALOG</para>
  9638.                         
  9639.                   </td>
  9640.                         
  9641.                   <td>
  9642.                            
  9643.                      <para>Dialog box</para>
  9644.                         
  9645.                   </td>
  9646.                      
  9647.                </tr>
  9648.                      
  9649.                <tr>
  9650.                         
  9651.                   <td>
  9652.                            
  9653.                      <para>RT_FONT</para>
  9654.                         
  9655.                   </td>
  9656.                         
  9657.                   <td>
  9658.                            
  9659.                      <para>Font resource</para>
  9660.                         
  9661.                   </td>
  9662.                      
  9663.                </tr>
  9664.                      
  9665.                <tr>
  9666.                         
  9667.                   <td>
  9668.                            
  9669.                      <para>RT_FONTDIR</para>
  9670.                         
  9671.                   </td>
  9672.                         
  9673.                   <td>
  9674.                            
  9675.                      <para>Font directory resource</para>
  9676.                         
  9677.                   </td>
  9678.                      
  9679.                </tr>
  9680.                      
  9681.                <tr>
  9682.                         
  9683.                   <td>
  9684.                            
  9685.                      <para>RT_MENU</para>
  9686.                         
  9687.                   </td>
  9688.                         
  9689.                   <td>
  9690.                            
  9691.                      <para>Menu resource</para>
  9692.                         
  9693.                   </td>
  9694.                      
  9695.                </tr>
  9696.                      
  9697.                <tr>
  9698.                         
  9699.                   <td>
  9700.                            
  9701.                      <para>RT_RCDATA</para>
  9702.                         
  9703.                   </td>
  9704.                         
  9705.                   <td>
  9706.                            
  9707.                      <para>Application-defined resource (raw data)</para>
  9708.                         
  9709.                   </td>
  9710.                      
  9711.                </tr>
  9712.                      
  9713.                <tr>
  9714.                         
  9715.                   <td>
  9716.                            
  9717.                      <para>RT_STRING</para>
  9718.                         
  9719.                   </td>
  9720.                         
  9721.                   <td>
  9722.                            
  9723.                      <para>String-table entry</para>
  9724.                         
  9725.                   </td>
  9726.                      
  9727.                </tr>
  9728.                      
  9729.                <tr>
  9730.                         
  9731.                   <td>
  9732.                            
  9733.                      <para>RT_MESSAGETABLE</para>
  9734.                         
  9735.                   </td>
  9736.                         
  9737.                   <td>
  9738.                            
  9739.                      <para>Message-table entry</para>
  9740.                         
  9741.                   </td>
  9742.                      
  9743.                </tr>
  9744.                      
  9745.                <tr>
  9746.                         
  9747.                   <td>
  9748.                            
  9749.                      <para>RT_CURSOR</para>
  9750.                         
  9751.                   </td>
  9752.                         
  9753.                   <td>
  9754.                            
  9755.                      <para>Hardware-dependent cursor resource</para>
  9756.                         
  9757.                   </td>
  9758.                      
  9759.                </tr>
  9760.                      
  9761.                <tr>
  9762.                         
  9763.                   <td>
  9764.                            
  9765.                      <para>RT_GROUP_CURSOR</para>
  9766.                         
  9767.                   </td>
  9768.                         
  9769.                   <td>
  9770.                            
  9771.                      <para>Hardware-independent cursor resource</para>
  9772.                         
  9773.                   </td>
  9774.                      
  9775.                </tr>
  9776.                      
  9777.                <tr>
  9778.                         
  9779.                   <td>
  9780.                            
  9781.                      <para>RT_ICON</para>
  9782.                         
  9783.                   </td>
  9784.                         
  9785.                   <td>
  9786.                            
  9787.                      <para>Hardware-dependent icon resource</para>
  9788.                         
  9789.                   </td>
  9790.                      
  9791.                </tr>
  9792.                      
  9793.                <tr>
  9794.                         
  9795.                   <td>
  9796.                            
  9797.                      <para>RT_GROUP_ICON</para>
  9798.                         
  9799.                   </td>
  9800.                         
  9801.                   <td>
  9802.                            
  9803.                      <para>Hardware-independent icon resource</para>
  9804.                         
  9805.                   </td>
  9806.                      
  9807.                </tr>
  9808.                      
  9809.                <tr>
  9810.                         
  9811.                   <td>
  9812.                            
  9813.                      <para>RT_VERSION</para>
  9814.                         
  9815.                   </td>
  9816.                         
  9817.                   <td>
  9818.                            
  9819.                      <para>Version resource</para>
  9820.                         
  9821.                   </td>
  9822.                      
  9823.                </tr>
  9824.                   
  9825.             </table>
  9826.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9827.                      
  9828.                <para>Specifying resources by ID requires less memory than specifying resources by name.</para>
  9829.                   
  9830.             </note>
  9831.          </comments>
  9832.       </member>
  9833.       <member name="M:Classes.Classes.Destroy">
  9834.          <summary>
  9835.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9836.                      
  9837.                <method namespace="Classes" class="TResourceStream">Destroy</method>s an instance of <method namespace="Classes" class="TResourceStream">TResourceStream</method>.</para>
  9838.          </summary>
  9839.          <comments>
  9840.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TResourceStream">Destroy</method> directly in an application to destroy an instance of <method namespace="Classes" class="TResourceStream">TResourceStream</method>. Instead, call Free. Free verifies that the <method namespace="Classes" class="TResourceStream">TResourceStream</method> reference is not nil, and only then calls <method namespace="Classes" class="TResourceStream">Destroy</method>.</para>
  9841.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9842.                      
  9843.                <method namespace="Classes" class="TResourceStream">Destroy</method> frees the memory buffer that stores the resource before calling the inherited destructor.</para>
  9844.          </comments>
  9845.       </member>
  9846.       <member name="T:Classes.TStreamOwnership">
  9847.          <summary>
  9848.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9849.                
  9850.                <type namespace="Qt">TStreamOwnership</type> indicates whether a stream object should be freed by the object that uses it.</para>
  9851.          </summary>
  9852.          <comments>
  9853.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The following are possible values of <type namespace="Qt">TStreamOwnership</type>:</para>
  9854.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9855.                
  9856.                <tr>
  9857.                   
  9858.                   <th>Value</th>
  9859.                   
  9860.                   <th>Meaning</th>
  9861.                
  9862.                </tr>
  9863.                
  9864.                <tr>
  9865.                   
  9866.                   <td>
  9867.                      
  9868.                      <para>soReference</para>
  9869.                   
  9870.                   </td>
  9871.                   
  9872.                   <td>
  9873.                      
  9874.                      <para>The stream is an independent object with a different Owner. The object that uses the stream does not free it when it is destroyed.</para>
  9875.                   
  9876.                   </td>
  9877.                
  9878.                </tr>
  9879.                
  9880.                <tr>
  9881.                   
  9882.                   <td>
  9883.                      
  9884.                      <para>soOwned</para>
  9885.                   
  9886.                   </td>
  9887.                   
  9888.                   <td>
  9889.                      
  9890.                      <para>The stream is owned by the object that uses it (and exists solely for that object). The object that uses the stream frees the associated stream when it no longer needs to use the stream.</para>
  9891.                   
  9892.                   </td>
  9893.                
  9894.                </tr>
  9895.             
  9896.             </table>
  9897.          </comments>
  9898.       </member>
  9899.       <member name="T:Classes.TStreamAdapter">
  9900.          <summary>
  9901.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9902.                
  9903.                <class namespace="Classes">TStreamAdapter</class> implements the IStream interface on a TStream object.</para>
  9904.          </summary>
  9905.          <comments>
  9906.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Description<class namespace="Classes">TStreamAdapter</class> is an interfaced object that implements the IStream interface. It is associated with a TStream object in the constructor, which it uses to implement the IStream methods.</para>
  9907.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9908.                
  9909.                <para>On Windows, <class namespace="Classes">TStreamAdapter</class> allows a TStream object to be used as a COM-based IStream interface.</para>
  9910.             
  9911.             </note>
  9912.          </comments>
  9913.       </member>
  9914.       <member name="M:Classes.Classes.Read">
  9915.          <summary>
  9916.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements the IStream <method namespace="Classes" class="TStreamAdapter">Read</method> method.</para>
  9917.          </summary>
  9918.          <comments>
  9919.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9920.                      
  9921.                <method namespace="Classes" class="TStreamAdapter">Read</method> reads up to cb bytes from the current position in the stream into the buffer pointed to by pv. pcb<method namespace="Classes" class="TStreamAdapter">Read</method> returns the number of bytes actually read.</para>
  9922.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9923.                      
  9924.                <method namespace="Classes" class="TStreamAdapter">Read</method> returns S_OK if it successfully reads pcb<method namespace="Classes" class="TStreamAdapter">Read</method> bytes into the buffer. It returns STG_E_INVALIDPOINTER it can't read because pv is nil (Delphi) or NULL (C++). It returns S_FALSE if the read operation fails for any other reason.</para>
  9925.          </comments>
  9926.       </member>
  9927.       <member name="M:Classes.Classes.Write">
  9928.          <summary>
  9929.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements the IStream <method namespace="Classes" class="TStreamAdapter">Write</method> method.</para>
  9930.          </summary>
  9931.          <comments>
  9932.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9933.                      
  9934.                <method namespace="Classes" class="TStreamAdapter">Write</method> writes up to cb bytes from the buffer pointed to by pv into the stream, starting at the current position. pcbWritten returns the number of bytes actually written.</para>
  9935.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9936.                      
  9937.                <method namespace="Classes" class="TStreamAdapter">Write</method> returns S_OK if it successfully writes pcbWritten bytes into the stream. It returns STG_E_INVALIDPOINTER it can't write because pv is nil. It returns STG_E_CANTSAVE if the write operation fails for any other reason.</para>
  9938.          </comments>
  9939.       </member>
  9940.       <member name="M:Classes.Classes.Seek">
  9941.          <summary>
  9942.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements the IStream <method namespace="Classes" class="TStreamAdapter">Seek</method> method.</para>
  9943.          </summary>
  9944.          <comments>
  9945.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9946.                      
  9947.                <method namespace="Classes" class="TStreamAdapter">Seek</method> moves the current position of the stream to the position specified by dlibMove and dwOrigin. The dlibMove parameter indicates a number of bytes, and dwOrigin indicates from where the bytes are measured to locate the new position. The libNewPosition parameter returns the new position of the stream.</para>
  9948.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9949.                      
  9950.                <method namespace="Classes" class="TStreamAdapter">Seek</method> returns S_OK if it successfully <method namespace="Classes" class="TStreamAdapter">Seek</method>s to the specified position. It returns STG_E_INVALIDFUNCTION if dlibMove is STREAM_SEEK_SET or STREAM_SEEK_END, because these types of seek operations are not supported by the TStream.<method namespace="Classes" class="TStreamAdapter">Seek</method> method. It returns STG_E_INVALIDPOINTER if the seek operation fails for any other reason.</para>
  9951.          </comments>
  9952.       </member>
  9953.       <member name="M:Classes.Classes.SetSize">
  9954.          <summary>
  9955.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements the IStream <method namespace="Classes" class="TStreamAdapter">SetSize</method> method.</para>
  9956.          </summary>
  9957.          <comments>
  9958.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9959.                      
  9960.                <method namespace="Classes" class="TStreamAdapter">SetSize</method> sets the size of the stream to the number of bytes specified by libNewSize.</para>
  9961.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9962.                      
  9963.                <method namespace="Classes" class="TStreamAdapter">SetSize</method> returns S_OK if it successfully resizes the stream to libNewSize. It returns E_FAIL if it could not resize the stream and the current size of the stream is not libNewSize on exit. It returns E_UNEXPECTED if <method namespace="Classes" class="TStreamAdapter">SetSize</method> encounters an exception while trying to set the size of the stream.</para>
  9964.          </comments>
  9965.       </member>
  9966.       <member name="M:Classes.Classes.CopyTo">
  9967.          <summary>
  9968.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements the IStream <method namespace="Classes" class="TStreamAdapter">CopyTo</method> method.</para>
  9969.          </summary>
  9970.          <comments>
  9971.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9972.                      
  9973.                <method namespace="Classes" class="TStreamAdapter">CopyTo</method> copies up to cb bytes from the current position in the stream to the stream specified by stm. cbRead returns the number of bytes successfully read from the associated stream. cbWritten returns the number of bytes successfully written to stm.</para>
  9974.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9975.                      
  9976.                <method namespace="Classes" class="TStreamAdapter">CopyTo</method> returns S_OK if it successfully copied all the bytes read from Stream to the interface specified by stm. It returns E_FAIL if it could not write all the bytes read from Stream to stm. It returns E_UNEXPECTED if it encountered an exception while attempting to perform the copy operation.</para>
  9977.          </comments>
  9978.       </member>
  9979.       <member name="M:Classes.Classes.Commit">
  9980.          <summary>
  9981.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements the IStream <method namespace="Classes" class="TStreamAdapter">Commit</method> method.</para>
  9982.          </summary>
  9983.          <comments>
  9984.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TStreamAdapter">Commit</method> method defined by IStream commits any changes written to a stream that is participating in a transaction.</para>
  9985.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9986.                      
  9987.                <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method> does not implement any transaction support, but operates in direct mode. Because of this, <method namespace="Classes" class="TStreamAdapter">Commit</method> returns S_OK to indicate that all changes are already written, but does nothing else.</para>
  9988.          </comments>
  9989.       </member>
  9990.       <member name="M:Classes.Classes.Revert">
  9991.          <summary>
  9992.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements the IStream <method namespace="Classes" class="TStreamAdapter">Revert</method> method.</para>
  9993.          </summary>
  9994.          <comments>
  9995.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TStreamAdapter">Revert</method> method defined by IStream rolls back any changes written to a stream that is participating in a transaction.</para>
  9996.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  9997.                      
  9998.                <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method> does not implement any transaction support, but operates in direct mode. Because of this, <method namespace="Classes" class="TStreamAdapter">Revert</method> returns STG_E_REVERTED, but does nothing else.</para>
  9999.          </comments>
  10000.       </member>
  10001.       <member name="M:Classes.Classes.LockRegion">
  10002.          <summary>
  10003.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements the IStream <method namespace="Classes" class="TStreamAdapter">LockRegion</method> method.</para>
  10004.          </summary>
  10005.          <comments>
  10006.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TStreamAdapter">LockRegion</method> method defined by IStream restricts access in the associated stream from the position specified by libOffset to the position specified by cb. dwLockType indicates the type of restriction imposed.</para>
  10007.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10008.                      
  10009.                <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method> does not support locking of regions, so <method namespace="Classes" class="TStreamAdapter">LockRegion</method> returns STG_E_INVALIDFUNCTION.</para>
  10010.          </comments>
  10011.       </member>
  10012.       <member name="M:Classes.Classes.UnlockRegion">
  10013.          <summary>
  10014.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements the IStream <method namespace="Classes" class="TStreamAdapter">UnlockRegion</method> method.</para>
  10015.          </summary>
  10016.          <comments>
  10017.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TStreamAdapter">UnlockRegion</method> method defined by IStream re-enables access in the associated stream that was previously restricted by a call to LockRegion. The region runs from the position specified by libOffset to the position specified by cb. dwLockType indicates the type of restriction to be released.</para>
  10018.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10019.                      
  10020.                <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method> does not support locking of regions, so <method namespace="Classes" class="TStreamAdapter">UnlockRegion</method> returns STG_E_INVALIDFUNCTION.</para>
  10021.          </comments>
  10022.       </member>
  10023.       <member name="M:Classes.Classes.Stat">
  10024.          <summary>
  10025.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements the IStream <method namespace="Classes" class="TStreamAdapter">Stat</method> method.</para>
  10026.          </summary>
  10027.          <comments>
  10028.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10029.                      
  10030.                <method namespace="Classes" class="TStreamAdapter">Stat</method> fills out a T<method namespace="Classes" class="TStreamAdapter">Stat</method>Stg record with information about the stream object The grf<method namespace="Classes" class="TStreamAdapter">Stat</method>Flag parameter indicates what information in the record, if any, is not needed.</para>
  10031.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10032.                      
  10033.                <method namespace="Classes" class="TStreamAdapter">Stat</method> ignores the grf<method namespace="Classes" class="TStreamAdapter">Stat</method>Flag parameter. It always sets dwType to STGTY_STREAM, grfLocksSupported to LOCK_WRITE, and all of the TFileTime parameters to 0. It sets cbSize to the size of the stream, and leaves the remaining fields unchanged.</para>
  10034.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10035.                      
  10036.                <method namespace="Classes" class="TStreamAdapter">Stat</method> returns S_OK if it does not encounter any exceptions filling out statstg, E_UNEXPECTED otherwise.</para>
  10037.          </comments>
  10038.       </member>
  10039.       <member name="M:Classes.Classes.Clone">
  10040.          <summary>
  10041.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implements the IStream <method namespace="Classes" class="TStreamAdapter">Clone</method> method.</para>
  10042.          </summary>
  10043.          <comments>
  10044.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TStreamAdapter">Clone</method> method defined by IStream returns a second IStream interface that accesses the same bytes as this IStream interface, but which operates independently (can have its own position).</para>
  10045.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10046.                      
  10047.                <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method> returns E_NOTIMPL to indicate that it does not support the <method namespace="Classes" class="TStreamAdapter">Clone</method> method.</para>
  10048.          </comments>
  10049.       </member>
  10050.       <member name="M:Classes.Classes.Create">
  10051.          <summary>
  10052.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10053.                      
  10054.                <method namespace="Classes" class="TStreamAdapter">Create</method>s an instance of a <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method> object.</para>
  10055.          </summary>
  10056.          <comments>
  10057.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TStreamAdapter">Create</method> to instantiate a <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method> object that implements the IStream interface using the stream object specified by Stream. Ownership initializes the StreamOwnership property, indicating whether the <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method> object is responsible for freeing the stream specified by Stream from its own destructor.</para>
  10058.          </comments>
  10059.       </member>
  10060.       <member name="M:Classes.Classes.Destroy">
  10061.          <summary>
  10062.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Frees the instance of <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method>.</para>
  10063.          </summary>
  10064.          <comments>
  10065.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Most applications do not need to explicitly free the <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method> instance. Instead, it is freed automatically when its reference count drops to 0.</para>
  10066.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If you must explicitly destroy a <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method> instance, use the Free method instead of Destoy. Free checks that the <method namespace="Classes" class="TStreamAdapter">TStreamAdapter</method> reference is not nil before calling <method namespace="Classes" class="TStreamAdapter">Destroy</method>.</para>
  10067.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10068.                      
  10069.                <method namespace="Classes" class="TStreamAdapter">Destroy</method> frees the associated stream object (Stream property) if its StreamOwnership property is True.</para>
  10070.          </comments>
  10071.       </member>
  10072.       <member name="P:Classes.Classes.Stream">
  10073.          <summary>
  10074.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Identifies the associated T<property namespace="Classes" class="TStreamAdapter">Stream</property> object that T<property namespace="Classes" class="TStreamAdapter">Stream</property>Adapter uses to implement the I<property namespace="Classes" class="TStreamAdapter">Stream</property> interface.</para>
  10075.          </summary>
  10076.          <comments>
  10077.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="Classes" class="TStreamAdapter">Stream</property> to directly access the T<property namespace="Classes" class="TStreamAdapter">Stream</property> object that the stream adapter represents. This object is associated with the T<property namespace="Classes" class="TStreamAdapter">Stream</property> object in the T<property namespace="Classes" class="TStreamAdapter">Stream</property>Adapter constructor.</para>
  10078.          </comments>
  10079.       </member>
  10080.       <member name="P:Classes.Classes.StreamOwnership">
  10081.          <summary>
  10082.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies whether the <property namespace="Classes" class="TStreamAdapter">TStreamAdapter</property> should act as the Owner of the associated stream object.</para>
  10083.          </summary>
  10084.          <comments>
  10085.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10086.                      
  10087.                <property namespace="Classes" class="TStreamAdapter">StreamOwnership</property> indicates whether the <property namespace="Classes" class="TStreamAdapter">TStreamAdapter</property> is responsible for freeing the associated stream object. </para>
  10088.          </comments>
  10089.       </member>
  10090.       <member name="T:Classes.TValueType">
  10091.          <summary>
  10092.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10093.                
  10094.                <type namespace="Qt">TValueType</type> defines the kinds of values written to and read from filer objects.</para>
  10095.          </summary>
  10096.          <comments>
  10097.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10098.                
  10099.                <type namespace="Qt">TValueType</type> is the type used by the TReader and TWriter filer objects to type check property values that are read from and written to streams when streaming components and their properties.</para>
  10100.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The CLX filers use a tagged value system, where each value on the stream is preceded by a prefix indicating its type. Those prefixes are of type <type namespace="Qt">TValueType</type>. The following table lists the values for <type namespace="Qt">TValueType</type>:</para>
  10101.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10102.                
  10103.                <tr>
  10104.                   
  10105.                   <th>Value</th>
  10106.                   
  10107.                   <th>Meaning</th>
  10108.                
  10109.                </tr>
  10110.                
  10111.                <tr>
  10112.                   
  10113.                   <td>
  10114.                      
  10115.                      <para>vaNull</para>
  10116.                   
  10117.                   </td>
  10118.                   
  10119.                   <td>
  10120.                      
  10121.                      <para>identifies the type as the const Variant Null.</para>
  10122.                   
  10123.                   </td>
  10124.                
  10125.                </tr>
  10126.                
  10127.                <tr>
  10128.                   
  10129.                   <td>
  10130.                      
  10131.                      <para>vaList</para>
  10132.                   
  10133.                   </td>
  10134.                   
  10135.                   <td>
  10136.                      
  10137.                      <para>identifies the type as a list of tagged items ending with a NULL pointer.</para>
  10138.                   
  10139.                   </td>
  10140.                
  10141.                </tr>
  10142.                
  10143.                <tr>
  10144.                   
  10145.                   <td>
  10146.                      
  10147.                      <para>vaInt8</para>
  10148.                   
  10149.                   </td>
  10150.                   
  10151.                   <td>
  10152.                      
  10153.                      <para>identifies the type as an 8-bit integer.</para>
  10154.                   
  10155.                   </td>
  10156.                
  10157.                </tr>
  10158.                
  10159.                <tr>
  10160.                   
  10161.                   <td>
  10162.                      
  10163.                      <para>vaInt16</para>
  10164.                   
  10165.                   </td>
  10166.                   
  10167.                   <td>
  10168.                      
  10169.                      <para>identifies the type as a 16-bit integer.</para>
  10170.                   
  10171.                   </td>
  10172.                
  10173.                </tr>
  10174.                
  10175.                <tr>
  10176.                   
  10177.                   <td>
  10178.                      
  10179.                      <para>vaInt32</para>
  10180.                   
  10181.                   </td>
  10182.                   
  10183.                   <td>
  10184.                      
  10185.                      <para>identifies the type as a 32-bit integer.</para>
  10186.                   
  10187.                   </td>
  10188.                
  10189.                </tr>
  10190.                
  10191.                <tr>
  10192.                   
  10193.                   <td>
  10194.                      
  10195.                      <para>vaExtended</para>
  10196.                   
  10197.                   </td>
  10198.                   
  10199.                   <td>
  10200.                      
  10201.                      <para>identifies the type as a float or long double.</para>
  10202.                   
  10203.                   </td>
  10204.                
  10205.                </tr>
  10206.                
  10207.                <tr>
  10208.                   
  10209.                   <td>
  10210.                      
  10211.                      <para>vaString</para>
  10212.                   
  10213.                   </td>
  10214.                   
  10215.                   <td>
  10216.                      
  10217.                      <para>identifies the type as a short string</para>
  10218.                   
  10219.                   </td>
  10220.                
  10221.                </tr>
  10222.                
  10223.                <tr>
  10224.                   
  10225.                   <td>
  10226.                      
  10227.                      <para>vaIdent</para>
  10228.                   
  10229.                   </td>
  10230.                   
  10231.                   <td>
  10232.                      
  10233.                      <para>identifies the type as an identifier string.</para>
  10234.                   
  10235.                   </td>
  10236.                
  10237.                </tr>
  10238.                
  10239.                <tr>
  10240.                   
  10241.                   <td>
  10242.                      
  10243.                      <para>vaFalse</para>
  10244.                   
  10245.                   </td>
  10246.                   
  10247.                   <td>
  10248.                      
  10249.                      <para>identifies the type as the boolean false.</para>
  10250.                   
  10251.                   </td>
  10252.                
  10253.                </tr>
  10254.                
  10255.                <tr>
  10256.                   
  10257.                   <td>
  10258.                      
  10259.                      <para>vaTrue</para>
  10260.                   
  10261.                   </td>
  10262.                   
  10263.                   <td>
  10264.                      
  10265.                      <para>identifies the type as the boolean true.</para>
  10266.                   
  10267.                   </td>
  10268.                
  10269.                </tr>
  10270.                
  10271.                <tr>
  10272.                   
  10273.                   <td>
  10274.                      
  10275.                      <para>vaBinary</para>
  10276.                   
  10277.                   </td>
  10278.                   
  10279.                   <td>
  10280.                      
  10281.                      <para>identifies the type as a block of binary preceded by a length count.</para>
  10282.                   
  10283.                   </td>
  10284.                
  10285.                </tr>
  10286.                
  10287.                <tr>
  10288.                   
  10289.                   <td>
  10290.                      
  10291.                      <para>vaSet</para>
  10292.                   
  10293.                   </td>
  10294.                   
  10295.                   <td>
  10296.                      
  10297.                      <para>identifies the type as a set.</para>
  10298.                   
  10299.                   </td>
  10300.                
  10301.                </tr>
  10302.                
  10303.                <tr>
  10304.                   
  10305.                   <td>
  10306.                      
  10307.                      <para>vaLString</para>
  10308.                   
  10309.                   </td>
  10310.                   
  10311.                   <td>
  10312.                      
  10313.                      <para>identifies the type as an AnsiString (long string).</para>
  10314.                   
  10315.                   </td>
  10316.                
  10317.                </tr>
  10318.                
  10319.                <tr>
  10320.                   
  10321.                   <td>
  10322.                      
  10323.                      <para>vaNil</para>
  10324.                   
  10325.                   </td>
  10326.                   
  10327.                   <td>
  10328.                      
  10329.                      <para>identifies the type as nil (Delphi) or NULL (C++).</para>
  10330.                   
  10331.                   </td>
  10332.                
  10333.                </tr>
  10334.                
  10335.                <tr>
  10336.                   
  10337.                   <td>
  10338.                      
  10339.                      <para>vaCollection</para>
  10340.                   
  10341.                   </td>
  10342.                   
  10343.                   <td>
  10344.                      
  10345.                      <para>identifies the type as a TCollection.</para>
  10346.                   
  10347.                   </td>
  10348.                
  10349.                </tr>
  10350.                
  10351.                <tr>
  10352.                   
  10353.                   <td>
  10354.                      
  10355.                      <para>vaSingle</para>
  10356.                   
  10357.                   </td>
  10358.                   
  10359.                   <td>
  10360.                      
  10361.                      <para>identifies the type as a Single (float).</para>
  10362.                   
  10363.                   </td>
  10364.                
  10365.                </tr>
  10366.                
  10367.                <tr>
  10368.                   
  10369.                   <td>
  10370.                      
  10371.                      <para>vaCurrency</para>
  10372.                   
  10373.                   </td>
  10374.                   
  10375.                   <td>
  10376.                      
  10377.                      <para>identifies the type as a Currency.</para>
  10378.                   
  10379.                   </td>
  10380.                
  10381.                </tr>
  10382.                
  10383.                <tr>
  10384.                   
  10385.                   <td>
  10386.                      
  10387.                      <para>vaDate</para>
  10388.                   
  10389.                   </td>
  10390.                   
  10391.                   <td>
  10392.                      
  10393.                      <para>identifies the type as a Date.</para>
  10394.                   
  10395.                   </td>
  10396.                
  10397.                </tr>
  10398.                
  10399.                <tr>
  10400.                   
  10401.                   <td>
  10402.                      
  10403.                      <para>vaWString</para>
  10404.                   
  10405.                   </td>
  10406.                   
  10407.                   <td>
  10408.                      
  10409.                      <para>identifies the type as a WideString.</para>
  10410.                   
  10411.                   </td>
  10412.                
  10413.                </tr>
  10414.                
  10415.                <tr>
  10416.                   
  10417.                   <td>
  10418.                      
  10419.                      <para>vaInt64</para>
  10420.                   
  10421.                   </td>
  10422.                   
  10423.                   <td>
  10424.                      
  10425.                      <para>identifies the type as a 64-bit integer.</para>
  10426.                   
  10427.                   </td>
  10428.                
  10429.                </tr>
  10430.                
  10431.                <tr>
  10432.                   
  10433.                   <td>
  10434.                      
  10435.                      <para>vaUTF8String</para>
  10436.                   
  10437.                   </td>
  10438.                   
  10439.                   <td>
  10440.                      
  10441.                      <para>identifies the type as a UTF8String.</para>
  10442.                   
  10443.                   </td>
  10444.                
  10445.                </tr>
  10446.             
  10447.             </table>
  10448.          </comments>
  10449.       </member>
  10450.       <member name="T:Classes.TFilerFlag">
  10451.          <summary>
  10452.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10453.                
  10454.                <type namespace="Qt">TFilerFlag</type> indicates information about how a filer should read or write a component and <type namespace="Qt">TFilerFlag</type>s is a set of <type namespace="Qt">TFilerFlag</type> values.</para>
  10455.          </summary>
  10456.          <comments>
  10457.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10458.                
  10459.                <type namespace="Qt">TFilerFlag</type> values are written to form files as a prefix to saved components. They indicate any special status of the component that the streaming system must take into account. <type namespace="Qt">TFilerFlag</type>s is a set containing all the flags (if any) that pertain to a single component.</para>
  10460.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The following table lists the possible <type namespace="Qt">TFilerFlag</type> values:</para>
  10461.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10462.                
  10463.                <tr>
  10464.                   
  10465.                   <th>Value</th>
  10466.                   
  10467.                   <th>Meaning</th>
  10468.                
  10469.                </tr>
  10470.                
  10471.                <tr>
  10472.                   
  10473.                   <td>
  10474.                      
  10475.                      <para>ffInherited</para>
  10476.                   
  10477.                   </td>
  10478.                   
  10479.                   <td>
  10480.                      
  10481.                      <para>The component is an inherited form.</para>
  10482.                   
  10483.                   </td>
  10484.                
  10485.                </tr>
  10486.                
  10487.                <tr>
  10488.                   
  10489.                   <td>
  10490.                      
  10491.                      <para>ffChildPos</para>
  10492.                   
  10493.                   </td>
  10494.                   
  10495.                   <td>
  10496.                      
  10497.                      <para>The order in which this component is created is important.</para>
  10498.                   
  10499.                   </td>
  10500.                
  10501.                </tr>
  10502.                
  10503.                <tr>
  10504.                   
  10505.                   <td>
  10506.                      
  10507.                      <para>ffInline</para>
  10508.                   
  10509.                   </td>
  10510.                   
  10511.                   <td>
  10512.                      
  10513.                      <para>The component is a top-level component such as a form or data module.</para>
  10514.                   
  10515.                   </td>
  10516.                
  10517.                </tr>
  10518.             
  10519.             </table>
  10520.          </comments>
  10521.       </member>
  10522.       <member name="T:Classes.TFiler">
  10523.          <summary>
  10524.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10525.                
  10526.                <class namespace="Classes">TFiler</class> is the abstract base class for reader and writer objects, which are used for loading and saving components and their properties.</para>
  10527.          </summary>
  10528.          <comments>
  10529.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10530.                
  10531.                <class namespace="Classes">TFiler</class> works with stream and component objects. It handles the internal mechanics of the streaming system that reads and writes components and their associated data. This streaming system is the mechanism by which the IDE saves components to or reads components from disk (in form files) and by which it saves and restores temporary in-memory images of components.</para>
  10532.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10533.                
  10534.                <class namespace="Classes">TFiler</class> has two descendants, TReader and TWriter, that implement the methods introduced by <class namespace="Classes">TFiler</class>. The filer type is used as a parameter to component methods that can require either a reader or writer object, depending on whether the data is read from or written to a stream. Every filer has an associated stream that is passed as a parameter to its constructor. Filer objects are usually created by the stream that becomes associated with the filer.</para>
  10535.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10536.                
  10537.                <class namespace="Classes">TFiler</class> properties provide support for managing the streaming of owned components. Filer objects read and write the properties of components to and from a stream. Filer objects provide buffering of data to speed read and write operations.</para>
  10538.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10539.                
  10540.                <class namespace="Classes">TFiler</class> introduces abstract methods that are customized by its descendant reader and writer objects. These include methods that enable components to load and save hidden or complex data as if it was the value of a published property.</para>
  10541.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10542.                
  10543.                <para>Most of the filer properties and methods have public visibility for convenience within the streaming system. The majority of them are never called directly by applications.</para>
  10544.             
  10545.             </note>
  10546.          </comments>
  10547.       </member>
  10548.       <member name="M:Classes.Classes.Create">
  10549.          <summary>
  10550.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10551.                      
  10552.                <method namespace="Classes" class="TFiler">Create</method>s a filer object.</para>
  10553.          </summary>
  10554.          <comments>
  10555.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TFiler">Create</method> to instantiate a filer descendant at runtime, if necessary. It is seldom necessary to directly create a filer object because the methods and routines that use them automatically create filers.</para>
  10556.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10557.                      
  10558.                <method namespace="Classes" class="TFiler">Create</method> allocates memory for a filer object, and associates it with the stream passed in the Stream parameter, with a buffer of size BufSize.</para>
  10559.          </comments>
  10560.       </member>
  10561.       <member name="M:Classes.Classes.DefineProperty">
  10562.          <summary>
  10563.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces an abstract method that allows descendants to read or write data like a property.</para>
  10564.          </summary>
  10565.          <comments>
  10566.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each descendant filer object declares a <method namespace="Classes" class="TFiler">DefineProperty</method> method that defines the data that the descendant object will read or write as if the data were a property.</para>
  10567.          </comments>
  10568.       </member>
  10569.       <member name="M:Classes.Classes.DefineBinaryProperty">
  10570.          <summary>
  10571.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces an abstract method that allows descendants to read and write unformatted data like a property.</para>
  10572.          </summary>
  10573.          <comments>
  10574.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each descendant filer object declares a <method namespace="Classes" class="TFiler">DefineBinaryProperty</method> method that reads or writes binary data as if the data were a property.</para>
  10575.          </comments>
  10576.       </member>
  10577.       <member name="M:Classes.Classes.FlushBuffer">
  10578.          <summary>
  10579.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces an abstract method that allows descendants to synchronize the filer's buffer with its stream.</para>
  10580.          </summary>
  10581.          <comments>
  10582.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each descendant filer object defines a <method namespace="Classes" class="TFiler">FlushBuffer</method> method to provide practical implementations for synchronizing the filer object's buffer with the associated stream.</para>
  10583.          </comments>
  10584.       </member>
  10585.       <member name="M:Classes.Classes.Destroy">
  10586.          <summary>
  10587.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10588.                      
  10589.                <method namespace="Classes" class="TFiler">Destroy</method>s a filer object.</para>
  10590.          </summary>
  10591.          <comments>
  10592.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TFiler">Destroy</method> directly in an application. Instead, call Free, which checks that the filer reference is not nil before calling <method namespace="Classes" class="TFiler">Destroy</method>.</para>
  10593.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TFiler">Destroy</method> method for filer objects~<method namespace="Classes" class="TFiler">TFiler</method> frees memory associated with the buffer. Memory deallocation for the object instance is handled automatically when <method namespace="Classes" class="TFiler">Destroy</method> is called. <method namespace="Classes" class="TFiler">TFiler</method>'s <method namespace="Classes" class="TFiler">Destroy</method> method is called by descendant objects in their respective destructors.</para>
  10594.          </comments>
  10595.       </member>
  10596.       <member name="P:Classes.Classes.Root">
  10597.          <summary>
  10598.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates which object is the root, or ultimate owner, of the objects read or written by the filer.</para>
  10599.          </summary>
  10600.          <comments>
  10601.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <property namespace="Classes" class="TFiler">Root</property> directly. It is used internally to find the root object when streaming owned components. <property namespace="Classes" class="TFiler">Root</property> represents the ultimate owner of all the components being streamed during the current streaming process.</para>
  10602.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Read<property namespace="Classes" class="TFiler">Root</property>Component and Write<property namespace="Classes" class="TFiler">Root</property>Component methods set <property namespace="Classes" class="TFiler">Root</property> before reading or writing their components and owned components.</para>
  10603.          </comments>
  10604.       </member>
  10605.       <member name="P:Classes.Classes.LookupRoot">
  10606.          <summary>
  10607.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the root component for resolving names while loading and saving components.</para>
  10608.          </summary>
  10609.          <comments>
  10610.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Filer sets <property namespace="Classes" class="TFiler">LookupRoot</property> when loading or saving components to resolve name references in nested frames. This allows the Writer to look up component names relative to a local root component, even when a frame is nested in another root component.</para>
  10611.          </comments>
  10612.       </member>
  10613.       <member name="P:Classes.Classes.Ancestor">
  10614.          <summary>
  10615.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether to write the properties of inherited components.</para>
  10616.          </summary>
  10617.          <comments>
  10618.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not use <property namespace="Classes" class="TFiler">Ancestor</property> directly. It is used internally by the methods of writer objects to write components in inherited forms.</para>
  10619.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">In Visual Form Inheritance, a writer object only needs to write the values of properties that differ from those that are inherited. It tracks each component from which properties can be inherited in <property namespace="Classes" class="TFiler">Ancestor</property> and compares properties before writing. If <property namespace="Classes" class="TFiler">Ancestor</property> is nil (Delphi) or NULL (C++), there is no corresponding component from which to inherit, and the writer object writes the component out to the stream completely.</para>
  10620.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10621.                      
  10622.                <property namespace="Classes" class="TFiler">Ancestor</property> is only non-nil (Delphi) or non-NULL (C++) when writing forms created with Visual Form Inheritance. The streaming system uses WriteDescendent and WriteDescendentRes to write such forms to the stream. </para>
  10623.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When writing or overriding a DefineProperties method, be aware that <property namespace="Classes" class="TFiler">Ancestor</property> might be set, and it might be necessary to write or omit properties, as appropriate. Normally, DefineProperty read procedures ignore the value of <property namespace="Classes" class="TFiler">Ancestor</property>.</para>
  10624.          </comments>
  10625.       </member>
  10626.       <member name="P:Classes.Classes.IgnoreChildren">
  10627.          <summary>
  10628.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Enables a writer object to save a component without saving the components it owns.</para>
  10629.          </summary>
  10630.          <comments>
  10631.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Programs rarely use <property namespace="Classes" class="TFiler">IgnoreChildren</property> directly. Programs use <property namespace="Classes" class="TFiler">IgnoreChildren</property> internally to avoid writing owned components when the Root is changed during the streaming process. A few components change Root while streaming, but this is rare.</para>
  10632.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="Classes" class="TFiler">IgnoreChildren</property> is true, the writer writes a component without writing any child components it owns. If <property namespace="Classes" class="TFiler">IgnoreChildren</property> is false, the writer object writes all owned objects to the stream.</para>
  10633.          </comments>
  10634.       </member>
  10635.       <member name="T:Classes.TComponentClass">
  10636.          <summary>
  10637.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10638.                
  10639.                <type namespace="Qt">TComponentClass</type> defines the metaclass for TComponent.</para>
  10640.          </summary>
  10641.          <comments>
  10642.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10643.                
  10644.                <type namespace="Qt">TComponentClass</type> is the metaclass for TComponent. Its value is the class reference for TComponent or for one of its descendants.</para>
  10645.          </comments>
  10646.       </member>
  10647.       <member name="T:Classes.IVarStreamable">
  10648.          <summary>
  10649.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10650.                
  10651.                <class namespace="Classes">IVarStreamable</class> is the interface for loading and saving the values of Variants.</para>
  10652.          </summary>
  10653.          <comments>
  10654.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Implement <class namespace="Classes">IVarStreamable</class> on a custom Variant type class to allow Variants of that type to load or save their values. When a TCustomVaraintType descendant implements the <class namespace="Classes">IVarStreamable</class> interface, then when Variants of that custom type are used as the values of published properties, their values are loaded from and saved to form files using the <class namespace="Classes">IVarStreamable</class> methods. Without the <class namespace="Classes">IVarStreamable</class> interface, the value of the Variant is loaded from and saved to form files as a string.</para>
  10655.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10656.                
  10657.                <class namespace="Classes">IVarStreamable</class> defines two methods, StreamIn, and StreamOut, for reading and writing the Variant's value.</para>
  10658.          </comments>
  10659.       </member>
  10660.       <member name="M:Classes.Classes.StreamIn">
  10661.          <summary>
  10662.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads in the value of the Variant from a stream.</para>
  10663.          </summary>
  10664.          <comments>
  10665.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10666.                      
  10667.                <method namespace="Classes" class="IVarStreamable">StreamIn</method> reads the Variant's value from a stream and fills in a TVarData data structure to reflect the value.</para>
  10668.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Dest is the TVarDatathat is filled in by <method namespace="Classes" class="IVarStreamable">StreamIn</method>.</para>
  10669.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Stream is a stream that is positioned so that the next value that can be read from the stream is the value of the Variant.</para>
  10670.          </comments>
  10671.       </member>
  10672.       <member name="M:Classes.Classes.StreamOut">
  10673.          <summary>
  10674.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the value of the Variant to a stream.</para>
  10675.          </summary>
  10676.          <comments>
  10677.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">StreamIn writes the value from a TVarData value to a specified stream.</para>
  10678.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Source is the TVarData that stores the data for the Variant that needs to write its value.</para>
  10679.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Stream is a stream to which <method namespace="Classes" class="IVarStreamable">StreamOut</method> writes the value stored in Source.</para>
  10680.          </comments>
  10681.       </member>
  10682.       <member name="T:Classes.TReader">
  10683.          <summary>
  10684.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10685.                
  10686.                <class namespace="Classes">TReader</class> is a specialized filer that reads component data from an associated stream.</para>
  10687.          </summary>
  10688.          <comments>
  10689.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10690.                
  10691.                <class namespace="Classes">TReader</class> is used internally by the component streaming system to restore the state of a component that has been written to a stream. It handles the mechanics of reading the data associated with a component from the stream. The reader object, rather than the stream object, is responsible for handling the complexities of streaming components. These include methods for:</para>
  10692.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Creating component instances from class names read from the stream.</para>
  10693.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Assigning stream data to published component properties.</para>
  10694.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Enabling an object to store hidden or complex data as if they were published properties of the object.</para>
  10695.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Resolving references between components, such as when a property refers to another component.</para>
  10696.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Other methods and properties of <class namespace="Classes">TReader</class> trigger the reader object's events and interaction with the stream.</para>
  10697.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications do not directly create reader objects. Readers are automatically created in a stream object's methods or in global routines that initiate the component streaming process. These include:</para>
  10698.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">the global routine ObjectBinaryToText procedure, which directly creates a reader object.</para>
  10699.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">the global ReadComponentResFile function, which creates a file stream that creates a reader object.</para>
  10700.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">the ReadComponent method of a stream object, which creates a reader object.</para>
  10701.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Once the streaming process is underway applications do not need to directly manipulate reader objects. The interaction between the reader, component, and stream objects happens automatically in methods of these objects that make calls to each other.</para>
  10702.          </comments>
  10703.       </member>
  10704.       <member name="M:Classes.Classes.EndOfList">
  10705.          <summary>
  10706.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the end of a group of items that are sequentially read from the stream.</para>
  10707.          </summary>
  10708.          <comments>
  10709.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10710.                      
  10711.                <method namespace="Classes" class="TReader">EndOfList</method> is used by other methods that iterate through a list of items when reading in data. It checks for a value type that signals the end of that type of data. <method namespace="Classes" class="TReader">EndOfList</method> returns true if the reader object has read to the end of a list of items.</para>
  10712.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When reading a list of items, the reader object calls ReadListBegin method, then the items are repeatedly read until <method namespace="Classes" class="TReader">EndOfList</method> returns true. Finally, the reader calls ReadListEnd.</para>
  10713.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10714.                      
  10715.                <para>Component writers can use this in their defined property ReadData methods, as, for example, with TStrings.</para>
  10716.                   
  10717.             </note>
  10718.          </comments>
  10719.       </member>
  10720.       <member name="M:Classes.Classes.NextValue">
  10721.          <summary>
  10722.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the type of the next item in the reader object's stream without moving the position of the stream.</para>
  10723.          </summary>
  10724.          <comments>
  10725.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10726.                      
  10727.                <method namespace="Classes" class="TReader">NextValue</method> is used internally by reader methods to query the type of the next item in the stream. After identifying the type of the next item, <method namespace="Classes" class="TReader">NextValue</method> returns with the stream position still before the value-type indicator.</para>
  10728.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The TValueType type defines the kinds of values written to and read from filer objects. CLX filers use a tagged value system, where each value on the stream is preceded by a prefix indicating its type. Those prefixes are of type TValueType.</para>
  10729.          </comments>
  10730.       </member>
  10731.       <member name="M:Classes.Classes.ReadBoolean">
  10732.          <summary>
  10733.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a boolean from the reader object's stream and returns that boolean value.</para>
  10734.          </summary>
  10735.          <comments>
  10736.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10737.                      
  10738.                <method namespace="Classes" class="TReader">ReadBoolean</method> is a helper method used by other reader methods to read a tagged boolean value at the current reader Position. <method namespace="Classes" class="TReader">ReadBoolean</method> uses ReadValue to check the type for a vaTrue value and returns that result.  Note that <method namespace="Classes" class="TReader">ReadBoolean</method> will not verify that the value being read is a boolean, only whether or not the value is true.</para>
  10739.          </comments>
  10740.       </member>
  10741.       <member name="M:Classes.Classes.ReadChar">
  10742.          <summary>
  10743.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a character from the reader object's stream and returns that character value.</para>
  10744.          </summary>
  10745.          <comments>
  10746.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10747.                      
  10748.                <method namespace="Classes" class="TReader">ReadChar</method> is a helper method used by other reader methods to read a tagged character value at the current reader Position. <method namespace="Classes" class="TReader">ReadChar</method> first checks the value type (TValueType) by calling the ReadValue method. If the item is a vaString, ReadString checks the length. If the length indicates that the value is a char, it calls Read and returns the character. Otherwise a EReadError exception is raised.</para>
  10749.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10750.                      
  10751.                <para>If the tagged data is a string with length = 1, it is char compatible. If length > 1, it is an error, however, the rest of the string data must be read to keep the reader in a consistent state. Each action that processes tagged data must leave the reader Position at the start of the next unread tag.</para>
  10752.                   
  10753.             </note>
  10754.          </comments>
  10755.       </member>
  10756.       <member name="M:Classes.Classes.ReadComponent">
  10757.          <summary>
  10758.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads the component specified by Instance from the stream and returns the component.</para>
  10759.          </summary>
  10760.          <comments>
  10761.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10762.                      
  10763.                <method namespace="Classes" class="TReader">ReadComponent</method> is called by ReadRootComponent to read each of the components owned by Root. Users would not need to call <method namespace="Classes" class="TReader">ReadComponent</method> directly.</para>
  10764.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10765.                      
  10766.                <method namespace="Classes" class="TReader">ReadComponent</method> handles the loading and initialization process for each component. After loading all the components in the list, <method namespace="Classes" class="TReader">ReadComponent</method>s calls the Loaded method of each loaded component in the order it read them. <method namespace="Classes" class="TReader">ReadComponent</method> manages the complexities of reading the component from the stream through calls to other reader methods and to the component's methods.</para>
  10767.          </comments>
  10768.       </member>
  10769.       <member name="M:Classes.Classes.ReadFloat">
  10770.          <summary>
  10771.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a floating-point number from the reader object's stream and returns its value.</para>
  10772.          </summary>
  10773.          <comments>
  10774.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10775.                      
  10776.                <method namespace="Classes" class="TReader">ReadFloat</method> is a helper method used by other reader methods to read a tagged floating-point data value at the current reader Position. <method namespace="Classes" class="TReader">ReadFloat</method> first checks the value type (TValueType) by calling the ReadValue method. If the item is a vaExtended <method namespace="Classes" class="TReader">ReadFloat</method> calls Read and returns the float value. Otherwise it calls ReadInteger.</para>
  10777.          </comments>
  10778.       </member>
  10779.       <member name="M:Classes.Classes.ReadSingle">
  10780.          <summary>
  10781.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a float value from the reader object's stream and returns its value.</para>
  10782.          </summary>
  10783.          <comments>
  10784.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10785.                      
  10786.                <method namespace="Classes" class="TReader">ReadSingle</method> is a helper method used by other reader methods to read a tagged Delphi Single data value at the current reader Position. (The Single data type corresponds to float in C++.) <method namespace="Classes" class="TReader">ReadSingle</method> first checks the value type (TValueType) by calling the ReadValue method. If the item is a vaSingle, <method namespace="Classes" class="TReader">ReadSingle</method> calls Read and returns the value. Otherwise it calls ReadInteger.</para>
  10787.          </comments>
  10788.       </member>
  10789.       <member name="M:Classes.Classes.ReadCurrency">
  10790.          <summary>
  10791.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a Currency value from the reader object's stream and returns its value.</para>
  10792.          </summary>
  10793.          <comments>
  10794.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10795.                      
  10796.                <method namespace="Classes" class="TReader">ReadCurrency</method> is a helper method used by other reader methods to read a tagged Currency data value at the current reader Position. <method namespace="Classes" class="TReader">ReadCurrency</method> first checks the value type (TValueType) by calling the ReadValue method. If the item is a vaCurrency <method namespace="Classes" class="TReader">ReadCurrency</method> calls Read and returns the value. Otherwise it calls ReadInteger.</para>
  10797.          </comments>
  10798.       </member>
  10799.       <member name="M:Classes.Classes.ReadDate">
  10800.          <summary>
  10801.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a TDateTime value from the reader object's stream and returns its value.</para>
  10802.          </summary>
  10803.          <comments>
  10804.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10805.                      
  10806.                <method namespace="Classes" class="TReader">ReadDate</method> is a helper method used by other reader methods to read a tagged TDateTime data value at the current reader Position. <method namespace="Classes" class="TReader">ReadDate</method> first checks the value type (TValueType) by calling the ReadValue method. If the item is a vaDate <method namespace="Classes" class="TReader">ReadDate</method> calls Read and returns the value. Otherwise it calls ReadInteger.</para>
  10807.          </comments>
  10808.       </member>
  10809.       <member name="M:Classes.Classes.ReadIdent">
  10810.          <summary>
  10811.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads an identifier from the reader object's stream and returns the identifier.</para>
  10812.          </summary>
  10813.          <comments>
  10814.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">ReadIndent is a helper method used by other reader methods to read an identifying type at the current reader Position. ReadIndent first checks the value type (TValueType) by calling the ReadValue method. If the item is:</para>
  10815.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A vaIdent type, ReadIndent calls Read and returns the identifier string value.</para>
  10816.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A vaFalse type, <method namespace="Classes" class="TReader">ReadIdent</method> returns the string 'False.'</para>
  10817.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A vaTrue type, <method namespace="Classes" class="TReader">ReadIdent</method> returns the string 'True.'</para>
  10818.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A vaNil type, <method namespace="Classes" class="TReader">ReadIdent</method> returns the string 'Nil.'</para>
  10819.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Otherwise it raises an EReadError exception.</para>
  10820.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10821.                      
  10822.                <para>The strings returned for vaFalse, vaTrue, and vaNil correspond to Delphi reserved words.</para>
  10823.                   
  10824.             </note>
  10825.          </comments>
  10826.       </member>
  10827.       <member name="M:Classes.Classes.ReadInteger">
  10828.          <summary>
  10829.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads an integer-type number from the reader object's stream and returns its value.</para>
  10830.          </summary>
  10831.          <comments>
  10832.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10833.                      
  10834.                <method namespace="Classes" class="TReader">ReadInteger</method> is a helper method used by other reader methods to read a tagged integer value at the current reader Position. <method namespace="Classes" class="TReader">ReadInteger</method> first checks the value type (TValueType) by calling the ReadValue method. If the item is a vaString or a vaInt8, vaInt16 or vaInt32 type, <method namespace="Classes" class="TReader">ReadInteger</method> calls Read and returns the integer value. Otherwise it raises an EReadError exception.</para>
  10835.          </comments>
  10836.       </member>
  10837.       <member name="M:Classes.Classes.ReadInt64">
  10838.          <summary>
  10839.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads an 64-bit integer from the reader object's stream and returns its value.</para>
  10840.          </summary>
  10841.          <comments>
  10842.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10843.                      
  10844.                <method namespace="Classes" class="TReader">ReadInt64</method> is a helper method used by other reader methods to read a tagged 64-bit integer value at the current reader Position. <method namespace="Classes" class="TReader">ReadInt64</method> first checks the value type (TValueType) by calling the ReadValue method. If the item is a vaInt64, <method namespace="Classes" class="TReader">ReadInt64</method> calls Read and returns the integer value. Otherwise it calls ReadInteger, in case the value was saved in another integer format.</para>
  10845.          </comments>
  10846.       </member>
  10847.       <member name="M:Classes.Classes.ReadRootComponent">
  10848.          <summary>
  10849.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a component and all its owned components from the reader object's stream.</para>
  10850.          </summary>
  10851.          <comments>
  10852.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TReader">ReadRootComponent</method> directly. It is used internally by the component streaming system. When the reader object is created by its stream in the stream's ReadComponent method, it immediately calls the <method namespace="Classes" class="TReader">ReadRootComponent</method> method, which initiates the streaming sequence of restoring an object.</para>
  10853.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10854.                      
  10855.                <method namespace="Classes" class="TReader">ReadRootComponent</method> first calls the ReadSignature method to ensure that it is reading a proper component. <method namespace="Classes" class="TReader">ReadRootComponent</method> also handles initializations and fixup references. For example, the component passed in Root becomes the value of the Root property for the reader object.</para>
  10856.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10857.                      
  10858.                <method namespace="Classes" class="TReader">ReadRootComponent</method> calls the component's ReadState method, which calls back to the reader's ReadData method. The ReadState method of TComponent is virtual, which allows component classes to override ReadState to prepare themselves for being loaded with the new data from the stream.</para>
  10859.          </comments>
  10860.       </member>
  10861.       <member name="M:Classes.Classes.ReadStr">
  10862.          <summary>
  10863.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a string value.</para>
  10864.          </summary>
  10865.          <comments>
  10866.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TReader">ReadStr</method> directly. <method namespace="Classes" class="TReader">ReadStr</method> is for internal use by certain CLX components.</para>
  10867.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10868.                      
  10869.                <para>Use <method namespace="Classes" class="TReader">ReadStr</method>ing instead for reading component strings to streams. <method namespace="Classes" class="TReader">ReadStr</method> can corrupt data if not used correctly.</para>
  10870.                   
  10871.             </warning>
  10872.          </comments>
  10873.       </member>
  10874.       <member name="M:Classes.Classes.ReadString">
  10875.          <summary>
  10876.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a tagged string value written by WriteString from the reader object's stream and returns its contents.</para>
  10877.          </summary>
  10878.          <comments>
  10879.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10880.                      
  10881.                <method namespace="Classes" class="TReader">ReadString</method> is a helper method used by other reader methods to read a string at the current reader Position. <method namespace="Classes" class="TReader">ReadString</method> first checks the value type (TValueType) by calling the ReadValue method. If the item is a vaString or a vaLString type <method namespace="Classes" class="TReader">ReadString</method> calls Read and returns the string. Otherwise it raises an EReadError exception.</para>
  10882.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10883.                      
  10884.                <para>Always use <method namespace="Classes" class="TReader">ReadString</method> for reading component strings to streams. The similarly-named ReadStr method is for internal use only by certain CLX components.</para>
  10885.                   
  10886.             </warning>
  10887.          </comments>
  10888.       </member>
  10889.       <member name="M:Classes.Classes.ReadWideString">
  10890.          <summary>
  10891.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a tagged wide string value from the reader object's stream and returns its contents.</para>
  10892.          </summary>
  10893.          <comments>
  10894.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10895.                      
  10896.                <method namespace="Classes" class="TReader">ReadWideString</method> is a helper method used by other reader methods to read a wide string at the current reader Position. <method namespace="Classes" class="TReader">ReadWideString</method> first checks the value type (TValueType) by calling the ReadValue method. If the item is a vaWString type, <method namespace="Classes" class="TReader">ReadWideString</method> calls Read and returns the string. Otherwise it raises an EReadError exception.</para>
  10897.          </comments>
  10898.       </member>
  10899.       <member name="M:Classes.Classes.ReadValue">
  10900.          <summary>
  10901.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads the type of the next item on the reader object's stream and returns with the stream positioned after the value-type indicator.</para>
  10902.          </summary>
  10903.          <comments>
  10904.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10905.                      
  10906.                <method namespace="Classes" class="TReader">ReadValue</method> is used by other reader methods when the subsequent processing depends upon a type check of the data about to be read.</para>
  10907.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The TValueType type defines the kinds of values written to and read from filer objects. CLX filers use a tagged value system, where each value on the stream is preceded by a prefix indicating its type. Those prefixes are of type TValueType.</para>
  10908.          </comments>
  10909.       </member>
  10910.       <member name="M:Classes.Classes.ReadVariant">
  10911.          <summary>
  10912.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a Variant value from the reader object's stream and returns its value.</para>
  10913.          </summary>
  10914.          <comments>
  10915.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10916.                      
  10917.                <method namespace="Classes" class="TReader">ReadVariant</method> is a helper method used by other reader methods to read a tagged Variant data value at the current reader Position. <method namespace="Classes" class="TReader">ReadVariant</method> first checks the value type (TValueType) by calling the ReadValue method. If the item is a vaVariant <method namespace="Classes" class="TReader">ReadVariant</method> calls Read and returns the value. Otherwise it calls ReadInteger.</para>
  10918.          </comments>
  10919.       </member>
  10920.       <member name="M:Classes.Classes.BeginReferences">
  10921.          <summary>
  10922.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Starts a block of commands that read components that might contain references to other components.</para>
  10923.          </summary>
  10924.          <comments>
  10925.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TReader">BeginReferences</method> directly. <method namespace="Classes" class="TReader">BeginReferences</method> is used internally for streaming properties that reference other components.</para>
  10926.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Following the call to <method namespace="Classes" class="TReader">BeginReferences</method>, the reader object creates a list of all the objects read and their names. After all of the interdependent objects are read, FixupReferences is called to resolve the named references from the stream into instance references. Finally, call EndReferences to dispose of the fixup list.</para>
  10927.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10928.                      
  10929.                <method namespace="Classes" class="TReader">BeginReferences</method> is always used together with FixupReferences and EndReferences in a try...finally (Delphi) or try...__finally (C++) block.</para>
  10930.          </comments>
  10931.       </member>
  10932.       <member name="M:Classes.Classes.CheckValue">
  10933.          <summary>
  10934.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Checks that the next value to be read from the stream is of a specified type.</para>
  10935.          </summary>
  10936.          <comments>
  10937.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10938.                      
  10939.                <method namespace="Classes" class="TReader">CheckValue</method> ascertains that the next value to be read from the stream is of the type specified by Value. If it is not, <method namespace="Classes" class="TReader">CheckValue</method> skips over that value, positioning the stream on the following value, and raises an EReadError exception.</para>
  10940.          </comments>
  10941.       </member>
  10942.       <member name="M:Classes.Classes.DefineProperty">
  10943.          <summary>
  10944.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Defines data the reader object reads as if it were a published property.</para>
  10945.          </summary>
  10946.          <comments>
  10947.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10948.                      
  10949.                <method namespace="Classes" class="TReader">DefineProperty</method> is called internally by the DefineProperties method of an object that has data it needs to store. DefineProperties takes a generic filer object as its parameter. For reading data DefineProperties takes a <method namespace="Classes" class="TReader">TReader</method> object and then calls the DefineProperties method of the reader object. <method namespace="Classes" class="TReader">DefineProperty</method> then reads the property's name and its data.</para>
  10950.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Name parameter specifies the name of the "fake" property to be read from the stream.</para>
  10951.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The ReadData parameter points to a procedure (defined in the storing object) that reads the object's data which represents a property value to the reader object. For <method namespace="Classes" class="TReader">TReader</method> the WriteData parameter is ignored.</para>
  10952.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The HasData parameter determines at run time whether the "fake" property has data to store (write). For <method namespace="Classes" class="TReader">TReader</method> the HasData parameter is ignored.</para>
  10953.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The difference between DefineBinaryProperty and <method namespace="Classes" class="TReader">DefineProperty</method> is that the binary property is read directly from a stream, rather than going through a filer object, and binary data is harder to edit as text.</para>
  10954.          </comments>
  10955.       </member>
  10956.       <member name="M:Classes.Classes.DefineBinaryProperty">
  10957.          <summary>
  10958.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Defines binary data the reader object reads as if the data were a published property. </para>
  10959.          </summary>
  10960.          <comments>
  10961.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10962.                      
  10963.                <method namespace="Classes" class="TReader">DefineBinaryProperty</method> is called internally by the DefineProperties method of an object that has data it needs to store. Applications can call <method namespace="Classes" class="TReader">DefineBinaryProperty</method> directly when overriding the DefineProperties method of a component with large custom data (like a bitmap). This is the only context in which <method namespace="Classes" class="TReader">DefineBinaryProperty</method> (or DefineProperty) should be used.</para>
  10964.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DefineProperties takes a generic filer object as its parameter. For reading binary data, DefineProperties takes a <method namespace="Classes" class="TReader">TReader</method> object and calls its <method namespace="Classes" class="TReader">DefineBinaryProperty</method> method. <method namespace="Classes" class="TReader">DefineBinaryProperty</method> then reads the property's name data and passes the data to the indicated ReadData method.</para>
  10965.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Name parameter specifies the name of the "fake" property to be read from the stream. A "fake" property is a property that is not published, and that exists only in the code for the <method namespace="Classes" class="TReader">DefineBinaryProperty</method> method. The Top and Left properties of a non-visual component are examples of "fake" properties. These are also called "defined properties" or "custom defined properties."</para>
  10966.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The ReadData and WriteData parameters point to a procedure (defined in the component object) that reads or writes a binary representation of the object's data directly to or from the stream passed to them in the Stream parameter. For <method namespace="Classes" class="TReader">TReader</method> the WriteData parameter is ignored.</para>
  10967.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The HasData parameter determines at run time whether the "fake" property has data to store (write). For <method namespace="Classes" class="TReader">TReader</method> the HasData parameter is ignored.</para>
  10968.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Defined binary properties are rare. CLX objects that store graphics as binary data are the most common use of filer objects to store and retrieve binary data. More commonly, objects use the DefineProperty method. The difference between <method namespace="Classes" class="TReader">DefineBinaryProperty</method> and DefineProperty is that when using <method namespace="Classes" class="TReader">DefineBinaryProperty</method>, the component reads the binary property directly from a memory stream, rather than going through the filer object. Binary data is also harder to edit as text.</para>
  10969.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10970.                      
  10971.                <para>Streamable objects that are descended from TPersistent inherit a DefineProperties method, however DefineProperties does nothing until TComponent. Therefore, it is a component's DefineProperties method that calls the reader's <method namespace="Classes" class="TReader">DefineBinaryProperty</method> when reading binary data.</para>
  10972.                   
  10973.             </note>
  10974.          </comments>
  10975.       </member>
  10976.       <member name="M:Classes.Classes.EndReferences">
  10977.          <summary>
  10978.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Terminates a block of code that reads components from the reader object's stream that might contain references to each other.</para>
  10979.          </summary>
  10980.          <comments>
  10981.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10982.                      
  10983.                <method namespace="Classes" class="TReader">EndReferences</method> is used for streaming properties that reference another component. Programmers should not need to call <method namespace="Classes" class="TReader">EndReferences</method> directly.</para>
  10984.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The reader object calls <method namespace="Classes" class="TReader">EndReferences</method> and creates a list of all the objects read and their names. After all the interdependent objects are read, FixupReferences is called to resolve the named references from the stream into instance references. Finally, call <method namespace="Classes" class="TReader">EndReferences</method> to dispose of the fixup list.</para>
  10985.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10986.                      
  10987.                <method namespace="Classes" class="TReader">EndReferences</method> is always used in the finally part of a try...finally (Delphi) or try...__finally (C++) block that also includes calls to BeginReferences and FixupReferences.</para>
  10988.          </comments>
  10989.       </member>
  10990.       <member name="M:Classes.Classes.FixupReferences">
  10991.          <summary>
  10992.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Resolves references when streaming properties that are represented by another component.</para>
  10993.          </summary>
  10994.          <comments>
  10995.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  10996.                      
  10997.                <method namespace="Classes" class="TReader">FixupReferences</method> is used internally by the streaming system to resolve the named references from the stream into instance references. Users would never need to call this method.</para>
  10998.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The reader object calls BeginReferences and creates a list of all the objects read and their names. After all the interdependent objects are read, <method namespace="Classes" class="TReader">FixupReferences</method> is called to resolve the references among various mutually dependent components read from the reader object's stream after all of the objects have been read. Finally, call EndReferences to dispose of the fixup list.</para>
  10999.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11000.                      
  11001.                <method namespace="Classes" class="TReader">FixupReferences</method> is always used inside a try...finally (Delphi) or try...__finally (C++) block between calls to BeginReferences and EndReferences.</para>
  11002.          </comments>
  11003.       </member>
  11004.       <member name="M:Classes.Classes.FlushBuffer">
  11005.          <summary>
  11006.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Synchronizes the reader's buffer with its stream's buffer.</para>
  11007.          </summary>
  11008.          <comments>
  11009.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11010.                      
  11011.                <method namespace="Classes" class="TReader">FlushBuffer</method> synchronizes the reader's buffer with the associated stream by setting the stream's Position to match the reader's Position.</para>
  11012.          </comments>
  11013.       </member>
  11014.       <member name="M:Classes.Classes.Read">
  11015.          <summary>
  11016.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11017.                      
  11018.                <method namespace="Classes" class="TReader">Read</method>s data from the associated stream.</para>
  11019.          </summary>
  11020.          <comments>
  11021.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call read directly. <method namespace="Classes" class="TReader">Read</method> is used internally to read data from the stream. Many other writer methods call <method namespace="Classes" class="TReader">Read</method>, usually after setting pertinent values or verifying data types.</para>
  11022.          </comments>
  11023.       </member>
  11024.       <member name="M:Classes.Classes.ReadCollection">
  11025.          <summary>
  11026.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a collection from the reader object's stream and returns that character value.</para>
  11027.          </summary>
  11028.          <comments>
  11029.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11030.                      
  11031.                <method namespace="Classes" class="TReader">ReadCollection</method> is a helper method used by other reader methods to read a tagged collection value at the current reader Position.  <method namespace="Classes" class="TReader">ReadCollection</method> iterates through items in a collection so that each item in a collection property has an opportunity to stream out its properties.  This method does not write out the number of items and the collection indices, because a user can add or delete items.</para>
  11032.          </comments>
  11033.       </member>
  11034.       <member name="M:Classes.Classes.ReadComponents">
  11035.          <summary>
  11036.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a list of owned components from the reader object's associated stream.</para>
  11037.          </summary>
  11038.          <comments>
  11039.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11040.                      
  11041.                <method namespace="Classes" class="TReader">ReadComponents</method> is used internally by the IDE for design-time streaming. Do not call <method namespace="Classes" class="TReader">ReadComponents</method> directly.</para>
  11042.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11043.                      
  11044.                <method namespace="Classes" class="TReader">ReadComponents</method> first sets the reader object's Root and Owner properties to the component passed in the AOwner parameter and sets its Parent property to AParent. Next <method namespace="Classes" class="TReader">ReadComponents</method> reads components by calling the ReadComponent method, passing each returned component to the method passed in Proc.</para>
  11045.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11046.                      
  11047.                <para>
  11048.                         
  11049.                   <method namespace="Classes" class="TReader">ReadComponents</method> is used at design-time for clipboard cut and paste of multiple components.</para>
  11050.                   
  11051.             </note>
  11052.          </comments>
  11053.       </member>
  11054.       <member name="M:Classes.Classes.ReadListBegin">
  11055.          <summary>
  11056.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a start-of-list marker from the reader object's associated stream.</para>
  11057.          </summary>
  11058.          <comments>
  11059.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11060.                      
  11061.                <method namespace="Classes" class="TReader">ReadListBegin</method> is used by other methods that iterate through a list of items to ensure that the type about to be read is a list. <method namespace="Classes" class="TReader">ReadListBegin</method> is also used by component writers in defined property ReadData methods.</para>
  11062.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the next item in the stream is not a start-of list marker as written by the WriteListBegin method, <method namespace="Classes" class="TReader">ReadListBegin</method> raises an EReadError exception.</para>
  11063.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A call to <method namespace="Classes" class="TReader">ReadListBegin</method> is generally followed by a reading loop that terminates when the EndOfList method returns true, indicating that an end-of-list marker is next on the stream, at which point a call to ReadListEnd is required.</para>
  11064.          </comments>
  11065.       </member>
  11066.       <member name="M:Classes.Classes.ReadListEnd">
  11067.          <summary>
  11068.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads an end-of-list marker from the reader object's associated stream.</para>
  11069.          </summary>
  11070.          <comments>
  11071.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11072.                      
  11073.                <method namespace="Classes" class="TReader">ReadListEnd</method> is used by other methods that iterate through a list of items to signal the end of a group of items being read. <method namespace="Classes" class="TReader">ReadListEnd</method> is also used by component writers in defined property ReadData methods.</para>
  11074.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A call to <method namespace="Classes" class="TReader">ReadListEnd</method> is generally preceded by a reading loop that terminates when the EndOfList method returns true, indicating that an end-of-list marker is next on the stream.</para>
  11075.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the item read is not an end-of-list marker, <method namespace="Classes" class="TReader">ReadListEnd</method> raises an EReadError exception. A call to <method namespace="Classes" class="TReader">ReadListEnd</method> must correspond to a preceding call to ReadListBegin.</para>
  11076.          </comments>
  11077.       </member>
  11078.       <member name="M:Classes.Classes.ReadPrefix">
  11079.          <summary>
  11080.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads preliminary information concerning form inheritance for a component.</para>
  11081.          </summary>
  11082.          <comments>
  11083.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11084.                      
  11085.                <method namespace="Classes" class="TReader">ReadPrefix</method> is used internally by the component streaming system. It is called automatically by ReadComponent to read flags that determine whether a component in an inherited form (ffInherited), whether its creation order in the form is important (ffChildPos), and whether it is a top-level component such as a form or data module (ffInline). It also reads the component's position in the ancestor form's creation order if the ffChildPos flag is set. When a writer object writes a component to its stream, it prefixes the component with these flags.</para>
  11086.          </comments>
  11087.       </member>
  11088.       <member name="M:Classes.Classes.ReadSignature">
  11089.          <summary>
  11090.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads the filer signature from the reader object's associated stream. </para>
  11091.          </summary>
  11092.          <comments>
  11093.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11094.                      
  11095.                <method namespace="Classes" class="TReader">ReadSignature</method> is used by several routines to ensure that the file about to be read is a valid component stream. For example, ReadRootComponent, calls <method namespace="Classes" class="TReader">ReadSignature</method> before reading its component from the stream. By checking for the signature before loading objects, the reader object can guard against inadvertently reading invalid or corrupted data.</para>
  11096.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The signature is a four-character sequence.</para>
  11097.          </comments>
  11098.       </member>
  11099.       <member name="M:Classes.Classes.CopyValue">
  11100.          <summary>
  11101.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Copies data while reading components.</para>
  11102.          </summary>
  11103.          <comments>
  11104.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TReader">CopyValue</method>, it is used internally.</para>
  11105.          </comments>
  11106.       </member>
  11107.       <member name="M:Classes.Classes.SkipValue">
  11108.          <summary>
  11109.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Skips the next value read from the stream.</para>
  11110.          </summary>
  11111.          <comments>
  11112.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TReader">SkipValue</method> to skip over a value, positioning the stream on the following value.</para>
  11113.          </comments>
  11114.       </member>
  11115.       <member name="M:Classes.Classes.Destroy">
  11116.          <summary>
  11117.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Moves the current position of the stream back to the beginning before calling the inherited destructor.</para>
  11118.          </summary>
  11119.          <comments>
  11120.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TReader">Destroy</method> directly. Reader objects are created indirectly through the methods or routines that use them. These methods and routines handle freeing the <method namespace="Classes" class="TReader">TReader</method> object.</para>
  11121.          </comments>
  11122.       </member>
  11123.       <member name="P:Classes.Classes.Owner">
  11124.          <summary>
  11125.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Stores the component that is assigned as the <property namespace="Classes" class="TReader">Owner</property> property of components read from the reader object's stream.</para>
  11126.          </summary>
  11127.          <comments>
  11128.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11129.                      
  11130.                <property namespace="Classes" class="TReader">Owner</property> is used internally by the component streaming system to determine which components to stream. The streaming process handles all components owned by the Root component.</para>
  11131.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11132.                      
  11133.                <property namespace="Classes" class="TReader">Owner</property> is the <property namespace="Classes" class="TReader">Owner</property> property of the component read from the stream. The component's <property namespace="Classes" class="TReader">Owner</property> property is assigned its value from the reader's <property namespace="Classes" class="TReader">Owner</property> property. If the value of the reader's <property namespace="Classes" class="TReader">Owner</property> property is nil (Delphi) or NULL (C++), then the Root property is assigned as the component's <property namespace="Classes" class="TReader">Owner</property> property.</para>
  11134.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For most components, <property namespace="Classes" class="TReader">Owner</property> is nil (Delphi) or NULL (C++). For components that can contain subcomponents that are not owned by the Root form, such as the nodes of a tree view component, the <property namespace="Classes" class="TReader">Owner</property> is not the same as the Root. The GetChild<property namespace="Classes" class="TReader">Owner</property> method of the component determines the <property namespace="Classes" class="TReader">Owner</property>.</para>
  11135.          </comments>
  11136.       </member>
  11137.       <member name="P:Classes.Classes.Parent">
  11138.          <summary>
  11139.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Stores the component that is assigned as the <property namespace="Classes" class="TReader">Parent</property> property of controls read from the reader's stream.</para>
  11140.          </summary>
  11141.          <comments>
  11142.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11143.                      
  11144.                <property namespace="Classes" class="TReader">Parent</property> is used internally by the component streaming system. The value of the <property namespace="Classes" class="TReader">Parent</property> property is determined by the order that components are read from the stream. The <property namespace="Classes" class="TReader">Parent</property> relationship determines the visual containment of components.</para>
  11145.          </comments>
  11146.       </member>
  11147.       <member name="P:Classes.Classes.Position">
  11148.          <summary>
  11149.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Represents the current reading position in the associated stream. </para>
  11150.          </summary>
  11151.          <comments>
  11152.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11153.                      
  11154.                <property namespace="Classes" class="TReader">Position</property> is used to track the reader's position within the stream. The value of <property namespace="Classes" class="TReader">Position</property> will always be inside the most recent buffer block read. Thus, for reading, <property namespace="Classes" class="TReader">Position</property> will always be less than the stream's <property namespace="Classes" class="TReader">Position</property>.</para>
  11155.          </comments>
  11156.       </member>
  11157.       <member name="E:Classes.Classes.OnError">
  11158.          <summary>
  11159.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a reader object encounters an error reading its data, such as reading the name of an undeclared property or an illegal value.</para>
  11160.          </summary>
  11161.          <comments>
  11162.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11163.                      
  11164.                <event namespace="Classes" class="TReader">OnError</event> is used internally by the IDE to report errors. It can also be used to write an event handler to selectively choose to process or ignore errors.</para>
  11165.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The last parameter passed to the <event namespace="Classes" class="TReader">OnError</event> event handler, Handled, is passed by reference. By default, the Error method passes false in Handled, but a handler that corrects the error or chooses to ignore the error can set Handled to true, which prevents further processing of the error. If the event handler returns with Handler still set to false, the reader object raises an EReadError exception.</para>
  11166.          </comments>
  11167.       </member>
  11168.       <member name="E:Classes.Classes.OnFindMethod">
  11169.          <summary>
  11170.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs each time the reader object reads an event, which is a method-pointer property, for an object.</para>
  11171.          </summary>
  11172.          <comments>
  11173.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11174.                      
  11175.                <event namespace="Classes" class="TReader">OnFindMethod</event> is used internally by the IDE for reading events. It can also be used to write a handler to ask the user how to handle missing methods.</para>
  11176.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the reader cannot locate the named method assigned to the method pointer, it sets the Error parameter of the <event namespace="Classes" class="TReader">OnFindMethod</event> handler to true. The handler can set Error to false, which prevents FindMethod from raising an exception when the handler returns.</para>
  11177.          </comments>
  11178.       </member>
  11179.       <member name="E:Classes.Classes.OnSetName">
  11180.          <summary>
  11181.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs just before the reader object sets the Name property of a component it reads from its stream.</para>
  11182.          </summary>
  11183.          <comments>
  11184.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11185.                      
  11186.                <event namespace="Classes" class="TReader">OnSetName</event> is used by internally by the IDE to handle duplicate names of components and forms. It can also be used to write an event handler to perform special processing just before the Name property is set for the component which has just been created and is about to have its properties read from the stream.</para>
  11187.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Name parameter to the <event namespace="Classes" class="TReader">OnSetName</event> event handler passed by reference, so the handler can change the name before the reader assigns it to the component. For example, <event namespace="Classes" class="TReader">OnSetName</event> is useful for filtering all the component names in a form, to add or change part of the string.</para>
  11188.          </comments>
  11189.       </member>
  11190.       <member name="E:Classes.Classes.OnReferenceName">
  11191.          <summary>
  11192.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when resolving references to other objects such as when one object is the property value of another.</para>
  11193.          </summary>
  11194.          <comments>
  11195.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11196.                      
  11197.                <event namespace="Classes" class="TReader">OnReferenceName</event> is for internal use only.</para>
  11198.          </comments>
  11199.       </member>
  11200.       <member name="E:Classes.Classes.OnAncestorNotFound">
  11201.          <summary>
  11202.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the object from which a streamed object is derived cannot be found.</para>
  11203.          </summary>
  11204.          <comments>
  11205.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11206.                      
  11207.                <event namespace="Classes" class="TReader">OnAncestorNotFound</event> is for internal use.</para>
  11208.          </comments>
  11209.       </member>
  11210.       <member name="E:Classes.Classes.OnCreateComponent">
  11211.          <summary>
  11212.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the reader has read a component's class but has not yet instantiated the component.</para>
  11213.          </summary>
  11214.          <comments>
  11215.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11216.                      
  11217.                <event namespace="Classes" class="TReader">OnCreateComponent</event> is used internally to provide an alternate mechanism for instantiating components. If <event namespace="Classes" class="TReader">OnCreateComponent</event> returns a component as the value of the Component parameter, the Reader uses that instance instead of calling the component's constructor.</para>
  11218.          </comments>
  11219.       </member>
  11220.       <member name="E:Classes.Classes.OnFindComponentClass">
  11221.          <summary>
  11222.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a reader first reads the name of a component class.</para>
  11223.          </summary>
  11224.          <comments>
  11225.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The ReadComponent method generates an <event namespace="Classes" class="TReader">OnFindComponentClass</event> event when it reads the class name for the component it is loading. An <event namespace="Classes" class="TReader">OnFindComponentClass</event> event handler can replace the class reference with a different class to change the type of component that gets loaded.</para>
  11226.          </comments>
  11227.       </member>
  11228.       <member name="T:Classes.TWriter">
  11229.          <summary>
  11230.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11231.                
  11232.                <class namespace="Classes">TWriter</class> is a specialized filer object that writes data to its associated stream.</para>
  11233.          </summary>
  11234.          <comments>
  11235.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11236.                
  11237.                <class namespace="Classes">TWriter</class> is used internally by the component streaming system to write information associated with a component, such as published properties of components or custom property data, to a stream. <class namespace="Classes">TWriter</class> handles the mechanics of writing the data associated with a component to a stream. It is the writer object, rather than the stream, that is responsible for handling the complexities of streaming components. These include methods for:</para>
  11238.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writing different kinds of items to the associated stream.</para>
  11239.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writing property deltas used for streaming inherited forms and properties with default values.</para>
  11240.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writing nested groups of items or collections to the stream.</para>
  11241.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Other methods and properties of <class namespace="Classes">TWriter</class> are used for interacting with stream and component objects.</para>
  11242.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not directly create writer objects. Writers are automatically created in stream object methods or in global routines that initiate the streaming process. These include:</para>
  11243.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">the global routine ObjectTextToBinary procedure, which directly creates a writer.</para>
  11244.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">the global WriteComponentResFile function, which creates a file stream that creates a writer.</para>
  11245.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">the WriteDescendent method of TStream, which creates a writer object.</para>
  11246.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Once the streaming process is underway, programs do not need to directly manipulate writer objects. The interaction between the writer, component, and stream objects happens automatically in methods of these objects that make calls to each other.</para>
  11247.          </comments>
  11248.       </member>
  11249.       <member name="M:Classes.Classes.DefineProperty">
  11250.          <summary>
  11251.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Defines data the writer object writes as if the data were a property.</para>
  11252.          </summary>
  11253.          <comments>
  11254.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11255.                      
  11256.                <method namespace="Classes" class="TWriter">DefineProperty</method> is called internally by the DefineProperties method of an object that has data it needs to store. DefineProperties takes a generic filer object as its parameter. For writing data, DefineProperties takes a <method namespace="Classes" class="TWriter">TWriter</method> object and calls its <method namespace="Classes" class="TWriter">DefineProperty</method> method. <method namespace="Classes" class="TWriter">DefineProperty</method> then writes the property's name and its data, but only if the HasData parameter is true. Otherwise it does nothing.</para>
  11257.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Name parameter specifies the name of the "fake" property to be written to the stream.</para>
  11258.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The WriteData parameter points to a procedure (defined in the component object) that writes the object's data, which represents a property value, to the writer object. For <method namespace="Classes" class="TWriter">TWriter</method> the ReadData parameter is ignored.</para>
  11259.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The HasData parameter determines at run time whether the "fake" property has data to store (write). Thus, writer objects only use HasData when writing data.</para>
  11260.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The difference between DefineBinaryProperty and <method namespace="Classes" class="TWriter">DefineProperty</method> is that with DefineBinaryProperty, the binary data is written directly to a stream object, rather than going through a filer object.</para>
  11261.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When writing a component that has special (large) data storage requirements, the component's DefineProperties can be overridden. For each special or "fake" property item, call <method namespace="Classes" class="TWriter">DefineProperty</method> or DefineBinaryProperty. For the ReadData and WriteData parameters, pass in methods of the component that know how to handle that special data type. When reading, ReadData is called. When writing, WriteData is called.</para>
  11262.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11263.                      
  11264.                <para>When defining properties, a component should be aware of the Ancestor property, which, if non-nil (Delphi) or non-NULL (C++) indicates that the component should only write the values of properties that differ from those inherited from Ancestor.</para>
  11265.                   
  11266.             </note>
  11267.          </comments>
  11268.       </member>
  11269.       <member name="M:Classes.Classes.DefineBinaryProperty">
  11270.          <summary>
  11271.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Treats unformatted data as if it were the value of a published property, and writes it directly to a memory stream.</para>
  11272.          </summary>
  11273.          <comments>
  11274.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11275.                      
  11276.                <method namespace="Classes" class="TWriter">DefineBinaryProperty</method> is called internally by the DefineProperties method of an object that has data it needs to store. DefineProperties takes a generic filer object as its parameter.</para>
  11277.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For writing binary data DefineProperties takes a <method namespace="Classes" class="TWriter">TWriter</method> object and then calls its <method namespace="Classes" class="TWriter">DefineBinaryProperty</method> method. <method namespace="Classes" class="TWriter">DefineBinaryProperty</method> writes the property's name and it's data, but only if the HasData parameter is true. Otherwise it does nothing.</para>
  11278.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Name parameter specifies the name of the "fake" property to be written to the stream. A "fake" property is a property that is not published, and that exists only in the code for the <method namespace="Classes" class="TWriter">DefineBinaryProperty</method> method. The Top and Left properties of a non-visual component are examples of "fake" properties. These are also called "defined properties" or "custom defined properties."</para>
  11279.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The TStreamProc type is the type of the ReadData and WriteData parameters. It is the method-pointer type that points to a procedure (defined in the storing object) that reads or writes a binary representation of the object's data directly to or from the stream passed as its Stream parameter. For <method namespace="Classes" class="TWriter">TWriter</method> the ReadData parameter is ignored.</para>
  11280.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The HasData parameter determines at run time whether the "fake" property has data to store (write).</para>
  11281.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Defined binary properties are quite rare. Persistent objects that store graphics as binary data are the most common use of filer objects to store and retrieve that data. More commonly, objects use the DefineProperty method. The difference between <method namespace="Classes" class="TWriter">DefineBinaryProperty</method> and DefineProperty is that with <method namespace="Classes" class="TWriter">DefineBinaryProperty</method> the component reads or writes the binary property directly to or from a memory stream, rather than going through a filer object.</para>
  11282.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11283.                      
  11284.                <para>Streamable objects that are descended from TPersistent inherit a DefineProperties method, however DefineProperties does not do anything until TComponent. It is TComponent's DefineProperties method that calls the writer's <method namespace="Classes" class="TWriter">DefineBinaryProperty</method> when writing out binary data.</para>
  11285.                   
  11286.             </note>
  11287.          </comments>
  11288.       </member>
  11289.       <member name="M:Classes.Classes.FlushBuffer">
  11290.          <summary>
  11291.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Synchronizes the writer's buffer with the associated stream by writing the current buffer.</para>
  11292.          </summary>
  11293.          <comments>
  11294.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11295.                      
  11296.                <method namespace="Classes" class="TWriter">FlushBuffer</method> is not generally used except for internal implementation in the IDE.</para>
  11297.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11298.                      
  11299.                <method namespace="Classes" class="TWriter">FlushBuffer</method> writes the current buffer to the stream, then resets an internal pointer to the correct position.</para>
  11300.          </comments>
  11301.       </member>
  11302.       <member name="M:Classes.Classes.Write">
  11303.          <summary>
  11304.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11305.                      
  11306.                <method namespace="Classes" class="TWriter">Write</method>s Count bytes from Buf to the writer object's associated stream.</para>
  11307.          </summary>
  11308.          <comments>
  11309.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TWriter">Write</method> directly. It is used internally to write data to the stream. Many other writer methods call <method namespace="Classes" class="TWriter">Write</method>, usually after setting pertinent values or verifying data types.</para>
  11310.          </comments>
  11311.       </member>
  11312.       <member name="M:Classes.Classes.WriteBoolean">
  11313.          <summary>
  11314.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the Boolean value passed in Value to the writer object's stream.</para>
  11315.          </summary>
  11316.          <comments>
  11317.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11318.                      
  11319.                <method namespace="Classes" class="TWriter">WriteBoolean</method> is used internally by the component streaming system to write component properties to a stream. Use <method namespace="Classes" class="TWriter">WriteBoolean</method> for writing component boolean properties to streams.</para>
  11320.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11321.                      
  11322.                <method namespace="Classes" class="TWriter">WriteBoolean</method> checks to ensure that Value is the correct type before calling Write to write the boolean value and its value type to the stream.</para>
  11323.          </comments>
  11324.       </member>
  11325.       <member name="M:Classes.Classes.WriteCollection">
  11326.          <summary>
  11327.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the collection of objects passed in Value to the writer object's stream.</para>
  11328.          </summary>
  11329.          <comments>
  11330.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11331.                      
  11332.                <method namespace="Classes" class="TWriter">WriteCollection</method> is used internally by the component streaming system to write component properties to a stream. Use <method namespace="Classes" class="TWriter">WriteCollection</method> for writing component properties that are collections to streams.</para>
  11333.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11334.                      
  11335.                <method namespace="Classes" class="TWriter">WriteCollection</method> first writes the type identifier indicating a collection.</para>
  11336.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the Value parameter is not nil (Delphi) or NULL (C++), <method namespace="Classes" class="TWriter">WriteCollection</method> next writes each element of the collection to the stream, bounding the elements with start-of-list and end-of-list markers. Otherwise, it skips the elements, assuming an empty collection.</para>
  11337.          </comments>
  11338.       </member>
  11339.       <member name="M:Classes.Classes.WriteComponent">
  11340.          <summary>
  11341.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the component specified by Component to a stream.</para>
  11342.          </summary>
  11343.          <comments>
  11344.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Never call <method namespace="Classes" class="TWriter">WriteComponent</method> directly. <method namespace="Classes" class="TWriter">WriteComponent</method> is recursively called for each owned component in Root.</para>
  11345.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11346.                      
  11347.                <method namespace="Classes" class="TWriter">WriteComponent</method> sets the csWriting state in Component's ComponentState property before calling the WriteState method of Component and clears the csWriting flag when WriteState returns.</para>
  11348.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11349.                      
  11350.                <para>The sequence of events is as follows: the writer's <method namespace="Classes" class="TWriter">WriteComponent</method> method calls the Component's WriteState method, which calls the writer's WriteData method. That method writes the properties for each child component, then calls <method namespace="Classes" class="TWriter">WriteComponent</method>.</para>
  11351.                   
  11352.             </note>
  11353.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Because the Component's WriteState is virtual, it is the Component's only opportunity to prepare itself to be streamed (i.e. to consolidate its data.)</para>
  11354.          </comments>
  11355.       </member>
  11356.       <member name="M:Classes.Classes.WriteChar">
  11357.          <summary>
  11358.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the character passed in Value to the writer object's stream.</para>
  11359.          </summary>
  11360.          <comments>
  11361.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11362.                      
  11363.                <method namespace="Classes" class="TWriter">WriteChar</method> is used internally by the component streaming system to write component properties to a stream. Use <method namespace="Classes" class="TWriter">WriteChar</method> for writing component character properties to streams.</para>
  11364.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11365.                      
  11366.                <method namespace="Classes" class="TWriter">WriteChar</method> calls WriteString which checks to ensure that Value is the correct type before calling Write to write the character and its value type to the stream. </para>
  11367.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11368.                      
  11369.                <para>
  11370.                         
  11371.                   <method namespace="Classes" class="TWriter">WriteChar</method> calls StringChar to enable writing character properties that are upwardly compatible with string properties.</para>
  11372.                   
  11373.             </note>
  11374.          </comments>
  11375.       </member>
  11376.       <member name="M:Classes.Classes.WriteDescendent">
  11377.          <summary>
  11378.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Triggers the writing of descendant components in inherited forms.</para>
  11379.          </summary>
  11380.          <comments>
  11381.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Never call <method namespace="Classes" class="TWriter">WriteDescendent</method> directly. It is part of a sequence of calls used for streaming descendant components in inherited forms.</para>
  11382.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11383.                      
  11384.                <method namespace="Classes" class="TWriter">WriteDescendent</method> sets the writer object's Ancestor and RootAncestor properties to the value passed in AAncestor, sets the Root property to the value passed in Root, then calls WriteSignature and WriteComponent to write Root and any components it owns to the writer object's stream.</para>
  11385.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11386.                      
  11387.                <method namespace="Classes" class="TWriter">WriteDescendent</method> differs from WriteComponent in that, by setting Ancestor, it uses Ancestor's property values as the defaults, rather than those defined by Root's type.</para>
  11388.          </comments>
  11389.       </member>
  11390.       <member name="M:Classes.Classes.WriteFloat">
  11391.          <summary>
  11392.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the floating-point value passed in Value to the writer object's stream.</para>
  11393.          </summary>
  11394.          <comments>
  11395.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11396.                      
  11397.                <method namespace="Classes" class="TWriter">WriteFloat</method> is used internally by the component streaming system to write component properties to a stream. Use <method namespace="Classes" class="TWriter">WriteFloat</method> for writing floating point data to streams.</para>
  11398.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11399.                      
  11400.                <method namespace="Classes" class="TWriter">WriteFloat</method> checks to ensure that Value is the correct type before calling Write to write the float value and its value type to the stream.</para>
  11401.          </comments>
  11402.       </member>
  11403.       <member name="M:Classes.Classes.WriteSingle">
  11404.          <summary>
  11405.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes a value of type Single (Delphi) or float (C++) to the writer's stream.</para>
  11406.          </summary>
  11407.          <comments>
  11408.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11409.                      
  11410.                <method namespace="Classes" class="TWriter">WriteSingle</method> is used internally by the component streaming system to write component properties to a stream. Use <method namespace="Classes" class="TWriter">WriteSingle</method> for writing component properties of Delphi type Single (which corresponds to C++ type float) to streams.</para>
  11411.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11412.                      
  11413.                <method namespace="Classes" class="TWriter">WriteSingle</method> first writes a type identifier before writing the value.</para>
  11414.          </comments>
  11415.       </member>
  11416.       <member name="M:Classes.Classes.WriteCurrency">
  11417.          <summary>
  11418.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes a currency value to the writer's stream.</para>
  11419.          </summary>
  11420.          <comments>
  11421.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11422.                      
  11423.                <method namespace="Classes" class="TWriter">WriteCurrency</method> is used internally by the component streaming system to write component properties to a stream. Use <method namespace="Classes" class="TWriter">WriteCurrency</method> for writing component properties of type Currency to streams.</para>
  11424.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11425.                      
  11426.                <method namespace="Classes" class="TWriter">WriteCurrency</method> first writes a type identifier before writing the currency value.</para>
  11427.          </comments>
  11428.       </member>
  11429.       <member name="M:Classes.Classes.WriteDate">
  11430.          <summary>
  11431.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes a datetime value to the writer's stream.</para>
  11432.          </summary>
  11433.          <comments>
  11434.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11435.                      
  11436.                <method namespace="Classes" class="TWriter">WriteDate</method> is used internally by the component streaming system to write component properties to a stream. Use <method namespace="Classes" class="TWriter">WriteDate</method> for writing component properties of type TDateTime to streams.</para>
  11437.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11438.                      
  11439.                <method namespace="Classes" class="TWriter">WriteDate</method> first writes a type identifier before writing the TDateTime value.</para>
  11440.          </comments>
  11441.       </member>
  11442.       <member name="M:Classes.Classes.WriteIdent">
  11443.          <summary>
  11444.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the identifier passed in Ident to the writer object's stream.</para>
  11445.          </summary>
  11446.          <comments>
  11447.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11448.                      
  11449.                <method namespace="Classes" class="TWriter">WriteIdent</method> is used internally by the component streaming system to write component properties to a stream. Use <method namespace="Classes" class="TWriter">WriteIdent</method> for writing component identifier properties to streams. Component names and enumerated type elements are examples of strings that must be restricted to identifier syntax.</para>
  11450.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11451.                      
  11452.                <method namespace="Classes" class="TWriter">WriteIdent</method> checks for certain common identifiers (such as true, false, nil (Delphi), or NULL (C++)) and inserts a special token for these values. Otherwise, it writes the identifier as a string.</para>
  11453.          </comments>
  11454.       </member>
  11455.       <member name="M:Classes.Classes.WriteInteger">
  11456.          <summary>
  11457.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the integer value passed in Value to the writer object's stream.</para>
  11458.          </summary>
  11459.          <comments>
  11460.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11461.                      
  11462.                <method namespace="Classes" class="TWriter">WriteInteger</method> is used internally by the component streaming system to write component properties to a stream. Use <method namespace="Classes" class="TWriter">WriteInteger</method> for writing component integer properties to streams.</para>
  11463.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11464.                      
  11465.                <method namespace="Classes" class="TWriter">WriteInteger</method> checks to ensure that Value is the correct type before calling Write to write the integer value and its value type to the stream. <method namespace="Classes" class="TWriter">WriteInteger</method> handles integers of different sizes.</para>
  11466.          </comments>
  11467.       </member>
  11468.       <member name="M:Classes.Classes.WriteListBegin">
  11469.          <summary>
  11470.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes a start-of-list marker to the writer object's associated stream.</para>
  11471.          </summary>
  11472.          <comments>
  11473.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11474.                      
  11475.                <method namespace="Classes" class="TWriter">WriteListBegin</method> is used by other methods that iterate through a group of items about to be written to the stream. <method namespace="Classes" class="TWriter">WriteListBegin</method> writes a start-of-list marker to the writer object's associated stream. Every call to <method namespace="Classes" class="TWriter">WriteListBegin</method> must have a corresponding call to WriteListEnd.</para>
  11476.          </comments>
  11477.       </member>
  11478.       <member name="M:Classes.Classes.WriteListEnd">
  11479.          <summary>
  11480.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes an end-of-list marker to the writer object's associated stream.</para>
  11481.          </summary>
  11482.          <comments>
  11483.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11484.                      
  11485.                <method namespace="Classes" class="TWriter">WriteListEnd</method> is used by other methods that iterate through a group of items that are sequentially written to the stream during a single process. </para>
  11486.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A call to <method namespace="Classes" class="TWriter">WriteListEnd</method> is generally preceded by a writing loop. A call to <method namespace="Classes" class="TWriter">WriteListEnd</method> must correspond to a preceding call to WriteListBegin.</para>
  11487.          </comments>
  11488.       </member>
  11489.       <member name="M:Classes.Classes.WriteRootComponent">
  11490.          <summary>
  11491.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Calls the WriteDescendent method.</para>
  11492.          </summary>
  11493.          <comments>
  11494.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11495.                      
  11496.                <method namespace="Classes" class="TWriter">WriteRootComponent</method> is provided for backward compatibility only.</para>
  11497.          </comments>
  11498.       </member>
  11499.       <member name="M:Classes.Classes.WriteSignature">
  11500.          <summary>
  11501.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes a filer signature to the writer object's associated stream.</para>
  11502.          </summary>
  11503.          <comments>
  11504.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11505.                      
  11506.                <method namespace="Classes" class="TWriter">WriteSignature</method> is used internally by several methods that write the filer signature before processing some action. For example, the WriteRootComponent method calls <method namespace="Classes" class="TWriter">WriteSignature</method> before writing its component to the stream. By checking for the signature before loading objects, reader objects can guard against inadvertently reading invalid or corrupted data.</para>
  11507.          </comments>
  11508.       </member>
  11509.       <member name="M:Classes.Classes.WriteStr">
  11510.          <summary>
  11511.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes raw data to the writer object's stream.</para>
  11512.          </summary>
  11513.          <comments>
  11514.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TWriter">WriteStr</method> directly. <method namespace="Classes" class="TWriter">WriteStr</method> is for internal use by certain components. <method namespace="Classes" class="TWriter">WriteStr</method> writes the string passed in Value to the writer object's stream.</para>
  11515.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11516.                      
  11517.                <para>Always use <method namespace="Classes" class="TWriter">WriteStr</method>ing for writing component strings to streams. <method namespace="Classes" class="TWriter">WriteStr</method> can corrupt data if not used correctly.</para>
  11518.                   
  11519.             </warning>
  11520.          </comments>
  11521.       </member>
  11522.       <member name="M:Classes.Classes.WriteString">
  11523.          <summary>
  11524.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes tagged data to the writer object's stream.</para>
  11525.          </summary>
  11526.          <comments>
  11527.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11528.                      
  11529.                <method namespace="Classes" class="TWriter">WriteString</method> is used internally by the component streaming system to write component properties to a stream. <method namespace="Classes" class="TWriter">WriteString</method> is otherwise only used by component writers in the DefineProperties and WriteData procedures.</para>
  11530.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11531.                      
  11532.                <method namespace="Classes" class="TWriter">WriteString</method> writes the string passed in Value to the writer object's stream. <method namespace="Classes" class="TWriter">WriteString</method> checks to ensure that Value is the correct type before calling Write to write the string and its value type to the stream.</para>
  11533.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11534.                      
  11535.                <para>Always use <method namespace="Classes" class="TWriter">WriteString</method> for writing component strings to streams. The similarly-named WriteStr method is for internal use by certain components and can corrupt data if not used correctly.</para>
  11536.                   
  11537.             </warning>
  11538.          </comments>
  11539.       </member>
  11540.       <member name="M:Classes.Classes.WriteWideString">
  11541.          <summary>
  11542.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11543.                      
  11544.                <method namespace="Classes" class="TWriter">WriteWideString</method> writes a wide string to the writer's stream.</para>
  11545.          </summary>
  11546.          <comments>
  11547.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11548.                      
  11549.                <method namespace="Classes" class="TWriter">WriteWideString</method> is used internally by the component streaming system to write component properties to a stream. Use <method namespace="Classes" class="TWriter">WriteWideString</method> for writing WideString component to streams.</para>
  11550.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11551.                      
  11552.                <method namespace="Classes" class="TWriter">WriteWideString</method> first writes a type identifier and the length of the string before writing the value.</para>
  11553.          </comments>
  11554.       </member>
  11555.       <member name="M:Classes.Classes.WriteVariant">
  11556.          <summary>
  11557.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes a Variant value to the writer's stream.</para>
  11558.          </summary>
  11559.          <comments>
  11560.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11561.                      
  11562.                <method namespace="Classes" class="TWriter">WriteVariant</method> is used internally by the streaming system to write component properties to a stream. Use <method namespace="Classes" class="TWriter">WriteVariant</method> for writing component properties of type Variant to streams.</para>
  11563.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11564.                      
  11565.                <method namespace="Classes" class="TWriter">WriteVariant</method> first writes a type identifier before writing the Variant value.</para>
  11566.          </comments>
  11567.       </member>
  11568.       <member name="M:Classes.Classes.Destroy">
  11569.          <summary>
  11570.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11571.                      
  11572.                <method namespace="Classes" class="TWriter">Destroy</method>s of an instance of a writer.</para>
  11573.          </summary>
  11574.          <comments>
  11575.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TWriter">Destroy</method> directly in an application. Writers are created indirectly by the global routines or stream methods that use them. When these routines are finished, they handle disposing of the writer.</para>
  11576.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11577.                      
  11578.                <method namespace="Classes" class="TWriter">Destroy</method> writes the buffer before calling the inherited <method namespace="Classes" class="TWriter">Destroy</method>, which frees the buffer.</para>
  11579.          </comments>
  11580.       </member>
  11581.       <member name="P:Classes.Classes.Position">
  11582.          <summary>
  11583.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Represents the current writing position in the associated stream.</para>
  11584.          </summary>
  11585.          <comments>
  11586.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11587.                      
  11588.                <property namespace="Classes" class="TWriter">Position</property> is used internally by writer objects to indicate the current writing position in the stream.</para>
  11589.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of <property namespace="Classes" class="TWriter">Position</property> will be inside the most recent buffer block read or the next block to be written. Thus, for writing, <property namespace="Classes" class="TWriter">Position</property> will generally be less than the stream's <property namespace="Classes" class="TWriter">Position</property>. When <property namespace="Classes" class="TWriter">Position</property> is set to a location outside the current buffer, the writer's buffer is flushed to the stream.</para>
  11590.          </comments>
  11591.       </member>
  11592.       <member name="P:Classes.Classes.RootAncestor">
  11593.          <summary>
  11594.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Represents the ancestor of the component in the Root property.</para>
  11595.          </summary>
  11596.          <comments>
  11597.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11598.                      
  11599.                <property namespace="Classes" class="TWriter">RootAncestor</property> is used internally by writer objects for dealing with form inheritance. It is used to iterate through ancestor components when writing properties in inherited forms.</para>
  11600.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11601.                      
  11602.                <property namespace="Classes" class="TWriter">RootAncestor</property> is always the ancestor form. For each component in Root, which is the inherited form, the Ancestor property tracks a corresponding component in <property namespace="Classes" class="TWriter">RootAncestor</property>.</para>
  11603.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The writer object iterates through each of the Root form's owned components, comparing each to the corresponding component in the <property namespace="Classes" class="TWriter">RootAncestor</property> form. It then writes only those properties in the current component that differ in some way from those in the Ancestor component.</para>
  11604.          </comments>
  11605.       </member>
  11606.       <member name="P:Classes.Classes.UseQualifiedNames">
  11607.          <summary>
  11608.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether all class names should be qualified by the name of the unit in which they are defined.</para>
  11609.          </summary>
  11610.          <comments>
  11611.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Classes" class="TWriter">UseQualifiedNames</property> to indicate whether class names need to be qualified by the name of the unit in which they are defined. In Windows versions of the IDE, for example, some components (such as TButton) appear both in the Windows-only and in the cross-platform component libraries. When writing such a component, setting <property namespace="Classes" class="TWriter">UseQualifiedNames</property> to true allows a reader to distinguish the Windows-only TButton control in StdCtrls from the cross-platform TButton control in QStdCtrls.</para>
  11612.          </comments>
  11613.       </member>
  11614.       <member name="E:Classes.Classes.OnFindAncestor">
  11615.          <summary>
  11616.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a component is about to be written to a stream.</para>
  11617.          </summary>
  11618.          <comments>
  11619.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11620.                      
  11621.                <event namespace="Classes" class="TWriter">OnFindAncestor</event> allows the writer to explicitly specify the ancestor of a component when it is written to a stream. The WriteComponent method generates this event to override the value of the Ancestor property before writing a component to a stream.</para>
  11622.          </comments>
  11623.       </member>
  11624.       <member name="T:Classes.EThread">
  11625.          <summary>
  11626.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11627.                
  11628.                <class namespace="Classes">EThread</class> is the exception class for thread synchronization errors.</para>
  11629.          </summary>
  11630.          <comments>
  11631.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11632.                
  11633.                <class namespace="Classes">EThread</class> is never raised. It is defined for backward compatibility.</para>
  11634.          </comments>
  11635.       </member>
  11636.       <member name="T:Classes.TThreadPriority">
  11637.          <summary>
  11638.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11639.                
  11640.                <type namespace="Qt">TThreadPriority</type> indicates the scheduling priority of a thread object on Windows.</para>
  11641.          </summary>
  11642.          <comments>
  11643.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The following are possible values of <type namespace="Qt">TThreadPriority</type>:</para>
  11644.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11645.                
  11646.                <tr>
  11647.                   
  11648.                   <th>Values</th>
  11649.                   
  11650.                   <th>Meaning</th>
  11651.                
  11652.                </tr>
  11653.                
  11654.                <tr>
  11655.                   
  11656.                   <td>
  11657.                      
  11658.                      <para>tpIdle</para>
  11659.                   
  11660.                   </td>
  11661.                   
  11662.                   <td>
  11663.                      
  11664.                      <para>The thread executes only when the system is idle. The system will not interrupt other threads to execute a thread with tpIdle priority.</para>
  11665.                   
  11666.                   </td>
  11667.                
  11668.                </tr>
  11669.                
  11670.                <tr>
  11671.                   
  11672.                   <td>
  11673.                      
  11674.                      <para>tpLowest</para>
  11675.                   
  11676.                   </td>
  11677.                   
  11678.                   <td>
  11679.                      
  11680.                      <para>The thread's priority is two points below normal.</para>
  11681.                   
  11682.                   </td>
  11683.                
  11684.                </tr>
  11685.                
  11686.                <tr>
  11687.                   
  11688.                   <td>
  11689.                      
  11690.                      <para>tpLower</para>
  11691.                   
  11692.                   </td>
  11693.                   
  11694.                   <td>
  11695.                      
  11696.                      <para>The thread's priority is one point below normal.</para>
  11697.                   
  11698.                   </td>
  11699.                
  11700.                </tr>
  11701.                
  11702.                <tr>
  11703.                   
  11704.                   <td>
  11705.                      
  11706.                      <para>tpNormal</para>
  11707.                   
  11708.                   </td>
  11709.                   
  11710.                   <td>
  11711.                      
  11712.                      <para>The thread has normal priority.</para>
  11713.                   
  11714.                   </td>
  11715.                
  11716.                </tr>
  11717.                
  11718.                <tr>
  11719.                   
  11720.                   <td>
  11721.                      
  11722.                      <para>tpHigher</para>
  11723.                   
  11724.                   </td>
  11725.                   
  11726.                   <td>
  11727.                      
  11728.                      <para>The thread's priority is one point above normal.</para>
  11729.                   
  11730.                   </td>
  11731.                
  11732.                </tr>
  11733.                
  11734.                <tr>
  11735.                   
  11736.                   <td>
  11737.                      
  11738.                      <para>tpHighest</para>
  11739.                   
  11740.                   </td>
  11741.                   
  11742.                   <td>
  11743.                      
  11744.                      <para>The thread's priority is two points above normal.</para>
  11745.                   
  11746.                   </td>
  11747.                
  11748.                </tr>
  11749.                
  11750.                <tr>
  11751.                   
  11752.                   <td>
  11753.                      
  11754.                      <para>tpTimeCritical</para>
  11755.                   
  11756.                   </td>
  11757.                   
  11758.                   <td>
  11759.                      
  11760.                      <para>The thread gets highest priority.</para>
  11761.                   
  11762.                   </td>
  11763.                
  11764.                </tr>
  11765.             
  11766.             </table>
  11767.          </comments>
  11768.       </member>
  11769.       <member name="T:Classes.TThread">
  11770.          <summary>
  11771.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11772.                
  11773.                <class namespace="Classes">TThread</class> is an abstract class that
  11774.         enables creation of separate threads of execution in an application.</para>
  11775.          </summary>
  11776.          <comments>
  11777.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Create a descendant of 
  11778.         <class namespace="Classes">TThread</class> to represent an execution
  11779.         thread in a multi-threaded application. Each new instance of a 
  11780.         <class namespace="Classes">TThread</class> descendant is a new thread of
  11781.         execution. Multiple instances of a 
  11782.         <class namespace="Classes">TThread</class> derived class make an
  11783.         application multi-threaded. </para>
  11784.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When an application is run, it is loaded into memory ready for
  11785.         execution. At this point it becomes a process containing one or more threads
  11786.         that contain the data, code and other system resources for the program. A
  11787.         thread executes one part of an application and is allocated CPU time by the
  11788.         operating system. All threads of a process share the same address space and can
  11789.         access the process's global variables.</para>
  11790.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use threads to improve application performance by</para>
  11791.             <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" type="bullet">
  11792.                
  11793.                <item>
  11794.                   
  11795.                   <para>Managing input from several communication devices.</para>
  11796.                
  11797.                </item>
  11798.                
  11799.                <item>
  11800.                   
  11801.                   <para>Distinguishing among tasks of varying priority. For example, a
  11802.              high priority thread handles time critical tasks, and a low priority thread
  11803.              performs other tasks.</para>
  11804.                
  11805.                </item>
  11806.             
  11807.             </list>
  11808.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Following are issues and recommendations to be aware of when using
  11809.         threads:</para>
  11810.             <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" type="bullet">
  11811.                
  11812.                <item>
  11813.                   
  11814.                   <para>Keeping track of too many threads consumes CPU time; the
  11815.              recommended limit is 16 active threads per process on single processor
  11816.              systems.</para>
  11817.                
  11818.                </item>
  11819.                
  11820.                <item>
  11821.                   
  11822.                   <para>When multiple threads update the same resources, they must be
  11823.              synchronized to avoid conflicts.</para>
  11824.                
  11825.                </item>
  11826.                
  11827.                <item>
  11828.                   
  11829.                   <para>Most methods that access an object and update a form must only be
  11830.              called from within the main thread or use a synchronization object such as
  11831.              TMultiReadExclusiveWriteSynchronizer.</para>
  11832.                
  11833.                </item>
  11834.             
  11835.             </list>
  11836.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Define the thread object's Execute method by inserting the code that
  11837.         should execute when the thread is executed.</para>
  11838.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11839.                
  11840.                <para>See the Threads demo for multi-threading program samples.</para>
  11841.             
  11842.             </note>
  11843.          </comments>
  11844.       </member>
  11845.       <member name="M:Classes.Classes.WaitFor">
  11846.          <summary>
  11847.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Waits for the thread to terminate and then returns the value of the ReturnValue property.</para>
  11848.          </summary>
  11849.          <comments>
  11850.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TThread">WaitFor</method> to obtain the value of ReturnValue when the thread finishes executing. <method namespace="Classes" class="TThread">WaitFor</method> doesn't return until the thread terminates, so the thread must exit either by finishing the Execute method or by exiting when the Terminated property is true.</para>
  11851.          </comments>
  11852.       </member>
  11853.       <member name="M:Classes.Classes.Create">
  11854.          <summary>
  11855.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11856.                      
  11857.                <method namespace="Classes" class="TThread">Create</method>s an instance
  11858.         of a thread object.</para>
  11859.          </summary>
  11860.          <comments>
  11861.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call 
  11862.         <method namespace="Classes" class="TThread">Create</method> to create a
  11863.         thread in an application. If CreateSuspended is False, Execute is called
  11864.         immediately. If CreateSuspended is True, Execute won't be called until after
  11865.         Resume is called.</para>
  11866.          </comments>
  11867.       </member>
  11868.       <member name="M:Classes.Classes.Synchronize">
  11869.          <summary>
  11870.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Executes a method call within the main thread.</para>
  11871.          </summary>
  11872.          <comments>
  11873.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11874.                      
  11875.                <method namespace="Classes" class="TThread">Synchronize</method> causes the call specified by Method to be executed using the main thread, thereby avoiding multi-thread conflicts. If you are unsure whether a method call is thread-safe, call it from within the <method namespace="Classes" class="TThread">Synchronize</method> method to ensure that it executes in the main thread.</para>
  11876.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Execution of the thread current is suspended while Method executes in the main thread.</para>
  11877.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11878.                      
  11879.                <para>Do not call <method namespace="Classes" class="TThread">Synchronize</method> from within the main thread. This can cause an infinite loop.</para>
  11880.                   
  11881.             </warning>
  11882.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11883.                      
  11884.                <para>You can also protect unsafe methods using critical sections or the multi-read exclusive-write synchronizer.</para>
  11885.                   
  11886.             </note>
  11887.          </comments>
  11888.       </member>
  11889.       <member name="M:Classes.Classes.DoTerminate">
  11890.          <summary>
  11891.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an OnTerminate event.</para>
  11892.          </summary>
  11893.          <comments>
  11894.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11895.                      
  11896.                <method namespace="Classes" class="TThread">DoTerminate</method> calls the OnTerminate event handler, but does not terminate the thread.</para>
  11897.          </comments>
  11898.       </member>
  11899.       <member name="M:Classes.Classes.Execute">
  11900.          <summary>
  11901.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides an abstract or pure virtual method to contain the code which executes when the thread is run. </para>
  11902.          </summary>
  11903.          <comments>
  11904.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Override <method namespace="Classes" class="TThread">Execute</method> and insert the code that should be executed when the thread runs. <method namespace="Classes" class="TThread">Execute</method> is responsible for checking the value of the Terminated property to determine if the thread needs to exit.</para>
  11905.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A thread executes when Create is called if CreateSuspended set to false, or when Resume is first called after the thread is created if CreateSuspended set to true. </para>
  11906.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11907.                      
  11908.                <para>Do not use the properties and methods of other objects directly in the <method namespace="Classes" class="TThread">Execute</method> method of a thread.  Instead, separate the use of other objects into a separate procedure call, and call that procedure by passing it as a parameter to the Synchronize method.</para>
  11909.                   
  11910.             </note>
  11911.          </comments>
  11912.       </member>
  11913.       <member name="M:Classes.Classes.AfterConstruction">
  11914.          <summary>
  11915.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Executes the thread when the thread is created with CreateSuspended set to false.</para>
  11916.          </summary>
  11917.          <comments>
  11918.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11919.                      
  11920.                <method namespace="Classes" class="TThread">AfterConstruction</method> launches the Execute method when the thread is not created in a suspended state. By calling Execute from the <method namespace="Classes" class="TThread">AfterConstruction</method> method rather than the constructor, <method namespace="Classes" class="TThread">TThread</method> avoids a race condition where the thread may free itself after Execute finishes but before the main thread calls <method namespace="Classes" class="TThread">AfterConstruction</method>.</para>
  11921.          </comments>
  11922.       </member>
  11923.       <member name="M:Classes.Classes.Resume">
  11924.          <summary>
  11925.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Restarts the execution of a suspended thread. </para>
  11926.          </summary>
  11927.          <comments>
  11928.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TThread">Resume</method> to cause a suspended thread to start running again. Calls to Suspend can be nested; <method namespace="Classes" class="TThread">Resume</method> must be called the same number of times Suspend was called before the thread will resume execution.</para>
  11929.          </comments>
  11930.       </member>
  11931.       <member name="M:Classes.Classes.Suspend">
  11932.          <summary>
  11933.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Pauses a running thread.</para>
  11934.          </summary>
  11935.          <comments>
  11936.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TThread">Suspend</method> to temporarily halt execution of the thread. To resume execution after a call to <method namespace="Classes" class="TThread">Suspend</method>, call Resume. Calls to <method namespace="Classes" class="TThread">Suspend</method> can be nested; Resume must be called the same number of times <method namespace="Classes" class="TThread">Suspend</method> was called before the thread will resume execution.</para>
  11937.          </comments>
  11938.       </member>
  11939.       <member name="M:Classes.Classes.Terminate">
  11940.          <summary>
  11941.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Signals the thread to terminate by setting the <method namespace="Classes" class="TThread">Terminate</method>d property to true. </para>
  11942.          </summary>
  11943.          <comments>
  11944.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11945.                      
  11946.                <method namespace="Classes" class="TThread">Terminate</method> sets the thread's <method namespace="Classes" class="TThread">Terminate</method>d property to true, signaling that the thread should be terminated as soon as possible. </para>
  11947.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For <method namespace="Classes" class="TThread">Terminate</method> to work, the thread's Execute method and any methods that Execute calls should check <method namespace="Classes" class="TThread">Terminate</method>d periodically and exit when it's true.</para>
  11948.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11949.                      
  11950.                <para>Unlike the Windows API <method namespace="Classes" class="TThread">Terminate</method>Thread, which forces the thread to terminate immediately, the <method namespace="Classes" class="TThread">Terminate</method> method merely requests that the thread terminate. This allows the thread to perform any cleanup before it shuts down.</para>
  11951.                   
  11952.             </note>
  11953.          </comments>
  11954.       </member>
  11955.       <member name="M:Classes.Classes.Destroy">
  11956.          <summary>
  11957.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11958.                      
  11959.                <method namespace="Classes" class="TThread">Destroy</method>s the thread object and releases the memory allocated to it.</para>
  11960.          </summary>
  11961.          <comments>
  11962.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TThread">Destroy</method> in an application. Instead, use Free to destroy a thread when FreeOnTerminate is False.</para>
  11963.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  11964.                      
  11965.                <method namespace="Classes" class="TThread">Destroy</method> signals the thread to terminate and then waits for the thread to return before calling the inherited <method namespace="Classes" class="TThread">Destroy</method> method.</para>
  11966.          </comments>
  11967.       </member>
  11968.       <member name="P:Classes.Classes.ReturnValue">
  11969.          <summary>
  11970.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the value returned to other waiting threads when the thread finishes executing.</para>
  11971.          </summary>
  11972.          <comments>
  11973.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TThread">ReturnValue</property> to indicate success/failure or numeric result/output of the thread to the application or other threads. The WaitFor method returns the value stored in <property namespace="Classes" class="TThread">ReturnValue</property>.</para>
  11974.          </comments>
  11975.       </member>
  11976.       <member name="P:Classes.Classes.Terminated">
  11977.          <summary>
  11978.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the thread has been asked to terminate.</para>
  11979.          </summary>
  11980.          <comments>
  11981.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The thread's Execute method and any methods that Execute calls should
  11982.         check 
  11983.         <property namespace="Classes" class="TThread">Terminated</property>
  11984.         periodically and exit when it's true. The Terminate method sets the 
  11985.         <property namespace="Classes" class="TThread">Terminated</property>
  11986.         property to true.</para>
  11987.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Terminate method is the polite way to abort the execution of a
  11988.         thread, but it requires cooperation from the thread's Execute code. Using
  11989.         Terminate is recommended over the TerminateThread Win32 API call. </para>
  11990.          </comments>
  11991.       </member>
  11992.       <member name="P:Classes.Classes.FatalException">
  11993.          <summary>
  11994.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether the thread object is automatically destroyed when the thread terminates. </para>
  11995.          </summary>
  11996.          <comments>
  11997.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the Execute method raises an exception that is not caught and handled within that method, the thread terminates and sets <property namespace="Classes" class="TThread">FatalException</property> to the exception object for that exception. Applications can check <property namespace="Classes" class="TThread">FatalException</property> from an OnTerminate event handler to determine whether the thread terminated due to an exception.</para>
  11998.          </comments>
  11999.       </member>
  12000.       <member name="P:Classes.Classes.FreeOnTerminate">
  12001.          <summary>
  12002.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether the thread object is automatically destroyed when the thread terminates. </para>
  12003.          </summary>
  12004.          <comments>
  12005.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Classes" class="TThread">FreeOnTerminate</property> to true if you don't want to explicitly destroy threads after they finish executing. When <property namespace="Classes" class="TThread">FreeOnTerminate</property> is false, the thread object must be explicitly destroyed in application code.</para>
  12006.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12007.                      
  12008.                <para>When <property namespace="Classes" class="TThread">FreeOnTerminate</property> is true, the Execute method may run and then free the thread before your application can execute the next line of code. Thus, you should not call any methods of the thread object when <property namespace="Classes" class="TThread">FreeOnTerminate</property> is true unless you create the thread in a suspended state.</para>
  12009.                   
  12010.             </warning>
  12011.          </comments>
  12012.       </member>
  12013.       <member name="P:Classes.Classes.Handle">
  12014.          <summary>
  12015.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the thread's handle<condition os="Linux"> (Windows
  12016.         only)</condition>.</para>
  12017.          </summary>
  12018.          <comments>
  12019.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">On Windows, use 
  12020.         <property namespace="Classes" class="TThread">Handle</property> for
  12021.         calling Win32 API functions for thread manipulation.</para>
  12022.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12023.                      
  12024.                <condition os="Linux">The 
  12025.         <property namespace="Classes" class="TThread">Handle</property> property
  12026.         is not available on Linux.</condition>
  12027.                   
  12028.             </para>
  12029.          </comments>
  12030.       </member>
  12031.       <member name="P:Classes.Classes.Priority">
  12032.          <summary>
  12033.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines the thread's scheduling priority relative to other threads
  12034.         in the process.</para>
  12035.          </summary>
  12036.          <comments>
  12037.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12038.                      
  12039.                <property namespace="Classes" class="TThread">Priority</property>
  12040.         indicates the priority used when scheduling the thread. Adjust the priority
  12041.         higher or lower as needed. </para>
  12042.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">On Win32, 
  12043.         <property namespace="Classes" class="TThread">Priority</property> is a 
  12044.         <property namespace="Classes" class="TThread">TThread</property>
  12045.                      
  12046.                <property namespace="Classes" class="TThread">Priority</property> value.
  12047.         The possible values are listed in the table below. The system schedules CPU
  12048.         cycles to each thread based on a priority scale; the 
  12049.         <property namespace="Classes" class="TThread">Priority</property>
  12050.         property adjusts a thread's priority higher or lower on the scale. </para>
  12051.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12052.                      
  12053.                <condition os="Linux">On Linux, 
  12054.         <property namespace="Classes" class="TThread">Priority</property> is an
  12055.         integer value. A higher value (numerically) implies that the thread has greater
  12056.         priority. The possible values for priority depend on the value of the Policy
  12057.         property.</condition>
  12058.                   
  12059.             </para>
  12060.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12061.                      
  12062.                <para>Boosting the thread priority of a CPU intensive operation may
  12063.           "starve" the other threads in the application. Only apply priority boosts to
  12064.           threads that spend most of their time waiting for external events.</para>
  12065.                   
  12066.             </warning>
  12067.          </comments>
  12068.       </member>
  12069.       <member name="P:Classes.Classes.Suspended">
  12070.          <summary>
  12071.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether a thread is suspended. </para>
  12072.          </summary>
  12073.          <comments>
  12074.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Classes" class="TThread">Suspended</property> to true to suspend a thread; set it to false to resume it. <property namespace="Classes" class="TThread">Suspended</property> threads do not continue execution until they are resumed.</para>
  12075.          </comments>
  12076.       </member>
  12077.       <member name="P:Classes.Classes.ThreadID">
  12078.          <summary>
  12079.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Identifies the thread throughout the system.</para>
  12080.          </summary>
  12081.          <comments>
  12082.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use 
  12083.         <property namespace="Classes" class="TThread">ThreadID</property>, during
  12084.         debugging, to identify the thread in the Threads status box. On Win32, 
  12085.         <property namespace="Classes" class="TThread">ThreadID</property> is also
  12086.         useful when calling Win32 API functions for manipulating the thread.</para>
  12087.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12088.                      
  12089.                <property namespace="Classes" class="TThread">ThreadID</property> is
  12090.         different than the thread's handle in the Handle property.</para>
  12091.          </comments>
  12092.       </member>
  12093.       <member name="E:Classes.Classes.OnTerminate">
  12094.          <summary>
  12095.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs after the thread's Execute method has returned and before the thread is destroyed. </para>
  12096.          </summary>
  12097.          <comments>
  12098.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Classes" class="TThread">OnTerminate</event> event handler to execute code after the thread finishes executing. The <event namespace="Classes" class="TThread">OnTerminate</event> event handler is called in the context of the main thread, which means methods and properties can be called freely. </para>
  12099.          </comments>
  12100.       </member>
  12101.       <member name="T:Classes.TOperation">
  12102.          <summary>
  12103.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12104.                
  12105.                <type namespace="Qt">TOperation</type> represents the types of operations whose occurrence is broadcast by the Notification method.</para>
  12106.          </summary>
  12107.          <comments>
  12108.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <type namespace="Qt">TOperation</type> type is used in the Notification method to indicate whether the notification indicates the creation or deletion of an object. The following table gives the possible values:</para>
  12109.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12110.                
  12111.                <tr>
  12112.                   
  12113.                   <th>Value</th>
  12114.                   
  12115.                   <th>Meaning</th>
  12116.                
  12117.                </tr>
  12118.                
  12119.                <tr>
  12120.                   
  12121.                   <td>
  12122.                      
  12123.                      <para>opInsert</para>
  12124.                   
  12125.                   </td>
  12126.                   
  12127.                   <td>
  12128.                      
  12129.                      <para>The specified object has just been created.</para>
  12130.                   
  12131.                   </td>
  12132.                
  12133.                </tr>
  12134.                
  12135.                <tr>
  12136.                   
  12137.                   <td>
  12138.                      
  12139.                      <para>opRemove</para>
  12140.                   
  12141.                   </td>
  12142.                   
  12143.                   <td>
  12144.                      
  12145.                      <para>The specified object has been destroyed, and its memory is about to be freed.</para>
  12146.                   
  12147.                   </td>
  12148.                
  12149.                </tr>
  12150.             
  12151.             </table>
  12152.          </comments>
  12153.       </member>
  12154.       <member name="T:Classes.TComponentState">
  12155.          <summary>
  12156.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12157.                
  12158.                <type namespace="Qt">TComponentState</type> is a set of flags that describe the current state of a component.</para>
  12159.          </summary>
  12160.          <comments>
  12161.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12162.                
  12163.                <type namespace="Qt">TComponentState</type> defines the set of possible state flags for the ComponentState property of a TComponent instance. The following table lists the possible values for the <type namespace="Qt">TComponentState</type> type and the meaning corresponding to each flag:</para>
  12164.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12165.                
  12166.                <tr>
  12167.                   
  12168.                   <th>Flag</th>
  12169.                   
  12170.                   <th>Component state</th>
  12171.                
  12172.                </tr>
  12173.                
  12174.                <tr>
  12175.                   
  12176.                   <td>
  12177.                      
  12178.                      <para>csAncestor</para>
  12179.                   
  12180.                   </td>
  12181.                   
  12182.                   <td>
  12183.                      
  12184.                      <para>The component was introduced in an ancestor form. Only set if csDesigning is also set.</para>
  12185.                   
  12186.                   </td>
  12187.                
  12188.                </tr>
  12189.                
  12190.                <tr>
  12191.                   
  12192.                   <td>
  12193.                      
  12194.                      <para>csDesigning</para>
  12195.                   
  12196.                   </td>
  12197.                   
  12198.                   <td>
  12199.                      
  12200.                      <para>The component is in a form being manipulated by the form designer.</para>
  12201.                   
  12202.                   </td>
  12203.                
  12204.                </tr>
  12205.                
  12206.                <tr>
  12207.                   
  12208.                   <td>
  12209.                      
  12210.                      <para>csDestroying</para>
  12211.                   
  12212.                   </td>
  12213.                   
  12214.                   <td>
  12215.                      
  12216.                      <para>The component is about to be destroyed.</para>
  12217.                   
  12218.                   </td>
  12219.                
  12220.                </tr>
  12221.                
  12222.                <tr>
  12223.                   
  12224.                   <td>
  12225.                      
  12226.                      <para>csFixups</para>
  12227.                   
  12228.                   </td>
  12229.                   
  12230.                   <td>
  12231.                      
  12232.                      <para>The component is linked to a component in another form that has not yet been loaded. This flag is cleared when all pending fix-ups are resolved.</para>
  12233.                   
  12234.                   </td>
  12235.                
  12236.                </tr>
  12237.                
  12238.                <tr>
  12239.                   
  12240.                   <td>
  12241.                      
  12242.                      <para>csFreeNotification</para>
  12243.                   
  12244.                   </td>
  12245.                   
  12246.                   <td>
  12247.                      
  12248.                      <para>One or more other components have requested that this component notify them when it is destroyed. This flag is set when another component calls this component's FreeNotification method.</para>
  12249.                   
  12250.                   </td>
  12251.                
  12252.                </tr>
  12253.                
  12254.                <tr>
  12255.                   
  12256.                   <td>
  12257.                      
  12258.                      <para>csInline</para>
  12259.                   
  12260.                   </td>
  12261.                   
  12262.                   <td>
  12263.                      
  12264.                      <para>The component is a top-level component that can be modified at design time and also embedded in a form. This flag is used to identify nested frames while loading and saving.</para>
  12265.                   
  12266.                   </td>
  12267.                
  12268.                </tr>
  12269.                
  12270.                <tr>
  12271.                   
  12272.                   <td>
  12273.                      
  12274.                      <para>csLoading</para>
  12275.                   
  12276.                   </td>
  12277.                   
  12278.                   <td>
  12279.                      
  12280.                      <para>A filer object is currently loading the component. This flag is set when the component is first created and not cleared until the component and all its children are fully loaded (when the Loaded method is called).</para>
  12281.                   
  12282.                   </td>
  12283.                
  12284.                </tr>
  12285.                
  12286.                <tr>
  12287.                   
  12288.                   <td>
  12289.                      
  12290.                      <para>csReading</para>
  12291.                   
  12292.                   </td>
  12293.                   
  12294.                   <td>
  12295.                      
  12296.                      <para>The component is reading its property values from a stream. Note that the csLoading flag is always set as well when csReading is set. That is, csReading is set for the subinterval of the time when a component is loading that covers reading in property values.</para>
  12297.                   
  12298.                   </td>
  12299.                
  12300.                </tr>
  12301.                
  12302.                <tr>
  12303.                   
  12304.                   <td>
  12305.                      
  12306.                      <para>csUpdating</para>
  12307.                   
  12308.                   </td>
  12309.                   
  12310.                   <td>
  12311.                      
  12312.                      <para>The component is being updated to reflect changes in an ancestor form. Only set if csAncestor is also set.</para>
  12313.                   
  12314.                   </td>
  12315.                
  12316.                </tr>
  12317.                
  12318.                <tr>
  12319.                   
  12320.                   <td>
  12321.                      
  12322.                      <para>csWriting</para>
  12323.                   
  12324.                   </td>
  12325.                   
  12326.                   <td>
  12327.                      
  12328.                      <para>The component is writing its property values to a stream.</para>
  12329.                   
  12330.                   </td>
  12331.                
  12332.                </tr>
  12333.                
  12334.                <tr>
  12335.                   
  12336.                   <td>
  12337.                      
  12338.                      <para>csDesignInstance</para>
  12339.                   
  12340.                   </td>
  12341.                   
  12342.                   <td>
  12343.                      
  12344.                      <para>The component is the root object in a designer. For example, it is set for a frame when you are designing it, but not on a frame that acts like a component. This flag always appears with csDesigning. </para>
  12345.                   
  12346.                   </td>
  12347.                
  12348.                </tr>
  12349.             
  12350.             </table>
  12351.          </comments>
  12352.       </member>
  12353.       <member name="T:Classes.TComponentStyle">
  12354.          <summary>
  12355.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12356.                
  12357.                <type namespace="Qt">TComponentStyle</type> is a set of flags that describe the current Style of a component.</para>
  12358.          </summary>
  12359.          <comments>
  12360.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The following table indicates the meaning of the various <type namespace="Qt">TComponentStyle</type> flags:</para>
  12361.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12362.                
  12363.                <tr>
  12364.                   
  12365.                   <th>Value</th>
  12366.                   
  12367.                   <th>Meaning</th>
  12368.                
  12369.                </tr>
  12370.                
  12371.                <tr>
  12372.                   
  12373.                   <td>
  12374.                      
  12375.                      <para>csInheritable</para>
  12376.                   
  12377.                   </td>
  12378.                   
  12379.                   <td>
  12380.                      
  12381.                      <para>Descendant form types can inherit from the component. If any of the components in a form do not have the csInheritable style, the form cannot be used as the ancestor of an inherited form.</para>
  12382.                   
  12383.                   </td>
  12384.                
  12385.                </tr>
  12386.                
  12387.                <tr>
  12388.                   
  12389.                   <td>
  12390.                      
  12391.                      <para>csCheckPropAvail</para>
  12392.                   
  12393.                   </td>
  12394.                   
  12395.                   <td>
  12396.                      
  12397.                      <para> The component needs to check its properties for readability. This is only used for COM controls (on Windows), where the Object Inspector cannot tell directly that a property is readable, and therefore displayable.</para>
  12398.                   
  12399.                   </td>
  12400.                
  12401.                </tr>
  12402.                
  12403.                <tr>
  12404.                   
  12405.                   <td>
  12406.                      
  12407.                      <para>csSubComponent</para>
  12408.                   
  12409.                   </td>
  12410.                   
  12411.                   <td>
  12412.                      
  12413.                      <para>The component is a subcomponent of the component that is the value of its Owner property. Unlike top-level components, subcomponents are not saved with the form or data module in which they reside. Instead, a subcomponent appears as the value of a published property of its Owner, and its published properties and events are saved in the form file with the owning component.</para>
  12414.                   
  12415.                   </td>
  12416.                
  12417.                </tr>
  12418.                
  12419.                <tr>
  12420.                   
  12421.                   <td>
  12422.                      
  12423.                      <para>csTransient</para>
  12424.                   
  12425.                   </td>
  12426.                   
  12427.                   <td>
  12428.                      
  12429.                      <para>The component is a temporary object that should not be saved in a form file.</para>
  12430.                   
  12431.                   </td>
  12432.                
  12433.                </tr>
  12434.             
  12435.             </table>
  12436.          </comments>
  12437.       </member>
  12438.       <member name="T:Classes.TComponentName">
  12439.          <summary>
  12440.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12441.                
  12442.                <type namespace="Qt">TComponentName</type> is the type for the Name property of all components.</para>
  12443.          </summary>
  12444.          <comments>
  12445.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12446.                
  12447.                <type namespace="Qt">TComponentName</type> is a string that represents the name of a component.</para>
  12448.          </comments>
  12449.       </member>
  12450.       <member name="T:Classes.IDesignerNotify">
  12451.          <summary>
  12452.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12453.                
  12454.                <class namespace="Classes">IDesignerNotify</class> is the interface for responding to notifications about changes to components in the designer.</para>
  12455.          </summary>
  12456.          <comments>
  12457.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12458.                
  12459.                <class namespace="Classes">IDesignerNotify</class> introduces two methods, Modified and Notification, that allow the designer to respond when components are added, deleted, or changed. These methods are called automatically by the form designer or by component and property editors.</para>
  12460.          </comments>
  12461.       </member>
  12462.       <member name="M:Classes.Classes.Modified">
  12463.          <summary>
  12464.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Notifies property and component editors when a change is made to a component.</para>
  12465.          </summary>
  12466.          <comments>
  12467.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When any change is made to a component the property and component editors call this method, allowing the designer to respond to the change.</para>
  12468.          </comments>
  12469.       </member>
  12470.       <member name="M:Classes.Classes.Notification">
  12471.          <summary>
  12472.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Allows the designer to respond when a notification is sent to the form.</para>
  12473.          </summary>
  12474.          <comments>
  12475.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When a form receives a notification, it calls the <method namespace="Classes" class="IDesignerNotify">Notification</method> method of the designer, allowing the designer to respond to all the notifications the form receives.</para>
  12476.          </comments>
  12477.       </member>
  12478.       <member name="T:Classes.TComponent">
  12479.          <summary>
  12480.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12481.                
  12482.                <class namespace="Classes">TComponent</class> is the common ancestor of all component classes.</para>
  12483.          </summary>
  12484.          <comments>
  12485.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12486.                
  12487.                <class namespace="Classes">TComponent</class> is the base class for all components. <class namespace="Classes">TComponent</class> implements the following features:</para>
  12488.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Components are persistent objects that have the following capabilities:</para>
  12489.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">IDE integration. The ability to appear on an IDE palette and be manipulated in a form designer.</para>
  12490.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Ownership. The ability to manage other components. If component A owns component B, then A is responsible for destroying B when A is destroyed.</para>
  12491.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Streaming and filing. Enhancements of the persistence features inherited from TPersistent.</para>
  12492.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">COM support. Components can be converted into ActiveX controls or other COM objects using wizards provided with Windows products. Components can serve as wrappers for COM objects.</para>
  12493.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12494.                
  12495.                <para>COM features are present in all implementations of <class namespace="Classes">TComponent</class>, including those provided with Linux development tools. However, these features are only useful in Windows applications, and are marked in this documentation as "Windows only". Do not use these features in cross-platform applications.</para>
  12496.             
  12497.             </note>
  12498.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12499.                
  12500.                <class namespace="Classes">TComponent</class> does not provide any user interface or display features. These features are provided by two classes that directly descend from <class namespace="Classes">TComponent</class>.</para>
  12501.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">TControl, in the QControls unit, is the base class for "visual" components in cross-platform applications.</para>
  12502.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">TControl, in the Controls unit, is the base class for "visual" components in Windows-only applications.</para>
  12503.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12504.                
  12505.                <para>The Controls unit and other Windows-specific units are not provided with Linux development tools.</para>
  12506.             
  12507.             </note>
  12508.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Components that can be visible at runtime are sometimes called "visual components". Other components, which are never visible at runtime, are sometimes called "non-visual components". However it is more common to refer to "visual components" as "controls" and "non-visual components" simply as "components."</para>
  12509.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not create instances of <class namespace="Classes">TComponent</class>. Use <class namespace="Classes">TComponent</class> as a base class when declaring non-visual components that can appear on the component palette and be used in the form designer. Properties and methods of <class namespace="Classes">TComponent</class> provide basic behavior that descendant classes inherit as well as behavior that components can override to customize their behavior.</para>
  12510.          </comments>
  12511.       </member>
  12512.       <member name="M:Classes.Classes.GetChildOwner">
  12513.          <summary>
  12514.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the owner of a child component being read from a stream.</para>
  12515.          </summary>
  12516.          <comments>
  12517.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12518.                      
  12519.                <method namespace="Classes" class="TComponent">GetChildOwner</method> is used internally by the component streaming system. It is rarely necessary to call it directly.</para>
  12520.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">In <method namespace="Classes" class="TComponent">TComponent</method>, <method namespace="Classes" class="TComponent">GetChildOwner</method> always returns nil (Delphi) or NULL (C++), indicating that the owner is the root component currently being read (usually a form or data module). The Owner of a component is responsible for destroying it.</para>
  12521.          </comments>
  12522.       </member>
  12523.       <member name="M:Classes.Classes.GetChildParent">
  12524.          <summary>
  12525.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the parent, or if there is no parent, returns the owner of a child component being read from a stream.</para>
  12526.          </summary>
  12527.          <comments>
  12528.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12529.                      
  12530.                <method namespace="Classes" class="TComponent">GetChildParent</method> is used internally in the component streaming system. It is not necessary to call it directly.</para>
  12531.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TComponent">TComponent</method>, <method namespace="Classes" class="TComponent">GetChildParent</method> returns Self (Delphi) or this (C++). If <method namespace="Classes" class="TComponent">GetChildParent</method> returns nil (Delphi) or NULL (C++), the parent is assumed to be the root component currently being read (usually a form).</para>
  12532.          </comments>
  12533.       </member>
  12534.       <member name="M:Classes.Classes.GetOwner">
  12535.          <summary>
  12536.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the owner of a component.</para>
  12537.          </summary>
  12538.          <comments>
  12539.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12540.                      
  12541.                <method namespace="Classes" class="TComponent">GetOwner</method> is called by GetNamePath to find the owner of a component. GetNamePath and <method namespace="Classes" class="TComponent">GetOwner</method> are introduced in TPersistent so descendants such as collections can appear in the Object Inspector. For <method namespace="Classes" class="TComponent">TComponent</method>, <method namespace="Classes" class="TComponent">GetOwner</method> returns the value of the Owner property.</para>
  12542.          </comments>
  12543.       </member>
  12544.       <member name="M:Classes.Classes.QueryInterface">
  12545.          <summary>
  12546.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns a reference to a specified interface if the object supports that interface.</para>
  12547.          </summary>
  12548.          <comments>
  12549.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12550.                      
  12551.                <method namespace="Classes" class="TComponent">QueryInterface</method> checks whether the component supports the interface specified by IID, and if so, returns a reference to that interface as the Obj parameter. If the component does not support the interface, the Obj parameter returns nil (Delphi) or NULL (C++).</para>
  12552.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12553.                      
  12554.                <para>For components that act as COM object wrapper, <method namespace="Classes" class="TComponent">QueryInterface</method> calls the <method namespace="Classes" class="TComponent">QueryInterface</method> method of the internal COM object.</para>
  12555.                   
  12556.             </note>
  12557.          </comments>
  12558.       </member>
  12559.       <member name="M:Classes.Classes._AddRef">
  12560.          <summary>
  12561.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Called when an application uses a component interface.</para>
  12562.          </summary>
  12563.          <comments>
  12564.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">_<method namespace="Classes" class="TComponent">AddRef</method> is a basic implementation of the IInterface method, <method namespace="Classes" class="TComponent">AddRef</method>.</para>
  12565.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12566.                      
  12567.                <para>If the component is a wrapper for a COM object, _<method namespace="Classes" class="TComponent">AddRef</method> calls the <method namespace="Classes" class="TComponent">AddRef</method> method of that COM object, and returns the resulting reference count.</para>
  12568.                   
  12569.             </note>
  12570.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">In all other cases, _<method namespace="Classes" class="TComponent">AddRef</method> simply returns ΓÇô1 and takes no action. This allows the component to implement interfaces where reference counting is not required. More sophisticated components should override _<method namespace="Classes" class="TComponent">AddRef</method> to implement reference counting.</para>
  12571.          </comments>
  12572.       </member>
  12573.       <member name="M:Classes.Classes._Release">
  12574.          <summary>
  12575.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Called when an application releases a component interface.</para>
  12576.          </summary>
  12577.          <comments>
  12578.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">_<method namespace="Classes" class="TComponent">Release</method> is a basic implementation of the IInterface method, <method namespace="Classes" class="TComponent">Release</method>.</para>
  12579.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">_<method namespace="Classes" class="TComponent">Release</method> returns the resulting value of the reference count for the component's interface.</para>
  12580.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12581.                      
  12582.                <para/>
  12583.                   
  12584.             </note>
  12585.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">In all other cases, _<method namespace="Classes" class="TComponent">Release</method> simply returns ΓÇô1 and takes no action. This allows the component to implement interfaces where reference counting is not required. More sophisticated components should override _<method namespace="Classes" class="TComponent">Release</method> to implement reference counting.</para>
  12586.          </comments>
  12587.       </member>
  12588.       <member name="M:Classes.Classes.GetTypeInfoCount">
  12589.          <summary>
  12590.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the number of type information interfaces that an object provides (either 0 or 1).</para>
  12591.          </summary>
  12592.          <comments>
  12593.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12594.                      
  12595.                <method namespace="Classes" class="TComponent">GetTypeInfoCount</method> implements the IDispatch interface <method namespace="Classes" class="TComponent">GetTypeInfoCount</method> method. For components that support interfaces, <method namespace="Classes" class="TComponent">GetTypeInfoCount</method> calls this method for the interface supported by the component. The Count parameter points to a location that receives the number of type information interfaces provided by the object. If the object provides type information, this number is 1; otherwise the number is 0.</para>
  12596.          </comments>
  12597.       </member>
  12598.       <member name="M:Classes.Classes.GetTypeInfo">
  12599.          <summary>
  12600.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Retrieves the type information for an object. </para>
  12601.          </summary>
  12602.          <comments>
  12603.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12604.                      
  12605.                <method namespace="Classes" class="TComponent">GetTypeInfo</method> implements the IDispatch interface <method namespace="Classes" class="TComponent">GetTypeInfo</method> method. For components that support interfaces, <method namespace="Classes" class="TComponent">GetTypeInfo</method> calls the <method namespace="Classes" class="TComponent">GetTypeInfo</method> method for the interface supported by the component, passing it the specified parameters.  Use the returned value to get the type information for an interface implemented by the component.</para>
  12606.          </comments>
  12607.       </member>
  12608.       <member name="M:Classes.Classes.GetIDsOfNames">
  12609.          <summary>
  12610.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Maps a single member and an optional set of argument names to a corresponding set of integer dispatch identifiers (dispIDs).</para>
  12611.          </summary>
  12612.          <comments>
  12613.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12614.                      
  12615.                <method namespace="Classes" class="TComponent">GetIDsOfNames</method> implements the IDispatch interface <method namespace="Classes" class="TComponent">GetIDsOfNames</method> method. For components that support interfaces, <method namespace="Classes" class="TComponent">GetIDsOfNames</method> calls this method for the interface supported by the component, passing the specified parameters. The returned value can be used on subsequent calls to the Invoke method.</para>
  12616.          </comments>
  12617.       </member>
  12618.       <member name="M:Classes.Classes.Invoke">
  12619.          <summary>
  12620.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides access to Automation properties and methods when the component wraps an Automation object.</para>
  12621.          </summary>
  12622.          <comments>
  12623.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12624.                      
  12625.                <method namespace="Classes" class="TComponent">Invoke</method> is the standard mechanism for accessing the exposed properties and methods of an Automation object. For components that wrap the IDispatch interface of an Automation object, <method namespace="Classes" class="TComponent">Invoke</method> calls the <method namespace="Classes" class="TComponent">Invoke</method> method for the interface supported by the component, passing it the parameters specified by the function.</para>
  12626.          </comments>
  12627.       </member>
  12628.       <member name="M:Classes.Classes.ExecuteAction">
  12629.          <summary>
  12630.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Invokes an action with the component as its target.</para>
  12631.          </summary>
  12632.          <comments>
  12633.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the user invokes an action, CLX makes a series of calls to respond to that action. First, it generates an OnExecute event of the action list that contains the action. If the action list does not handle the OnExecute event, then the action is routed to the Application object's <method namespace="Classes" class="TComponent">ExecuteAction</method> method, which invokes the OnActionExecute event handler. If the OnActionExecute event handler does not handle the action, then it is routed to the action's OnExecute event handler. If that does not handle the action, the active control's <method namespace="Classes" class="TComponent">ExecuteAction</method> method is called.</para>
  12634.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Action parameter specifies the action that was invoked. <method namespace="Classes" class="TComponent">ExecuteAction</method> returns true if the action was successfully dispatched, and false if the component could not handle the action. If <method namespace="Classes" class="TComponent">ExecuteAction</method> returns false for the active control, CLX calls the active form's <method namespace="Classes" class="TComponent">ExecuteAction</method> method. If this returns false, CLX tries all active controls in the form. If these all return false, CLX repeats the process with the main form, if that is different from the active form. </para>
  12635.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12636.                      
  12637.                <para>
  12638.                         
  12639.                   <method namespace="Classes" class="TComponent">ExecuteAction</method> is only called for components and forms that are Visible.</para>
  12640.                   
  12641.             </note>
  12642.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">In <method namespace="Classes" class="TComponent">TComponent</method>, <method namespace="Classes" class="TComponent">ExecuteAction</method> checks whether the action component knows how to perform its function with the component as a target, and if so, executes the action and returns true. Otherwise, <method namespace="Classes" class="TComponent">ExecuteAction</method> returns false.</para>
  12643.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendants override <method namespace="Classes" class="TComponent">ExecuteAction</method> to interpret actions in a class-specific manner and change the default behavior of the action when it specifies the descendant class as a target.</para>
  12644.          </comments>
  12645.       </member>
  12646.       <member name="M:Classes.Classes.FindComponent">
  12647.          <summary>
  12648.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether a given component is owned by the component.</para>
  12649.          </summary>
  12650.          <comments>
  12651.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12652.                      
  12653.                <method namespace="Classes" class="TComponent">FindComponent</method> returns the component in the Components property array with the name that matches the string in the AName parameter. Use <method namespace="Classes" class="TComponent">FindComponent</method> to determine whether a given component is owned by another.</para>
  12654.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Component name matches are not case sensitive.</para>
  12655.          </comments>
  12656.       </member>
  12657.       <member name="M:Classes.Classes.GetParentComponent">
  12658.          <summary>
  12659.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the parent of a component.</para>
  12660.          </summary>
  12661.          <comments>
  12662.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <method namespace="Classes" class="TComponent">GetParentComponent</method> method is introduced in <method namespace="Classes" class="TComponent">TComponent</method> for the streaming system that loads and saves CLX components. As implemented in <method namespace="Classes" class="TComponent">TComponent</method>, <method namespace="Classes" class="TComponent">GetParentComponent</method> always returns nil (Delphi) or NULL (C++). Descendant classes can override <method namespace="Classes" class="TComponent">GetParentComponent</method> to return an appropriate parent component.</para>
  12663.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12664.                      
  12665.                <para>Do not confuse a component's parent, which is responsible for writing the component to a stream, with the component's owner, which is responsible for freeing the component.</para>
  12666.                   
  12667.             </note>
  12668.          </comments>
  12669.       </member>
  12670.       <member name="M:Classes.Classes.GetNamePath">
  12671.          <summary>
  12672.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns a string used by the Object Inspector.</para>
  12673.          </summary>
  12674.          <comments>
  12675.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12676.                      
  12677.                <method namespace="Classes" class="TComponent">GetNamePath</method> is used to determine the text to display in the Object Inspector for the name of the object being edited. <method namespace="Classes" class="TComponent">GetNamePath</method> is introduced in TPersistent so descendants such as collections can appear in the Object Inspector. <method namespace="Classes" class="TComponent">TComponent</method> overrides <method namespace="Classes" class="TComponent">GetNamePath</method> to return the component's name. Do not call <method namespace="Classes" class="TComponent">GetNamePath</method> directly.</para>
  12678.          </comments>
  12679.       </member>
  12680.       <member name="M:Classes.Classes.HasParent">
  12681.          <summary>
  12682.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the component has a parent to handle its filing.</para>
  12683.          </summary>
  12684.          <comments>
  12685.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12686.                      
  12687.                <method namespace="Classes" class="TComponent">HasParent</method> is introduced in <method namespace="Classes" class="TComponent">TComponent</method> for the streaming system that loads and saves CLX components. It returns false for <method namespace="Classes" class="TComponent">TComponent</method>.</para>
  12688.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A return value of true indicates that some other object (a parent) is responsible for writing the object to a stream. Most commonly the parent is a form or panel that contains a control.</para>
  12689.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Any child component that returns true from <method namespace="Classes" class="TComponent">HasParent</method> must also implement the GetParentComponent and SetParentComponent methods.</para>
  12690.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12691.                      
  12692.                <para>Do not confuse a component's parent, which is responsible for writing the component to a stream, with the component's owner, which is responsible for freeing the component.</para>
  12693.                   
  12694.             </note>
  12695.          </comments>
  12696.       </member>
  12697.       <member name="M:Classes.Classes.SafeCallException">
  12698.          <summary>
  12699.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Handles exceptions in methods declared using the safecall calling convention.</para>
  12700.          </summary>
  12701.          <comments>
  12702.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12703.                      
  12704.                <method namespace="Classes" class="TComponent">SafeCallException</method> handles exceptions in methods that use the safecall calling convention. Some classes that implement interfaces override this method to handle errors that might occur. <method namespace="Classes" class="TComponent">TComponent</method> calls the implementation of this method for the interface supported by the component, if it exists. If the component does not support interfaces, this method calls the <method namespace="Classes" class="TComponent">SafeCallException</method> method inherited from TObject, which returns E_UNEXPECTED. This is a default return value that is appropriate for classes that do not support any interfaces.</para>
  12705.          </comments>
  12706.       </member>
  12707.       <member name="M:Classes.Classes.UpdateAction">
  12708.          <summary>
  12709.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Updates an action component to reflect the current state of the component.</para>
  12710.          </summary>
  12711.          <comments>
  12712.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the application is idle, CLX makes a series of calls to update the properties (such as whether it is enabled, checked, and so on) of every action that is linked to a visible control or menu item. First, CLX generates an OnUpdate event of the action list that contains the action. If the action list does not handle the OnUpdate event, then the action is routed to the Application object's <method namespace="Classes" class="TComponent">UpdateAction</method> method, which invokes the OnActionUpdate event handler. If the OnActionUpdate event handler does not update the action, then it is routed to the action's OnUpdate event handler. If that does not update the action, the active control's <method namespace="Classes" class="TComponent">UpdateAction</method> method is called.</para>
  12713.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Action parameter specifies the action component that should be updated. <method namespace="Classes" class="TComponent">UpdateAction</method> returns true if the action component now reflects the state of the component, and false if it did not know how to update the action. If <method namespace="Classes" class="TComponent">UpdateAction</method> returns false for the active component, CLX calls the active form's <method namespace="Classes" class="TComponent">UpdateAction</method> method.</para>
  12714.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TComponent">UpdateAction</method>. It is called automatically when the application is idle. As implemented in <method namespace="Classes" class="TComponent">TComponent</method>, <method namespace="Classes" class="TComponent">UpdateAction</method> allows the action to update itself with the component as a target. Descendants can override this method to perform updates that reflect class-specific properties or states.</para>
  12715.          </comments>
  12716.       </member>
  12717.       <member name="M:Classes.Classes.IsImplementorOf">
  12718.          <summary>
  12719.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the component implements a specified interface.</para>
  12720.          </summary>
  12721.          <comments>
  12722.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TComponent">IsImplementorOf</method> to determine whether the component (or, if the component aggregates its interface with other components, whether the controlling component) supports the interface specified by I. <method namespace="Classes" class="TComponent">IsImplementorOf</method> is similar to the QueryInterface method, but it can handle a request for a nil (Delphi) or NULL (C++) interface, and it does not return an interface pointer.</para>
  12723.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The streaming system that loads and saves components uses <method namespace="Classes" class="TComponent">IsImplementorOf</method> to resolve property values that are interfaces.</para>
  12724.          </comments>
  12725.       </member>
  12726.       <member name="M:Classes.Classes.ReferenceInterface">
  12727.          <summary>
  12728.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Establishes or removes internal links that cause this component to be notified when the implementer of a specified interface is destroyed.</para>
  12729.          </summary>
  12730.          <comments>
  12731.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Component writers use <method namespace="Classes" class="TComponent">ReferenceInterface</method> to ensure that properties whose values are interfaces are informed when the objects that implement those interfaces are destroyed. This notification must be in place for a property whose value is an interface to be saved with the component in a form file (that is, for such a property to persist as a published property).</para>
  12732.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">I is an interface pointer that is the value of the published property of interest.</para>
  12733.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Operation indicates whether the notification link to the implementer of the interface should be established (opInsert) or removed (opRemove).</para>
  12734.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12735.                      
  12736.                <method namespace="Classes" class="TComponent">ReferenceInterface</method> returns true if it is successful in establishing or removing the notification link. If <method namespace="Classes" class="TComponent">ReferenceInterface</method> returns false when called with Operation set to opInsert, the specified interface can't be stored as the value of a published property.</para>
  12737.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12738.                      
  12739.                <para> A result of false does not necessarily indicate an error, merely that the interface can't be stored by the property streaming system. For example, <method namespace="Classes" class="TComponent">ReferenceInterface</method> returns false when the specified interface employs true reference counting, independent of component lifetimes.</para>
  12740.                   
  12741.             </note>
  12742.          </comments>
  12743.       </member>
  12744.       <member name="M:Classes.Classes.Create">
  12745.          <summary>
  12746.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Allocates memory and constructs a safely initialized instance of a component.</para>
  12747.          </summary>
  12748.          <comments>
  12749.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">All objects have a <method namespace="Classes" class="TComponent">Create</method> method that constructs the object. <method namespace="Classes" class="TComponent">TComponent</method> redefines <method namespace="Classes" class="TComponent">Create</method> so that, for components, <method namespace="Classes" class="TComponent">Create</method> also:</para>
  12750.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">establishes the relationship of a component and its Owner, as indicated by the AOwner parameter</para>
  12751.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">sets the ComponentStyle property to csInheritable, meaning that the component can be inherited by a descendant form type</para>
  12752.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">It is not necessary to explicitly create components added in the form designer. These components are created automatically when the application is run, and they are destroyed when the application is closed.</para>
  12753.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For components created programmatically, that is, not created in the form designer, call <method namespace="Classes" class="TComponent">Create</method> and pass in an owner component as the AOwner parameter. The owner disposes of the component when it is destroyed. If the component is not owned, then use Free when it needs to be destroyed.</para>
  12754.             <tip xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12755.                      
  12756.                <para>When passing in Self as the Owner parameter, consider what Self references. If a component creates another component in one of its methods, then Self refers to the first component and not the component being created, which is then owned by the first component.</para>
  12757.                   
  12758.             </tip>
  12759.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12760.                      
  12761.                <para>The <method namespace="Classes" class="TComponent">TComponent</method> constructor is virtual in part to allow polymorphic instantiation of class references. This is critical to the streaming system and to the form designer. Do not forget to use the override directive when declaring a new component's <method namespace="Classes" class="TComponent">Create</method> constructor.</para>
  12762.                   
  12763.             </note>
  12764.          </comments>
  12765.       </member>
  12766.       <member name="M:Classes.Classes.ChangeName">
  12767.          <summary>
  12768.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the private, internal storage for the Name property to the string passed in NewName.</para>
  12769.          </summary>
  12770.          <comments>
  12771.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not use <method namespace="Classes" class="TComponent">ChangeName</method> directly in an application.  Instead, use the Name property.</para>
  12772.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12773.                      
  12774.                <para>The property setter for Name, SetName, uses <method namespace="Classes" class="TComponent">ChangeName</method> to change the component's name. <method namespace="Classes" class="TComponent">ChangeName</method> is not virtual; do not override it.</para>
  12775.                   
  12776.             </note>
  12777.          </comments>
  12778.       </member>
  12779.       <member name="M:Classes.Classes.DefineProperties">
  12780.          <summary>
  12781.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Designates methods for storing an object's unpublished data on a stream such as a form file.</para>
  12782.          </summary>
  12783.          <comments>
  12784.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12785.                      
  12786.                <method namespace="Classes" class="TComponent">TComponent</method> overrides the <method namespace="Classes" class="TComponent">DefineProperties</method> method defined in TPersistent to define "fake" Top and Left properties. These are defined so that components that are not controls can be manipulated at design-time. However, the Top and Left properties are hidden, that is, they are not published, because only controls appear at run-time.</para>
  12787.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12788.                      
  12789.                <method namespace="Classes" class="TComponent">DefineProperties</method> is virtual; descendant classes can override it. When overriding <method namespace="Classes" class="TComponent">DefineProperties</method>, be aware that the Ancestor property of Filer might be set, and that this property can determine whether or not it is appropriate to write properties.</para>
  12790.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12791.                      
  12792.                <method namespace="Classes" class="TComponent">DefineProperties</method> is called automatically as part of the component streaming system; do not call it directly.</para>
  12793.          </comments>
  12794.       </member>
  12795.       <member name="M:Classes.Classes.GetChildren">
  12796.          <summary>
  12797.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides the interface for a method that windowed controls use to return their child components.</para>
  12798.          </summary>
  12799.          <comments>
  12800.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12801.                      
  12802.                <method namespace="Classes" class="TComponent">GetChildren</method> is introduced in <method namespace="Classes" class="TComponent">TComponent</method> for the streaming system that loads and saves CLX components. Descendant classes override <method namespace="Classes" class="TComponent">GetChildren</method> to execute the callback specified by Proc for each of their "child" components; that is, components that return this component from their GetParentComponent method.</para>
  12803.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Root specifies the top-level component (such as a form or data module) that is currently being loaded or saved. Proc is a callback that loads or saves the child component.</para>
  12804.          </comments>
  12805.       </member>
  12806.       <member name="M:Classes.Classes.Loaded">
  12807.          <summary>
  12808.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes the component after the form file has been read into memory.</para>
  12809.          </summary>
  12810.          <comments>
  12811.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call the protected <method namespace="Classes" class="TComponent">Loaded</method> method. The streaming system calls this method after it loads the component's form from a stream.</para>
  12812.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the streaming system loads a form or data module from its form file, it first constructs the form component by calling its constructor, then reads its property values from the form file. After reading all the property values for all the components, the streaming system calls the <method namespace="Classes" class="TComponent">Loaded</method> methods of each component in the order the components were created. This gives the components a chance to initialize any data that depends on the values of other components or other parts of itself.</para>
  12813.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12814.                      
  12815.                <para>All references to sibling components are resolved by the time <method namespace="Classes" class="TComponent">Loaded</method> is called. <method namespace="Classes" class="TComponent">Loaded</method> is the first place that sibling pointers can be used after being streamed in.</para>
  12816.                   
  12817.             </note>
  12818.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TComponent">TComponent</method>, <method namespace="Classes" class="TComponent">Loaded</method> clears the csLoading flag in the ComponentState property, indicating that the component is no longer loading.</para>
  12819.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12820.                      
  12821.                <para>
  12822.                         
  12823.                   <method namespace="Classes" class="TComponent">Loaded</method> may be called multiple times on inherited forms. It is called every time a level of inheritance is streamed in. Do not allocate memory in an overridden <method namespace="Classes" class="TComponent">Loaded</method> method without first checking that the memory has not been allocated in a previous call.</para>
  12824.                   
  12825.             </warning>
  12826.          </comments>
  12827.       </member>
  12828.       <member name="M:Classes.Classes.Notification">
  12829.          <summary>
  12830.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Forwards notification messages to all owned components.</para>
  12831.          </summary>
  12832.          <comments>
  12833.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call the <method namespace="Classes" class="TComponent">Notification</method> method in an application.  <method namespace="Classes" class="TComponent">Notification</method> is called automatically when the component specified by AComponent is about to be inserted or removed, as specified by Operation. By default, components pass along the notification to their owned components, if any.</para>
  12834.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A component can, if needed, act on the notification that a component is being inserted or removed. For example, if a component has object fields or properties that contain references to other components, it can check the notifications of component removals and invalidate those references as needed.</para>
  12835.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12836.                      
  12837.                <para>
  12838.                         
  12839.                   <method namespace="Classes" class="TComponent">Notification</method> is not called for components that are freed implicitly (because their Owner is freed).</para>
  12840.                   
  12841.             </note>
  12842.          </comments>
  12843.       </member>
  12844.       <member name="M:Classes.Classes.PaletteCreated">
  12845.          <summary>
  12846.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Responds when the component is created from the component palette.</para>
  12847.          </summary>
  12848.          <comments>
  12849.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12850.                      
  12851.                <method namespace="Classes" class="TComponent">PaletteCreated</method> is called automatically at design time when the component has just been created from the component palette. Component writers can override this method to perform adjustments that are required only when the component is created from the component palette.</para>
  12852.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TComponent">TComponent</method>, <method namespace="Classes" class="TComponent">PaletteCreated</method> does nothing.</para>
  12853.          </comments>
  12854.       </member>
  12855.       <member name="M:Classes.Classes.ReadState">
  12856.          <summary>
  12857.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads the component's data from a stream.</para>
  12858.          </summary>
  12859.          <comments>
  12860.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12861.                      
  12862.                <method namespace="Classes" class="TComponent">ReadState</method> is part of a sequence of calls used by the streaming system that loads and saves CLX components.  It reads the values of all the component's published properties, stored data, and owned components from the reader object passed in Reader. Do not call <method namespace="Classes" class="TComponent">ReadState</method> directly.</para>
  12863.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Although <method namespace="Classes" class="TComponent">ReadState</method> is virtual, it is rarely overridden. Any descendant classes overriding <method namespace="Classes" class="TComponent">ReadState</method> should end with a call to the inherited <method namespace="Classes" class="TComponent">ReadState</method> method of <method namespace="Classes" class="TComponent">TComponent</method>.</para>
  12864.          </comments>
  12865.       </member>
  12866.       <member name="M:Classes.Classes.SetAncestor">
  12867.          <summary>
  12868.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets or clears the ComponentState property's csAncestor flag.</para>
  12869.          </summary>
  12870.          <comments>
  12871.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12872.                      
  12873.                <method namespace="Classes" class="TComponent">SetAncestor</method> is used internally by the streaming system that loads and saves CLX components. Do not call <method namespace="Classes" class="TComponent">SetAncestor</method> directly.</para>
  12874.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12875.                      
  12876.                <method namespace="Classes" class="TComponent">SetAncestor</method> sets or clears the csAncestor flag, which indicates whether the component was introduced in an ancestor form. <method namespace="Classes" class="TComponent">SetAncestor</method> then calls the <method namespace="Classes" class="TComponent">SetAncestor</method> methods of any owned components, passing Value, so that the owned components' ComponentState properties will be synchronized with the owner's.</para>
  12877.          </comments>
  12878.       </member>
  12879.       <member name="M:Classes.Classes.SetDesigning">
  12880.          <summary>
  12881.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Ensures that components inserted at design time have their design-mode flag set.</para>
  12882.          </summary>
  12883.          <comments>
  12884.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12885.                      
  12886.                <method namespace="Classes" class="TComponent">SetDesigning</method> is used internally by the Form designer. Do not call <method namespace="Classes" class="TComponent">SetDesigning</method> directly.</para>
  12887.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12888.                      
  12889.                <method namespace="Classes" class="TComponent">SetDesigning</method> sets the csDesigning flag in the ComponentState property if Value is true; otherwise, it removes csDesigning. </para>
  12890.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the SetChildren parameter is true, <method namespace="Classes" class="TComponent">SetDesigning</method> then calls the <method namespace="Classes" class="TComponent">SetDesigning</method> methods of any owned components, passing Value, so that the owned components' ComponentState properties are synchronized with the owner's.</para>
  12891.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The InsertComponent and RemoveComponent methods call <method namespace="Classes" class="TComponent">SetDesigning</method> for inserted or removed components to ensure that their design-mode flags are set properly.</para>
  12892.          </comments>
  12893.       </member>
  12894.       <member name="M:Classes.Classes.SetInline">
  12895.          <summary>
  12896.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the csInline bit of the component's ComponentState property</para>
  12897.          </summary>
  12898.          <comments>
  12899.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12900.                      
  12901.                <method namespace="Classes" class="TComponent">SetInline</method> is used internally to indicate whether the component can act as a root component in the designer but also be embedded in a form.</para>
  12902.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12903.                      
  12904.                <method namespace="Classes" class="TComponent">SetInline</method> sets the csInline flag in the ComponentState property if Value is true; otherwise, it removes csInline. </para>
  12905.          </comments>
  12906.       </member>
  12907.       <member name="M:Classes.Classes.SetDesignInstance">
  12908.          <summary>
  12909.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Ensures that components inserted at design time have their design-mode flag set.</para>
  12910.          </summary>
  12911.          <comments>
  12912.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12913.                      
  12914.                <method namespace="Classes" class="TComponent">SetDesignInstance</method> is used internally by the Form designer to identify objects that act as a design surface. Do not call <method namespace="Classes" class="TComponent">SetDesignInstance</method> directly.</para>
  12915.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12916.                      
  12917.                <method namespace="Classes" class="TComponent">SetDesignInstance</method> sets the csDesignInstance flag in the ComponentState property if Value is true; otherwise, it removes csDesignInstance. </para>
  12918.          </comments>
  12919.       </member>
  12920.       <member name="M:Classes.Classes.SetChildOrder">
  12921.          <summary>
  12922.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides the interface for a method to rearrange child components.</para>
  12923.          </summary>
  12924.          <comments>
  12925.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12926.                      
  12927.                <method namespace="Classes" class="TComponent">SetChildOrder</method> is introduced in <method namespace="Classes" class="TComponent">TComponent</method> for the streaming system that loads and saves CLX components. As implemented in <method namespace="Classes" class="TComponent">TComponent</method>, <method namespace="Classes" class="TComponent">SetChildOrder</method> does nothing. Descendant classes override <method namespace="Classes" class="TComponent">SetChildOrder</method> to change the order in which a child appears list returned by GetChildren.</para>
  12928.          </comments>
  12929.       </member>
  12930.       <member name="M:Classes.Classes.SetParentComponent">
  12931.          <summary>
  12932.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides the interface for a method that changes the parent of a component.</para>
  12933.          </summary>
  12934.          <comments>
  12935.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12936.                      
  12937.                <method namespace="Classes" class="TComponent">SetParentComponent</method> is introduced in <method namespace="Classes" class="TComponent">TComponent</method> for the streaming system that loads and saves CLX components. <method namespace="Classes" class="TComponent">SetParentComponent</method> does nothing in <method namespace="Classes" class="TComponent">TComponent</method>. Descendant classes override <method namespace="Classes" class="TComponent">SetParentComponent</method> to change the value that GetParentComponent returns to match the Value parameter.</para>
  12938.          </comments>
  12939.       </member>
  12940.       <member name="M:Classes.Classes.Updating">
  12941.          <summary>
  12942.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the cs<method namespace="Classes" class="TComponent">Updating</method> state in the component's ComponentState property. </para>
  12943.          </summary>
  12944.          <comments>
  12945.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TComponent">Updating</method> directly. It is used internally to indicate that the component is about to be updated. A call to <method namespace="Classes" class="TComponent">Updating</method>, which sets the cs<method namespace="Classes" class="TComponent">Updating</method> flag, is always followed by a call to Updated, which clears the flag.</para>
  12946.          </comments>
  12947.       </member>
  12948.       <member name="M:Classes.Classes.Updated">
  12949.          <summary>
  12950.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Clears the csUpdating state in the component's ComponentState property when the component finishes updating.</para>
  12951.          </summary>
  12952.          <comments>
  12953.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TComponent">Updated</method> directly. It is used internally to clear the csUpdating flag of the ComponentState property. A call to <method namespace="Classes" class="TComponent">Updated</method> always follows a call to Updating, which sets the flag.</para>
  12954.          </comments>
  12955.       </member>
  12956.       <member name="M:Classes.Classes.UpdateRegistry">
  12957.          <summary>
  12958.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides the interface for a method that adds type library and version information to the Registry on components that implement COM interfaces.</para>
  12959.          </summary>
  12960.          <comments>
  12961.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TComponent">UpdateRegistry</method> directly. It is for internal use only. </para>
  12962.          </comments>
  12963.       </member>
  12964.       <member name="M:Classes.Classes.ValidateRename">
  12965.          <summary>
  12966.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Ensures that renaming an owned component does not create name conflict.</para>
  12967.          </summary>
  12968.          <comments>
  12969.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12970.                      
  12971.                <method namespace="Classes" class="TComponent">ValidateRename</method> checks to see if a component can rename one of its owned components, passed in AComponent, from its current name (CurName) to the string passed in NewName. If AComponent is nil (Delphi) or NULL (C++) or NewName is already the name of a component in the Components list, <method namespace="Classes" class="TComponent">ValidateRename</method> raises an EComponentError exception.</para>
  12972.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12973.                      
  12974.                <method namespace="Classes" class="TComponent">ValidateRename</method> is used internally when the Name property is modified. It is not necessary to call it directly.</para>
  12975.          </comments>
  12976.       </member>
  12977.       <member name="M:Classes.Classes.ValidateContainer">
  12978.          <summary>
  12979.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether an object can be inserted into a container.</para>
  12980.          </summary>
  12981.          <comments>
  12982.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12983.                      
  12984.                <method namespace="Classes" class="TComponent">ValidateContainer</method> is called by a component when it is about to be inserted into a container object. By default, <method namespace="Classes" class="TComponent">ValidateContainer</method> calls the ValidateInsert method of the component specified by the AComponent parameter. </para>
  12985.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendant components can override <method namespace="Classes" class="TComponent">ValidateContainer</method> to disallow a component from being inserted into specific containers. To disallow an insertion, raise an exception in the derived method.</para>
  12986.          </comments>
  12987.       </member>
  12988.       <member name="M:Classes.Classes.ValidateInsert">
  12989.          <summary>
  12990.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides the interface for a method that validates an child component before it is inserted.</para>
  12991.          </summary>
  12992.          <comments>
  12993.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12994.                      
  12995.                <method namespace="Classes" class="TComponent">ValidateInsert</method> does nothing in <method namespace="Classes" class="TComponent">TComponent</method>. Descendant classes can override it to disallow a component from accepting an object as a child. By default <method namespace="Classes" class="TComponent">ValidateInsert</method> allows any object to be inserted into the component. </para>
  12996.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If a component needs to validate only certain objects, descendant classes can override <method namespace="Classes" class="TComponent">ValidateInsert</method> to filter out those objects.  To disallow an insertion, raise an exception in the derived method.</para>
  12997.          </comments>
  12998.       </member>
  12999.       <member name="M:Classes.Classes.WriteState">
  13000.          <summary>
  13001.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the component's data to a stream.</para>
  13002.          </summary>
  13003.          <comments>
  13004.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13005.                      
  13006.                <method namespace="Classes" class="TComponent">WriteState</method> is part of a sequence of calls used by the streaming system that loads and saves CLX components. <method namespace="Classes" class="TComponent">WriteState</method> is an iterative method that writes the values of all the component's published properties and other stored data to the Writer component passed as the Writer parameter. Do not call <method namespace="Classes" class="TComponent">WriteState</method> directly.</para>
  13007.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Although <method namespace="Classes" class="TComponent">WriteState</method> is virtual, it is rarely overridden. Any descendant classes overriding <method namespace="Classes" class="TComponent">WriteState</method> should end with a call to the <method namespace="Classes" class="TComponent">WriteState</method> method inherited from <method namespace="Classes" class="TComponent">TComponent</method>.</para>
  13008.          </comments>
  13009.       </member>
  13010.       <member name="M:Classes.Classes.BeforeDestruction">
  13011.          <summary>
  13012.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Performs any necessary actions before the first destructor is called.</para>
  13013.          </summary>
  13014.          <comments>
  13015.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13016.                      
  13017.                <method namespace="Classes" class="TComponent">BeforeDestruction</method> is called automatically immediately before the component's first destructor executes. Do not call it explicitly in your applications.</para>
  13018.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">As implemented in <method namespace="Classes" class="TComponent">TComponent</method>, <method namespace="Classes" class="TComponent">BeforeDestruction</method> checks whether the Destroying method has been called, and if not, calls it. Descendants that override this method to perform other actions before a component is destroyed should call the inherited method first to ensure that this check takes place.</para>
  13019.          </comments>
  13020.       </member>
  13021.       <member name="M:Classes.Classes.DestroyComponents">
  13022.          <summary>
  13023.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Destroys all owned components.</para>
  13024.          </summary>
  13025.          <comments>
  13026.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13027.                      
  13028.                <method namespace="Classes" class="TComponent">DestroyComponents</method> iterates through the components owned by the component, removing each from the list of owned components and destroying it.</para>
  13029.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">It is not necessary to call <method namespace="Classes" class="TComponent">DestroyComponents</method> directly. <method namespace="Classes" class="TComponent">DestroyComponents</method> is automatically called when the component is destroyed.</para>
  13030.          </comments>
  13031.       </member>
  13032.       <member name="M:Classes.Classes.Destroying">
  13033.          <summary>
  13034.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates that the component and its owned components are about to be destroyed.</para>
  13035.          </summary>
  13036.          <comments>
  13037.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13038.                      
  13039.                <method namespace="Classes" class="TComponent">Destroying</method> sets the cs<method namespace="Classes" class="TComponent">Destroying</method> flag in the ComponentState property.  It then calls the <method namespace="Classes" class="TComponent">Destroying</method> method for each owned component so that their cs<method namespace="Classes" class="TComponent">Destroying</method> flags are also set. If cs<method namespace="Classes" class="TComponent">Destroying</method> is already set, <method namespace="Classes" class="TComponent">Destroying</method> does nothing.</para>
  13040.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">It is not necessary to call <method namespace="Classes" class="TComponent">Destroying</method> directly. <method namespace="Classes" class="TComponent">Destroying</method> is automatically called when the component is destroyed.</para>
  13041.          </comments>
  13042.       </member>
  13043.       <member name="M:Classes.Classes.FreeNotification">
  13044.          <summary>
  13045.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Ensures that AComponent is notified that the component is going to be destroyed.</para>
  13046.          </summary>
  13047.          <comments>
  13048.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TComponent">FreeNotification</method> to register AComponent as a component that should be notified when the component is about to be destroyed. It is only necessary to register components this way when they are in a different form or have a different owner. For example, if AComponent is in another form and uses the component to implement a property, it must call <method namespace="Classes" class="TComponent">FreeNotification</method> so that its Notification method is called when the component is destroyed.</para>
  13049.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For components with the same owner, the Notification method is called automatically when an application explicitly frees the component. This notification is not sent out when components are freed implicitly, because the Owner is already being freed.</para>
  13050.          </comments>
  13051.       </member>
  13052.       <member name="M:Classes.Classes.RemoveFreeNotification">
  13053.          <summary>
  13054.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Disables destruction notification that was enabled by FreeNotification</para>
  13055.          </summary>
  13056.          <comments>
  13057.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13058.                      
  13059.                <method namespace="Classes" class="TComponent">RemoveFreeNotification</method> removes the component specified by the AComponent parameter from the internal list of objects to be notified that the component is about to be destroyed. AComponent is added to this list by a previous call to the FreeNotification method.</para>
  13060.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Most applications have no need to call <method namespace="Classes" class="TComponent">RemoveFreeNotification</method>. It is used by <method namespace="Classes" class="TComponent">TComponent</method> to detect loops where two components are notifying each other of their impending destruction.</para>
  13061.          </comments>
  13062.       </member>
  13063.       <member name="M:Classes.Classes.FreeOnRelease">
  13064.          <summary>
  13065.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Frees the interface reference for components that were created from COM classes. </para>
  13066.          </summary>
  13067.          <comments>
  13068.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13069.                      
  13070.                <method namespace="Classes" class="TComponent">FreeOnRelease</method> is called when an interface implemented by the component is released. <method namespace="Classes" class="TComponent">FreeOnRelease</method> is used internally and calls the corresponding interface method. It should not be necessary to call <method namespace="Classes" class="TComponent">FreeOnRelease</method> directly.</para>
  13071.          </comments>
  13072.       </member>
  13073.       <member name="M:Classes.Classes.InsertComponent">
  13074.          <summary>
  13075.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Establishes the component as the owner of a specified component.</para>
  13076.          </summary>
  13077.          <comments>
  13078.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13079.                      
  13080.                <method namespace="Classes" class="TComponent">InsertComponent</method> adds the component passed in the AComponent parameter to the end of the Components array property. The inserted component must have no name (no specified Name property value), or the name must be unique among all others in the Components list.</para>
  13081.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the owning component is destroyed, AComponent is destroyed also.</para>
  13082.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Components are automatically inserted and removed when visually manipulating them in the form designer. Use <method namespace="Classes" class="TComponent">InsertComponent</method> when manually adding components to another Owner component's Components list.</para>
  13083.          </comments>
  13084.       </member>
  13085.       <member name="M:Classes.Classes.RemoveComponent">
  13086.          <summary>
  13087.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Removes a specified component specified from the component's Components list.</para>
  13088.          </summary>
  13089.          <comments>
  13090.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Components are automatically inserted and removed when visually manipulating them in the form designer. Use <method namespace="Classes" class="TComponent">RemoveComponent</method> to programmatically delete the component specified by AComponent from its Owner component.</para>
  13091.          </comments>
  13092.       </member>
  13093.       <member name="M:Classes.Classes.SetSubComponent">
  13094.          <summary>
  13095.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Identifies whether the component is a subcomponent.</para>
  13096.          </summary>
  13097.          <comments>
  13098.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TComponent">SetSubComponent</method> to indicate that this component is or is not a subcomponent. A subcomponent is a component whose Owner is a component other than the form or data module in which it resides. Unless such a component calls <method namespace="Classes" class="TComponent">SetSubComponent</method> with IsSubComponent set to true, its published properties will not be saved to the form file.</para>
  13099.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">IsSubComponent indicates whether the component is a subcomponent (true) or not (false).</para>
  13100.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13101.                      
  13102.                <method namespace="Classes" class="TComponent">SetSubComponent</method> is called at design time either</para>
  13103.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">From the constructor of a component that always acts as a subcomponent. In this case, the component calls its own <method namespace="Classes" class="TComponent">SetSubComponent</method> method from the constructor with IsSubComponent set to true.</para>
  13104.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Immediately after constructing an instance of the subcomponent. In this case, the Owner calls the <method namespace="Classes" class="TComponent">SetSubComponent</method> method of a component it has just instantiated, with IsSubComponent set to true.</para>
  13105.          </comments>
  13106.       </member>
  13107.       <member name="M:Classes.Classes.Destroy">
  13108.          <summary>
  13109.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Disposes of the component and its owned components.</para>
  13110.          </summary>
  13111.          <comments>
  13112.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TComponent">Destroy</method> directly. Call Free instead.  Free verifies that the component is not nil, and only then calls <method namespace="Classes" class="TComponent">Destroy</method>.</para>
  13113.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Never explicitly free a component in one of its own event handlers, nor free a component from the event handler of a component that it owns or contains.</para>
  13114.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To destroy a form, call its Release method. Release waits for all the form's event handlers and the event handlers of the form's components to finish executing before destroying the form.</para>
  13115.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13116.                      
  13117.                <para>A form owns all the controls and non-visual components that are placed on it in design mode. When it is freed, all of these components are automatically freed as well. By default, all forms are owned by the global Application object. When an application terminates, it frees the global Application object, which frees all forms. For objects that are not components, and for components created with a nil owner, be sure to call Free after finishing with the object; otherwise the memory allocated for the object will be lost until the application terminates.</para>
  13118.                   
  13119.             </note>
  13120.          </comments>
  13121.       </member>
  13122.       <member name="P:Classes.Classes.ComObject">
  13123.          <summary>
  13124.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the interface reference implemented by the component.</para>
  13125.          </summary>
  13126.          <comments>
  13127.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TComponent">ComObject</property> to assign a COM interface implemented by a component to an interface reference. This property is used by components that support COM interfaces. </para>
  13128.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the component is not a wrapper for a COM component, trying to read <property namespace="Classes" class="TComponent">ComObject</property> causes <property namespace="Classes" class="TComponent">TComponent</property> to raise an EComponentError exception.</para>
  13129.          </comments>
  13130.       </member>
  13131.       <member name="P:Classes.Classes.Components">
  13132.          <summary>
  13133.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Lists all components owned by the component.</para>
  13134.          </summary>
  13135.          <comments>
  13136.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TComponent">Components</property> to access any of the components owned by this component, such as the components owned by a form. The <property namespace="Classes" class="TComponent">Components</property> property is most useful when referring to owned components by number rather than name. It is also used internally for iterative processing of all owned components.</para>
  13137.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index ranges from 0 to ComponentIndex minus 1.</para>
  13138.          </comments>
  13139.       </member>
  13140.       <member name="P:Classes.Classes.ComponentCount">
  13141.          <summary>
  13142.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the number of components owned by the component.</para>
  13143.          </summary>
  13144.          <comments>
  13145.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TComponent">ComponentCount</property> to find or verify the number of components owned by a component, or when iterating through the Components list to perform some action on all owned components. <property namespace="Classes" class="TComponent">ComponentCount</property> is used internally for such iterative procedures.</para>
  13146.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13147.                      
  13148.                <para>The <property namespace="Classes" class="TComponent">ComponentCount</property> of a component contains the same number of items as in the Components list for that component, and is always 1 more than the highest Components index, because the first Components index is always 0. </para>
  13149.                   
  13150.             </note>
  13151.          </comments>
  13152.       </member>
  13153.       <member name="P:Classes.Classes.ComponentIndex">
  13154.          <summary>
  13155.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the position of the component in its owner's Components property array.</para>
  13156.          </summary>
  13157.          <comments>
  13158.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TComponent">ComponentIndex</property> when iterating through the Components list of the component's owner to perform some action on owned components. It can be used in conjunction with ComponentCount. <property namespace="Classes" class="TComponent">ComponentIndex</property> is used internally for iterative assignment procedures. </para>
  13159.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13160.                      
  13161.                <para>The first component in the list has a <property namespace="Classes" class="TComponent">ComponentIndex</property> value of 0, the second has a value of 1, and so on. Therefore, when using <property namespace="Classes" class="TComponent">ComponentIndex</property> with ComponentCount, note that ComponentCount is always 1 more than the highest Components index.</para>
  13162.                   
  13163.             </note>
  13164.          </comments>
  13165.       </member>
  13166.       <member name="P:Classes.Classes.ComponentState">
  13167.          <summary>
  13168.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Describes the current state of the component, indicating when a component needs to avoid certain actions.</para>
  13169.          </summary>
  13170.          <comments>
  13171.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Components use the <property namespace="Classes" class="TComponent">ComponentState</property> property to detect states in which certain kinds of actions are allowed or disallowed. For example, if a component needs to avoid certain behaviors at design time that it performs at runtime, it can check for the csDesigning flag. <property namespace="Classes" class="TComponent">ComponentState</property> is read-only and its flags are set automatically when appropriate.</para>
  13172.          </comments>
  13173.       </member>
  13174.       <member name="P:Classes.Classes.ComponentStyle">
  13175.          <summary>
  13176.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Governs the behavior of the component.</para>
  13177.          </summary>
  13178.          <comments>
  13179.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13180.                      
  13181.                <property namespace="Classes" class="TComponent">ComponentStyle</property> governs how the component interacts with the streaming system and the Object Inspector. <property namespace="Classes" class="TComponent">ComponentStyle</property> is a read-only property. Typically, the value of the various component style flags are part of a component's definition, specified in a component's constructor. The one exception to this is the csSubComponent style, which can be set by calling the SetSubComponent method.</para>
  13182.          </comments>
  13183.       </member>
  13184.       <member name="P:Classes.Classes.DesignInfo">
  13185.          <summary>
  13186.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Contains information used by the Form designer.</para>
  13187.          </summary>
  13188.          <comments>
  13189.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13190.                      
  13191.                <property namespace="Classes" class="TComponent">DesignInfo</property> is used internally. Do not use this property in applications.</para>
  13192.          </comments>
  13193.       </member>
  13194.       <member name="P:Classes.Classes.Owner">
  13195.          <summary>
  13196.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the component that is responsible for streaming and freeing this component. </para>
  13197.          </summary>
  13198.          <comments>
  13199.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TComponent">Owner</property> to find the owner of a component. The <property namespace="Classes" class="TComponent">Owner</property> of a component is responsible for two things:</para>
  13200.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The memory for the owned component is freed when its owner's memory is freed. This means that when a form is destroyed, all the components on the form are also destroyed.</para>
  13201.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <property namespace="Classes" class="TComponent">Owner</property> is responsible for loading and saving the published properties of its owned controls.</para>
  13202.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, a form owns all components that are on it. In turn, the form is owned by the application. Thus when the application shuts down and its memory is freed, the memory for all forms (and all their owned components) is also freed. When a form is loaded into memory, it loads all of the components that are on it.</para>
  13203.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The owner of a component is determined by the parameter passed to the constructor when the component is created. For components created in the form designer, the form is automatically assigned as the <property namespace="Classes" class="TComponent">Owner</property>.</para>
  13204.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13205.                      
  13206.                <para>If a component has an <property namespace="Classes" class="TComponent">Owner</property> other than a form or data module, it will not be saved or loaded with its <property namespace="Classes" class="TComponent">Owner</property> unless you identify it as a subcomponent. To identify a component as a subcomponent, call the SetSubComponent method.</para>
  13207.                   
  13208.             </warning>
  13209.          </comments>
  13210.       </member>
  13211.       <member name="P:Classes.Classes.VCLComObject">
  13212.          <summary>
  13213.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Represents information used internally by components that support COM.</para>
  13214.          </summary>
  13215.          <comments>
  13216.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13217.                      
  13218.                <property namespace="Classes" class="TComponent">VCLComObject</property> is for internal use only. To access the interfaces implemented by a CLX COM component, use the ComObject property instead.</para>
  13219.          </comments>
  13220.       </member>
  13221.       <member name="P:Classes.Classes.Name">
  13222.          <summary>
  13223.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the name of the component as referenced in code.</para>
  13224.          </summary>
  13225.          <comments>
  13226.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TComponent">Name</property> to change the name of a component to reflect its purpose in the current application. By default, the IDE assigns sequential names based on the type of the component, such as 'Button1', 'Button2', and so on.</para>
  13227.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TComponent">Name</property> to refer to the component in code.</para>
  13228.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13229.                      
  13230.                <para>Changing <property namespace="Classes" class="TComponent">Name</property> at runtime causes any references to the old name to become undefined. Any subsequent code that uses the old name will cause an exception.</para>
  13231.                   
  13232.             </warning>
  13233.          </comments>
  13234.       </member>
  13235.       <member name="P:Classes.Classes.Tag">
  13236.          <summary>
  13237.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Stores an integer value as part of a component. </para>
  13238.          </summary>
  13239.          <comments>
  13240.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13241.                      
  13242.                <property namespace="Classes" class="TComponent">Tag</property> has no predefined meaning. The <property namespace="Classes" class="TComponent">Tag</property> property is provided for the convenience of developers. It can be used for storing an additional integer value or it can be typecast to any 32-bit value such as a component reference or a pointer.</para>
  13243.          </comments>
  13244.       </member>
  13245.       <member name="T:Classes.TBasicActionLink">
  13246.          <summary>
  13247.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13248.                
  13249.                <class namespace="Classes">TBasicActionLink</class> is the base class for action link classes that handle the communication between actions and clients.</para>
  13250.          </summary>
  13251.          <comments>
  13252.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13253.                
  13254.                <class namespace="Classes">TBasicActionLink</class> is the base class from which all other action link classes ultimately descend. TBasicAction link lays the foundation for the connection between action and the client. The client is a parameter to the <class namespace="Classes">TBasicActionLink</class> constructor, and the action object is indicated by the Action property. <class namespace="Classes">TBasicActionLink</class> sets up the link between the action and client execution and updating events.</para>
  13255.          </comments>
  13256.       </member>
  13257.       <member name="M:Classes.Classes.Execute">
  13258.          <summary>
  13259.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Invokes the action's <method namespace="Classes" class="TBasicActionLink">Execute</method> method.</para>
  13260.          </summary>
  13261.          <comments>
  13262.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13263.                      
  13264.                <method namespace="Classes" class="TBasicActionLink">Execute</method> calls the action's <method namespace="Classes" class="TBasicActionLink">Execute</method> method and returns true if the action has an assigned On<method namespace="Classes" class="TBasicActionLink">Execute</method> event handler, false otherwise. </para>
  13265.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AComponent is the client component that the user clicked to execute the action.</para>
  13266.          </comments>
  13267.       </member>
  13268.       <member name="M:Classes.Classes.Update">
  13269.          <summary>
  13270.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Invokes the action's <method namespace="Classes" class="TBasicActionLink">Update</method> method.</para>
  13271.          </summary>
  13272.          <comments>
  13273.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13274.                      
  13275.                <method namespace="Classes" class="TBasicActionLink">Update</method> calls the action's <method namespace="Classes" class="TBasicActionLink">Update</method> method and returns true if the action has an assigned On<method namespace="Classes" class="TBasicActionLink">Update</method> event handler, false otherwise. The action link's <method namespace="Classes" class="TBasicActionLink">Update</method> method is called if the client is linked to the action for this event.</para>
  13276.          </comments>
  13277.       </member>
  13278.       <member name="M:Classes.Classes.Create">
  13279.          <summary>
  13280.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Instantiates and initializes a <method namespace="Classes" class="TBasicActionLink">TBasicActionLink</method> object.</para>
  13281.          </summary>
  13282.          <comments>
  13283.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications do not need to call the constructor directly. Instances of <method namespace="Classes" class="TBasicActionLink">TBasicActionLink</method> are created automatically when you connect an action with a client in the action list editor. The AClient parameter is the client for the link. The link connects this client to its action.</para>
  13284.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13285.                      
  13286.                <method namespace="Classes" class="TBasicActionLink">Create</method> ensures that the client is of the appropriate type for the particular type of link. Descendant classes can progressively specify more customized client types. For example, there are action link classes for controls, for windowed controls, and for button controls.</para>
  13287.          </comments>
  13288.       </member>
  13289.       <member name="M:Classes.Classes.Destroy">
  13290.          <summary>
  13291.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13292.                      
  13293.                <method namespace="Classes" class="TBasicActionLink">Destroy</method>s an instance of an action link object.</para>
  13294.          </summary>
  13295.          <comments>
  13296.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">You do not need to destroy the action link; it is automatically destroyed by the client that was passed to its constructor when it was created.</para>
  13297.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If you want to destroy the action link manually, do not call the destructor directly. Call Free instead. Free checks that the link is not nil, and only then invokes the destructor.</para>
  13298.          </comments>
  13299.       </member>
  13300.       <member name="P:Classes.Classes.Action">
  13301.          <summary>
  13302.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates which action the link connects to its client.</para>
  13303.          </summary>
  13304.          <comments>
  13305.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13306.                      
  13307.                <property namespace="Classes" class="TBasicActionLink">Action</property> is the action object that the link associates with its client.</para>
  13308.          </comments>
  13309.       </member>
  13310.       <member name="E:Classes.Classes.OnChange">
  13311.          <summary>
  13312.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when an <event namespace="Classes" class="TBasicActionLink">OnChange</event> event is triggered on the action.</para>
  13313.          </summary>
  13314.          <comments>
  13315.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Classes" class="TBasicActionLink">OnChange</event> event handler when you want to respond to a change that occurs when the associated action fires an <event namespace="Classes" class="TBasicActionLink">OnChange</event> event.</para>
  13316.          </comments>
  13317.       </member>
  13318.       <member name="T:Classes.TBasicAction">
  13319.          <summary>
  13320.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13321.                
  13322.                <class namespace="Classes">TBasicAction</class> is the ancestor class for all action objects.</para>
  13323.          </summary>
  13324.          <comments>
  13325.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13326.                
  13327.                <class namespace="Classes">TBasicAction</class> introduces the fundamental behavior for an action. Descendants of <class namespace="Classes">TBasicAction</class> add functionality for containment in an action list, for being categorized, and for specializing their behavior tailored to particular clients such as controls or menu items. Use <class namespace="Classes">TBasicAction</class> if you want to create an action for an object that is neither a menu item nor a control.</para>
  13328.          </comments>
  13329.       </member>
  13330.       <member name="M:Classes.Classes.HandlesTarget">
  13331.          <summary>
  13332.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces an interface for verifying that the type, and state, of a target component or control are appropriate for the action.</para>
  13333.          </summary>
  13334.          <comments>
  13335.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13336.                      
  13337.                <method namespace="Classes" class="TBasicAction">HandlesTarget</method> does nothing in <method namespace="Classes" class="TBasicAction">TBasicAction</method>. <method namespace="Classes" class="TBasicAction">HandlesTarget</method> was introduced in <method namespace="Classes" class="TBasicAction">TBasicAction</method> so that descendants can override it to check the type and state of a target. Handles target can verify any information about a target that is relevant for the action. <method namespace="Classes" class="TBasicAction">HandlesTarget</method> returns true if the target meets the specified criteria, false otherwise.</para>
  13338.          </comments>
  13339.       </member>
  13340.       <member name="M:Classes.Classes.Execute">
  13341.          <summary>
  13342.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an On<method namespace="Classes" class="TBasicAction">Execute</method> event.</para>
  13343.          </summary>
  13344.          <comments>
  13345.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13346.                      
  13347.                <method namespace="Classes" class="TBasicAction">Execute</method> calls the On<method namespace="Classes" class="TBasicAction">Execute</method> event handler, if one is assigned, with the action as the Sender. <method namespace="Classes" class="TBasicAction">Execute</method> returns true if an event handler is called, false otherwise.</para>
  13348.          </comments>
  13349.       </member>
  13350.       <member name="M:Classes.Classes.Update">
  13351.          <summary>
  13352.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides an opportunity to execute centralized code when an application is idle.</para>
  13353.          </summary>
  13354.          <comments>
  13355.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13356.                      
  13357.                <method namespace="Classes" class="TBasicAction">Update</method> triggers the On<method namespace="Classes" class="TBasicAction">Update</method> event handler. <method namespace="Classes" class="TBasicAction">Update</method> returns true if a handler was found for that event, false otherwise. When the application is idle, the On<method namespace="Classes" class="TBasicAction">Update</method> event occurs for every action. This provides an opportunity for applications to execute centralized code for enabling and disabling, checking and unchecking, and so on.</para>
  13358.          </comments>
  13359.       </member>
  13360.       <member name="M:Classes.Classes.Create">
  13361.          <summary>
  13362.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Instantiates and initializes a <method namespace="Classes" class="TBasicAction">TBasicAction</method> object.</para>
  13363.          </summary>
  13364.          <comments>
  13365.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications do not need to instantiate <method namespace="Classes" class="TBasicAction">TBasicAction</method> directly. Actions are created automatically when you choose New Action in the action list editor. If you want to create an action at runtime, call <method namespace="Classes" class="TBasicAction">Create</method> and assign a TActionList component to its ActionList property.</para>
  13366.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13367.                      
  13368.                <method namespace="Classes" class="TBasicAction">Create</method> calls the inherited constructor and then creates its sub-objects, which includes a list of clients that are action links.</para>
  13369.          </comments>
  13370.       </member>
  13371.       <member name="M:Classes.Classes.Change">
  13372.          <summary>
  13373.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an On<method namespace="Classes" class="TBasicAction">Change</method> event.</para>
  13374.          </summary>
  13375.          <comments>
  13376.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13377.                      
  13378.                <method namespace="Classes" class="TBasicAction">Change</method> is called automatically when the action's properties change. This method calls the On<method namespace="Classes" class="TBasicAction">Change</method> event handler, if one is assigned.</para>
  13379.          </comments>
  13380.       </member>
  13381.       <member name="M:Classes.Classes.Notification">
  13382.          <summary>
  13383.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Responds when components are created or destroyed.</para>
  13384.          </summary>
  13385.          <comments>
  13386.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call the <method namespace="Classes" class="TBasicAction">Notification</method> method in an application.  <method namespace="Classes" class="TBasicAction">Notification</method> is called automatically when the component specified by AComponent is about to be inserted or removed, as specified by Operation. </para>
  13387.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13388.                      
  13389.                <method namespace="Classes" class="TBasicAction">TBasicAction</method> overrides the <method namespace="Classes" class="TBasicAction">Notification</method> method to check whether the component that is the value of the ActionComponent property is about to be freed. If so, it sets the ActionComponent property to nil (Delphi) or NULL (C++).</para>
  13390.          </comments>
  13391.       </member>
  13392.       <member name="M:Classes.Classes.UpdateTarget">
  13393.          <summary>
  13394.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces an interface for a method of notifying a client when the action updates itself.</para>
  13395.          </summary>
  13396.          <comments>
  13397.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13398.                      
  13399.                <method namespace="Classes" class="TBasicAction">UpdateTarget</method> does nothing in <method namespace="Classes" class="TBasicAction">TBasicAction</method>. <method namespace="Classes" class="TBasicAction">UpdateTarget</method> was introduced in <method namespace="Classes" class="TBasicAction">TBasicAction</method> so that descendants can override it to correspondingly update a target when the action updates. For examples, see the TEditAction objects in the stdactns unit.</para>
  13400.          </comments>
  13401.       </member>
  13402.       <member name="M:Classes.Classes.ExecuteTarget">
  13403.          <summary>
  13404.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Introduces an interface for invoking an action on a target client component or control.</para>
  13405.          </summary>
  13406.          <comments>
  13407.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13408.                      
  13409.                <method namespace="Classes" class="TBasicAction">ExecuteTarget</method> does nothing in <method namespace="Classes" class="TBasicAction">TBasicAction</method>. <method namespace="Classes" class="TBasicAction">ExecuteTarget</method> was introduced in <method namespace="Classes" class="TBasicAction">TBasicAction</method> so that descendants can override it to initiate the action on the target. For example, an edit action that performs copying might copy the contents of an edit control to the clipboard.</para>
  13410.          </comments>
  13411.       </member>
  13412.       <member name="M:Classes.Classes.RegisterChanges">
  13413.          <summary>
  13414.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Associates the action with an action link.</para>
  13415.          </summary>
  13416.          <comments>
  13417.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13418.                      
  13419.                <method namespace="Classes" class="TBasicAction">RegisterChanges</method> is called when the action and link are connected, for example, when a link sets a new action. Value is the action link with which the action associates itself. The link is added to the action's client list.</para>
  13420.          </comments>
  13421.       </member>
  13422.       <member name="M:Classes.Classes.UnRegisterChanges">
  13423.          <summary>
  13424.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Breaks the association between the action and the action link.</para>
  13425.          </summary>
  13426.          <comments>
  13427.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13428.                      
  13429.                <method namespace="Classes" class="TBasicAction">UnRegisterChanges</method> is called when the action and link should no longer be associated. <method namespace="Classes" class="TBasicAction">UnRegisterChanges</method> is called, for example, in the destructor or when a link sets a new action. Value is the action link with which the association is broken.</para>
  13430.          </comments>
  13431.       </member>
  13432.       <member name="M:Classes.Classes.Destroy">
  13433.          <summary>
  13434.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Disposes of an instance of a <method namespace="Classes" class="TBasicAction">TBasicAction</method> object.</para>
  13435.          </summary>
  13436.          <comments>
  13437.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">You do not need to call the destructor for an action. An action is a component and is automatically destroyed by its owner, which was passed to the constructor when it is created. If you must destroy an action manually, call Free instead, which safely invokes the destructor.</para>
  13438.          </comments>
  13439.       </member>
  13440.       <member name="P:Classes.Classes.ActionComponent">
  13441.          <summary>
  13442.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the client component that caused this action to execute.</para>
  13443.          </summary>
  13444.          <comments>
  13445.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Classes" class="TBasicAction">ActionComponent</property> to discern which client component caused this action to execute. For example, examine <property namespace="Classes" class="TBasicAction">ActionComponent</property> from an OnExecute event handler if you need to know what user action triggered this action.</para>
  13446.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the user clicks a client control, that client sets <property namespace="Classes" class="TBasicAction">ActionComponent</property> before calling the action's Execute method. After the action executes, the action resets <property namespace="Classes" class="TBasicAction">ActionComponent</property> to nil (Delphi) or NULL (C++).</para>
  13447.          </comments>
  13448.       </member>
  13449.       <member name="E:Classes.Classes.OnChange">
  13450.          <summary>
  13451.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when one of the action's properties changes.</para>
  13452.          </summary>
  13453.          <comments>
  13454.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Applications can't use the protected <event namespace="Classes" class="TBasicAction">OnChange</event> event. It is used internally to manage the relationship between the properties of the action and the corresponding properties of the action's clients.</para>
  13455.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Component writers can use <event namespace="Classes" class="TBasicAction">OnChange</event> in descendant objects to respond when the action's properties change.</para>
  13456.          </comments>
  13457.       </member>
  13458.       <member name="E:Classes.Classes.OnExecute">
  13459.          <summary>
  13460.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the client event that is linked to it fires.</para>
  13461.          </summary>
  13462.          <comments>
  13463.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Classes" class="TBasicAction">OnExecute</event> event handler when you want to respond when the user triggers the client object's default event (typically an OnClick event). For most target clients, <event namespace="Classes" class="TBasicAction">OnExecute</event> is triggered on a Click method, and is associated with the OnClick event.</para>
  13464.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13465.                      
  13466.                <event namespace="Classes" class="TBasicAction">OnExecute</event> also occurs when the user types the shortcut <condition os="Windows">(or one of the secondary shortcuts) </condition>associated with the action or its client.</para>
  13467.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13468.                      
  13469.                <para>If you assign an <event namespace="Classes" class="TBasicAction">OnExecute</event> event handler to a predefined action, the default behavior of that action will not occur.</para>
  13470.                   
  13471.             </warning>
  13472.          </comments>
  13473.       </member>
  13474.       <member name="E:Classes.Classes.OnUpdate">
  13475.          <summary>
  13476.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the application is idle or when the action list updates.</para>
  13477.          </summary>
  13478.          <comments>
  13479.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Classes" class="TBasicAction">OnUpdate</event> event handler to execute centralized code while an application is idle. For example, actions may want to update enabling and disabling, or checking and unchecking of client targets.</para>
  13480.          </comments>
  13481.       </member>
  13482.       <member name="T:Classes.TDataModule">
  13483.          <summary>
  13484.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13485.                
  13486.                <class namespace="Classes">TDataModule</class> centralizes the handling of nonvisual components in an application.</para>
  13487.          </summary>
  13488.          <comments>
  13489.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use a <class namespace="Classes">TDataModule</class> object in an application to provide a location for centralized handling of nonvisual components. Typically these are data access components, such as TSQLDataSet, and TSQLConnection. DataModules are not limited to data access components, they can also contain other nonvisual components, such as TTimer, TOpenDialog, or TImageList).</para>
  13490.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">At design time a <class namespace="Classes">TDataModule</class> object provides a visual container into which a developer can place nonvisual components, set their properties, and write event handlers for them. To create a data module at design time, choose File | New Data Module.</para>
  13491.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">In the unit file for the data module a developer may also place any business rules that are to be applied to the application.</para>
  13492.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To make the data module available to another unit in the application, select that unit, then choose File|Use Unit (when working in Delphi) or File|Include Unit Header (when working in C++) to add the data module to the uses clause for the unit.</para>
  13493.          </comments>
  13494.       </member>
  13495.       <member name="M:Classes.Classes.Create">
  13496.          <summary>
  13497.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13498.                      
  13499.                <method namespace="Classes" class="TDataModule">Create</method>s an instance of a data module.</para>
  13500.          </summary>
  13501.          <comments>
  13502.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Classes" class="TDataModule">Create</method> to instantiate a data module at runtime if it was not created at design time. <method namespace="Classes" class="TDataModule">Create</method> calls <method namespace="Classes" class="TDataModule">Create</method>New. If an error occurs, an exception is raised. Otherwise, if Old<method namespace="Classes" class="TDataModule">Create</method>Order is true, <method namespace="Classes" class="TDataModule">Create</method> calls the On<method namespace="Classes" class="TDataModule">Create</method> event handler for the data module if one is assigned to it.</para>
  13503.          </comments>
  13504.       </member>
  13505.       <member name="M:Classes.Classes.CreateNew">
  13506.          <summary>
  13507.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Creates an instance of a data module and registers with the global screen object.</para>
  13508.          </summary>
  13509.          <comments>
  13510.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Classes" class="TDataModule">CreateNew</method> instead of Create to create a data module without using the associated .form file to initialize it.</para>
  13511.             <warning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13512.                      
  13513.                <para>Using <method namespace="Classes" class="TDataModule">CreateNew</method> instead of Create can cause unpredictable results because most data modules are written assuming their controls will be created from the form file.</para>
  13514.                   
  13515.             </warning>
  13516.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13517.                      
  13518.                <method namespace="Classes" class="TDataModule">CreateNew</method> calls the inherited constructor, and then informs the global screen object of the existence of the data module.</para>
  13519.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The first argument, AOwner, is the owner of the data module (usually the application). The second argument, Dummy, defaults to 0 and is not used by this constructor. The system passes 0 by default if this constructor is passed only the first argument, AOwner.</para>
  13520.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13521.                      
  13522.                <method namespace="Classes" class="TDataModule">CreateNew</method> bypasses the streaming in of the previously associated form file. Therefore, you must stream in an external form file to bind the visual components with their classes. You can stream in the previously associated form file by calling InitInheritedComponent. To stream in a different form file, bracket the call to <method namespace="Classes" class="TDataModule">CreateNew</method> with calls to WriteComponentResFile and ReadComponentResFile. The following code sequence</para>
  13523.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1. streams out an external form file.</para>
  13524.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2. creates a new data module disassociated from any form file;</para>
  13525.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">3. streams in the external form file and binds it to this new data module.</para>
  13526.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">WriteComponentResFile('Temp.xfm', DataModule1);
  13527. ...</codeBlock>
  13528.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DataModule2 := <method namespace="Classes" class="TDataModule">TDataModule</method>.<method namespace="Classes" class="TDataModule">CreateNew</method>(Application);</para>
  13529.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">ReadComponentResFile('Temp.xfm', DataModule2);</codeBlock>
  13530.          </comments>
  13531.       </member>
  13532.       <member name="M:Classes.Classes.AfterConstruction">
  13533.          <summary>
  13534.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an OnCreate event.</para>
  13535.          </summary>
  13536.          <comments>
  13537.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13538.                      
  13539.                <method namespace="Classes" class="TDataModule">AfterConstruction</method> is called after the data module's constructor has finished. Do not call it explicitly in applications. </para>
  13540.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13541.                      
  13542.                <method namespace="Classes" class="TDataModule">TDataModule</method> overrides <method namespace="Classes" class="TDataModule">AfterConstruction</method> to generate an OnCreate event when OldCreateOrder is false.</para>
  13543.          </comments>
  13544.       </member>
  13545.       <member name="M:Classes.Classes.BeforeDestruction">
  13546.          <summary>
  13547.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an OnDestroy event.</para>
  13548.          </summary>
  13549.          <comments>
  13550.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13551.                      
  13552.                <method namespace="Classes" class="TDataModule">BeforeDestruction</method> is called immediately before the data module's destructor. Do not call it explicitly in applications.</para>
  13553.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13554.                      
  13555.                <method namespace="Classes" class="TDataModule">TDataModule</method> overrides <method namespace="Classes" class="TDataModule">BeforeDestruction</method> to generate an OnDestroy event when OldCreateOrder is false.</para>
  13556.          </comments>
  13557.       </member>
  13558.       <member name="M:Classes.Classes.Destroy">
  13559.          <summary>
  13560.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13561.                      
  13562.                <method namespace="Classes" class="TDataModule">Destroy</method>s the instance of the data module.</para>
  13563.          </summary>
  13564.          <comments>
  13565.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="Classes" class="TDataModule">Destroy</method> directly. Instead call Free, which checks that the data module reference is not nil before calling <method namespace="Classes" class="TDataModule">Destroy</method>.</para>
  13566.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Before calling the inherited destructor, <method namespace="Classes" class="TDataModule">Destroy</method> removes any fixup references, calls its On<method namespace="Classes" class="TDataModule">Destroy</method> event handler (if one is defined and OldCreateOrder is true), and informs the global screen variable that the data module is going away.</para>
  13567.          </comments>
  13568.       </member>
  13569.       <member name="P:Classes.Classes.DesignOffset">
  13570.          <summary>
  13571.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the design offset for the data module at design time.</para>
  13572.          </summary>
  13573.          <comments>
  13574.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">An application should never need to set this value. It is used to control the position of the data module at design time.</para>
  13575.          </comments>
  13576.       </member>
  13577.       <member name="P:Classes.Classes.DesignSize">
  13578.          <summary>
  13579.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the design size for the data module at design time.</para>
  13580.          </summary>
  13581.          <comments>
  13582.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">An application should never need to set this value. It controls the size of the data module window at design time.</para>
  13583.          </comments>
  13584.       </member>
  13585.       <member name="P:Classes.Classes.OldCreateOrder">
  13586.          <summary>
  13587.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies when OnCreate and OnDestroy events occur.</para>
  13588.          </summary>
  13589.          <comments>
  13590.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When <property namespace="Classes" class="TDataModule">OldCreateOrder</property> is false (the default) the OnCreate event occurs after all constructors are finished (from the AfterConstruction method) and the OnDestroy event occurs before any destructors are called (from the BeforeDestruction method).</para>
  13591.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When <property namespace="Classes" class="TDataModule">OldCreateOrder</property> is true, OnCreate is triggered from the data module constructor and OnDestroy from the data module destructor.</para>
  13592.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13593.                      
  13594.                <para>This timing differs from Delphi version 3 and previous and from C++Builder version 1, where the OnCreate event occurred when the <property namespace="Classes" class="TDataModule">TDataModule</property> constructor executed and the OnDestroy event occurred when the <property namespace="Classes" class="TDataModule">TDataModule</property> destructor executed. Applications that require the OnCreate event and OnDestroy events to occur from the constructor and destructor of the data module can set <property namespace="Classes" class="TDataModule">OldCreateOrder</property> to true.</para>
  13595.                   
  13596.             </note>
  13597.          </comments>
  13598.       </member>
  13599.       <member name="E:Classes.Classes.OnCreate">
  13600.          <summary>
  13601.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when an application instantiates a data module.</para>
  13602.          </summary>
  13603.          <comments>
  13604.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Classes" class="TDataModule">OnCreate</event> event handler to take specific actions when an application instantiates a data module. For example, if a data module contains database and dataset components, an application may establish a database connection immediately. If the data module contains timers, the application may initialize them.</para>
  13605.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13606.                      
  13607.                <para>Use of the <event namespace="Classes" class="TDataModule">OnCreate</event> event is discouraged in C++ because it can interact badly with the data module's constructor (see OldCreateOrder). It is recommended that you override the constructor instead.</para>
  13608.                   
  13609.             </note>
  13610.          </comments>
  13611.       </member>
  13612.       <member name="E:Classes.Classes.OnDestroy">
  13613.          <summary>
  13614.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the data module is about to be destroyed.</para>
  13615.          </summary>
  13616.          <comments>
  13617.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Classes" class="TDataModule">OnDestroy</event> event handler to take specific actions when an application frees a data module. For example, if the unit code for the data module instantiates any objects of its own, such as string lists, the <event namespace="Classes" class="TDataModule">OnDestroy</event> event handler can be used to free those objects.</para>
  13618.          </comments>
  13619.       </member>
  13620.       <member name="T:Classes.TStreamOriginalFormat">
  13621.          <summary>
  13622.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13623.                
  13624.                <type namespace="Qt">TStreamOriginalFormat</type> indicates the format in which a form file is saved.</para>
  13625.          </summary>
  13626.          <comments>
  13627.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Form files can be saved in binary format or as a text file, depending on the options set in the Environment Options dialog. <type namespace="Qt">TStreamOriginalFormat</type> specifies the format used for saving a form file. It is one of the following values:</para>
  13628.             <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13629.                
  13630.                <tr>
  13631.                   
  13632.                   <th>Value</th>
  13633.                   
  13634.                   <th>Meaning</th>
  13635.                
  13636.                </tr>
  13637.                
  13638.                <tr>
  13639.                   
  13640.                   <td>
  13641.                      
  13642.                      <para>sofUnknown</para>
  13643.                   
  13644.                   </td>
  13645.                   
  13646.                   <td>
  13647.                      
  13648.                      <para>The format of the file from which a form is being read or to which it is being written is unknown. If the format can't be deduced from the stream, an exception is raised.</para>
  13649.                   
  13650.                   </td>
  13651.                
  13652.                </tr>
  13653.                
  13654.                <tr>
  13655.                   
  13656.                   <td>
  13657.                      
  13658.                      <para>sofBinary</para>
  13659.                   
  13660.                   </td>
  13661.                   
  13662.                   <td>
  13663.                      
  13664.                      <para>The form is being read from or written to a form file that uses binary format.</para>
  13665.                   
  13666.                   </td>
  13667.                
  13668.                </tr>
  13669.                
  13670.                <tr>
  13671.                   
  13672.                   <td>
  13673.                      
  13674.                      <para>sofText</para>
  13675.                   
  13676.                   </td>
  13677.                   
  13678.                   <td>
  13679.                      
  13680.                      <para>The form is being read from or written to a text file.</para>
  13681.                   
  13682.                   </td>
  13683.                
  13684.                </tr>
  13685.             
  13686.             </table>
  13687.          </comments>
  13688.       </member>
  13689.       <member name="M:Classes.SmallPoint">
  13690.          <summary>
  13691.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Creates a T<routine namespace="Classes">SmallPoint</routine> structure from a pair of coordinates.</para>
  13692.          </summary>
  13693.          <comments>
  13694.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">SmallPoint</routine> to create a T<routine namespace="Classes">SmallPoint</routine> that represents the specified coordinates.</para>
  13695.          </comments>
  13696.       </member>
  13697.       <member name="M:Classes.PointsEqual">
  13698.          <summary>
  13699.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether two points have the same coordinates.</para>
  13700.          </summary>
  13701.          <comments>
  13702.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">PointsEqual</routine> to compare two points. <routine namespace="Classes">PointsEqual</routine> returns true if P1 has the same coordinates as P2, false if the two points differ.</para>
  13703.          </comments>
  13704.       </member>
  13705.       <member name="M:Classes.Rect">
  13706.          <summary>
  13707.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Creates a T<routine namespace="Classes">Rect</routine> structure from a set of coordinates.</para>
  13708.          </summary>
  13709.          <comments>
  13710.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">Rect</routine> to create a T<routine namespace="Classes">Rect</routine> that represents the rectangle with the specified coordinates. Use <routine namespace="Classes">Rect</routine> to construct parameters for functions that require T<routine namespace="Classes">Rect</routine>, rather than setting up local variables for each parameter.</para>
  13711.          </comments>
  13712.       </member>
  13713.       <member name="M:Classes.InvalidPoint">
  13714.          <summary>
  13715.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether a specified point is equal to (-1,-1).</para>
  13716.          </summary>
  13717.          <comments>
  13718.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The point (-1,-1) is often used, by convention, to represent an invalid set of coordinates. This convention is often employed by Windows API functions<condition os="Linux"/>and by several Linux utilities. When working with other code that uses this convention, use <routine namespace="Classes">InvalidPoint</routine> to identify coordinate values that are invalid.</para>
  13719.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">At is the point to examine.</para>
  13720.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">X and Y identify the point by giving the X and Y coordinates respectively.</para>
  13721.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13722.                
  13723.                <routine namespace="Classes">InvalidPoint</routine> returns true if the specified point is (-1,-1), false otherwise.</para>
  13724.          </comments>
  13725.       </member>
  13726.       <member name="M:Classes.GetClass">
  13727.          <summary>
  13728.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns a registered persistent class given its name.</para>
  13729.          </summary>
  13730.          <comments>
  13731.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">GetClass</routine> to obtain a class from a class name. This class can be used as a parameter to routines that require a class. </para>
  13732.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Class must be registered before <routine namespace="Classes">GetClass</routine> can find it. Form classes and component classes that are referenced in a form declaration (instance variables) are automatically registered when the form is loaded. Other classes can be registered by calling RegisterClass or RegisterClasses.</para>
  13733.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13734.                
  13735.                <para>To obtain an unregistered class from a class name in C++, use the __classid routine.</para>
  13736.             
  13737.             </note>
  13738.          </comments>
  13739.       </member>
  13740.       <member name="M:Classes.FindClass">
  13741.          <summary>
  13742.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Finds and returns a class that is derived from TPersistent.</para>
  13743.          </summary>
  13744.          <comments>
  13745.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">FindClass</routine> to locate a class type by name. <routine namespace="Classes">FindClass</routine> searches the classes that the streaming system knows about. Form classes and component classes that are referenced in a form declaration (instance variables) are automatically registered with the streaming system. Other classes can be registered (with a call to RegisterClasses) so that the streaming system will recognize that class in a stream and know how to construct it. </para>
  13746.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the requested class name cannot be found, <routine namespace="Classes">FindClass</routine> raises an exception.</para>
  13747.          </comments>
  13748.       </member>
  13749.       <member name="M:Classes.RegisterClass">
  13750.          <summary>
  13751.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Registers a class of persistent object so that it's class type can be retrieved.</para>
  13752.          </summary>
  13753.          <comments>
  13754.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">RegisterClass</routine> to register a class with the streaming system. Form classes and component classes that are referenced in a form declaration (instance variables) are automatically registered.  Any other classes used by an application must be explicitly registered by calling <routine namespace="Classes">RegisterClass</routine> if instances are to be saved.</para>
  13755.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Once classes are registered, they can be loaded or saved by the component streaming system. IdentToInt returns nil (Delphi) or NULL (C++) when passed the class name of an unregistered class, and FindClass raises an exception for unregistered classes.</para>
  13756.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The AClass parameter is the class that is descended from TPersistent. Put the call to <routine namespace="Classes">RegisterClass</routine> in a Register procedure. In Delphi, you can also put the call in the initialization section of the unit in which the class is defined. In C++, the call can also go in the namespace of the compilation unit that defines the class.</para>
  13757.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the class is already registered, <routine namespace="Classes">RegisterClass</routine> does nothing. If a different class with the same name is already registered, <routine namespace="Classes">RegisterClass</routine> raises an EFilerError exception.</para>
  13758.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13759.                
  13760.                <para>Registering a component using the RegisterNoIcon or RegisterComponents method does not automatically register the class. It is still necessary to call <routine namespace="Classes">RegisterClass</routine> for components.</para>
  13761.             
  13762.             </note>
  13763.          </comments>
  13764.       </member>
  13765.       <member name="M:Classes.RegisterClasses">
  13766.          <summary>
  13767.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Registers a set of classes.</para>
  13768.          </summary>
  13769.          <comments>
  13770.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">RegisterClasses</routine> to register a set of custom classes in a single line. Each class is registered by calling RegisterClass. Unregistered classes can't be loaded or saved by the component streaming system.</para>
  13771.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13772.                
  13773.                <para>In C++, the AClasses parameter identifies the classes to be registered These must be descendants of TPersistent. The AClasses_Size parameter indicates the index of the last class in AClasses (one less than the total number of classes).</para>
  13774.             
  13775.             </note>
  13776.          </comments>
  13777.       </member>
  13778.       <member name="M:Classes.RegisterClassAlias">
  13779.          <summary>
  13780.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Registers a class that is identical to another class except for the name.</para>
  13781.          </summary>
  13782.          <comments>
  13783.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Component writers call <routine namespace="Classes">RegisterClassAlias</routine> to register custom classes that are identical to another persistent class except for the name. Registering a class allows it to be loaded and saved by the component streaming system.</para>
  13784.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The AClass parameter identifies the previously registered persistent class to which the new class is identical. The Alias parameter specifies the class name of the new class.</para>
  13785.          </comments>
  13786.       </member>
  13787.       <member name="M:Classes.UnRegisterClass">
  13788.          <summary>
  13789.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Unregisters an object class.</para>
  13790.          </summary>
  13791.          <comments>
  13792.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">UnregisterClass</routine> to unregister an object class. When a class is unregistered, it can't be loaded or saved by the component streaming system.</para>
  13793.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After unregistering a class, its name can be reused to register another object class.</para>
  13794.          </comments>
  13795.       </member>
  13796.       <member name="M:Classes.UnRegisterClasses">
  13797.          <summary>
  13798.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Unregisters a set of classes.</para>
  13799.          </summary>
  13800.          <comments>
  13801.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">UnregisterClasses</routine> to unregister several persistent object classes in a single line. When a class is unregistered, it can't be loaded or saved by the component streaming system.</para>
  13802.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The AClasses parameter specifies the classes (descendants of TPersistent) to unregister.</para>
  13803.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13804.                
  13805.                <para>In C++, the AClasses_Size parameter indicates the index of the last class in the AClasses array (one less than the number of classes).</para>
  13806.             
  13807.             </note>
  13808.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After unregistering a class, its name can be reused to register another object class.</para>
  13809.          </comments>
  13810.       </member>
  13811.       <member name="M:Classes.UnRegisterModuleClasses">
  13812.          <summary>
  13813.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Unregisters all classes defined in a specified module.</para>
  13814.          </summary>
  13815.          <comments>
  13816.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">UnregisterModuleClasses</routine> to unregister all object classes that were registered by the module with the handle specified by the Module parameter. When a class is unregistered, it can't be loaded or saved by the component streaming system.</para>
  13817.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After unregistering a class, its name can be reused to register another object class.</para>
  13818.          </comments>
  13819.       </member>
  13820.       <member name="M:Classes.StartClassGroup">
  13821.          <summary>
  13822.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Starts a class group derived from TPersistent.</para>
  13823.          </summary>
  13824.          <comments>
  13825.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The streaming system allows the classes that can be loaded and saved to be registered in separate groups. This allows the IDE to distinguish between cross-platform and Windows-only classes. <routine namespace="Classes">StartClassGroup</routine> creates a new group of classes, and adds the class specified by AClass to that group. </para>
  13826.          </comments>
  13827.       </member>
  13828.       <member name="M:Classes.ActivateClassGroup">
  13829.          <summary>
  13830.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Activates a group of classes that derive from TPersistent.</para>
  13831.          </summary>
  13832.          <comments>
  13833.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The streaming system allows the classes that can be loaded and saved to be registered in separate groups. This allows the IDE to distinguish between cross-platform and Windows-only classes. Call <routine namespace="Classes">ActivateClassGroup</routine> to activate the group of classes that contains the class specified by AClass. If AClass is in more than one group, all groups that contain the class are activated. </para>
  13834.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13835.                
  13836.                <routine namespace="Classes">ActivateClassGroup</routine> returns the class that was last used to activate a class group.</para>
  13837.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the requested class group cannot be activated <routine namespace="Classes">ActivateClassGroup</routine> raises an exception.</para>
  13838.          </comments>
  13839.       </member>
  13840.       <member name="M:Classes.RegisterComponents">
  13841.          <summary>
  13842.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Registers a set of components so that they all appear on the same page of the component palette.</para>
  13843.          </summary>
  13844.          <comments>
  13845.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">RegisterComponents</routine> to install a set of components in the IDE. Once a component is registered, it appears on the component palette, where it can be selected and placed on forms or data modules. Registered components can communicate with the Object Inspector to allow the user to get and set properties and events.</para>
  13846.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set the Page parameter to the name of the page on the component palette where the components should appear. If the named page already exists, the components are added to that page. If the named page does not exist, a new palette page with that name is created.</para>
  13847.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Pass the components to be registered in the ComponentClasses parameter.</para>
  13848.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13849.                
  13850.                <para>In C++, the ComponentClasses_Size parameter indicates the index of the last class in the ComponentClasses array (one less than the number of classes).</para>
  13851.             
  13852.             </note>
  13853.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">RegisterComponents</routine> from the implementation of the Register procedure in one of the units that defines the custom components. The units that define the components must then be compiled into a package and the package must be installed before the custom components appear in the component palette.</para>
  13854.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13855.                
  13856.                <para>After components are registered, users can move them to different palette pages. Once this happens, the component always appears on the new page. Calling <routine namespace="Classes">RegisterComponents</routine> a second time does not influence the page on which the component appears.</para>
  13857.             
  13858.             </note>
  13859.          </comments>
  13860.       </member>
  13861.       <member name="M:Classes.RegisterNoIcon">
  13862.          <summary>
  13863.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Registers a set of components but does not add them to the component palette.</para>
  13864.          </summary>
  13865.          <comments>
  13866.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">RegisterNoIcon</routine> to register a set of custom components so that objects from that class can use the Object Inspector. Because the components are not added to the component palette, instances of components registered using <routine namespace="Classes">RegisterNoIcon</routine> must be explicitly created by calling the constructor, usually from another component.</para>
  13867.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The ComponentClasses parameter is an array of custom classes that are descended from TComponent.</para>
  13868.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13869.                
  13870.                <para>In C++, the ComponentClasses_Size parameter is index of the last class in the array (one less than the number of classes).</para>
  13871.             
  13872.             </note>
  13873.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Put the call to <routine namespace="Classes">RegisterNoIcon</routine> in the Register procedure. </para>
  13874.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To add the components to the component palette, use RegisterComponents instead.</para>
  13875.          </comments>
  13876.       </member>
  13877.       <member name="M:Classes.RegisterIntegerConsts">
  13878.          <summary>
  13879.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Registers conversion functions for string identifiers that represent type values.</para>
  13880.          </summary>
  13881.          <comments>
  13882.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13883.                
  13884.                <routine namespace="Classes">RegisterIntegerConsts</routine> (which can only be called in Delphi) registers conversion functions for type identifiers. Call <routine namespace="Classes">RegisterIntegerConsts</routine> from the initialization section of the unit that defines an integer-based type and a set of strings that represent the values of that type.</para>
  13885.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AIntegerType is a pointer to the type information for the integer-based type whose values are represented as strings. Its value can be obtained from the base type using the TypeInfo function.</para>
  13886.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AIdentToInt is the conversion function that converts strings that are symbolic representations of values to the corresponding integers.</para>
  13887.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AIntToIdent is the conversion function that converts values that are instances of the base type to the corresponding string representation.</para>
  13888.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Once the conversion functions are registered, string identifiers can represent type values and the conversion functions are used to convert the string identifiers into the underlying integer values.  For example, the TColor type uses this system to convert between the type constants in the Graphics unit and numeric TColor values.</para>
  13889.          </comments>
  13890.       </member>
  13891.       <member name="M:Classes.UnregisterIntegerConsts">
  13892.          <summary>
  13893.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Unregisters conversion functions for string identifiers that represent type values.</para>
  13894.          </summary>
  13895.          <comments>
  13896.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13897.                
  13898.                <routine namespace="Classes">UnregisterIntegerConsts</routine>, which can only be called in Delphi, unregisters conversion functions that were previously registered by a call to RegisterIntegerConsts. Call <routine namespace="Classes">UnregisterIntegerConsts</routine> from the finalization section of the unit that defines the constants and registers the conversion functions in its initialization section. Once the conversion functions are unregistered, string identifiers can't be used to represent type values.</para>
  13899.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AIntegerType is a pointer to the type information for the integer-based type whose values are represented as strings. Its value can be obtained from the base type using the TypeInfo function.</para>
  13900.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AIdentToInt is the conversion function that converts strings that are symbolic representations of values to the corresponding integers.</para>
  13901.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AIntToIdent is the conversion function that converts values that are instances of the base type to the corresponding string representation.</para>
  13902.          </comments>
  13903.       </member>
  13904.       <member name="M:Classes.IdentToInt">
  13905.          <summary>
  13906.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Uses a mapping array to convert string identifiers into their corresponding integer values.</para>
  13907.          </summary>
  13908.          <comments>
  13909.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13910.                
  13911.                <routine namespace="Classes">IdentToInt</routine> provides the underlying translation from string identifiers to integers that occurs, for example, when you register a mapping using the RegisterIntegerConsts procedure in Delphi.</para>
  13912.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Ident is the string identifier to translate.</para>
  13913.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Int returns the corresponding integer value.</para>
  13914.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Map is an array of records (Delphi) or structs (C++) that describe the mapping. Each member of the array contains a Value field, which is the integer value to return and a Name field, which is the string identifier to translate.</para>
  13915.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13916.                
  13917.                <para>In C++, Map_Size is the index of the last entry in Map (one less than the number of elements).</para>
  13918.             
  13919.             </note>
  13920.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13921.                
  13922.                <routine namespace="Classes">IdentToInt</routine> looks for the string specified by Ident as the Name field on an entry in Map. If it finds a match, it sets Int to the corresponding Value field and returns true. If it does not find a match, it returns False.</para>
  13923.          </comments>
  13924.       </member>
  13925.       <member name="M:Classes.IntToIdent">
  13926.          <summary>
  13927.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Uses a mapping array to convert integers into their corresponding string identifiers.</para>
  13928.          </summary>
  13929.          <comments>
  13930.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">IdentToInt provides the underlying translation from string identifiers to integers that occurs, for example, when you register a mapping using the RegisterIntegerConsts procedure in Delphi.</para>
  13931.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Int is the integer to translate.</para>
  13932.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Ident returns the corresponding string identifier.</para>
  13933.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Map is an array of records (Delphi) or structs (C++) that describe the mapping. Each member of the array contains a Value field, which is the integer value to translate and a Name field, which is the corresponding string identifier.</para>
  13934.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13935.                
  13936.                <para>In C++, Map_Size is the index of the last entry in Map (one less than the number of elements).</para>
  13937.             
  13938.             </note>
  13939.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13940.                
  13941.                <routine namespace="Classes">IntToIdent</routine> looks for the integer specified by Int as the Value field on an entry in Map. If it finds a match, it sets Ident to the corresponding Name field and returns true. If it does not find a match, it returns false.</para>
  13942.          </comments>
  13943.       </member>
  13944.       <member name="M:Classes.FindGlobalComponent">
  13945.          <summary>
  13946.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns a top-level container component.</para>
  13947.          </summary>
  13948.          <comments>
  13949.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13950.                
  13951.                <routine namespace="Classes">FindGlobalComponent</routine> is used by the component streaming system to implement form linking. When a component property refers to a component on another form, data module, or other top-level container component, the streaming system calls <routine namespace="Classes">FindGlobalComponent</routine> to locate the root object in the form linking reference (e.g. Form1 in Form1.Edit1 (Delphi) or Form1->Edit1 (C++)). If the object cannot be found, <routine namespace="Classes">FindGlobalComponent</routine> returns nil (Delphi) or NULL (C++).</para>
  13952.          </comments>
  13953.       </member>
  13954.       <member name="M:Classes.IsUniqueGlobalComponentName">
  13955.          <summary>
  13956.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether a proposed component name is unambiguous.</para>
  13957.          </summary>
  13958.          <comments>
  13959.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13960.                
  13961.                <routine namespace="Classes">IsUniqueGlobalComponentName</routine> returns true if the name specified by Name is not currently used by any component on any form, data module, or other top-level container component. <routine namespace="Classes">IsUniqueGlobalComponentName</routine> returns false if another component is already using Name (in which case, references to the component should be qualified by the root object's name.</para>
  13962.          </comments>
  13963.       </member>
  13964.       <member name="M:Classes.InitInheritedComponent">
  13965.          <summary>
  13966.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes streaming of a form file for an inherited root class.</para>
  13967.          </summary>
  13968.          <comments>
  13969.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">InitInheritedComponent</routine> from the constructor of a root class to start streaming in of information in the associated form file.</para>
  13970.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Instance is the object being instantiated.</para>
  13971.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">RootAncestor is the base root class of which Instance may represent a descendant. This class must be a root class, meaning a class such as TCustomForm, TFrame, or TDataModule, which is the starting point of the streaming process (the component associated with the form file).</para>
  13972.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  13973.                
  13974.                <routine namespace="Classes">InitInheritedComponent</routine> returns true if the form file was successfully streamed in, false otherwise.</para>
  13975.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The call to <routine namespace="Classes">InitInheritedComponent</routine> is only required for descendant classes of the root class, and must follow the construction of the object instance except for streaming in of persistent properties in the form file. The following Delphi and C++ code samples show typical root class contstructors:</para>
  13976.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">constructor TMyRootClass.Create(AOwner: TComponent);</para>
  13977.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">begin
  13978.   inherited Create(AOwner); { first construct an object instance }
  13979.   if (ClassType <> TMyRootClass) and not (csDesigning in ComponentState) then 
  13980.   begin
  13981.     if not InitInheritedComponent(Self, TMyRootClass) then
  13982.       raise EResNotFound.CreateFmt(SResNotFound, [ClassName]);
  13983.   end;
  13984. end;</codeBlock>
  13985.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">void TMyRootClass.TMyRootClass(TComponent AOwner);</para>
  13986.             <codeBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">{
  13987.   if ( (ClassType != TMyRootClass) && 
  13988.     !(ComponentState.Contains(csDesigning))
  13989.   {
  13990.     if !(InitInheritedComponent(this, TMyRootClass))
  13991.       throw EResNotFound(SResNotFound, TVarRec theClassName[] = 
  13992.         {ClassName}, 1);
  13993.   }
  13994. }</codeBlock>
  13995.          </comments>
  13996.       </member>
  13997.       <member name="M:Classes.ReadComponentRes">
  13998.          <summary>
  13999.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads components and their properties from a specified resource.</para>
  14000.          </summary>
  14001.          <comments>
  14002.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">ReadComponentRes</routine> to create a component from its representation in a resource header. The ResName parameter is the name assigned to the resource for the component. The Instance parameter is an instance of the component that should be filled in with the attributes of the saved resource. Instance must be an object of the same class as the saved resource, or one of its descendants.  Create an instance of the appropriate type of object, and then call <routine namespace="Classes">ReadComponentRes</routine> to read in its property settings. If Instance is nil (Delphi) or NULL (C++), the object class is read from the resource.</para>
  14003.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  14004.                
  14005.                <routine namespace="Classes">ReadComponentRes</routine> returns an instance of the component that was read from the resource.</para>
  14006.          </comments>
  14007.       </member>
  14008.       <member name="M:Classes.ReadComponentResEx">
  14009.          <summary>
  14010.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads a component from a resource.</para>
  14011.          </summary>
  14012.          <comments>
  14013.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <routine namespace="Classes">ReadComponentResEx</routine> to load a component from a resource stored in a particular module (as opposed to ReadComponentRes, which assumes the current module).</para>
  14014.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The HInstance parameter is the instance handle for the module that stores the component as a resource. The ResName parameter is the name assigned to the resource for the component.</para>
  14015.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  14016.                
  14017.                <routine namespace="Classes">ReadComponentResEx</routine> returns an instance of the component that was read from the resource.</para>
  14018.          </comments>
  14019.       </member>
  14020.       <member name="M:Classes.ReadComponentResFile">
  14021.          <summary>
  14022.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reads components and their properties from a specified <condition os="Windows">Windows </condition>resource file.</para>
  14023.          </summary>
  14024.          <comments>
  14025.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">ReadComponentResFile</routine> to create a component and its children from their representation in a Windows<condition os="Windows"/>resource file. </para>
  14026.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The FileName parameter is the name of the compiled resource file that contains the component resource. </para>
  14027.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Instance parameter is an instance of the type of component that should be read. Create an instance of the appropriate type of object, and then call <routine namespace="Classes">ReadComponentResFile</routine> to read in its property settings. If Instance is nil (Delphi) or NULL (C++), the object class is read from the resource. Before passing an Instance parameter of nil (Delphi) or NULL (C++), all classes being read must have been registered using the RegisterClass or RegisterClasses routine.</para>
  14028.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  14029.                
  14030.                <routine namespace="Classes">ReadComponentResFile</routine> returns an instance of the component that was read from the resource file.</para>
  14031.          </comments>
  14032.       </member>
  14033.       <member name="M:Classes.WriteComponentResFile">
  14034.          <summary>
  14035.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes components and their properties to a file using a resource file format.</para>
  14036.          </summary>
  14037.          <comments>
  14038.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <routine namespace="Classes">WriteComponentResFile</routine> to save the component specified by the Instance parameter to the specified file, storing it in a resource-file format.</para>
  14039.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To read a component written with <routine namespace="Classes">WriteComponentResFile</routine>, call ReadComponentResFile.</para>
  14040.          </comments>
  14041.       </member>
  14042.       <member name="M:Classes.CollectionsEqual">
  14043.          <summary>
  14044.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Compares the contents of two collections.</para>
  14045.          </summary>
  14046.          <comments>
  14047.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">CollectionsEqual</routine> to determine whether two collections contain identical information. <routine namespace="Classes">CollectionsEqual</routine> returns true if all the items in each collection have the same settings, and the items appear in the same order. <routine namespace="Classes">CollectionsEqual</routine> returns false if the collections differ in number or order of items, or if any of the items in the collections differ.</para>
  14048.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">C1 and C2 are the collections to compare.</para>
  14049.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Owner1 and Owner2 are the Owners of the collections. Owner1 and Owner2 must be "root" components, such as forms or data modules. They are used for resolving name references in the properties of the collections.</para>
  14050.          </comments>
  14051.       </member>
  14052.       <member name="M:Classes.LineStart">
  14053.          <summary>
  14054.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Finds the end of the last whole line in a buffer. </para>
  14055.          </summary>
  14056.          <comments>
  14057.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <routine namespace="Classes">LineStart</routine> to find the start of the last partial line in the buffer. <routine namespace="Classes">LineStart</routine> starts at BufPos and scans backwards for a line-feed character (\n).  It returns a pointer to that character.  If no line-feed char is found, it returns the Buffer pointer.  Buffer should point to the beginning of a block of memory and BufPos to the end of the block you want to scan.</para>
  14058.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  14059.                
  14060.                <para>The undocumented TParser class uses <routine namespace="Classes">LineStart</routine> to locate line-endings in chunks of text read into a fixed-size buffer. When the last full line of text is parsed, the parser moves the last partial line of text from the end of the buffer to the front and fills the rest of the buffer with new data from disk.</para>
  14061.             
  14062.             </note>
  14063.          </comments>
  14064.       </member>
  14065.       <member name="M:Classes.ExtractStrings">
  14066.          <summary>
  14067.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Fills a string list with substrings parsed from a delimited list.</para>
  14068.          </summary>
  14069.          <comments>
  14070.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <routine namespace="Classes">ExtractStrings</routine> to fill a string list with the substrings of the null-terminated string specified by Content.</para>
  14071.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Separators is a set of characters that are used as delimiters, separating the substrings. Carriage returns, newline characters, and quote characters (single or double) are always treated as separators. Separators are ignored when inside a quoted string until the final end quote. (Note that quoted characters can appear in a quoted string if the quote character is doubled.)</para>
  14072.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">WhiteSpace is a set of characters to be ignored when parsing Content if they occur at the beginning of a string.</para>
  14073.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Content is the null-terminated string to parse into substrings.</para>
  14074.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Strings is a string list to which all substrings parsed from Content are added. The string list is not cleared by <routine namespace="Classes">ExtractStrings</routine>, so any strings already in the string list are preserved.</para>
  14075.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  14076.                
  14077.                <routine namespace="Classes">ExtractStrings</routine> returns the number of strings added to the Strings parameter.</para>
  14078.             <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  14079.                
  14080.                <para>
  14081.                   
  14082.                   <routine namespace="Classes">ExtractStrings</routine> does not add empty strings to the list.</para>
  14083.             
  14084.             </note>
  14085.          </comments>
  14086.       </member>
  14087.       <member name="M:Classes.CountGenerations">
  14088.          <summary>
  14089.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the number of intermediate classes between a derived class and its ancestor.</para>
  14090.          </summary>
  14091.          <comments>
  14092.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <routine namespace="Classes">CountGenerations</routine> to determine how close a derived class is to one of its ancestors. For example, if Ancestor and Descendant are the same class, <routine namespace="Classes">CountGenerations</routine> returns 0. If Descendant is derived directly from Ancestor, <routine namespace="Classes">CountGenerations</routine> returns 1.</para>
  14093.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Ancestor is the ancestor class.</para>
  14094.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Descendant is the descendant class. If it is not the same as Ancestor or does not derive from Ancestor, <routine namespace="Classes">CountGenerations</routine> returns ΓÇô1.</para>
  14095.             <tip xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  14096.                
  14097.                <para>To check that Descendant derives from Ancestor using Delphi, use the is operator to check that Descendant is Ancestor before calling <routine namespace="Classes">CountGenerations</routine>. In C++, use the static InheritsFrom method of Descendant.</para>
  14098.             
  14099.             </tip>
  14100.          </comments>
  14101.       </member>
  14102.       <member name="M:Classes.BinToHex">
  14103.          <summary>
  14104.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Converts a binary value into its hexadecimal representation.</para>
  14105.          </summary>
  14106.          <comments>
  14107.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes">BinToHex</routine> to convert the binary value in a buffer into a string that is its hexadecimal representation.</para>
  14108.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Buffer is a buffer of bytes that contains the binary value.</para>
  14109.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Text returns a null-terminated string that represents the value of Buffer as a hexadecimal number.</para>
  14110.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">BufSize is the size of Buffer. Text needs to point to a sequence of characters that has at least 2*BufSize bytes because each hexadecimal character represents two bytes.</para>
  14111.          </comments>
  14112.       </member>
  14113.       <member name="M:Classes.HexToBin">
  14114.          <summary>
  14115.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Converts a string of hexadecimal digits to the corresponding binary value.</para>
  14116.          </summary>
  14117.          <comments>
  14118.             <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="Classes