<class namespace="CheckLst">TCheckListBox</class> is similar to TListBox, except that each item has a check box next to it. Users can check or uncheck items in the list.</para>
<method namespace="CheckLst" class="TCheckListBox">Destroy</method>s the <method namespace="CheckLst" class="TCheckListBox">TCheckListBox</method> instance and frees its memory.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="CheckLst" class="TCheckListBox">Destroy</method> directly in an application. Call Free instead. Free verifies that the check list box is not nil before it calls <method namespace="CheckLst" class="TCheckListBox">Destroy</method>.</para>
</comments>
</member>
<member name="P:CheckLst.CheckLst.Checked">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates which items are checked.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For each member of the Items array, <property namespace="CheckLst" class="TCheckListBox">Checked</property> is true if a check mark appears in the item's check box. <property namespace="CheckLst" class="TCheckListBox">Checked</property> corresponds to the cb<property namespace="CheckLst" class="TCheckListBox">Checked</property> state; that is, <property namespace="CheckLst" class="TCheckListBox">Checked</property> is true when State = cb<property namespace="CheckLst" class="TCheckListBox">Checked</property> and false when State = cbUnchecked or State = cbGrayed.</para>
<para>Items that have been disabled using the ItemEnabled property may still have a state of cb<property namespace="CheckLst" class="TCheckListBox">Checked</property> and a <property namespace="CheckLst" class="TCheckListBox">Checked</property> property of true.</para>
</note>
</comments>
</member>
<member name="P:CheckLst.CheckLst.ItemEnabled">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Enables or disables individual items in the list.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="CheckLst" class="TCheckListBox">ItemEnabled</property> to enable or disable individual list items without using the cbGrayed state. Using <property namespace="CheckLst" class="TCheckListBox">ItemEnabled</property> allows the list box to display check marks for items with a state of cbChecked while still graying the item and preventing the user from changing its state.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For each member of the Items array, <property namespace="CheckLst" class="TCheckListBox">ItemEnabled</property> is true if the user can change the state of the item. Enabled items have a state of cbChecked or cbUnchecked. </para>
<property namespace="CheckLst" class="TCheckListBox">ItemEnabled</property> is false when State =cbGrayed or when the item has been explicitly disabled using this property.</para>
</comments>
</member>
<member name="P:CheckLst.CheckLst.State">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates which items are checked.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For each member of the Items array, <property namespace="CheckLst" class="TCheckListBox">State</property> indicates whether its check box is selected (cbChecked), deselected (cbUnchecked), or grayed (cbGrayed).</para>
<property namespace="CheckLst" class="TCheckListBox">State</property> combines the information provided by the Boolean Checked property and the Boolean ItemEnabled property:</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> When Checked is true, <property namespace="CheckLst" class="TCheckListBox">State</property> is cbChecked. (However, when Checked is false, <property namespace="CheckLst" class="TCheckListBox">State</property> may be either cbUnchecked or cbGrayed.)</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When <property namespace="CheckLst" class="TCheckListBox">State</property> is cbGrayed, ItemEnabled is false. (However, ItemEnabled may also be false when <property namespace="CheckLst" class="TCheckListBox">State</property> is cbUnchecked or cbChecked.)</para>
</comments>
</member>
<member name="P:CheckLst.CheckLst.Header">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates which items act as headers.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="CheckLst" class="TCheckListBox">Header</property> to true to specify that an item in the check listbox acts as a header rather than a selectable item. By setting <property namespace="CheckLst" class="TCheckListBox">Header</property> to true for various items in the list, you can divide the check listbox into multiple sections, where each header labels the beginning of a section.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When <property namespace="CheckLst" class="TCheckListBox">Header</property> is true for an item, the list box does not display a check box next to the item, but rather, it displays only the item's text. This item is drawn with a background color of <property namespace="CheckLst" class="TCheckListBox">Header</property>BackgroundColor and a font color of <property namespace="CheckLst" class="TCheckListBox">Header</property>Color, which can be used to make it visually distinct from the checkable items in the list box.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index is the index of the item.</para>
</comments>
</member>
<member name="P:CheckLst.CheckLst.AllowGrayed">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether check box can be in a "grayed" state.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="CheckLst" class="TCheckListBox">AllowGrayed</property> is set to true, each item has three possible states: checked, unchecked, and grayed. If <property namespace="CheckLst" class="TCheckListBox">AllowGrayed</property> is set to false, each item has only two possible states: checked and unchecked.</para>
<para>It is also possible to disable individual items while still showing whether they are checked or unchecked. To disable items without using the grayed state, use the ItemEnabled property.</para>
</note>
</comments>
</member>
<member name="P:CheckLst.CheckLst.Flat">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether the check boxes appear three-dimensional.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When <property namespace="CheckLst" class="TCheckListBox">Flat</property> is true (the default), the check boxes in the list box have flat borders. Setting <property namespace="CheckLst" class="TCheckListBox">Flat</property> to false gives the check boxes raised borders, which create a three-dimensional look.</para>
</comments>
</member>
<member name="P:CheckLst.CheckLst.HeaderColor">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the font color for a header item in the list box.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="CheckLst" class="TCheckListBox">HeaderColor</property> to indicate the font color of header items. Header items are items in the list box for which the Header property is true. <property namespace="CheckLst" class="TCheckListBox">HeaderColor</property> should be a color that provides contrast with the HeaderBackgroundColor property, which specifies the background color for header items.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the background color for a header item in the listbox.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="CheckLst" class="TCheckListBox">HeaderBackgroundColor</property> to indicate the color that appears as the background of header items. Header items are items in the list box for which the Header property is true. <property namespace="CheckLst" class="TCheckListBox">HeaderBackgroundColor</property> can make a header item visually more distinct from the checkable items in the list box.</para>
</comments>
</member>
<member name="E:CheckLst.CheckLst.OnClickCheck">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the user selects or deselects an item's check box.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="CheckLst" class="TCheckListBox">OnClickCheck</event> event handler to implement any special processing that should occur when the user checks or unchecks an item.</para>
<class namespace="Outline">OutlineError</class> is raised when an application cannot access a specified outline node. In most cases, this occurs because the index used is invalid.</para>
<class namespace="Outline">OutlineError</class> is raised internally to abort look-ups of outline components. Because it does not descend from Exception, it never appears at runtimeΓÇöeven if the debugger is set to break on exceptions. Thus it is a useful tool for aborting deep recursions.</para>
<class namespace="outline">EOutlineError</class> is raised when an error occurs as an application works with an outline component. For example, an <class namespace="outline">EOutlineError</class> exception occurs when an application</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Attempts to access an outline using an invalid node index.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Attempts to expand a node whose parent isn't expanded.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Attempts to load items from a file using an invalid file extension.</para>
<type namespace="OleAuto">TAttachMode</type> is used by methods that move outline nodes within an outline. It includes the following values:</condition>
<para>The item is attached as if added with the Add method. The moved item becomes the last sibling of the item specified by the Destination parameter, sharing the same parent as the Destination item.</para>
</td>
</tr>
<tr>
<td>
<para>oaAddChild</para>
</td>
<td>
<para>The item is attached as if added with the AddChild method. The moved item becomes the last child of the item specified by the Destination parameter. The Destination item becomes the parent of the moved item.</para>
</td>
</tr>
<tr>
<td>
<para>oaInsert</para>
</td>
<td>
<para>The item is attached as if inserted with the Insert method. The moved item replaces the Destination item in the outline, while the Destination item and all other following items are moved down one row.</para>
<class namespace="outline">TOutlineNode</class> represents a node in a TCustomOutline object. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="outline">TOutlineNode</class> to describe a node in a Win 3.1 outline. Each outline node appears as a line, or row, of the outline. An outline node can have from 0 to 16368 subnodes, which are subordinate to the parent node in the outline structure.</para>
</comments>
</member>
<member name="M:Outline.Outline.GetDisplayWidth">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the distance, in pixels, from the left edge of the outline to the right edge of the outline node.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="outline" class="TOutlineNode">GetDisplayWidth</method> to determine the length of the line in the outline that contains the outline node. <method namespace="outline" class="TOutlineNode">GetDisplayWidth</method> adjusts for the lines and bitmaps specified by the OutlineStyle property of the outline.</para>
</comments>
</member>
<member name="M:Outline.Outline.getFirstChild">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the Index value of the first subnode.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="outline" class="TOutlineNode">GetFirstChild</method> to locate the first subnode of a node when traversing the outline tree. If the node has no descendants, <method namespace="outline" class="TOutlineNode">GetFirstChild</method> returns -1.</para>
</comments>
</member>
<member name="M:Outline.Outline.GetLastChild">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the Index value of the last subnode.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="outline" class="TOutlineNode">GetLastChild</method> to locate the last subnode of a node. If the node has no descendants, <method namespace="outline" class="TOutlineNode">GetLastChild</method> returns -1.</para>
</comments>
</member>
<member name="M:Outline.Outline.GetNextChild">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the Index value of the next child of an outline node.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="outline" class="TOutlineNode">GetNextChild</method> to obtain the index of the next immediate descendant of a node, following the child node with the index given by the Value parameter. If the child node indicated by Value has no next sibling, or if the child node indicated by Value is not an immediate descendant of the outline node, <method namespace="outline" class="TOutlineNode">GetNextChild</method> returns -1.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index values reflect a depth-first traversal of the outline. Thus, the node returned by <method namespace="outline" class="TOutlineNode">GetNextChild</method> is not simply the node with an index of Value+1, unless the node with index Value has no descendants. <method namespace="outline" class="TOutlineNode">GetNextChild</method> allows a breadth-first traversal of the outline. </para>
</comments>
</member>
<member name="M:Outline.Outline.GetPrevChild">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the Index value of the previous child of an outline node.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="outline" class="TOutlineNode">GetPrevChild</method> to obtain the index of the previous immediate descendant of a node, preceding the child node with the index given by the Value parameter. If the child node indicated by Value has no prior sibling, or if the child node indicated by Value is not an immediate descendant of the outline node, <method namespace="outline" class="TOutlineNode">GetPrevChild</method> returns -1.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index values reflect a depth-first traversal of the outline. Thus, the previous sibling of the child node indicated by Value is not simply one less than Value, unless that previous sibling has no descendants. </para>
<method namespace="outline" class="TOutlineNode">Create</method>s a new <method namespace="outline" class="TOutlineNode">TOutlineNode</method> object.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call the constructor for <method namespace="outline" class="TOutlineNode">TOutlineNode</method> directly. Instead, use one of the methods of the outline component in which the node should appear. These methods are as follows:</para>
<para>Creates the node as the last sibling of a specified node.</para>
</td>
</tr>
<tr>
<td>
<para>AddObject</para>
</td>
<td>
<para>Same as Add, but also initializing the node's Data property.</para>
</td>
</tr>
<tr>
<td>
<para>AddChild</para>
</td>
<td>
<para>Creates the node as the last child of a specified node.</para>
</td>
</tr>
<tr>
<td>
<para>AddChildObject</para>
</td>
<td>
<para>Same as AddChild, but also initializing the node's Data property.</para>
</td>
</tr>
<tr>
<td>
<para>Insert</para>
</td>
<td>
<para>Creates the node in the current position of an existing node.</para>
</td>
</tr>
<tr>
<td>
<para>InsertObject</para>
</td>
<td>
<para>Same as Insert, but also initializing the node's Data property.</para>
</td>
</tr>
</table>
</comments>
</member>
<member name="M:Outline.Outline.ChangeLevelBy">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Changes the level of an outline node.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="outline" class="TOutlineNode">ChangeLevelBy</method> to move a node up or down a branch in the outline. Specify a Value parameter value of -1 to move up (toward the root) one level. Specify a Value parameter value of 1 to move down (away from the root) one level.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When moving up one level, an item becomes the next sibling of its former parent. When moving down one level, an item becomes the last child of its former prior sibling. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Nodes at the first level can not be moved up, as they have no parent. The first node in the outline can not be moved down either, as it has no prior sibling.</para>
<para>Before calling <method namespace="outline" class="TOutlineNode">ChangeLevelBy</method>, be sure that the node has the appropriate number of parents or that the appropriate prior siblings exist.</para>
<method namespace="outline" class="TOutlineNode">Collapse</method> sets the Expanded property to false. When an outline node is collapsed, its descendants are hidden and, depending on the OutlineStyle property of the outline in which the node is contained, the plus picture or closed picture is displayed.</para>
<method namespace="outline" class="TOutlineNode">Expand</method> sets the <method namespace="outline" class="TOutlineNode">Expand</method>ed property to true. When an outline node is expanded, its descendants are displayed and, depending on the OutlineStyle property of the outline in which the node is contained, the minus picture or open picture is displayed.</para>
<method namespace="outline" class="TOutlineNode">Expand</method> only ensures that the immediate children of a node are visible. To expand all descendants of a node, use the Full<method namespace="outline" class="TOutlineNode">Expand</method> method.</para>
</note>
</comments>
</member>
<member name="M:Outline.Outline.FullExpand">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Expands an outline node and all its descendants.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="outline" class="TOutlineNode">FullExpand</method> to expand all the nodes in the subtree of the outline rooted at the outline node. <method namespace="outline" class="TOutlineNode">FullExpand</method> sets the Expanded property of the node and all its descendants to true.</para>
</comments>
</member>
<member name="M:Outline.Outline.MoveTo">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Moves an outline node from one location within the outline to another. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="outline" class="TOutlineNode">MoveTo</method> to reposition the node to the position indicated by the Destination parameter. Destination is the Index value of another outline node. The AttachMode parameter specifies how to attach the moved node to the destination position.</para>
<para>To change only the level of a node, use the ChangeLevelBy method.</para>
</note>
</comments>
</member>
<member name="M:Outline.Outline.Destroy">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Frees the memory associated with the <method namespace="outline" class="TOutlineNode">TOutlineNode</method> object. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="outline" class="TOutlineNode">Destroy</method> directly. The preferred method of deleting nodes is to use the Delete method of the containing outline component.</para>
</comments>
</member>
<member name="P:Outline.Outline.Parent">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Identifies the immediate ancestor of the node.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="outline" class="TOutlineNode">Parent</property> to find the parent of an outline node. A parent node is one level higher and contains the child node as a subnode.</para>
</comments>
</member>
<member name="P:Outline.Outline.Expanded">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether descendants of the outline node are displayed.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="outline" class="TOutlineNode">Expanded</property> to true to display all subnodes of a node. When an outline node is expanded, its descendants are displayed and, depending on the OutlineStyle property of the outline in which the node is contained, the minus picture or open picture is displayed.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="outline" class="TOutlineNode">Expanded</property> to false to collapse the node. When an outline node is collapsed, its descendants are hidden and, depending on the OutlineStyle property of the outline in which the node is contained, the plus picture or closed picture is displayed.</para>
<property namespace="outline" class="TOutlineNode">Expanded</property> is not meaningful for nodes that have no descendants.</para>
</comments>
</member>
<member name="P:Outline.Outline.Text">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the string that identifies the outline node.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="outline" class="TOutlineNode">Text</property> to determine the string that is displayed in the outline to represent the node. </para>
</comments>
</member>
<member name="P:Outline.Outline.Data">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Points to application-specific data associated with the node.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="outline" class="TOutlineNode">Data</property> to associate an arbitrary value with a node in an outline. For example, if the outline represents the table of contents to an electronic document, <property namespace="outline" class="TOutlineNode">Data</property> could point to an object that provides jump information for accessing the section of the document named by the node.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <property namespace="outline" class="TOutlineNode">Data</property> property is usually described by the Text property, which is displayed in the rendered image of the node.</para>
</comments>
</member>
<member name="P:Outline.Outline.Index">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Identifies the node in the Items array maintained by the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="outline" class="TOutlineNode">Index</property> to determine the row of the outline where the node appears. The first node has an <property namespace="outline" class="TOutlineNode">Index</property> value of 1, and subsequent nodes are indexed sequentially. If a node has subnodes, the <property namespace="outline" class="TOutlineNode">Index</property> value of the parent node is one less than the <property namespace="outline" class="TOutlineNode">Index</property> value of its first descendant.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When nodes in the outline are added, moved, or deleted, the values of the <property namespace="outline" class="TOutlineNode">Index</property> properties of all subsequent nodes must be recalculated to be valid. Sometimes, the recalculation of indexes is deferred until all changes to the nodes are complete. To ensure that the value of <property namespace="outline" class="TOutlineNode">Index</property> is valid, call the SetUpdateState method of the outline that contains the node.</para>
</comments>
</member>
<member name="P:Outline.Outline.Level">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the level of indentation of a node within the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of <property namespace="outline" class="TOutlineNode">Level</property> is 1 for nodes that directly descend from the root of the outline (the top level). The value of <property namespace="outline" class="TOutlineNode">Level</property> is 2 for their children, and so on.</para>
</comments>
</member>
<member name="P:Outline.Outline.HasItems">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the outline node has any subnodes. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read HasItem to determine whether the outline node is a leaf node. Depending on the OutlineStyle property of the outline that contains the node, leaf nodes may appear with the leaf bitmap. If the node is not a leaf, subnodes appear below and indented from the node when it is expanded.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">HasItem returns true if the node has any descendants, even if the node is collapsed and the descendants are not visible. HasItem returns false if the node is a leaf node.</para>
</comments>
</member>
<member name="P:Outline.Outline.IsVisible">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the outline node is visible in the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="outline" class="TOutlineNode">IsVisible</property> to determine whether the node is part of the current image of the outline. A node is visible if it is on level 1 or if all its parents are expanded. </para>
<para>Do not confuse <property namespace="outline" class="TOutlineNode">IsVisible</property> with the Visible property of TControl objects. Outline nodes are not controls, but merely helper objects that describe nodes for an outline control. <property namespace="outline" class="TOutlineNode">IsVisible</property> indicates whether a node is visible because its parents are expanded or collapsed. It does not provide information about whether the node has been scrolled out of view, or even if the outline is not visible.</para>
</note>
</comments>
</member>
<member name="P:Outline.Outline.TopItem">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates which outline node is the topmost ancestor of a node.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="outline" class="TOutlineNode">TopItem</property> to determine the first node in the branch of the outline tree that contains the outline node. The <property namespace="outline" class="TOutlineNode">TopItem</property> property specifies the Index value of the level 1 ancestor of the outline node. For a node on level 1, <property namespace="outline" class="TOutlineNode">TopItem</property> has the same value as the Index property.</para>
</comments>
</member>
<member name="P:Outline.Outline.FullPath">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Describes an outline node, using its text and the text of all ancestor nodes in the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="outline" class="TOutlineNode">FullPath</property> to obtain a description of the entire branch of the outline leading to the outline node. <property namespace="outline" class="TOutlineNode">FullPath</property> consists of the values of the Text properties of all outline items, starting with the text of the node at the first level and traversing the outline down to the outline node. The string specified as the ItemSeparator property of the outline separates the text for each node in the path.</para>
<para>In addition to the text, each node displays plus picture (when it can be expanded) or minus picture (when it can be collapsed).</para>
</td>
</tr>
<tr>
<td>
<para>osPictureText</para>
</td>
<td>
<para>In addition to the text, each node displays the open picture (when it is expanded), closed picture (when it is collapsed), or leaf picture (when it has no subnodes).</para>
</td>
</tr>
<tr>
<td>
<para>osPlusMinusPictureText</para>
</td>
<td>
<para>In addition to the text, each node displays the plus picture or minus picture (as in osPlusMinusText), and the open, closed or leaf picture (as in osPictureText).</para>
</td>
</tr>
<tr>
<td>
<para>osTreeText</para>
</td>
<td>
<para>Visible lines connect the outline nodes.</para>
</td>
</tr>
<tr>
<td>
<para>osTreePictureText</para>
</td>
<td>
<para>In addition to the text, each node displays the open picture (when it is expanded), closed picture (when it is collapsed), or leaf picture (when it has no subnodes). Visible lines connect the outline nodes.</para>
<type namespace="OleAuto">TOutlineOption</type>s is a set of <type namespace="OleAuto">TOutlineOption</type> values. Together they influence the way an outline is drawn. Each <type namespace="OleAuto">TOutlineOption</type> value is described below:</condition>
<para>The first item (Index value of 1) is connected to the root item by the outline tree. This means that the tree will extend from the top of the outline to all the first level items. Without ooDrawTreeRoot, all first level items appear leftmost in the outline, not connected by the tree.</para>
</td>
</tr>
<tr>
<td>
<para>ooDrawFocusRect</para>
</td>
<td>
<para>The outline draws a focus rectangle around the selected item.</para>
</td>
</tr>
<tr>
<td>
<para>ooStretchBitmaps</para>
</td>
<td>
<para>The outline stretches the standard bitmaps (PictureLeaf, PictureOpen, PictureClosed, PicturePlus, PictureMinus) to fit in the size of the item, determined by the size of the Font of the Text. Without ooStretchBitmaps, the bitmaps will be cropped if larger than the height of the item text, or won't fill up the entire item space if smaller than the text.</para>
<class namespace="Outline">TCustomOutline</class> is the base class for controls that display outline nodes (TOutlineNode objects).</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="Outline">TCustomOutline</class> as a base class when defining a control that displays outline nodes in a two-dimensional layout. <class namespace="Outline">TCustomOutline</class> introduces the ability to manage a hierarchy of outline nodes, including the ability to control the appearance and layout of those nodes and to expand or collapse branches of the outline tree.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not create instances of <class namespace="Outline">TCustomOutline</class>. To add an outline control to a form, use the TOutline object, which publishes many of the properties, events, and methods of <class namespace="Outline">TCustomOutline</class>, or TTreeView, which wraps the Windows control that performs the same function.</para>
</comments>
</member>
<member name="M:Outline.Outline.SetGoodIndex">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the first node in the Items array that must be reindexed to make the index of the Value parameter correct.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">SetGoodIndex</method> to determine how much of the Items array must be reindexed after changing the nodes in the outline. All nodes from the root to the value returned by <method namespace="Outline" class="TCustomOutline">SetGoodIndex</method> do not need to be reindexed.</para>
</comments>
</member>
<member name="M:Outline.Outline.BadIndex">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether a node's index is up to date.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Outline" class="TCustomOutline">BadIndex</method> to determine whether the Index property of the TOutlineNode object specified by the Value parameter accurately reflects the position of the node in the outline. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If nodes are added or removed after a call to BeginUpdate, the indexes may be out of date until the EndUpdate method is called.</para>
<method namespace="Outline" class="TCustomOutline">Add</method>s a node to the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Outline" class="TCustomOutline">Add</method> to add a TOutlineNode object to the outline. Text specifies the Text property value of the new node.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index specifies where to add the new node. The new node is positioned in the outline as the last sibling of the node identified by Index. To add nodes to the beginning of the outline, specify zero (0) as the Index parameter.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Nodes that appear after the new node are moved down one row and reindexed in the Items property array with valid Index values. If BeginUpdate has been called, the Items array is not reindexed until the EndUpdate method is called.</para>
<method namespace="Outline" class="TCustomOutline">Add</method> returns the Index property of the new node.</para>
</comments>
</member>
<member name="M:Outline.Outline.AddChild">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Adds a child node to a node in the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Outline" class="TCustomOutline">AddChild</method> to add a TOutlineNode object as the child of a node in the outline. Text specifies the Text property value of the new node.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index specifies where to add the new node. The new node is positioned in the outline as the last child of the node identified by Index. To add nodes to the top level of the outline (off the root), specify zero (0) as the Index parameter.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Nodes that appear after the new node are moved down one row and reindexed in the Items property array with valid Index values. If BeginUpdate has been called, the Items array is not reindexed until the EndUpdate method is called.</para>
<method namespace="Outline" class="TCustomOutline">AddChild</method> returns the Index property of the new node.</para>
</comments>
</member>
<member name="M:Outline.Outline.AddChildObject">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Adds a child node containing data to a node in the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Outline" class="TCustomOutline">AddChildObject</method> to add a TOutlineNode object as the child of a node in the outline and assign it a data pointer. Text specifies the value of the Text property for the new node. Data specifies the value of the Data property for the new node.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index specifies where to add the new node. The new node is positioned in the outline as the last child of the node identified by Index. To add nodes to the top level of the outline (off the root), specify zero (0) as the Index parameter.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Nodes that appear after the new node are moved down one row and reindexed in the Items property array with valid Index values. If BeginUpdate has been called, the Items array is not reindexed until the EndUpdate method is called.</para>
<method namespace="Outline" class="TCustomOutline">AddChildObject</method> returns the Index property of the new node.</para>
</comments>
</member>
<member name="M:Outline.Outline.AddObject">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Adds a node containing data to the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Outline" class="TCustomOutline">AddObject</method> to add a TOutlineNode object to the outline and assign it a data pointer. Text specifies the value of the Text property for the new node. Data specifies the value of the Data property for the new node.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index specifies where to add the new node. The new node is positioned in the outline as the last sibling of the node identified by Index. To add nodes to the beginning of the outline, specify zero (0) as the Index parameter.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Nodes that appear after the new node are moved down one row and reindexed in the Items property array with valid Index values. If BeginUpdate has been called, the Items array is not reindexed until the EndUpdate method is called.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AddChild returns the Index property of the new node.</para>
<method namespace="Outline" class="TCustomOutline">Insert</method>s a node at a specified position.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Outline" class="TCustomOutline">Insert</method> to add a TOutlineNode object to the outline. Text specifies the Text property value of the new node.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index specifies where to add the new node. The new node is positioned in the outline in the position currently occupied by the node identified by Index. The new node is inserted at the same level as the node currently identified by Index, so that the original node and the new node are siblings and share the same parent. To add nodes to the beginning of the outline, specify zero (0) as the Index parameter.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Nodes that appear after the new node, including the one specified by Index before <method namespace="Outline" class="TCustomOutline">Insert</method> is called, are moved down one row and reindexed in the Items property array with valid Index values. If BeginUpdate has been called, the Items array is not reindexed until the EndUpdate method is called.</para>
<method namespace="Outline" class="TCustomOutline">Insert</method> returns the Index property of the new node.</para>
</comments>
</member>
<member name="M:Outline.Outline.InsertObject">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Inserts a node containing data at a specified position.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="Outline" class="TCustomOutline">InsertObject</method> to add a TOutlineNode object to the outline and assign it a data pointer. Text specifies the value of the Text property for the new node. Data specifies the value of the Data property for the new node.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index specifies where to add the new node. The new node is positioned in the outline in the position currently occupied by the node identified by Index. The new node is inserted at the same level as the node currently identified by Index, so that the original node and the new node are siblings and share the same parent. To add nodes to the beginning of the outline, specify zero (0) as the Index parameter.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Nodes that appear after the new node, including the one specified by Index before Insert is called, are moved down one row and reindexed in the Items property array with valid Index values. If BeginUpdate has been called, the Items array is not reindexed until the EndUpdate method is called.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Insert returns the Index property of the new node.</para>
</comments>
</member>
<member name="M:Outline.Outline.GetDataItem">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the index of the first node in the outline that has the Value pointer as its Data property.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">GetDataItem</method> to locate the node that corresponds to the Value parameter. <method namespace="Outline" class="TCustomOutline">GetDataItem</method> returns an index into the Items property array.</para>
</comments>
</member>
<member name="M:Outline.Outline.GetItem">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the index of the node at the position indicated by the X and Y parameters.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">GetItem</method> to locate the node at the specified screen pixel coordinates. <method namespace="Outline" class="TCustomOutline">GetItem</method> returns an index into the Items property array.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the length of the row containing a specified node.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">GetNodeDisplayWidth</method> to determine the length, in pixels, of the line in the outline that contains the node specified by the Node parameter. <method namespace="Outline" class="TCustomOutline">GetNodeDisplayWidth</method> adjusts for the lines and bitmaps specified by the OutlineStyle property.</para>
</comments>
</member>
<member name="M:Outline.Outline.GetTextItem">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the index of the first node in the outline with the Value parameter as its Text property.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">GetTextItem</method> to locate the node that corresponds to the Value parameter. <method namespace="Outline" class="TCustomOutline">GetTextItem</method> returns an index into the Items property array.</para>
</comments>
</member>
<member name="M:Outline.Outline.GetVisibleNode">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the TOutlineNode object for the node indicated by a position in the image of the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">GetVisibleNode</method> to locate a node with the position given by the Index parameter, where all nodes that are hidden because their parent node is collapsed are ignored. An Index of 0 indicates the first visible node, an Index of 1 indicates the second visible node, and so on. If the outline is fully expanded, <method namespace="Outline" class="TCustomOutline">GetVisibleNode</method> returns the value of Items[Index+1].</para>
<method namespace="Outline" class="TCustomOutline">Create</method>s an instance of <method namespace="Outline" class="TCustomOutline">TCustomOutline</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">Create</method> to instantiate a <method namespace="Outline" class="TCustomOutline">TCustomOutline</method> object at runtime. Outlines placed on forms at design time are created automatically.</para>
<method namespace="Outline" class="TCustomOutline">Create</method> initializes the outline object, setting the values of some internal properties, as well as setting</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Color to clWindow and ParentColor to false.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Height to 97 and Width to 121.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">ItemSeparator to '\'.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Options to [ooDrawTreeRoot, ooDrawFocusRect].</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">OutlineStyle to osTreePictureText.</para>
</comments>
</member>
<member name="M:Outline.Outline.Loaded">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets up the outline after it has been streamed in.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The streaming system calls <method namespace="Outline" class="TCustomOutline">Loaded</method> after the outline has been fully loaded into memory. <method namespace="Outline" class="TCustomOutline">Loaded</method> makes sure that all indexes are correct, loads any custom bitmaps that replaced the default values, and selects the first node in the outline.</para>
</comments>
</member>
<member name="M:Outline.Outline.Click">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Updates the SelectedItem property.</para>
<method namespace="Outline" class="TCustomOutline">Click</method> is called automatically when the user clicks the mouse on a node in the outline. <method namespace="Outline" class="TCustomOutline">Click</method> updates the SelectedItem property before the On<method namespace="Outline" class="TCustomOutline">Click</method> event handler is called by the inherited method.</para>
</comments>
</member>
<member name="M:Outline.Outline.KeyDown">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides special processing when the user presses a key.</para>
<method namespace="Outline" class="TCustomOutline">KeyDown</method> is called automatically when the user presses a key. After calling the inherited method, which generates an On<method namespace="Outline" class="TCustomOutline">KeyDown</method> event, <method namespace="Outline" class="TCustomOutline">KeyDown</method> processes the following keystrokes:</para>
<method namespace="Outline" class="TCustomOutline">KeyPress</method> is called automatically after the user presses a key but before it is released. After calling the inherited method, which generates an On<method namespace="Outline" class="TCustomOutline">KeyPress</method> event, <method namespace="Outline" class="TCustomOutline">KeyPress</method> processes the following characters :</para>
<method namespace="Outline" class="TCustomOutline">DrawCell</method> is called automatically whenever the outline needs to draw a node. If the Style property is otOwnerDraw and an OnDrawItem event handler has been supplied, <method namespace="Outline" class="TCustomOutline">DrawCell</method> generates an OnDrawItem event. Otherwise, <method namespace="Outline" class="TCustomOutline">DrawCell</method> draws the node in the manner indicated by the OutlineStyle property.</para>
</comments>
</member>
<member name="M:Outline.Outline.DblClick">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Expands or collapses the selected node.</para>
<method namespace="Outline" class="TCustomOutline">DblClick</method> is called automatically when the user double clicks the mouse on a node in the outline. After calling the On<method namespace="Outline" class="TCustomOutline">DblClick</method> event handler, <method namespace="Outline" class="TCustomOutline">DblClick</method> updates the SelectedItem property and expands the selected node if it is collapsed or collapses the selected node if it is expanded.</para>
</comments>
</member>
<member name="M:Outline.Outline.SetLevel">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the level of an outline node.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">SetLevel</method> to change the nesting depth of the node specified by the Node parameter. CurLevel is the node's current level and NewLevel is the node's new level.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For example, consider the outline specified by the following value of Lines:</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Calling <method namespace="Outline" class="TCustomOutline">SetLevel</method> for NodeD with CurLevel set to 2 and NewLevel set to 4 results in the outline with the following value of Lines:</para>
<method namespace="Outline" class="TCustomOutline">DeleteNode</method> is called automatically whenever a node in the outline is destroyed. It fixes up the index and makes sure that the SelectedItem property is valid. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To Delete a node from the outline, call the Delete method of the outline or free the TOulineNode object.</para>
</comments>
</member>
<member name="M:Outline.Outline.Expand">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an On<method namespace="Outline" class="TCustomOutline">Expand</method> event.</para>
<method namespace="Outline" class="TCustomOutline">Expand</method> is called automatically after a node in the outline is expanded. It calls the On<method namespace="Outline" class="TCustomOutline">Expand</method> event handler if it is assigned.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Override the <method namespace="Outline" class="TCustomOutline">Expand</method> method to provide additional processing after nodes in the outline have been expanded, or to block the On<method namespace="Outline" class="TCustomOutline">Expand</method> event.</para>
</comments>
</member>
<member name="M:Outline.Outline.Collapse">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an On<method namespace="Outline" class="TCustomOutline">Collapse</method> event.</para>
<method namespace="Outline" class="TCustomOutline">Collapse</method> is called automatically after a node in the outline is collapsed. It calls the On<method namespace="Outline" class="TCustomOutline">Collapse</method> event handler if it is assigned.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Override the <method namespace="Outline" class="TCustomOutline">Collapse</method> method to provide additional processing after nodes in the outline have been collapsed, or to block the On<method namespace="Outline" class="TCustomOutline">Collapse</method> event.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Creates a binary property for customized bitmap values.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The streaming system calls <method namespace="Outline" class="TCustomOutline">DefineProperties</method> to allow the outline to define new properties that should be saved with the outline object. <method namespace="Outline" class="TCustomOutline">DefineProperties</method> checks whether the outline uses any bitmaps other than the default values of PictureClosed, PictureLeaf, PictureMinus, PictureOpen, and PicturePlus. If the outline has customized any of these bitmaps, <method namespace="Outline" class="TCustomOutline">DefineProperties</method> uses the DefineBinaryProperty method of the Filer parameter to create a binary property for the customized values.</para>
</comments>
</member>
<member name="M:Outline.Outline.MouseDown">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Updates the SelectedItem property.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After calling the inherited method to generate an On<method namespace="Outline" class="TCustomOutline">MouseDown</method> event and locate the line under the mouse, <method namespace="Outline" class="TCustomOutline">MouseDown</method> sets the SelectedItem property to the node in the line under the mouse.</para>
</comments>
</member>
<member name="M:Outline.Outline.Move">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Repositions a node in the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">Move</method> to reposition the node with the index specified by the Source parameter to the position indicated by the Destination parameter. The meaning of the Destination parameter depends on the value of the AttachMode parameter.</para>
</comments>
</member>
<member name="M:Outline.Outline.SetDisplayWidth">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the display width of the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">SetDisplayWidth</method> to set the width of the image of the outline to the number of pixels specified by the Value parameter. Value should large enough to display the most deeply nested node. Use the GetNodeDisplayWidth method to determine the size needed to display the visible nodes.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the display width is greater than the client width of the control, users can scroll the image to view the entire width.</para>
<method namespace="Outline" class="TCustomOutline">Delete</method>s a node from the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">Delete</method> to remove a node and all its descendants from the outline. Index is the index of the node to delete.</para>
<method namespace="Outline" class="TCustomOutline">Delete</method> removes the node and its children, frees all associated memory, and then calls <method namespace="Outline" class="TCustomOutline">Delete</method>Node to update the indexes and make sure that SelectedItem is valid.</para>
</comments>
</member>
<member name="M:Outline.Outline.FullExpand">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Expands every node in the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">FullExpand</method> to show all nodes in the outline. <method namespace="Outline" class="TCustomOutline">FullExpand</method> calls the <method namespace="Outline" class="TCustomOutline">FullExpand</method> method of the root node. This causes the Expanded property of all nodes in the outline to be set to true. Every node in the Items array appears fully expanded in the outline. Depending on the value of OutlineStyle, each node that has descendants is then represented with the PictureOpen bitmap and/or the PictureMinus bitmap. The appearance of leaf nodes is unaffected.</para>
</comments>
</member>
<member name="M:Outline.Outline.FullCollapse">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Causes all top-level nodes in the outline to collapse.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">FullCollapse</method> to shrink the outline as much as possible. <method namespace="Outline" class="TCustomOutline">FullCollapse</method> sets the Expanded property of each TOutlineNode that is a direct descendant of the root of the outline to false. This causes all the descendants of these top-level nodes to be hidden. Depending on the value of OutlineStyle, each collapsed top-level node is then represented with the PictureClosed bitmap and/or the PicturePlus bitmap.</para>
</comments>
</member>
<member name="M:Outline.Outline.LoadFromFile">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Loads the outline from a text image stored in a file.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">LoadFromFile</method> to fill an outline from the file specified by the FileName parameter. Each line in the file represents a node in the outline. The file does not include the root node.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Leading tabs and spaces are converted into levels of the outline. Text without any leading tabs or spaces becomes level 1 items. For example, the following set of strings represents an outline with three first level children descended from the root, and an additional, second level child on the first and third nodes:</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To fill the outline from a text image read from a stream, use the LoadFromStream method. To fill the outline from a text image represented as a TStrings object, use the Lines property.</para>
</comments>
</member>
<member name="M:Outline.Outline.LoadFromStream">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Loads the outline from a text image read from a stream.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">LoadFromStream</method> to fill an outline from the stream specified by the Stream parameter. For example, use <method namespace="Outline" class="TCustomOutline">LoadFromStream</method> to load an outline from an image stored in a database table, using a TBlobStream object. Each node in the outline is separated by a newline character. The stream does not provide the root node.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Leading tabs and spaces are converted into levels of the outline. Text without any leading tabs or spaces becomes level 1 items. For example, the following set of strings represents an outline with three first level children descended from the root, and an additional, second level child on the first and third nodes:</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To fill the outline from a text image read from a file, use the LoadFromFile method. To fill the outline from a text image represented as a TStrings object, use the Lines property.</para>
</comments>
</member>
<member name="M:Outline.Outline.SaveToFile">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Saves the Lines property to a file.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">SaveToFile</method> to save a text image of the outline to the file specified by the FileName parameter. The image saved is the value of the Lines property, where each line of the file represents a node, and each level of the outline is represented by a tab character.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To write the outline to an arbitrary stream, use the SaveToStream method.</para>
</comments>
</member>
<member name="M:Outline.Outline.SaveToStream">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Writes the Lines property to a stream.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">SaveToStream</method> to write a text image of the outline to the stream specified by the Stream parameter. The image saved is the value of the Lines property, where each line of text represents a node, and each level of the outline is represented by a tab character.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To write the outline to a file, use the SaveToFile method.</para>
</comments>
</member>
<member name="M:Outline.Outline.BeginUpdate">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Prevents the updating of the outline until the EndUpdate method is called.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">BeginUpdate</method> before adding, removing, or moving multiple outline items. <method namespace="Outline" class="TCustomOutline">BeginUpdate</method> speeds processing time by deferring repaints and the adjustment of index values until EndUpdate is called. </para>
<para>Make sure that EndUpdate is called after all changes have been made to the nodes in the Items array.</para>
</note>
</comments>
</member>
<member name="M:Outline.Outline.EndUpdate">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Performs the reindexing and repaints deferred by a call to BeginUpdate.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">EndUpdate</method> at the end of a segment of code that began with a call to BeginUpdate. Every time BeginUpdate is called, an internal counter is incremented. When <method namespace="Outline" class="TCustomOutline">EndUpdate</method> is called, the counter is decremented. When every call to BeginUpdate has been matched by a call to <method namespace="Outline" class="TCustomOutline">EndUpdate</method>, <method namespace="Outline" class="TCustomOutline">EndUpdate</method> fixes up the indexes and repaints the outline.</para>
</comments>
</member>
<member name="M:Outline.Outline.SetUpdateState">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Enables or disables the maintenance of the node indexes.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">SetUpdateState</method> with Value set to true to block the recomputation of indexes. Call <method namespace="Outline" class="TCustomOutline">SetUpdateState</method> with Value set to false to recompute all indexes in the outline and enable the maintenance of indexes with every change to the nodes in the outline. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Unlike calls to BeginUpdate and EndUpdate, calls to <method namespace="Outline" class="TCustomOutline">SetUpdateState</method> do not nest: Calling <method namespace="Outline" class="TCustomOutline">SetUpdateState</method> with Value set to false always recomputes the indexes regardless of the number of previous calls to <method namespace="Outline" class="TCustomOutline">SetUpdateState</method> with Value set to true.</para>
<para>Calling <method namespace="Outline" class="TCustomOutline">SetUpdateState</method> takes precedence over any enabling or disabling of index maintenance provided by BeginUpdate or EndUpdate.</para>
</note>
</comments>
</member>
<member name="M:Outline.Outline.Clear">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Removes all items from the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="Outline" class="TCustomOutline">Clear</method> to empty the outline of all its nodes. <method namespace="Outline" class="TCustomOutline">Clear</method> frees the memory for the removed items but not any memory for associated data.</para>
<method namespace="Outline" class="TCustomOutline">Destroy</method>s an instance of <method namespace="Outline" class="TCustomOutline">TCustomOutline</method>. </para>
<method namespace="Outline" class="TCustomOutline">Destroy</method> frees all memory associated with the outline. While the destructor frees the TOutlineNode objects that comprise the outline, any objects associated with those nodes are not freed.</para>
</comments>
</member>
<member name="P:Outline.Outline.Lines">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Lists the Text property values of all nodes in the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="Outline" class="TCustomOutline">Lines</property> to obtain a text representation of the outline. Set <property namespace="Outline" class="TCustomOutline">Lines</property> to fill the outline from a set of text strings. Each string in the <property namespace="Outline" class="TCustomOutline">Lines</property> property represents a node in the outline. <property namespace="Outline" class="TCustomOutline">Lines</property> does not include the root node.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Leading tabs and spaces are converted into levels of the outline. Text without any leading tabs or spaces becomes level 1 items. For example, the following set of strings represents an outline with three first level children descended from the root, and an additional, second level child on the first and third nodes:</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <property namespace="Outline" class="TCustomOutline">Lines</property> property is primarily useful for filling an outline with items at design time. While <property namespace="Outline" class="TCustomOutline">Lines</property> can be used to access the individual nodes at run time, it is much quicker to access an item with the Items property.</para>
</comments>
</member>
<member name="P:Outline.Outline.OutlineStyle">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies how the outline tree is displayed.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Outline" class="TCustomOutline">OutlineStyle</property> to one of the following values:</para>
<para>Displays node text (specified in Text) only.</para>
</td>
</tr>
<tr>
<td>
<para>osPlusMinusText</para>
</td>
<td>
<para>Displays plus picture (specified in PicturePlus), minus picture (specified in PictureMinus), and node text (specified in Text).</para>
</td>
</tr>
<tr>
<td>
<para>osPictureText</para>
</td>
<td>
<para>Displays open picture (specified in PictureOpen), closed picture (specified in PictureClosed), leaf picture (specified in PictureLeaf) and node text (specified in Text).</para>
</td>
</tr>
<tr>
<td>
<para>osPlusMinusPictureText</para>
</td>
<td>
<para>Displays plus picture (specified in PicturePlus), minus picture (specified in PictureMinus), open picture (specified in PictureOpen), closed picture (specified in PictureClosed), leaf picture (specified in PictureLeaf), and node text (specified in Text).</para>
</td>
</tr>
<tr>
<td>
<para>osTreeText</para>
</td>
<td>
<para>Displays lines connecting outline nodes and node text (specified in Text).</para>
</td>
</tr>
<tr>
<td>
<para>osTreePictureText</para>
</td>
<td>
<para>Displays lines connecting outline nodes, open picture (specified in PictureOpen), closed picture (specified in PictureClosed), leaf picture (specified in PictureLeaf), and node text (specified in Text).</para>
<para>If the Style property is otOwnerDraw, the value of <property namespace="Outline" class="TCustomOutline">OutlineStyle</property> is ignored. The connecting lines, node bitmaps, and node text must all be drawn in an OnDrawItem event handler.</para>
</note>
</comments>
</member>
<member name="P:Outline.Outline.Options">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines how the nodes in the outline are drawn.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Outline" class="TCustomOutline">Options</property> to any combination of the following values:</para>
<para>The first item (Index value of 1) is connected to the root item by the outline tree. This means that the tree will extend from the top of the outline to all the first level items. Without ooDrawTreeRoot, all first level items appear leftmost in the outline, not connected by the tree.</para>
</td>
</tr>
<tr>
<td>
<para>ooDrawFocusRect</para>
</td>
<td>
<para>The outline draws a focus rectangle around the selected item.</para>
</td>
</tr>
<tr>
<td>
<para>ooStretchBitmaps</para>
</td>
<td>
<para>The outline stretches the standard bitmaps (PictureLeaf, PictureOpen, PictureClosed, PicturePlus, PictureMinus) to fit in the size of the item, determined by the size of the Font of the Text. Without ooStretchBitmaps, the bitmaps will be cropped if larger than the height of the item text, or won't fill up the entire item space if smaller than the text.</para>
</td>
</tr>
</table>
</comments>
</member>
<member name="P:Outline.Outline.Style">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether the nodes and tree are drawn automatically.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, <property namespace="Outline" class="TCustomOutline">Style</property> is osStandard, meaning that the outline displays items in the style determined by the Outline<property namespace="Outline" class="TCustomOutline">Style</property> property. Set <property namespace="Outline" class="TCustomOutline">Style</property> to otOwnerDraw to create owner-draw outlines, meaning that items must be drawn on the canvas of the outline by code in an OnDrawItem event handler. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Owner-draw outlines can display items other than the Text of a node and the standard bitmaps specified in the PictureClosed, PictureOpen, PictureMinus, PicturePlus, and PictureLeaf properties. Owner-draw outlines require more programming, however, as the application must specify how to render the image for each node in an OnDrawItem event handler.</para>
</comments>
</member>
<member name="P:Outline.Outline.ItemHeight">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the height of each node in the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Outline" class="TCustomOutline">ItemHeight</property> to the height, in pixels, of each node in the outline. Changing the <property namespace="Outline" class="TCustomOutline">ItemHeight</property> property also changes the font used to display the nodes.</para>
</comments>
</member>
<member name="P:Outline.Outline.ItemSeparator">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies a delimiting string for outline nodes.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="Outline" class="TCustomOutline">ItemSeparator</property> to the string that should appear between node names in the path description of any individual node in the outline. <property namespace="Outline" class="TCustomOutline">ItemSeparator</property> is used to implement the FullPath read method of TOutlineNode.</para>
<property namespace="Outline" class="TCustomOutline">ItemSeparator</property> is initialized to the backslash (\) character when the <property namespace="Outline" class="TCustomOutline">TCustomOutline</property> object is created.</para>
</comments>
</member>
<member name="P:Outline.Outline.PicturePlus">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the bitmap used to represent a collapsed item that has subitems.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, the <property namespace="Outline" class="TCustomOutline">PicturePlus</property> property is a plus sign (+). Set <property namespace="Outline" class="TCustomOutline">PicturePlus</property> to change the bitmap used for collapsed nodes.</para>
<para>The bitmap will not be displayed in the outline unless the OutlineStyle property is set to osPlusMinusPictureText or osPlusMinusText.</para>
</note>
</comments>
</member>
<member name="P:Outline.Outline.PictureMinus">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the bitmap used to represent an expanded item that has subitems.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, <property namespace="Outline" class="TCustomOutline">PictureMinus</property> is a minus sign (-). Set <property namespace="Outline" class="TCustomOutline">PictureMinus</property> to change the bitmap used for collapsible nodes.</para>
<para>The bitmap is not displayed in the outline unless the OutlineStyle property is set to osPlusMinusPictureText or osPlusMinusText.</para>
</note>
</comments>
</member>
<member name="P:Outline.Outline.PictureOpen">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the bitmap used to represent an expanded item that has subitems.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, the <property namespace="Outline" class="TCustomOutline">PictureOpen</property> property is an open file folder. Set <property namespace="Outline" class="TCustomOutline">PictureOpen</property> to change the bitmap used for expanded nodes.</para>
<para>The bitmap is not displayed in the outline unless the OutlineStyle property is set to osPictureText, osPlusMinusPictureText, or osTreePictureText.</para>
</note>
</comments>
</member>
<member name="P:Outline.Outline.PictureClosed">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the bitmap used to represent a collapsed node that has subitems.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, <property namespace="Outline" class="TCustomOutline">PictureClosed</property> is a closed file folder bitmap. Set <property namespace="Outline" class="TCustomOutline">PictureClosed</property> to change the bitmap used for collapsed nodes.</para>
<para>The bitmap is not displayed in the outline unless the OutlineStyle property is set to osPictureText, osPlusMinusPictureText, or osTreePictureText.</para>
</note>
</comments>
</member>
<member name="P:Outline.Outline.PictureLeaf">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the bitmap used to represent an item that does not have subitems.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, <property namespace="Outline" class="TCustomOutline">PictureLeaf</property> is a document bitmap. Set <property namespace="Outline" class="TCustomOutline">PictureLeaf</property> to change the bitmap used for leaf nodes.</para>
<para>The bitmap is not displayed in the outline unless the OutlineStyle property is set to osPictureText, osPlusMinusPictureText, or osTreePictureText.</para>
</note>
</comments>
</member>
<member name="P:Outline.Outline.ItemCount">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the number of nodes in the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="Outline" class="TCustomOutline">ItemCount</property> to determine the number of nodes in the outline. Use <property namespace="Outline" class="TCustomOutline">ItemCount</property> with the Items property array to iterate over all nodes in the outline.</para>
<para>Reading <property namespace="Outline" class="TCustomOutline">ItemCount</property> can be computationally expensive, as it causes all the indexes used by the outline to be updated.</para>
</note>
</comments>
</member>
<member name="P:Outline.Outline.Items">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Lists the nodes in the outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="Outline" class="TCustomOutline">Items</property> to access a node in the outline. Each item is a TOutlineNode object.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Index is a number specifying the node to return, where <property namespace="Outline" class="TCustomOutline">Items</property>[0] refers to the root, <property namespace="Outline" class="TCustomOutline">Items</property>[1] is the first (topmost) node, and so on.</para>
<property namespace="Outline" class="TCustomOutline">Items</property> is the default property of <property namespace="Outline" class="TCustomOutline">TCustomOutline</property>. This means that the name of the property may be omitted in code. Thus the line</para>
<para>In C++, <property namespace="Outline" class="TCustomOutline">Items</property> can be accessed using the [] operator, to achieve an affect similar to the default property in Delphi.</para>
</note>
</comments>
</member>
<member name="P:Outline.Outline.SelectedItem">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the index of the selected node.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="Outline" class="TCustomOutline">SelectedItem</property> to determine the Index of the selected node. If no node is selected, <property namespace="Outline" class="TCustomOutline">SelectedItem</property> is 0. Set <property namespace="Outline" class="TCustomOutline">SelectedItem</property> to set focus to a particular node in the outline.</para>
</comments>
</member>
<member name="E:Outline.Outline.OnExpand">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs immediately after a node in the outline is expanded.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Outline" class="TCustomOutline">OnExpand</event> event handler to perform special processing when a node in the outline is expanded. The event handler identifies the node that was just expanded.</para>
</comments>
</member>
<member name="E:Outline.Outline.OnCollapse">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs immediately after a node in the outline is collapsed.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="Outline" class="TCustomOutline">OnCollapse</event> event handler to perform special processing when a node in the outline is collapsed. The event handler supplies the index of the node that collapsed.</para>
</comments>
</member>
<member name="E:Outline.Outline.OnDrawItem">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a node must be drawn in an owner-draw outline.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the Style property is set to otOwnerDraw, specify an <event namespace="Outline" class="TCustomOutline">OnDrawItem</event> event handler to render the image of each node in the outline. An <event namespace="Outline" class="TCustomOutline">OnDrawItem</event> event handler can display items other than the Text of a node and the standard bitmaps specified in the PictureClosed, PictureOpen, PictureMinus, PicturePlus, and PictureLeaf properties. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Draw the image of the node specified by the Index parameter onto the canvas of the outline. </para>
<class namespace="Outline">TOutline</class> is a multilevel outline that displays the values of <class namespace="Outline">TOutline</class>Node objects.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use an outline to visually organize information in a hierarchical tree. Each item in an outline is contained in a <class namespace="Outline">TOutline</class>Node object. Outline controls allow an application to manage a hierarchy of outline nodes, including the ability to control the appearance and layout of those nodes and the ability to expand or collapse branches of the outline tree.</para>
<class namespace="TabNotBk">TTabPage</class> implements an individual tab page of a tabbed notebook control.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each instance of this class holds the controls to be displayed when it is the active page of a tabbed notebook. <class namespace="TabNotBk">TTabPage</class> objects are associated with the strings in the corresponding tabbed notebook's Pages property by setting their Caption property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the PageIndex value of the specified page. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The PageIndex property value is determined by the page's position in the Pages property array. Specify the name of the page as the value of the PageName parameter. The name you specify must be one of the strings in the Pages property.</para>
</comments>
</member>
<member name="M:TabNotBk.TabNotBk.Create">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Constructs a tabbed notebook component.</para>
<method namespace="TabNotBk" class="TTabbedNotebook">TTabbedNotebook</method> indirectly, using the new keyword, to instantiate a tabbed notebook at runtime. Tabbed notebooks added to forms at design time are created automatically.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The AOwner parameter assigns a value to the notebook's Owner property.</para>
<method namespace="TabNotBk" class="TTabbedNotebook">TabFontChanged</method> is called automatically when the TabFont property changes. It invalidates the notebook so that the tabs are repainted in the new font.</para>
<method namespace="TabNotBk" class="TTabbedNotebook">Destroy</method>s a tabbed notebook component.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="TabNotBk" class="TTabbedNotebook">Destroy</method> directly in an application, Instead, use Free method, which checks that the notebook is not nil before calling <method namespace="TabNotBk" class="TTabbedNotebook">Destroy</method>.</para>
</comments>
</member>
<member name="P:TabNotBk.TabNotBk.TopFont">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Returns the current value of font used on the tabs of the tabbed notebook.</para>
<property namespace="TabNotBk" class="TTabbedNotebook">TopFont</property> is a read-only property that reports the TabFont value.</para>
</comments>
</member>
<member name="P:TabNotBk.TabNotBk.ActivePage">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines which page displays in the tabbed notebook control. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of <property namespace="TabNotBk" class="TTabbedNotebook">ActivePage</property> must be one of the strings contained in the Pages property.</para>
<para>To indicate the page that appears in the tabbed notebook by index rather than text, use the PageIndex property instead.</para>
</note>
</comments>
</member>
<member name="P:TabNotBk.TabNotBk.PageIndex">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines which page displays in the tabbed notebook component. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Changing the <property namespace="TabNotBk" class="TTabbedNotebook">PageIndex</property> value changes the page in the control.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Each string in the Pages property is automatically assigned a <property namespace="TabNotBk" class="TTabbedNotebook">PageIndex</property> value when the page is created. The first page receives a value of 0, the second has a value of 1, and so on. If you delete a string from the Pages property, the <property namespace="TabNotBk" class="TTabbedNotebook">PageIndex</property> values are reassigned so that the values always begin with 0 and continue to increase without any gaps between values.</para>
</comments>
</member>
<member name="P:TabNotBk.TabNotBk.Pages">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Contains the strings that identify the individual pages of the tabbed notebook control.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Tabbed notebook controls create a separate page for each string in the <property namespace="TabNotBk" class="TTabbedNotebook">Pages</property> property. For example, if <property namespace="TabNotBk" class="TTabbedNotebook">Pages</property> contains three strings, First, Second, and Third, the control has three separate pages. Each string in <property namespace="TabNotBk" class="TTabbedNotebook">Pages</property> corresponds to a TTabPage object whose Caption property is the same as the string.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">You can change the active page in a tabbed notebook control with either the ActivePage or PageIndex property. </para>
</comments>
</member>
<member name="P:TabNotBk.TabNotBk.TabFont">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines the font used on the tabs of the tabbed notebook control. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="TabNotBk" class="TTabbedNotebook">TabFont</property> to specify the font characteristics used to display the label on the tabs of the notebook. </para>
<para>The text on the selected tab is boldfaced if the selected font for the <property namespace="TabNotBk" class="TTabbedNotebook">TabFont</property> property is not also boldfaced.</para>
</note>
</comments>
</member>
<member name="E:TabNotBk.TabNotBk.OnClick">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when a tab of a tabbed notebook is selected.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="TabNotBk" class="TTabbedNotebook">OnClick</event> event handler to respond when the user selects a tab in the tabbed notebook. Immediately after the <event namespace="TabNotBk" class="TTabbedNotebook">OnClick</event> event occurs, the OnChange event occurs.</para>
</comments>
</member>
<member name="E:TabNotBk.TabNotBk.OnChange">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the page of a tabbed notebook changes.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an OnPage event handler to respond to a page change in a tabbed notebook. </para>
<condition os="Windows">TFileType is a set of <type namespace="OleAuto">TFileAttr</type> values. These are the possible <type namespace="OleAuto">TFileAttr</type> values:</condition>
<class namespace="FileCtrl">TFileListBox</class> is a specialized list box that lists all the files in a specified directory.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Add <class namespace="FileCtrl">TFileListBox</class> to a form to allow users to select a file. Use <class namespace="FileCtrl">TFileListBox</class> along with TDriveComboBox, TFilterComboBox, and TDirectoryListBox to add full file selection capabilities to a form. </para>
<method namespace="FileCtrl" class="TFileListBox">Create</method>s an instance of <method namespace="FileCtrl" class="TFileListBox">TFileListBox</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="FileCtrl" class="TFileListBox">Create</method> to create a <method namespace="FileCtrl" class="TFileListBox">TFileListBox</method> object at runtime. File list boxes placed on a form at design time are created automatically.</para>
</comments>
</member>
<member name="M:FileCtrl.FileCtrl.Update">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Refreshes the directory list for the file list box.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="FileCtrl" class="TFileListBox">Update</method> whenever the files listed by the file list box may be out of date. For example, if an application creates, renames, or deletes files, calling <method namespace="FileCtrl" class="TFileListBox">Update</method> will ensure that those changes are reflected in the file list box.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The list box is updated automatically when the Drive, Directory, FileType, or Mask property is changed.</para>
<method namespace="FileCtrl" class="TFileListBox">Destroy</method>s an instance of <method namespace="FileCtrl" class="TFileListBox">TFileListBox</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="FileCtrl" class="TFileListBox">Destroy</method> directly in an application. Instead, call Free. Free checks that the file list box reference is not nil, and only then calls <method namespace="FileCtrl" class="TFileListBox">Destroy</method>.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.Drive">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the drive which contains the files listed in the list box. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set the value of <property namespace="FileCtrl" class="TFileListBox">Drive</property> to the drive that contains the files that the list box should display. When the value of <property namespace="FileCtrl" class="TFileListBox">Drive</property> changes, the Directory value also changes to the current directory on the specified drive.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the form includes a TDirectoryListBox object, set the FileList property of the directory list box to have the <property namespace="FileCtrl" class="TFileListBox">Drive</property> property updated automatically when the <property namespace="FileCtrl" class="TFileListBox">Drive</property> property of the directory list box changes.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.Directory">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the directory that contains all the files listed in the file list box.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="FileCtrl" class="TFileListBox">Directory</property> to update the file list box so that it displays the files in a new directory. If the form includes a T<property namespace="FileCtrl" class="TFileListBox">Directory</property>ListBox object, set the FileList property of the directory list box to have the <property namespace="FileCtrl" class="TFileListBox">Directory</property> property updated automatically when the user selects a new directory.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.FileName">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the name of the selected file in the list box, including the path name. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="FileCtrl" class="TFileListBox">FileName</property> to initialize the file list box to a particular file. Read <property namespace="FileCtrl" class="TFileListBox">FileName</property> to obtain the name of the file the user selected.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the FileEdit property is set, the linked edit control displays the value of <property namespace="FileCtrl" class="TFileListBox">FileName</property> whenever the <property namespace="FileCtrl" class="TFileListBox">FileName</property> property changes.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.FileEdit">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Links the directory list box to an edit control that displays the currently selected file.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="FileCtrl" class="TFileListBox">FileEdit</property> to an edit control that displays the selected file from the file list box, as is commonly done in Open and Save dialog boxes. If no file is selected in the file list box, the text of the edit control is the current value of the file list box's Mask property.</para>
<para>If the user changes the text of the edit control, the results are not automatically reflected in the file list box. Use the ApplyFilePath method to update the file list box when the edit control's text changes.</para>
</note>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.FileType">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines which files are displayed in the file list box based on the attributes of the files. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="FileCtrl" class="TFileListBox">FileType</property> to the type of files the list box should display. <property namespace="FileCtrl" class="TFileListBox">FileType</property> can specify more than one type of file. For example, if the value of <property namespace="FileCtrl" class="TFileListBox">FileType</property> is a set containing the values ftReadOnly and ftHidden, files that have either the read-only or the hidden attributes are displayed in the list box.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To set the <property namespace="FileCtrl" class="TFileListBox">FileType</property> property using the Object Inspector, click the <property namespace="FileCtrl" class="TFileListBox">FileType</property> property to see the attribute values. Then set each value to <condition language="Delphi">True or False</condition>
<condition language="CBuilder">true or false</condition> to specify whether it is included in the <property namespace="FileCtrl" class="TFileListBox">FileType</property> set.</para>
<para>The files that are listed can also be limited by the form of their names. To restrict the files to particular names, use the Mask property or include a TFilterComboBox on the form.</para>
</note>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.Mask">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Limits which files are displayed in the file list box. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="FileCtrl" class="TFileListBox">Mask</property> to a regular expression to limit the list box to files that match the mask. The value of the mask is a file name that may include wildcards. The asterisk (*) is a wildcard which matches any number of arbitrary characters. The question mark (?) is a wildcard which matches a single arbitrary character. The file mask *.* displays all files, which is the default value.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To specify multiple file masks, separate the file mask specifications with semicolons. For example, *.DLL;*.EXE.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the form includes a TFilterComboBox object, set the FileList property of the filter combo box to have the <property namespace="FileCtrl" class="TFileListBox">Mask</property> property updated automatically when the <property namespace="FileCtrl" class="TFileListBox">Mask</property> property of the filter combo box changes.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.ShowGlyphs">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether glyphs (bitmaps) appear next to the file names listed in the file list box. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="FileCtrl" class="TFileListBox">ShowGlyphs</property> to true to display icons next to the files in the list that indicate the file type. Set <property namespace="FileCtrl" class="TFileListBox">ShowGlyphs</property> to false to list only the file names. </para>
</comments>
</member>
<member name="E:FileCtrl.FileCtrl.OnChange">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs immediately after the user changes the selected file in the list.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="FileCtrl" class="TFileListBox">OnChange</event> event handler to take specific action when the FileName property changes. If the FileEdit property has been set, the edit control is updated before the <event namespace="FileCtrl" class="TFileListBox">OnChange</event> event.</para>
<class namespace="FileCtrl">TDirectoryListBox</class> represents a list box control that is aware of the directory structure of the current drive.</para>
<class namespace="FileCtrl">TDirectoryListBox</class> implements the generic behavior introduced in TCustomListBox. <class namespace="FileCtrl">TDirectoryListBox</class> publishes many of the properties inherited from TCustomListBox and introduces new behavior to let the user change directories or drives.</para>
</comments>
</member>
<member name="M:FileCtrl.FileCtrl.DisplayCase">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Preserves or converts the case of the string passed to it.</para>
<method namespace="FileCtrl" class="TDirectoryListBox">DisplayCase</method> converts S to all-lower-case (using the currently installed language driver) if neither PreserveCase nor CaseSensitive is true. Otherwise, it returns S unmodified.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Compares two strings, taking into account the case-sensitivity of the file system.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If CaseSensitive is false, <method namespace="FileCtrl" class="TDirectoryListBox">FileCompareText</method> compares the strings passed to it case-insensitively. Otherwise, it uses AnsiCompareStr to compare the strings.</para>
<method namespace="FileCtrl" class="TDirectoryListBox">Create</method>s and initializes a directory list box.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="FileCtrl" class="TDirectoryListBox">Create</method> to instantiate a directory list box at runtime. For directory list boxes created at design time, <method namespace="FileCtrl" class="TDirectoryListBox">Create</method> is called automatically.</para>
</comments>
</member>
<member name="M:FileCtrl.FileCtrl.OpenCurrent">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Opens the selected directory.</para>
<method namespace="FileCtrl" class="TDirectoryListBox">OpenCurrent</method> opens the directory selected in the directory list box, as if the user had double-clicked the directory.</para>
</comments>
</member>
<member name="M:FileCtrl.FileCtrl.Update">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Refreshes the directory list.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="FileCtrl" class="TDirectoryListBox">Update</method> to refresh the directory list after new directories have been created or existing directories deleted.</para>
</comments>
</member>
<member name="M:FileCtrl.FileCtrl.Destroy">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Disposes of an instance of a directory list box.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="FileCtrl" class="TDirectoryListBox">Destroy</method> directly in an application. Call Free instead. Free checks that the list box reference is not nil before it calls <method namespace="FileCtrl" class="TDirectoryListBox">Destroy</method>.</para>
<method namespace="FileCtrl" class="TDirectoryListBox">Destroy</method> frees the bitmaps used for the Open, Close and Current folders, and then calls the inherited <method namespace="FileCtrl" class="TDirectoryListBox">Destroy</method> method.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.Drive">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines the drive for which the list box displays the directory structure.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the value of <property namespace="FileCtrl" class="TDirectoryListBox">Drive</property> changes, the Directory value changes to the current directory on the specified drive.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.Directory">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines the current directory for the directory list box control.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The directory list box displays the value of the <property namespace="FileCtrl" class="TDirectoryListBox">Directory</property> property as the current directory in the list box. The example shows how a directory list box and a file list box can work together through their <property namespace="FileCtrl" class="TDirectoryListBox">Directory</property> properties.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the form contains a file list box, you can set the FileList property to have the file list box automatically display the files from the directory specified by the <property namespace="FileCtrl" class="TDirectoryListBox">Directory</property> property.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.PreserveCase">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the file system preserves the case of file names when writing to disk.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="FileCtrl" class="TDirectoryListBox">PreserveCase</property> to ascertain whether the current file system preserves the case of file names. <property namespace="FileCtrl" class="TDirectoryListBox">PreserveCase</property> returns true if it does and false if it does not.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.CaseSensitive">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the system supports case-sensitive directory information.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="FileCtrl" class="TDirectoryListBox">CaseSensitive</property> to ascertain whether the current file system supports case-sensitive file names. <property namespace="FileCtrl" class="TDirectoryListBox">CaseSensitive</property> returns true if it does and false if it does not.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.DirLabel">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides a simple way to display the current directory as the caption of a label control.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="FileCtrl" class="TDirectoryListBox">DirLabel</property> to specify a label. When the current directory changes in the directory list box, the change is reflected in the caption of the label.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.FileList">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides a simple way to connect a directory list box with a file list box.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="FileCtrl" class="TDirectoryListBox">FileList</property> to specify a file list box in which to display the files of the current directory.</para>
</comments>
</member>
<member name="E:FileCtrl.FileCtrl.OnChange">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the user selects a new directory with the mouse or keyboard when the user moves the selection bar and presses enter.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="FileCtrl" class="TDirectoryListBox">OnChange</event> event handler to perform an action whenever a new directory is selected.</para>
<class namespace="filectrl">TDriveComboBox</class> implements a specialized combo box that displays all the drives available when the application runs. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Add <class namespace="filectrl">TDriveComboBox</class> to a form to allow users to select a drive. Use <class namespace="filectrl">TDriveComboBox</class> along with TFileListBox, TFilterComboBox, and TDirectoryListBox to add full file selection capabilities to a form. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To add a standard Windows 95 file open or save dialog to an application, use TOpenDialog or TSaveDialog instead.</para>
<method namespace="filectrl" class="TDriveComboBox">Create</method>s and initializes an instance of <method namespace="filectrl" class="TDriveComboBox">TDriveComboBox</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="filectrl" class="TDriveComboBox">Create</method> to create a <method namespace="filectrl" class="TDriveComboBox">TDriveComboBox</method> object at runtime. Drive combo boxes placed on a form at design time are created automatically.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After allocating the memory for the combo box, <method namespace="filectrl" class="TDriveComboBox">Create</method> fills the combo box with all the drives on the system, and initializes the Drive property to the current drive.</para>
<method namespace="filectrl" class="TDriveComboBox">Destroy</method>s an instance of <method namespace="filectrl" class="TDriveComboBox">TDriveComboBox</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="filectrl" class="TDriveComboBox">Destroy</method> directly in an application. Instead, call Free. Free checks that the drive combo box reference is not nil, and only then calls <method namespace="filectrl" class="TDriveComboBox">Destroy</method>.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.Drive">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the currently selected drive displayed in the edit portion of the combo box. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="filectrl" class="TDriveComboBox">Drive</property> to initialize the combo box to a particular drive. Read <property namespace="filectrl" class="TDriveComboBox">Drive</property> to obtain the drive that was selected by the user.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the user uses the drive combo box to select a new drive, the selected drive becomes the value of the <property namespace="filectrl" class="TDriveComboBox">Drive</property> property. The value of the Text property also changes to the new volume name when the <property namespace="filectrl" class="TDriveComboBox">Drive</property> property value changes.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.DirList">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Connects the drive combo box to a directory list box.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="filectrl" class="TDriveComboBox">DirList</property> to a directory list box control that should update when the user changes the drive. When a new drive is selected in the drive combo box, the specified directory list box updates to display the directory structure and the current directory on the new drive.</para>
<para>If the form contains a file list box as well, it can be updated automatically using the FileList property of the directory list box object.</para>
</note>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.TextCase">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines if the volume name in the Text property appears in uppercase or lowercase. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="filectrl" class="TDriveComboBox">TextCase</property> to the case that should be used to represent the drive letter that is the value of the Text property.</para>
<para>Changes made to the <property namespace="filectrl" class="TDriveComboBox">TextCase</property> property at design time don't appear until the application runs.</para>
<class namespace="FileCtrl">TFilterComboBox</class> is a specialized combo box that presents the user with a choice of file filters.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Add a filter combo box to a form that includes a file selection control to provide a set of predefined file filters. Use <class namespace="FileCtrl">TFilterComboBox</class> along with TDriveComboBox, TDirectoryListBox, and TFileListBox to add full file selection capabilities to a form. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To add a standard Win32 file open or save dialog to an application, use TOpenDialog or TSaveDialog instead.</para>
<method namespace="FileCtrl" class="TFilterComboBox">Create</method>s and initializes an instance of <method namespace="FileCtrl" class="TFilterComboBox">TFilterComboBox</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="FileCtrl" class="TFilterComboBox">Create</method> to create a <method namespace="FileCtrl" class="TFilterComboBox">TFilterComboBox</method> objectat runtime. Filter combo boxes placed on a form at design time are created automatically.</para>
<method namespace="FileCtrl" class="TFilterComboBox">Destroy</method>s an instance of <method namespace="FileCtrl" class="TFilterComboBox">TFilterComboBox</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="FileCtrl" class="TFilterComboBox">Destroy</method> directly in an application. Instead, call Free. Free checks that the filter combo box is not nil, and only then calls <method namespace="FileCtrl" class="TFilterComboBox">Destroy</method>.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.Mask">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the mask associated with the string selected in the filter combo box.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="FileCtrl" class="TFilterComboBox">Mask</property> to obtain the mask that was selected by the user.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the user uses the filter combo box to select a new filter, the mask associated with the selected file type becomes the value of the <property namespace="FileCtrl" class="TFilterComboBox">Mask</property> property. If a file list box is linked to the filter combo box with the FileList property, the file list will update when the value of <property namespace="FileCtrl" class="TFilterComboBox">Mask</property> changes.</para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.FileList">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Links the filter combo box to a file list box control.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the form includes a T<property namespace="FileCtrl" class="TFilterComboBox">FileList</property>Box object to display a list of files to choose from, set <property namespace="FileCtrl" class="TFilterComboBox">FileList</property> to allow the filter combo box to limit which files are displayed in the list box. Once the two controls are connected, whenever a new filter is selected using a filter combo box, the file list box displays the files that match the selected filter. </para>
</comments>
</member>
<member name="P:FileCtrl.FileCtrl.Filter">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Contains all the file masks displayed in the filter combo box.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set the <property namespace="FileCtrl" class="TFilterComboBox">Filter</property> property to specify the names that appear in the filter combo box, along with the masks associated with each name. Each mask is a file name that may include wildcards. The asterisk (*) is a wildcard which matches any number of arbitrary characters. The question mark (?) is a wildcard which matches a single arbitrary character. When the application runs, the file filter the user selects in the filter combo box becomes the value of the Mask property. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To create the value of <property namespace="FileCtrl" class="TFilterComboBox">Filter</property> for a single file type, follow these steps:</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1Type some meaningful text to indicate the type of file.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2Type a | character (vertical bar).</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">3Type the file filter.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Don't put in any spaces around the | character in the string.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Here's an example:</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="FileCtrl" class="TFilterComboBox">Filter</property> is set to this string, the string "Text files" appears in the filter combo box. When the user selects "Text files", the mask is set to "*.TXT".</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To specify multiple file filters, extend the value of <property namespace="FileCtrl" class="TFilterComboBox">Filter</property>, separating each file name/mask combination with a | character. <condition language="CBuilder">
<property namespace="FileCtrl" class="TFilterComboBox">Filter</property> can specify an any number of file filters, as long as the string is less than 255 characters.</condition>
</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Here's an example of two file filters that could be specified as the value of the <property namespace="FileCtrl" class="TFilterComboBox">Filter</property> property:</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The previous example includes the file filters in parentheses in the text parts. This isn't required, but it's a common convention that helps users understand what to expect when they select a file filter.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The mask portion can include multiple file specifiers if they are separated with semicolons:</para>
<type namespace="OleAuto">TSelectDirOpt</type> and <type namespace="OleAuto">TSelectDirOpt</type>s determine how a directory selection dialog responds when the user enters a nonexistent directory.</condition>
<para>An edit box allows the user to type in the name of a directory that does not exist. This option does not create a directory: the application must read the name of the selected directory and create it if desired.</para>
</td>
</tr>
<tr>
<td>
<para>sdPerformCreate</para>
</td>
<td>
<para>Used only in combination with sdAllowCreate. If the user enters a directory name that does not exist, the directory selection dialog creates it.</para>
</td>
</tr>
<tr>
<td>
<para>sdPrompt</para>
</td>
<td>
<para>Used only in combination with sdAllowCreate. Displays a message box that informs the user when the entered directory does not exist and asks if the directory should be created. If the user chooses OK, the directory is created if the option set includes sdPerformCreate. If the option set does not include sdPerformCreate, the directory is not created: the application must read the directory name and create it.</para>
</td>
</tr>
</table>
</comments>
</member>
<member name="M:FileCtrl.MinimizeName">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Shortens a fully qualified path name so that it can be drawn with a specified length limit.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <routine namespace="FileCtrl">MinimizeName</routine> to obtain a version of a file name and path that can be drawn on a limited size drawing surface. <routine namespace="FileCtrl">MinimizeName</routine> replaces directories in the path portion of the file name with dots until the resulting name fits the specified number of pixels in length.</para>
<routine namespace="FileCtrl">MinimizeName</routine> returns the shortened name.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Filename is the fully qualified path name that (possibly) needs to be shortened.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Canvas is the drawing surface on which the resulting name is to be rendered. It is used to determine font metrics.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">MaxLen is the length, in pixels, available for drawing the file name on the canvas.</para>
</comments>
</member>
<member name="M:FileCtrl.ProcessPath">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Parses a file name into its constituent parts.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="FileCtrl">ProcessPath</routine> to parse a file name into its drive, path, and file name. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Pass the full file name that should be parsed as the EditText parameter. EditText must refer to an existing file or directory name.</para>
<routine namespace="FileCtrl">ProcessPath</routine> returns the indicated drive, directory, and file name as the Drive, DirPart, and FilePart parameters.</para>
</comments>
</member>
<member name="M:FileCtrl.SelectDirectory">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Brings up a dialog to allow the user to enter a directory name.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="FileCtrl">SelectDirectory</routine> to let the user enter a directory name. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use the first syntax to display the Windows directory browser. The Caption parameter specifies a caption for the dialog. The Root parameter specifies the root directory from which to browse. The selected directory is returned as the Directory parameter. When using this syntax, <routine namespace="FileCtrl">SelectDirectory</routine> does not change the value of the current directory.</para>
<para>You can't use the same variable for the Root parameter and the Directory parameter.</para>
</warning>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use the second syntax to call the Select Directory dialog box. The directory passed to the function with the Directory parameter appears as the currently selected directory when the dialog box appears. The name of the directory the user selects becomes the value of Directory when the function returns.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The HelpCtx parameter is the help context ID number.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Options parameter is a set of values. If Options is the empty set, the user can only select a directory that already exists. No edit box is provided for the user to enter a new directory name. If Options is not empty, the included values determine how the dialog responds when the user types a nonexistent directory name.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">With either syntax, <routine namespace="FileCtrl">SelectDirectory</routine> returns true if the user selected a directory and chose OK, and false if the user chose Cancel or closed the dialog box without selecting a directory.</para>
</comments>
</member>
<member name="M:FileCtrl.DirectoryExists">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether a specified directory exists.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <routine namespace="SysUtils">DirectoryExists</routine> to determine whether the directory specified by the Name parameter exists. If the directory exists, the function returns true. If the directory does not exist, the function returns false.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If a full path name is entered, <routine namespace="SysUtils">DirectoryExists</routine> searches for the directory along the designated path. Otherwise, the Name parameter is interpreted as a relative path name from the current directory.</para>
<para>The FileCtrl unit (Windows only) also contains a <routine namespace="SysUtils">DirectoryExists</routine> function. However, the FileCtrl version is deprecated, and the SysUtils version preferred, even if the code does not need to be cross-platform.</para>
</note>
</comments>
</member>
<member name="M:FileCtrl.ForceDirectories">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Creates a new directory, including the creation of parent directories as needed.</para>
<routine namespace="SysUtils">ForceDirectories</routine> creates a new directory as specified in Dir, which must be a fully-qualified path name. If the directories given in the path do not yet exist, <routine namespace="SysUtils">ForceDirectories</routine> attempts to create them.</para>
<routine namespace="SysUtils">ForceDirectories</routine> returns true if it successfully creates all necessary directories, false if it could not create a needed directory.</para>
<para>Important:Do not call <routine namespace="SysUtils">ForceDirectories</routine> with an empty string. Doing so causes <routine namespace="SysUtils">ForceDirectories</routine> to raise an exception.</para>
<para>The FileCtrl unit (Windows only) also contains a <routine namespace="SysUtils">ForceDirectories</routine> function. However, the FileCtrl version is deprecated, and the SysUtils version preferred, even if the code does not need to be cross-platform.</para>
<type namespace="OleAuto">TMPBtnType</type> defines the possible buttons in a TMediaPlayer component and TButtonSet represents a set of those buttons.</condition>
<type namespace="OleAuto">TMPBtnType</type> represents the type of a media player button. TButtonSet is a set of button types for the media player.</condition>
<condition os="Windows">Each button type has an associated action on the media player. The following table lists the button types and their associated actions:</condition>
<type namespace="OleAuto">TMPDeviceTypes</type> type identifies the multimedia device types that can be opened by a TMediaPlayer component. </condition>
<condition os="Windows">The <type namespace="OleAuto">TMPTimeFormats</type> type defines the time formats for a multimedia device used with a TMediaPlayer. The following table lists the possible values for the <type namespace="OleAuto">TMPTimeFormats</type> type:</condition>
<para>Milliseconds are stored as a 4-byte integer variable.</para>
</td>
</tr>
<tr>
<td>
<para>tfHMS</para>
</td>
<td>
<para>Hours, minutes, and seconds packed into a 4-byte integer. From least significant to most significant byte, the data values are</para>
</td>
</tr>
<tr>
<td>
<para> Hours (least significant byte)</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para> Minutes</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para> Seconds</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para> Unused (most significant byte)</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para>tfMSF</para>
</td>
<td>
<para>Minutes, seconds, and frames packed into a 4-byte integer. From least significant to most significant byte, the data values are</para>
</td>
</tr>
<tr>
<td>
<para> Minutes (least significant byte)</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para> Seconds</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para> Frames</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para> Unused (most significant byte)</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para>tfFrames</para>
</td>
<td>
<para>Frames are stored as a 4-byte integer variable.</para>
</td>
</tr>
<tr>
<td>
<para>tfSMPTE24</para>
</td>
<td>
<para>24-frame SMPTE packs values in a 4-byte variable. From least significant to most significant byte, the data values are</para>
</td>
</tr>
<tr>
<td>
<para> Hours (least significant byte)</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para> Minutes</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para> Seconds</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para> Frames (most significant byte)</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para>SMPTE (Society of Motion Picture and Television Engineers) time is an absolute time format expressed in hours, minutes, seconds, and frames. The standard SMPTE division types are 24, 25, and 30 frames per second.</para>
</td>
<td>
<para/>
</td>
</tr>
<tr>
<td>
<para>tfSMPTE25</para>
</td>
<td>
<para>25-frame SMPTE packs data into a 4-byte variable in the same order as 24-frame SMPTE.</para>
</td>
</tr>
<tr>
<td>
<para>tfSMPTE30</para>
</td>
<td>
<para>30-frame SMPTE packs data into the 4-byte variable in the same order as 24-frame SMPTE.</para>
</td>
</tr>
<tr>
<td>
<para>tfSMPTE30Drop</para>
</td>
<td>
<para>30-drop-frame SMPTE packs data into the 4-byte variable in the same order as 24-frame SMPTE.</para>
</td>
</tr>
<tr>
<td>
<para>tfBytes</para>
</td>
<td>
<para>Bytes are stored as a 4-byte integer variable.</para>
</td>
</tr>
<tr>
<td>
<para>tfSamples</para>
</td>
<td>
<para>Samples are stored as a 4-byte integer variable.</para>
</td>
</tr>
<tr>
<td>
<para>tfTMSF</para>
</td>
<td>
<para>Tracks, minutes, seconds, and frames are packed in the 4-byte variable. From least significant to most significant byte, the data values are</para>
<condition os="Windows">Functions provided with MCI to help decoding the 4-byte integer specified in a given time format are documented under MCI Macros for Encoding and Decoding Time Data in the MMSYSTEM.HLP Help file.</condition>
<condition os="Windows">The <type namespace="OleAuto">TMPNotifyValues</type> type defines the notification values for a multimedia device used with a TMediaPlayer. The possible values for the <type namespace="OleAuto">TMPNotifyValues</type> type are as follows.</condition>
<type namespace="OleAuto">TMPDevCaps</type> defines the capabilities of a TMediaPlayer component and <type namespace="OleAuto">TMPDevCaps</type>Set represents a set of those capabilities.</condition>
<type namespace="OleAuto">TMPDevCaps</type> represents the capabilities of a media player control. <type namespace="OleAuto">TMPDevCaps</type>Set is a set of <type namespace="OleAuto">TMPDevCaps</type> values.</condition>
<class namespace="mplayer">EMCIDeviceError</class> is raised if an error occurs when accessing a multimedia device. The most common cause for the exception is trying to access a multimedia device before it has been opened with the Open method of TMediaPlayer.</para>
<class namespace="MPlayer">TMediaPlayer</class> controls devices that provide a Media Control Interface (MCI) driver. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <class namespace="MPlayer">TMediaPlayer</class> component includes a set of buttons (Play, Stop, Eject, and so on) that control a multimedia device such as a CD-ROM drive, MIDI sequencer, or VCR. A multimedia device may be hardware or software.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The media player component contains of multiple buttons. These buttons can be clicked with the mouse, but are not separate objects or button components.</para>
<para>Pauses playing or recording. If already paused when clicked, resumes playing or recording.</para>
</td>
</tr>
<tr>
<td>
<para>Stop</para>
</td>
<td>
<para>btStop</para>
</td>
<td>
<para>Stops playing or recording</para>
</td>
</tr>
<tr>
<td>
<para>Next</para>
</td>
<td>
<para>btNext</para>
</td>
<td>
<para>Skips to the next track, or to the end if the medium doesn't use tracks</para>
</td>
</tr>
<tr>
<td>
<para>Prev</para>
</td>
<td>
<para>btPrev</para>
</td>
<td>
<para>Skips to the previous track, or to the beginning if the medium doesn't use tracks</para>
</td>
</tr>
<tr>
<td>
<para>Step</para>
</td>
<td>
<para>btStep</para>
</td>
<td>
<para>Moves forward a number of frames</para>
</td>
</tr>
<tr>
<td>
<para>Back</para>
</td>
<td>
<para>btBack</para>
</td>
<td>
<para>Moves backward a number of frames</para>
</td>
</tr>
<tr>
<td>
<para>Record</para>
</td>
<td>
<para>btRecord</para>
</td>
<td>
<para>Starts recording</para>
</td>
</tr>
<tr>
<td>
<para>Eject</para>
</td>
<td>
<para>btEject</para>
</td>
<td>
<para>Ejects the medium</para>
</td>
</tr>
</table>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The multimedia device is played, paused, stopped, and so on when the user clicks the corresponding button on the <class namespace="MPlayer">TMediaPlayer</class> component. The device can also be controlled by the control methods that correspond to the buttons (Play, Pause, Stop, Next, Previous, Step, Back, StartRecording, and Eject).</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The type of multimedia device (such as dtWaveAudio or dtVideodisc) is specified by the DeviceType property. If the device stores its media in a file, the name of the media file is specified by the FileName property. If DeviceType is dtAutoSelect, the media player attempts to determine the type of device from the extension of the file specified by FileName.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To have the media player attempt to open the device specified by DeviceType automatically when the media player component is created at runtime, set the AutoOpen property to true.</para>
<method namespace="MPlayer" class="TMediaPlayer">Create</method>s a media player object.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="MPlayer" class="TMediaPlayer">Create</method> to instantiate a media player at runtime. For media players created at design time, <method namespace="MPlayer" class="TMediaPlayer">Create</method> is called automatically.</para>
<method namespace="MPlayer" class="TMediaPlayer">Create</method> allocates memory for a media player and calls the inherited <method namespace="MPlayer" class="TMediaPlayer">Create</method>. Then it loads the bitmaps for the media player's buttons and initializes its properties, setting AutoEnable, AutoRewind, Colored, Enabled, and Visible to true, AutoOpen to false, and DeviceType to dtAutoSelect.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.KeyDown">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Provides responses when the user types arrow keys or the space bar.</para>
<method namespace="MPlayer" class="TMediaPlayer">KeyDown</method> overrides the inherited method to implement the media player's response to certain keystrokes. It changes the current button when the user types the left or right arrow keys. When the user presses the space bar, <method namespace="MPlayer" class="TMediaPlayer">KeyDown</method> simulates a click on the current button.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Loaded">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initializes the media player after it is loaded from a stream.</para>
<method namespace="MPlayer" class="TMediaPlayer">Loaded</method> provides an opportunity for a component to initialize itself after all its parts have loaded from a stream. <method namespace="MPlayer" class="TMediaPlayer">TMediaPlayer</method> overrides the inherited method to implement the AutoOpen property.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.AutoButtonSet">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Enables or Disables the media player's buttons.</para>
<method namespace="MPlayer" class="TMediaPlayer">AutoButtonSet</method> implements the automatic enabling and disabling of the media player's buttons when the AutoEnable property is true. The Btn parameter indicates which of the media player's buttons the user pressed.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Notification">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Responds when components are about to be inserted or removed.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, components pass along the notification to their owned components, if any. <method namespace="MPlayer" class="TMediaPlayer">Notification</method> calls the inherited <method namespace="MPlayer" class="TMediaPlayer">Notification</method> and then, if the Display window is deleted at runtime, it sets the video display back to original window.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Paint">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Renders the image of the media player.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the media player component receives a WM_PAINT message, like other custom controls, it responds by initializing the control's canvas and calling <method namespace="MPlayer" class="TMediaPlayer">Paint</method>. <method namespace="MPlayer" class="TMediaPlayer">Paint</method> draws the frame and all visible buttons.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When creating a descendant media player class, <method namespace="MPlayer" class="TMediaPlayer">Paint</method> can be overridden to draw the image of the corresponding media player object.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.MMNotify">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Responds to a notification that the MCI device has completed an operation.</para>
<method namespace="MPlayer" class="TMediaPlayer">MMNotify</method> responds to a notification message from Windows that a multimedia command completed by updating button states if the AutoEnable property is true, setting internal flags to reflect the outcome of the command, then calling the DoNotify method to trigger the OnNotify event and any other special responses.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Click">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an On<method namespace="MPlayer" class="TMediaPlayer">Click</method> event.</para>
<method namespace="MPlayer" class="TMediaPlayer">Click</method> for media-player components is the implementation method for the On<method namespace="MPlayer" class="TMediaPlayer">Click</method> event. By default, <method namespace="MPlayer" class="TMediaPlayer">Click</method> does nothing other than call any event handler attached to the media player's On<method namespace="MPlayer" class="TMediaPlayer">Click</method> event.<condition language="CBuilder"/>
<method namespace="MPlayer" class="TMediaPlayer">Click</method> can be overridden in descendant classes to customize responses to clicks.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.PostClick">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines the action that takes place when an On<method namespace="MPlayer" class="TMediaPlayer">PostClick</method> event occurs.</para>
<method namespace="MPlayer" class="TMediaPlayer">PostClick</method> is the implementation method for the On<method namespace="MPlayer" class="TMediaPlayer">PostClick</method> event. By default, <method namespace="MPlayer" class="TMediaPlayer">PostClick</method> does nothing other than call any event handler attached to the media player's On<method namespace="MPlayer" class="TMediaPlayer">PostClick</method> event. <method namespace="MPlayer" class="TMediaPlayer">PostClick</method> can be overridden in descendant types to customize responses to clicks.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.DoNotify">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an OnNotify event.</para>
<method namespace="MPlayer" class="TMediaPlayer">DoNotify</method> is the implementation method for a media-player component's OnNotify event. The media player's MMNotify method calls <method namespace="MPlayer" class="TMediaPlayer">DoNotify</method> after correcting the enabling and disabling of buttons and setting internal flags from the values passed in the notification message parameters.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, <method namespace="MPlayer" class="TMediaPlayer">DoNotify</method> does nothing except call any event handler attached to the media player's OnNotify event. <method namespace="MPlayer" class="TMediaPlayer">DoNotify</method> can be overridden to provide other responses in addition to the inherited event-handler call.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Updated">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Signals that the media player has finished updating.</para>
<method namespace="MPlayer" class="TMediaPlayer">Updated</method> calls the inherited <method namespace="MPlayer" class="TMediaPlayer">Updated</method> before it modifies the layout of the media player buttons and forces a repaint.</para>
<method namespace="MPlayer" class="TMediaPlayer">Open</method>s a multimedia device.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="MPlayer" class="TMediaPlayer">Open</method> to open a multimedia device. The multimedia device type must be specified in the DeviceType property before a device can be opened.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Open</method> stores a numerical error code in the Error property, and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Open</method> method is completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Open</method> generates an OnNotify event.</para>
<method namespace="MPlayer" class="TMediaPlayer">Close</method>s the open multimedia device.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Close</method> stores a numerical error code in the Error property, and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Close</method> method is completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Close</method> generates an OnNotify event.</para>
<method namespace="MPlayer" class="TMediaPlayer">Play</method> is called when the <method namespace="MPlayer" class="TMediaPlayer">Play</method> button on the media player control is clicked at runtime.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Play</method> stores a numerical error code in the Error property and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Play</method> method has completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Play</method> generates an OnNotify event.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the StartPos property is set, playing starts at the position specified in StartPos. Otherwise, playing starts at the current position, specified in the Position property. Similarly, if the EndPos property is set, playing stops at the position specified in EndPos. Otherwise, playing stops at the end of the medium.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Whether the medium (specified in the Position property) is rewound before playing starts depends on the AutoRewind property.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Stop">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Halts playing or recording.</para>
<method namespace="MPlayer" class="TMediaPlayer">Stop</method> is called when the <method namespace="MPlayer" class="TMediaPlayer">Stop</method> button on the media player control is clicked at runtime.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Stop</method> stores a numerical error code in the Error property, and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Stop</method> method has completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Stop</method> generates an OnNotify event.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Pause">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Toggles the open multimedia device on or off. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the device is already paused when <method namespace="MPlayer" class="TMediaPlayer">Pause</method> is called, the device resumes playing or recording by calling the Resume method. <method namespace="MPlayer" class="TMediaPlayer">Pause</method> is called when the <method namespace="MPlayer" class="TMediaPlayer">Pause</method> button on the media player control is clicked at runtime.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Pause</method> stores a numerical error code in the Error property and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Pause</method> method has completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Pause</method> generates an OnNotify event.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Step">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Moves forward a number of frames (determined by the Frames property) in the currently loaded medium.</para>
<method namespace="MPlayer" class="TMediaPlayer">Step</method> is called when the <method namespace="MPlayer" class="TMediaPlayer">Step</method> button on the media player control is clicked at runtime.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Step</method> stores a numerical error code in the Error property and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Step</method> method has completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Step</method> generates an OnNotify event.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Back">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Steps backward a number of frames (determined by the value of the Frames property) in the currently loaded medium. </para>
<method namespace="MPlayer" class="TMediaPlayer">Back</method> is called when the <method namespace="MPlayer" class="TMediaPlayer">Back</method> button on the media player control is clicked at runtime.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Back</method> stores a numerical error code in the Error property and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Back</method> method has been completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Back</method> generates an OnNotify event.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Previous">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the current position to the beginning of the previous track if the position was at the beginning of a track when <method namespace="MPlayer" class="TMediaPlayer">Previous</method> was called.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the position is at the first track or somewhere other than the beginning of a track when <method namespace="MPlayer" class="TMediaPlayer">Previous</method> was called, <method namespace="MPlayer" class="TMediaPlayer">Previous</method> sets the current position to the beginning of the current track. If the device doesn't use tracks, <method namespace="MPlayer" class="TMediaPlayer">Previous</method> sets the current position to the beginning of the medium, which is specified in the Start property. <method namespace="MPlayer" class="TMediaPlayer">Previous</method> is called when the <method namespace="MPlayer" class="TMediaPlayer">Previous</method> button on the media player control is clicked at runtime.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Previous</method> stores a numerical error code in the Error property and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Previous</method> method has completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Previous</method> generates an OnNotify event.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Next">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Moves to the beginning of the next track of the currently loaded medium.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the current position is at the last track when <method namespace="MPlayer" class="TMediaPlayer">Next</method> is called, <method namespace="MPlayer" class="TMediaPlayer">Next</method> makes the current position the beginning of the last track. If the multimedia device doesn't use tracks, <method namespace="MPlayer" class="TMediaPlayer">Next</method> goes to the end of the medium. <method namespace="MPlayer" class="TMediaPlayer">Next</method> is called when the <method namespace="MPlayer" class="TMediaPlayer">Next</method> button on the media player control is clicked at runtime.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Next</method> stores a numerical error code in the Error property, and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Next</method> method has completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Next</method> generates an OnNotify event.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.StartRecording">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Begins recording from the current Position or from the position specified in StartPos. </para>
<method namespace="MPlayer" class="TMediaPlayer">StartRecording</method> is called when the Record button on the media player control is clicked at runtime.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">StartRecording</method> stores a numerical error code in the Error property and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">StartRecording</method> method has completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">StartRecording</method> generates an OnNotify event.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, the Notify property becomes true, and the Wait property becomes false upon completion of the <method namespace="MPlayer" class="TMediaPlayer">StartRecording</method> method. However, if these properties have been set to specific values prior to calling <method namespace="MPlayer" class="TMediaPlayer">StartRecording</method>, they remain unchanged.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Eject">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Releases the loaded medium from the open multimedia device.</para>
<method namespace="MPlayer" class="TMediaPlayer">Eject</method> is called when the <method namespace="MPlayer" class="TMediaPlayer">Eject</method> button on the media player control is clicked at runtime. It ejects the loaded medium from the open multimedia device.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Eject</method> stores a numerical error code in the Error property, and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Eject</method> method has been completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Eject</method> generates an OnNotify event.</para>
<method namespace="MPlayer" class="TMediaPlayer">Save</method> is ignored for devices that don't use media stored in files (video<condition language="CBuilder"/>discs, for example).</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Save</method> stores a numerical error code in the Error property, and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Save</method> method has completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Save</method> generates an OnNotify event.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.PauseOnly">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Pauses the open multimedia device.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the device is already paused when <method namespace="MPlayer" class="TMediaPlayer">PauseOnly</method> is called, the device will remain paused.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">PauseOnly</method> stores a numerical error code in the Error property and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">PauseOnly</method> method has completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">PauseOnly</method> generates an OnNotify event.</para>
<method namespace="MPlayer" class="TMediaPlayer">Resume</method> is called when the Pause button on the media player control is clicked at runtime, when the device is paused.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Resume</method> stores a numerical error code in the Error property, and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Resume</method> method has completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Resume</method> generates an OnNotify event.</para>
</comments>
</member>
<member name="M:MPlayer.MPlayer.Rewind">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sets the current position to the beginning of the the medium, which is stored in the Start property.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Upon completion, <method namespace="MPlayer" class="TMediaPlayer">Rewind</method> stores a numerical error code in the Error property, and the corresponding error message in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before the <method namespace="MPlayer" class="TMediaPlayer">Rewind</method> method has completed. The Notify property determines whether <method namespace="MPlayer" class="TMediaPlayer">Rewind</method> generates an OnNotify event.</para>
<method namespace="MPlayer" class="TMediaPlayer">Destroy</method>s an instance of the media player.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="MPlayer" class="TMediaPlayer">Destroy</method> directly in an application. Call Free instead. Free checks that the <method namespace="MPlayer" class="TMediaPlayer">TMediaPlayer</method> reference is not nil before it calls <method namespace="MPlayer" class="TMediaPlayer">Destroy</method>.</para>
<method namespace="MPlayer" class="TMediaPlayer">Destroy</method> first verifies that no device is open, then destroys the bitmaps used for the media player's buttons and calls the inherited <method namespace="MPlayer" class="TMediaPlayer">Destroy</method>.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.TrackLength">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reports the length of the track.</para>
<property namespace="MPlayer" class="TMediaPlayer">TrackLength</property> reports the length of the track specified by the TrackNum index.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of <property namespace="MPlayer" class="TMediaPlayer">TrackLength</property> is specified according to the current time format, which is specified in the TimeFormat property.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.TrackPosition">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Reports the starting position of the track.</para>
<property namespace="MPlayer" class="TMediaPlayer">TrackPosition</property> reports the starting position of the track specified by the TrackNum index.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of <property namespace="MPlayer" class="TMediaPlayer">TrackPosition</property> is specified according to the current time format, which is specified in the TimeFormat property.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.Capabilities">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines the capabilities of the open multimedia device.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The various capabilities specified in <property namespace="MPlayer" class="TMediaPlayer">Capabilities</property> are determined when the device is opened with the Open method.</para>
<para>Currently, there is no way to check whether a device can step forward or backward. <property namespace="MPlayer" class="TMediaPlayer">Capabilities</property> includes mpCanStep only if the device type (specified in the DeviceType property) is Animation, AVI Video, Digital Video, Overlay, or VCR.</para>
</note>
</comments>
</member>
<member name="P:MPlayer.MPlayer.Error">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the MCI error code returned by the media control method.</para>
<property namespace="MPlayer" class="TMediaPlayer">Error</property> specifies the MCI error code returned by the most recent media control method (Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, StartRecording, Resume, Rewind, Step, or Stop). The <property namespace="MPlayer" class="TMediaPlayer">Error</property>Message property describes the <property namespace="MPlayer" class="TMediaPlayer">Error</property>.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The error code returned by media control methods are the same error code returned by the mciSendCommand function. The message describing the error code is stored in the <property namespace="MPlayer" class="TMediaPlayer">Error</property>Message property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of <property namespace="MPlayer" class="TMediaPlayer">Error</property> is zero if the most recent media control method didn't cause an error. If a method results in an error, a value other than zero is stored in <property namespace="MPlayer" class="TMediaPlayer">Error</property>. If the error occurs during the opening of the device, an EMCIDevice<property namespace="MPlayer" class="TMediaPlayer">Error</property> exception occurs.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.ErrorMessage">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Describes the error code stored in the Error property.</para>
<property namespace="MPlayer" class="TMediaPlayer">ErrorMessage</property> specifies the error message that describes the error code returned from the most recent media control method (Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, StartRecording, Resume, Rewind, Step, or Stop). </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The error code described by the message is stored in the Error property.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.Start">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the starting position within the currently loaded medium.</para>
<property namespace="MPlayer" class="TMediaPlayer">Start</property> is the beginning of the medium for devices that don't use tracks, or the beginning of the first track for devices that use tracks. <property namespace="MPlayer" class="TMediaPlayer">Start</property> is defined when a multimedia device is opened with the Open method. <property namespace="MPlayer" class="TMediaPlayer">Start</property> is specified according to the current time format, which is stored in the TimeFormat property. <property namespace="MPlayer" class="TMediaPlayer">Start</property> is read-only at runtime and is unavailable at design time.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.Length">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the length of the medium in the open multimedia device.</para>
<property namespace="MPlayer" class="TMediaPlayer">Length</property> is specified using the current time format, which is specified by the TimeFormat property.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.Tracks">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the number of playable tracks on the open multimedia device.</para>
<property namespace="MPlayer" class="TMediaPlayer">Tracks</property> indicates how many of playable tracks are available on the open multimedia device.</para>
<property namespace="MPlayer" class="TMediaPlayer">Frames</property> specifies the number of frames the Step method steps forward or the Back method steps backward. <property namespace="MPlayer" class="TMediaPlayer">Frames</property> defaults to ten percent of the length of the currently loaded medium, which is specified by the Length property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The definition of a frame varies by multimedia device. For display media, a frame is one still image.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.Mode">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the state of the currently open multimedia device.</para>
<property namespace="MPlayer" class="TMediaPlayer">Mode</property> specifies the current state or mode of the currently open multimedia device.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The TMP<property namespace="MPlayer" class="TMediaPlayer">Mode</property>s type defines the modes for a multimedia device used with a <property namespace="MPlayer" class="TMediaPlayer">TMediaPlayer</property>.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.Position">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the current position within the currently loaded medium.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of <property namespace="MPlayer" class="TMediaPlayer">Position</property> is specified according to the current time format, which is specified in the TimeFormat property.</para>
<property namespace="MPlayer" class="TMediaPlayer">Position</property> defaults to the beginning of the medium. If the medium supports multiple tracks, <property namespace="MPlayer" class="TMediaPlayer">Position</property> defaults to the beginning of the first track.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.Wait">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether a media control method returns control to the application only after it has been completed.</para>
<property namespace="MPlayer" class="TMediaPlayer">Wait</property> determines whether a media control method (Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, StartRecording, Resume, Rewind, Step, or Stop) returns control to the application only after it has been completed.</para>
<property namespace="MPlayer" class="TMediaPlayer">Wait</property> is unavailable at design time.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="MPlayer" class="TMediaPlayer">Wait</property> is true, the media player component waits until the next media control method has completed before returning control to the application. If <property namespace="MPlayer" class="TMediaPlayer">Wait</property> is false, the application won't wait for the next media control method to finish before continuing.</para>
<property namespace="MPlayer" class="TMediaPlayer">Wait</property> affects only the next media control method called after setting <property namespace="MPlayer" class="TMediaPlayer">Wait</property>. <property namespace="MPlayer" class="TMediaPlayer">Wait</property> must be reset to affect any subsequent call to a media control method.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, Play and StartRecording function as if <property namespace="MPlayer" class="TMediaPlayer">Wait</property> is false. <property namespace="MPlayer" class="TMediaPlayer">Wait</property> must be set to true before calling Play or StartRecording to prevent control from returning to the application before playing or recording has finished. By default, all other media control methods function as if <property namespace="MPlayer" class="TMediaPlayer">Wait</property> is true.</para>
<property namespace="MPlayer" class="TMediaPlayer">Wait</property> is usually set to false only if the next media control is expected to take a long time, so that the application can execute other code before the media control method has completed. If <property namespace="MPlayer" class="TMediaPlayer">Wait</property> is set to false, you should set Notify to true so the application is notified when the media control method completes.</para>
</note>
</comments>
</member>
<member name="P:MPlayer.MPlayer.Notify">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether an On<property namespace="MPlayer" class="TMediaPlayer">Notify</property> event is generated.</para>
<property namespace="MPlayer" class="TMediaPlayer">Notify</property> determines whether the next call to a media control method (Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, StartRecording, Resume, Rewind, Step, or Stop) generates an On<property namespace="MPlayer" class="TMediaPlayer">Notify</property> event when the method has completed.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="MPlayer" class="TMediaPlayer">Notify</property> is true, the next media control method generates On<property namespace="MPlayer" class="TMediaPlayer">Notify</property> event upon completion and stores the notification message in the <property namespace="MPlayer" class="TMediaPlayer">Notify</property>Value property. If <property namespace="MPlayer" class="TMediaPlayer">Notify</property> is false, the method does not generate an On<property namespace="MPlayer" class="TMediaPlayer">Notify</property> event and <property namespace="MPlayer" class="TMediaPlayer">Notify</property>Value remains unchanged.</para>
<property namespace="MPlayer" class="TMediaPlayer">Notify</property> affects only the next call to a media control method. After an On<property namespace="MPlayer" class="TMediaPlayer">Notify</property> event, <property namespace="MPlayer" class="TMediaPlayer">Notify</property> must be reset to affect any subsequent media control methods.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">By default, Play and StartRecording function as if <property namespace="MPlayer" class="TMediaPlayer">Notify</property> is true. Set <property namespace="MPlayer" class="TMediaPlayer">Notify</property> to false before calling Play or StartRecording to prevent an On<property namespace="MPlayer" class="TMediaPlayer">Notify</property> event from being generated when playing or recording has finished. By default, all other media control methods function as if <property namespace="MPlayer" class="TMediaPlayer">Notify</property> is false.</para>
<para>Set <property namespace="MPlayer" class="TMediaPlayer">Notify</property> to true if the next media control is expected to take a long time, so the application is notified when the media control method has completed. If <property namespace="MPlayer" class="TMediaPlayer">Notify</property> is set to true, it is recommended to set Wait to false so that control returns to the application before the media control method is finished.</para>
<para>When trying to resume a device that doesn't support Resume, the device is resumed as if the Play method was called. If <property namespace="MPlayer" class="TMediaPlayer">Notify</property> was assigned true before calling Resume (or any other media control method), <property namespace="MPlayer" class="TMediaPlayer">Notify</property> doesn't affect the call to Resume. Resume does not generate an On<property namespace="MPlayer" class="TMediaPlayer">Notify</property> event upon completion, and <property namespace="MPlayer" class="TMediaPlayer">Notify</property>Value remains unchanged.</para>
</note>
</comments>
</member>
<member name="P:MPlayer.MPlayer.NotifyValue">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the result of the last media control method that requested a notification.</para>
<property namespace="MPlayer" class="TMediaPlayer">NotifyValue</property> reports the result of the last media control method (Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, StartRecording, Resume, Rewind, Step, or Stop) that requested a notification.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To request notification, set Notify to true before calling a media control method.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.StartPos">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the position within the currently loaded medium from which to begin playing or recording.</para>
<property namespace="MPlayer" class="TMediaPlayer">StartPos</property> is specified using the current time format, which is specified in the TimeFormat property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <property namespace="MPlayer" class="TMediaPlayer">StartPos</property> property affects only the next Play or StartRecording method called after setting <property namespace="MPlayer" class="TMediaPlayer">StartPos</property>. Reset must be set to <property namespace="MPlayer" class="TMediaPlayer">StartPos</property> to affect any subsequent calls to Play or StartRecording.</para>
<property namespace="MPlayer" class="TMediaPlayer">StartPos</property> does not affect the current position of the medium (specified in the Position property) until the next Play or StartRecording method is called.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.EndPos">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the position within the currently loaded medium at which to stop playing or recording. </para>
<property namespace="MPlayer" class="TMediaPlayer">EndPos</property> is specified using the current time format, which is specified in the TimeFormat property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The <property namespace="MPlayer" class="TMediaPlayer">EndPos</property> property affects only the next Play or StartRecording method called after setting <property namespace="MPlayer" class="TMediaPlayer">EndPos</property>. Reset <property namespace="MPlayer" class="TMediaPlayer">EndPos</property> to affect any subsequent calls to Play or StartRecording.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.DeviceID">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the device ID for the currently open multimedia device.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of <property namespace="MPlayer" class="TMediaPlayer">DeviceID</property> is determined when a device is opened with the Open method. If no device is open, <property namespace="MPlayer" class="TMediaPlayer">DeviceID</property> is 0.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.TimeFormat">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines the format used to specify position information.</para>
<property namespace="MPlayer" class="TMediaPlayer">TimeFormat</property> determines how the StartPos, Length, Position, Start, and EndPos properties are interpreted. For example, if Position is 180 and <property namespace="MPlayer" class="TMediaPlayer">TimeFormat</property> is tfMilliseconds, the current position is 180 milliseconds into the medium. If Position is 180 and <property namespace="MPlayer" class="TMediaPlayer">TimeFormat</property> is tfMSF, the current position is 180 minutes into the medium.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Not all formats are supported by every device. When trying to set an unsupported format, the assignment is ignored.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The current timing information is always passed in a 4-byte integer. In some formats, the timing information returned is not really one integer, but single bytes of information packed in the long integer.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.DisplayRect">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies a rectangular area in the control specified by the Display property that is used to display output from a multimedia device.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To display output in a specific rectangle area on a form assign a TRect record to <property namespace="MPlayer" class="TMediaPlayer">DisplayRect</property>. The Rect function can be used to create a TRect record.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Media that use a rectangle to display output usually perform best if the default <property namespace="MPlayer" class="TMediaPlayer">DisplayRect</property> size is used. To set <property namespace="MPlayer" class="TMediaPlayer">DisplayRect</property> to the default size, position the rectangle in the upper left corner and use 0, 0 for the lower right corner.</para>
<property namespace="MPlayer" class="TMediaPlayer">DisplayRect</property> is ignored if Display is nil (Delphi) or NULL (C++).</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Examples of multimedia devices that use a window to display output are Animation, AVI Video, Digital Video, Overlay, and VCR.</para>
<property namespace="MPlayer" class="TMediaPlayer">ColoredButtons</property> controls which buttons on the media player are colored.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If a button is not colored with <property namespace="MPlayer" class="TMediaPlayer">ColoredButtons</property>, it appears in black-and-white when visible. All media player control buttons are colored by default.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.EnabledButtons">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines which buttons on the media player are usable.</para>
<property namespace="MPlayer" class="TMediaPlayer">EnabledButtons</property> controls which buttons on the media player are enabled and usable.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">An enabled button is colored and usable. A disabled button is dimmed and not usable. If a button is not enabled with <property namespace="MPlayer" class="TMediaPlayer">EnabledButtons</property>, it is disabled. By default, all buttons are enabled.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the AutoEnable property is true, AutoEnable supersedes <property namespace="MPlayer" class="TMediaPlayer">EnabledButtons</property>. The buttons automatically enabled or disabled by the media player override any buttons enabled or disabled with the <property namespace="MPlayer" class="TMediaPlayer">EnabledButtons</property> property.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.VisibleButtons">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates which of the buttons on the media player are visible.</para>
<property namespace="MPlayer" class="TMediaPlayer">VisibleButtons</property> determines which buttons on the media player that are visible. If a button is not made visible with <property namespace="MPlayer" class="TMediaPlayer">VisibleButtons</property>, it does not appear on the media player control. By default, all buttons are visible when a media player component is added to a form.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.AutoEnable">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether the media player automatically enables and disables individual buttons in the component.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="MPlayer" class="TMediaPlayer">AutoEnable</property> to automatically enable or disable the control buttons on the media player. If <property namespace="MPlayer" class="TMediaPlayer">AutoEnable</property> is true, the media player automatically enables or disables its control buttons. The media player determines which buttons to enable or disable by the current mode specified in the Mode property, and the current multimedia device type specified in the DeviceType property.</para>
<property namespace="MPlayer" class="TMediaPlayer">AutoEnable</property> overrides the EnabledButtons property. The buttons enabled or disabled automatically by the media player supersede any buttons enabled or disabled with EnabledButtons.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="MPlayer" class="TMediaPlayer">AutoEnable</property> is false, the media player does not enable or disable buttons. The buttons must enabled or disabled with the EnabledButtons property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The following table shows whether buttons are automatically enabled or disabled for each device mode:</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines if the media player is opened automatically when the application is run.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="MPlayer" class="TMediaPlayer">AutoOpen</property> to have the media player automatically open at runtime.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="MPlayer" class="TMediaPlayer">AutoOpen</property> is true, the media player attempts to open the multimedia device specified by the DeviceType property (or FileName if DeviceType is dtAutoSelect) when the form containing the media player component is created at runtime. </para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="MPlayer" class="TMediaPlayer">AutoOpen</property> is false, the device must be opened with a call to the Open method.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If an error occurs when opening the device, an exception of type EMCIDeviceError exception is raised that contains the error message. Upon completion, a numerical error code is stored in the Error property, and the corresponding error message is stored in the ErrorMessage property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Wait property determines whether control is returned to the application before opening the multimedia device. The Notify property determines whether opening the device generates an OnNotify event.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.AutoRewind">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines if the media player control rewinds before playing or recording.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="MPlayer" class="TMediaPlayer">AutoRewind</property> is true and the current position is at the end of the medium, Play or StartRecording moves the current position to the beginning of the medium before playing or recording. If <property namespace="MPlayer" class="TMediaPlayer">AutoRewind</property> is false, the user must click the Prev button or write code to call Previous to move to the beginning.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If values have been assigned to StartPos or EndPos or if the multimedia device uses tracks, <property namespace="MPlayer" class="TMediaPlayer">AutoRewind</property> has no effect on playing or recording. When calling Play or StartRecording, the current position remains at the end of the medium.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.DeviceType">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies a multimedia device type to open the media player.</para>
<property namespace="MPlayer" class="TMediaPlayer">DeviceType</property> specifies a multimedia device type to open with the Open method. The default is dtAutoSelect.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="MPlayer" class="TMediaPlayer">DeviceType</property> is dtAutoSelect, the device type is determined by the file extension specified in the FileName property. If no device type is associated with the extension, the correct device type must be explicitly specified by setting <property namespace="MPlayer" class="TMediaPlayer">DeviceType</property> to a value other than dtAutoSelect.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A multimedia device is typically associated with an appropriate file name extension when the device is installed. Associations are specified in the registry or SYSTEM.INI file. See the documentation for the specific device for instructions about how to associate file name extensions with the device.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.Display">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the display window for an multimedia device that uses a window for output.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To use <property namespace="MPlayer" class="TMediaPlayer">Display</property>, assign the name of a windowed control such as a form or panel to <property namespace="MPlayer" class="TMediaPlayer">Display</property> to display output in that control.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The default value of <property namespace="MPlayer" class="TMediaPlayer">Display</property> is nil (Delphi) or NULL (C++), meaning that the device creates its own window to display output. Also, by freeing the control assigned to <property namespace="MPlayer" class="TMediaPlayer">Display</property> after the device has been opened, video output will be in its own default window.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Examples of multimedia devices that use a window to display output are Animation, AVI Video, Digital Video, Overlay, and VCR.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.FileName">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the opened or saved media file.</para>
<property namespace="MPlayer" class="TMediaPlayer">FileName</property> specifies the media file to be opened by the Open method, or the file to save by the Save method.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">At design time, use a file open dialog box to specify the <property namespace="MPlayer" class="TMediaPlayer">FileName</property> property by clicking the ellipsis button (...) in the Object Inspector.</para>
</comments>
</member>
<member name="P:MPlayer.MPlayer.Shareable">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether more than one application can share a multimedia device.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If <property namespace="MPlayer" class="TMediaPlayer">Shareable</property> is false, no other components or applications can access the device. If <property namespace="MPlayer" class="TMediaPlayer">Shareable</property> is true, more than one component or application can access the device. <property namespace="MPlayer" class="TMediaPlayer">Shareable</property> defaults to false.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Be sure to set <property namespace="MPlayer" class="TMediaPlayer">Shareable</property> before opening a device.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Some devices are not shareable. If <property namespace="MPlayer" class="TMediaPlayer">Shareable</property> is set to true for a device that isn't shareable, the Open method fails and the error code is returned to the Error property.</para>
</comments>
</member>
<member name="E:MPlayer.MPlayer.OnClick">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the user presses and releases the mouse button while the mouse pointer is over one of the control buttons, or when the user presses Spacebar while the media player control has focus. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When the media player control has focus and the Spacebar is pressed, the user can use the Left Arrow or Right Arrow keys to select which control button to click.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The EMPNotify type is a method pointer that is called when an <event namespace="MPlayer" class="TMediaPlayer">OnClick</event> event for a <event namespace="MPlayer" class="TMediaPlayer">TMediaPlayer</event> components occurs. The Button argument can be one of the following values: btBack, btEject, btNext, btPause, btPlay, btPrev, btRecord, btStep, or btStop.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The default value of the event handler's DoDefault argument is true. If DoDefault is true, the media player control calls the method that corresponds to the clicked button. For example, if the user clicks the Play button (btPlay), the Play method is called.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If DoDefault is false, the user must write code that executes when a media player control button is clicked in the <event namespace="MPlayer" class="TMediaPlayer">OnClick</event> event handler. The following table lists the default methods corresponding to the media player control buttons:</para>
<event namespace="MPlayer" class="TMediaPlayer">OnPostClick</event> is generated after the code of the OnClick event handler has been called. If Wait is true when the media player was clicked, <event namespace="MPlayer" class="TMediaPlayer">OnPostClick</event> won't be called until the completion of the OnClick code. If Wait is false, control can return to the application before completion of the OnClick code; therefore, the <event namespace="MPlayer" class="TMediaPlayer">OnPostClick</event> event may occur before the actions initiated by the OnClick event have completed.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For example, if the user clicks the Play button and the DoDefault parameter of the OnClick event handler for the media player is true, the media is played. If the media is long enough, it will still be playing when the <event namespace="MPlayer" class="TMediaPlayer">OnPostClick</event> event is generated if Wait is true. If Wait is false, however, <event namespace="MPlayer" class="TMediaPlayer">OnPostClick</event> won't occur until the media has finished playing.</para>
</comments>
</member>
<member name="E:MPlayer.MPlayer.OnNotify">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs upon the completion of a media control method.</para>
<event namespace="MPlayer" class="TMediaPlayer">OnNotify</event> occurs upon the completion of a media control method (Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, Resume, Rewind, StartRecording, Step, or Stop) when the Notify property is set to true before the call to the media control method. After an <event namespace="MPlayer" class="TMediaPlayer">OnNotify</event> event, the Notify property must be reset to true for the next <event namespace="MPlayer" class="TMediaPlayer">OnNotify</event> event to occur.</para>
<class namespace="DdeMan">TDdeClientConv</class> represents a DDE conversation with a DDE server application. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="DdeMan">TDdeClientConv</class> with a TDdeClientItem object to enable an application to act as a DDE client. <class namespace="DdeMan">TDdeClientConv</class> provides many properties, events, and methods that provide services to</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Link to a specified DDE server with a specified DDE topic.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Send data or macro commands to the DDE server after a link has been established.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specify a format for the data that is sent to the DDE server.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Allow event handlers to respond when the DDE link is opened or closed.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">TDdeClientItem objects are associated with a <class namespace="DdeMan">TDdeClientConv</class> by setting their DdeConv property.</para>
</comments>
</member>
<member name="M:DdeMan.DdeMan.PasteLink">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Opens a DDE conversation with the current Clipboard object.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeClientConv">PasteLink</method> to establish a DDE link to an object on the Clipboard. <method namespace="DdeMan" class="TDdeClientConv">PasteLink</method> sets the DdeTopic or DdeService properties from the Clipboard. <method namespace="DdeMan" class="TDdeClientConv">PasteLink</method> returns true if the link is successfully established.</para>
</comments>
</member>
<member name="M:DdeMan.DdeMan.OpenLink">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Initiates a new DDE conversation.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeClientConv">OpenLink</method> to establish a new DDE conversation with the DdeService. If the server application is not running, <method namespace="DdeMan" class="TDdeClientConv">OpenLink</method> will launch the ServiceApplication. If the conversation is successfully opened, an OnOpen event occurs and <method namespace="DdeMan" class="TDdeClientConv">OpenLink</method> returns true. If the conversation isn't successfully opened, <method namespace="DdeMan" class="TDdeClientConv">OpenLink</method> returns false.</para>
<para>If ConnectMode is ddeAutomatic, <method namespace="DdeMan" class="TDdeClientConv">OpenLink</method> is called automatically when the DdeTopic and DdeService are specified by SetLink.</para>
</note>
</comments>
</member>
<member name="M:DdeMan.DdeMan.SetLink">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the service and topic of a DDE conversation and attempts to open the link if ConnectMode is ddeAutomatic.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeClientConv">SetLink</method> to fully specify a DDE conversation. If ConnectMode is ddeManual, calling <method namespace="DdeMan" class="TDdeClientConv">SetLink</method> is equivalent to setting the DdeTopic and DdeService properties, and clearing all data from any associated TDdeClientItem objects. If ConnectMode is ddeAutomatic, <method namespace="DdeMan" class="TDdeClientConv">SetLink</method> opens the link to the DDE server as well.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Service and Topic parameters specify the values for the DdeTopic and DdeService properties, respectively.</para>
</comments>
</member>
<member name="M:DdeMan.DdeMan.StartAdvise">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Starts an advise loop for all of the TDdeClientItems associated with the current DDE conversation. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeClientConv">StartAdvise</method> to start an advise loop for all of the TDdeClientItems associated with the current DDE conversation. <method namespace="DdeMan" class="TDdeClientConv">StartAdvise</method> returns true if loop startup is successful.</para>
</comments>
</member>
<member name="M:DdeMan.DdeMan.PokeDataLines">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sends multiple lines of data to a DDE server application. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="DdeMan" class="TDdeClientConv">PokeDataLines</method> to transfer multiple lines of text data to a DDE server that supports poked data. Item specifies the linked item in the DDE server. Data is a set of strings that specifies the text data to transfer.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of the DDE item depends on the linked DDE server application. Item is typically a selectable portion of text, such as a spreadsheet cell or a database field in an edit box. If the DDE server is a CLX application, Item is the name of the linked DDE server component.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The usual direction of data flow is from the DDE server to the DDE client application. Some DDE server applications won't accept poked data. PokeData returns true if the data was successfully transferred, false if the data was not successfully transferred.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To poke a single string rather than a string list, use the PokeData method.</para>
<para>If either the ExecuteMacro or ExecuteMacroLines method was called with its WaitFlg parameter set to true, PokeData will automatically fail until the server application has completed executing the macro. The WaitStat property indicates when PokeData will attempt to poke data to the server.</para>
</note>
</comments>
</member>
<member name="M:DdeMan.DdeMan.PokeData">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sends data to a DDE server application. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="DdeMan" class="TDdeClientConv">PokeData</method> to transfer text data to a DDE server that supports poked data. Item specifies the linked item in the DDE server. Data is a null-terminated string that specifies the text data to transfer.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of the DDE item depends on the linked DDE server application. Item is typically a selectable portion of text, such as a spreadsheet cell or a database field in an edit box. If the DDE server is a <condition language="Delphi">Delphi</condition>
<condition language="CBuilder">C++Builder</condition> application, Item is the name of the linked DDE server component.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The usual direction of data flow is from the DDE server to the DDE client application. Some DDE server applications won't accept poked data. <method namespace="DdeMan" class="TDdeClientConv">PokeData</method> returns true if the data was successfully transferred, false if the data was not successfully transferred.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">To poke a string list rather than a single string, use the <method namespace="DdeMan" class="TDdeClientConv">PokeData</method>Lines method.</para>
<para>If either the ExecuteMacro or ExecuteMacroLines method was called with its WaitFlg parameter set to true, <method namespace="DdeMan" class="TDdeClientConv">PokeData</method> will automatically fail until the server application has completed executing the macro. The WaitStat property indicates when <method namespace="DdeMan" class="TDdeClientConv">PokeData</method> will attempt to poke data to the server.</para>
</note>
</comments>
</member>
<member name="M:DdeMan.DdeMan.ExecuteMacroLines">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sends a list of several macro commands to a DDE server application.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeClientConv">ExecuteMacroLines</method> to send several macro commands to the server application. To send a single macro command, use ExecuteMacro instead. <method namespace="DdeMan" class="TDdeClientConv">ExecuteMacroLines</method> returns true if the macro list was successfully passed to the DDE server application. If <method namespace="DdeMan" class="TDdeClientConv">ExecuteMacroLines</method> is unable to send a list of command strings, it returns false.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Cmd contains the list of macros to be executed by the DDE server application. WaitFlg determines if this DDE client should wait until the DDE server application finishes executing all the macros before allowing another DDE transaction to be sent. If WaitFlg is set to true, subsequent calls to ExecuteMacro, <method namespace="DdeMan" class="TDdeClientConv">ExecuteMacroLines</method>, PokeData, PokeDataLines, and RequestData will fail until the DDE server application completes all of the macros.</para>
</comments>
</member>
<member name="M:DdeMan.DdeMan.ExecuteMacro">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sends a macro command string to the DDE server application.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeClientConv">ExecuteMacro</method> to send a single macro command to the server application. To send multiple macro commands, use <method namespace="DdeMan" class="TDdeClientConv">ExecuteMacro</method>Lines instead. <method namespace="DdeMan" class="TDdeClientConv">ExecuteMacro</method> returns true if the macro was successfully passed to the DDE server application. If <method namespace="DdeMan" class="TDdeClientConv">ExecuteMacro</method> was unable to send a command string, <method namespace="DdeMan" class="TDdeClientConv">ExecuteMacro</method> returns false.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Cmd is a null-terminated string that contains the macro to be executed by the DDE server application. The actual value of Cmd depends on the DDE server application. See the documentation of the DDE server application for the command strings it will accept.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">WaitFlg determines if this DDE client should wait until the DDE server application finishes executing the macro before allowing another DDE transaction to succeed. If WaitFlg is set to true, subsequent calls to <method namespace="DdeMan" class="TDdeClientConv">ExecuteMacro</method>, <method namespace="DdeMan" class="TDdeClientConv">ExecuteMacro</method>Lines, PokeData, PokeDataLines, and RequestData will fail until the DDE server application completes the macro.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Attempting to execute a macro or poke data before a DDE server application completes a currently executing macro may cause the executing macro to fail or to produce unpredictable results. See the documentation of the DDE server application for the results of sending command strings or poking data before macro execution has completed.</para>
<method namespace="DdeMan" class="TDdeClientConv">ExecuteMacro</method> returns true if the macro command was successfully passed to the DDE server. A true value does not ensure that the macro command will execute successfully once it has been accepted by the server.</para>
</note>
</comments>
</member>
<member name="M:DdeMan.DdeMan.RequestData">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Requests data from a DDE server.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeClientConv">RequestData</method> to send a request to the DDE server for the data named by Item. <method namespace="DdeMan" class="TDdeClientConv">RequestData</method> returns the value of the named DDE server item. </para>
<method namespace="DdeMan" class="TDdeClientConv">RequestData</method> automatically allocates memory to store the returned data, but applications must dispose of this string after processing it. This is done with the StrDispose procedure.</para>
</note>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the DDE server contains DDE items that can be continually updated, data can be received and updated automatically by creating TDdeClientItem objects for those items.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The value of the DDE item depends on the linked DDE server application. Item is typically a selectable portion of text, such as a spreadsheet cell or a database field in an edit box. If the DDE server is a CLX application, Item is the name of the linked DDE server component.</para>
<method namespace="DdeMan" class="TDdeClientConv">Create</method>s an instance of <method namespace="DdeMan" class="TDdeClientConv">TDdeClientConv</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeClientConv">Create</method> to create an instance of <method namespace="DdeMan" class="TDdeClientConv">TDdeClientConv</method>. After calling the inherited constructor, <method namespace="DdeMan" class="TDdeClientConv">Create</method> creates the helper objects used to manage individual DDE client items.</para>
</comments>
</member>
<member name="M:DdeMan.DdeMan.CloseLink">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Terminates an ongoing DDE conversation.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="DdeMan" class="TDdeClientConv">CloseLink</method> when all communication with the DDE server is finished. After a link is closed, no DDE communication can take place between the DDE client and server until another link is opened.</para>
<method namespace="DdeMan" class="TDdeClientConv">Destroy</method>s an instance of <method namespace="DdeMan" class="TDdeClientConv">TDdeClientConv</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="DdeMan" class="TDdeClientConv">Destroy</method> directly in an application. Instead, call Free. Free verifies that the <method namespace="DdeMan" class="TDdeClientConv">TDdeClientConv</method> reference is not nil, and only then calls <method namespace="DdeMan" class="TDdeClientConv">Destroy</method>. </para>
<method namespace="DdeMan" class="TDdeClientConv">Destroy</method> closes the link to the server and frees up all helper objects before calling the inherited destructor.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.DdeFmt">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Represents the clipboard format used for submitting or requesting a data item.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="DdeMan" class="TDdeClientConv">DdeFmt</property> to specify the format of DDE data items when it has not been specified by the server.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.WaitStat">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates whether the server is in the process of servicing a DDE macro that prohibits asynchronous DDE transactions.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="DdeMan" class="TDdeClientConv">WaitStat</property> to learn whether a DDE transaction can be started. When <property namespace="DdeMan" class="TDdeClientConv">WaitStat</property> is true, the server is processing the last macro, and attempts to execute a macro, request data, or poke data will fail. When <property namespace="DdeMan" class="TDdeClientConv">WaitStat</property> is false, the server is free to execute the next transaction in the DDE conversation.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.Conv">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the handle for the current DDE conversation.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="DdeMan" class="TDdeClientConv">Conv</property> to get a handle to the DDE conversation when it is required for a Windows API function call. <property namespace="DdeMan" class="TDdeClientConv">Conv</property> is available once a DDE conversation has been established by OpenLink or PasteLink.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.DataMode">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Governs whether portions of the DDE conversation execute automatically.</para>
<property namespace="DdeMan" class="TDdeClientConv">DataMode</property> is not implemented for <property namespace="DdeMan" class="TDdeClientConv">TDdeClientConv</property>. Derived objects can use this property to automatically execute portions of a DDE conversation, such as a RequestData or PokeData call.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the main executable file name (with path, if necessary) of a DDE server application, without the .EXE extension. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="DdeMan" class="TDdeClientConv">ServiceApplication</property> to the name of the server application. Typically, this is the same value as the DdeService property. Sometimes, however, DdeService is a value other than the DDE server application's executable file name.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the server application is not running when the <property namespace="DdeMan" class="TDdeClientConv">TDdeClientConv</property> tries to establish a DDE conversation, OpenLink uses the <property namespace="DdeMan" class="TDdeClientConv">ServiceApplication</property> property to launch the server.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.DdeService">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the DDE server application to be linked to a DDE client. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="DdeMan" class="TDdeClientConv">DdeService</property> to specify the server application to link to. Typically, <property namespace="DdeMan" class="TDdeClientConv">DdeService</property> is the file name (with path, if necessary) of the DDE server application's main executable file without the .EXE extension. If the DDE server is a CLX application, <property namespace="DdeMan" class="TDdeClientConv">DdeService</property> is the project name without the .DPR or .EXE extension. For example, to link to a TDdeServerConv component in PROJ1.DPR, set <property namespace="DdeMan" class="TDdeClientConv">DdeService</property> to PROJ1.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">At design time, specify <property namespace="DdeMan" class="TDdeClientConv">DdeService</property> by typing the DDE server application name in the object inspector or by choosing Paste Link in the DDE Info dialog box. To establish a link at runtime, specify the service and topic with the SetLink method.</para>
<para>The necessary value for <property namespace="DdeMan" class="TDdeClientConv">DdeService</property> depends on the individual server application. See the documentation of the DDE server application for specific information about how to specify the server application.</para>
</note>
</comments>
</member>
<member name="P:DdeMan.DdeMan.DdeTopic">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the topic of a DDE conversation</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="DdeMan" class="TDdeClientConv">DdeTopic</property> to indicate the server-defined topic name of the DDE conversation. Typically, <property namespace="DdeMan" class="TDdeClientConv">DdeTopic</property> is a file name (with path, if necessary) used by the server application. If the DDE server is a CLX application, by default <property namespace="DdeMan" class="TDdeClientConv">DdeTopic</property> is the caption of the form containing the linked component. If the DDE client is linked to a TDdeServerConv component, <property namespace="DdeMan" class="TDdeClientConv">DdeTopic</property> is the name of the server conversation component rather than the form caption.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">At design time, specify <property namespace="DdeMan" class="TDdeClientConv">DdeTopic</property> either by typing the <property namespace="DdeMan" class="TDdeClientConv">DdeTopic</property> name in the object inspector or by choosing Paste Link in the DDE Info dialog box. To establish a link at runtime, specify the service and topic with the SetLink method.</para>
<para>The server application defines the topic names available for a DDE conversation. See the documentation for the DDE server application for specific information about the names of available topics.</para>
</note>
</comments>
</member>
<member name="P:DdeMan.DdeMan.ConnectMode">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines whether the link to the DDE server is established automatically when the form is opened.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="DdeMan" class="TDdeClientConv">ConnectMode</property> to change the way a DDE conversation is established. If <property namespace="DdeMan" class="TDdeClientConv">ConnectMode</property> is ddeAutomatic, the link is established when it is defined by SetLink. If <property namespace="DdeMan" class="TDdeClientConv">ConnectMode</property> is ddeManual, the application must call the OpenLink method or the PasteLink method to establish the DDE conversation.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.FormatChars">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Determines if certain characters are filtered out of text data transferred from a DDE server application.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <property namespace="DdeMan" class="TDdeClientConv">FormatChars</property> with DDE server applications that transfer backspaces, linefeeds, carriage returns, and tabs with the text data. These formatting characters can cause incorrect spacing, line breaks, or characters in the DDE client data. To prevent the formatting characters from interfering with the formatting of the client data, set <property namespace="DdeMan" class="TDdeClientConv">FormatChars</property> to false. To include the formatting characters sent by the DDE server, set <property namespace="DdeMan" class="TDdeClientConv">FormatChars</property> to true.</para>
</comments>
</member>
<member name="E:DdeMan.DdeMan.OnClose">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the DDE conversation terminates.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="DdeMan" class="TDdeClientConv">OnClose</event> event handler to take specific action when the DDE conversation ends. The DDE conversation will end if the server terminates the conversation, if the link is closed or changed, or if the <event namespace="DdeMan" class="TDdeClientConv">TDdeClientConv</event> object is destroyed.</para>
</comments>
</member>
<member name="E:DdeMan.DdeMan.OnOpen">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs immediately after the DDE link to the server has been established.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="DdeMan" class="TDdeClientConv">OnOpen</event> event handler to take specific action whenever a link is established to the DDE server. The DDE link is established by the <event namespace="DdeMan" class="TDdeClientConv">OnOpen</event> method or the PasteLink method. SetLink will also establish a DDE link if the ConnectMode is ddeAutomatic. <event namespace="DdeMan" class="TDdeClientConv">OnOpen</event> will not be called if the link fails, such as when the server application can't be launched.</para>
</comments>
</member>
<member name="T:DdeMan.TDdeClientItem">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">TDDEClientItem defines an item in a DDE conversation. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use TDDEClientItem with TDDEClientConv to enable an application to act as a DDE client. A DDE client item specifies a single item supported by a DDE server. A single TDDEClientConv object may be associated with multiple client items. If the DDE client conversation has established a link with a DDE server, the server will automatically and continually update all client items until the conversation is terminated.</para>
<method namespace="DdeMan" class="TDdeClientItem">Create</method>s an instance of TDDEClientItem.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeClientItem">Create</method> to instantiate a TDDEClientItem at runtime. After calling the inherited constructor, <method namespace="DdeMan" class="TDdeClientItem">Create</method> creates a helper object to manage the Lines property.</para>
<method namespace="DdeMan" class="TDdeClientItem">Destroy</method>s an instance of TDDEClientItem.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="DdeMan" class="TDdeClientItem">Destroy</method> directly in an application. Instead, call Free. Free checks that the TDDEClientItem is not nil, and only then calls <method namespace="DdeMan" class="TDdeClientItem">Destroy</method>.</para>
<method namespace="DdeMan" class="TDdeClientItem">Destroy</method> frees the memory associated with the Lines property before calling the inherited destructor.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.Text">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Contains the text data to exchange in a DDE conversation. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="DdeMan" class="TDdeClientItem">Text</property> to get the text that is updated by the DDE server application. <property namespace="DdeMan" class="TDdeClientItem">Text</property> is updated automatically by the DDE server. When <property namespace="DdeMan" class="TDdeClientItem">Text</property> is changed by the server, an OnChange event occurs.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set the <property namespace="DdeMan" class="TDdeClientItem">Text</property> property to poke data to the DDE server.</para>
<property namespace="DdeMan" class="TDdeClientItem">Text</property> corresponds to the Lines property. Whenever the value of Lines or <property namespace="DdeMan" class="TDdeClientItem">Text</property> is updated, the other is also changed so that the first line of Lines is always equal to <property namespace="DdeMan" class="TDdeClientItem">Text</property>.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">For text data longer than the 255 character limit of <property namespace="DdeMan" class="TDdeClientItem">Text</property>, use the Lines property.</para>
<para>Data can also be sent to the DDE server by calling the PokeData method of the DDE client conversation.</para>
</note>
</comments>
</member>
<member name="P:DdeMan.DdeMan.Lines">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Contains the text data to exchange in a DDE conversation.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Read <property namespace="DdeMan" class="TDdeClientItem">Lines</property> to get the text that is updated by the DDE server application. <property namespace="DdeMan" class="TDdeClientItem">Lines</property> is updated automatically by the DDE server. When <property namespace="DdeMan" class="TDdeClientItem">Lines</property> is changed by the server, an OnChange event occurs.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set the <property namespace="DdeMan" class="TDdeClientItem">Lines</property> property to poke data to the DDE server.</para>
<property namespace="DdeMan" class="TDdeClientItem">Lines</property> corresponds to the Text property. Whenever the value of <property namespace="DdeMan" class="TDdeClientItem">Lines</property> or Text is updated, the other is also changed so that the first line of <property namespace="DdeMan" class="TDdeClientItem">Lines</property> is always equal to Text.</para>
<property namespace="DdeMan" class="TDdeClientItem">Lines</property> of data can also be sent to the DDE server by calling the PokeData<property namespace="DdeMan" class="TDdeClientItem">Lines</property> method of the DDE client conversation.</para>
</note>
</comments>
</member>
<member name="P:DdeMan.DdeMan.DdeConv">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the DDE client conversation to associate with the DDE client item.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set DdeConv to associate the DDE client item with a DDE client conversation. The value of DdeConv is the DDE client conversation object that defines the DDE conversation. The DdeConv establishes the link to the server that provides the Text for the DDE client item.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.DdeItem">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the item of a DDE conversation. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set the DdeItem property to the name of a DDE item supported by the DDE server. The value of DdeItem depends on the linked DDE server application. DdeItem is typically a selectable portion of text, such as a spreadsheet cell or a database field in an edit box. If the DDE server is a <condition language="Delphi">Delphi</condition>
<condition language="CBuilder">C++Builder</condition> application, DdeItem is the name of the linked DDE server item.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">At design time, specify DdeItem by typing the item string in the object inspector. Alternately, DdeItem can be specified from the DDE conversation by pasting a link using the DDE Info dialog box, which is called by clicking the ellipsis (...) button for DdeService or DdeTopic in the object inspector. After choosing Paste Link in the DDE Info dialog box, choose the item from a list of possible items for DdeItem in the object inspector when link information is on the Clipboard.</para>
<para>See the documentation for the DDE server application for the specific information about specifying DDE items.</para>
</note>
</comments>
</member>
<member name="E:DdeMan.DdeMan.OnChange">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs immediately after the DDE server updates the Lines property.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="DdeMan" class="TDdeClientItem">OnChange</event> event handler to take specific action when the DDE server updates the text for this DDE client item. The new value for the DDE client item can be found by reading the Lines or Text property.</para>
<class namespace="DdeMan">TDdeServerConv</class> represents a DDE topic of conversation with a DDE client.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="DdeMan">TDdeServerConv</class> to establish a DDE topic with a DDE client application. Individual items under the DDE topic are represented by TDdeServerItem objects. These items are linked to the DDE server conversation by setting their ServerConv property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Using a <class namespace="DdeMan">TDdeServerConv</class> component is optional. Without a <class namespace="DdeMan">TDdeServerConv</class> object, the client can still enter into a DDE conversation and receive an update directly from a TDdeServerItem object. However, a DDE server conversation is required to handle any macros that the DDE client may send.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Name property of the DDE server conversation provides the topic used by DDE clients to establish a link to the DDE server conversation. DDE server items that are not associated with a DDE server conversation use the Caption property of the form for the topic name. Use a <class namespace="DdeMan">TDdeServerConv</class> object when establishing multiple DDE topics in a single form, or when the Caption of the form may not be unique or constant at runtime.</para>
</comments>
</member>
<member name="M:DdeMan.DdeMan.ExecuteMacro">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Responds to macros sent by the DDE client.</para>
<method namespace="DdeMan" class="TDdeServerConv">ExecuteMacro</method> provides the only way for a DDE server application to respond to macros sent by DDE clients. <method namespace="DdeMan" class="TDdeServerConv">ExecuteMacro</method> is called when the DDE client sends a Macro over the DDE link. Data is the handle to the DDE data that contains the macro.</para>
<method namespace="DdeMan" class="TDdeServerConv">ExecuteMacro</method> retrieves the strings of the macro from Data, and calls the On<method namespace="DdeMan" class="TDdeServerConv">ExecuteMacro</method> event handler. If there is no On<method namespace="DdeMan" class="TDdeServerConv">ExecuteMacro</method> event handler, the macro is ignored. Whether or not there is an On<method namespace="DdeMan" class="TDdeServerConv">ExecuteMacro</method> event handler, the DDE client always receives notification that the macro was successfully transmitted, unless Data contains no macro.</para>
<method namespace="DdeMan" class="TDdeServerConv">Create</method>s an instance of <method namespace="DdeMan" class="TDdeServerConv">TDdeServerConv</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeServerConv">Create</method> to create an instance of <method namespace="DdeMan" class="TDdeServerConv">TDdeServerConv</method> at runtime. For <method namespace="DdeMan" class="TDdeServerConv">TDdeServerConv</method> objects placed on forms at design time, <method namespace="DdeMan" class="TDdeServerConv">Create</method> is called automatically.</para>
<method namespace="DdeMan" class="TDdeServerConv">Destroy</method>s an instance of <method namespace="DdeMan" class="TDdeServerConv">TDdeServerConv</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="DdeMan" class="TDdeServerConv">Destroy</method> directly in an application. Instead, call Free. Free verifies that the <method namespace="DdeMan" class="TDdeServerConv">TDdeServerConv</method> reference is not nil and only then calls <method namespace="DdeMan" class="TDdeServerConv">Destroy</method>.</para>
<method namespace="DdeMan" class="TDdeServerConv">Destroy</method> removes the DDE server conversation topic from the application, but does not terminate any currently open DDE conversations. Instead, the DDE server items that were associated with the DDE server conversation become associated with the form instead, and continue their link to the DDE client.</para>
</comments>
</member>
<member name="E:DdeMan.DdeMan.OnOpen">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs immediately after the DDE link to the client has been established.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="DdeMan" class="TDdeServerConv">OnOpen</event> event handler to take specific action whenever a link is established to a DDE client. The Sender parameter is the DDE server conversation, not the DDE client.</para>
</comments>
</member>
<member name="E:DdeMan.DdeMan.OnClose">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the DDE client terminates the DDE conversation.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="DdeMan" class="TDdeServerConv">OnClose</event> event handler to take specific action when the DDE conversation ends. The DDE conversation will end if the client terminates the conversation. It does not end if the <event namespace="DdeMan" class="TDdeServerConv">TDdeServerConv</event> object is destroyed. In that case, the DDE server items simply remove themselves from the DDE server conversation, and continue the link to the DDE client.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">The Sender parameter is the DDE server conversation, not the DDE client.</para>
</comments>
</member>
<member name="E:DdeMan.DdeMan.OnExecuteMacro">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the DDE client sends a macro to the DDE server conversation.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="DdeMan" class="TDdeServerConv">OnExecuteMacro</event> event handler to implement a response to macros sent by the DDE client. </para>
<class namespace="DdeMan">TDdeServerItem</class> defines the item of a DDE conversation. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <class namespace="DdeMan">TDdeServerItem</class> by itself, or, optionally, with a TDdeServerConv object to enable an application to function as a DDE server. DDE clients link to an individual DDE server item by referring to the Name property. Once a link to a DDE client is established, the DDE server item can update the client to changes in the item data, or receive data that the DDE client pokes to the item.</para>
</comments>
</member>
<member name="M:DdeMan.DdeMan.PokeData">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Processes data that has been poked to the DDE server item by a DDE client.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeServerItem">PokeData</method> to inform the DDE server item that the DDE conversation holds data that has been poked from a DDE client. Data is the DDE handle to the poked data.</para>
<method namespace="DdeMan" class="TDdeServerItem">Create</method>s an instance of <method namespace="DdeMan" class="TDdeServerItem">TDdeServerItem</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeServerItem">Create</method> to instantiate a DDE server item at runtime. <method namespace="DdeMan" class="TDdeServerItem">TDdeServerItem</method> objects placed on forms at design time are created automatically.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">After calling the inherited constructor, <method namespace="DdeMan" class="TDdeServerItem">Create</method> initializes the Fmt property to CF_TEXT, and creates a helper object to manage the Lines property.</para>
</comments>
</member>
<member name="M:DdeMan.DdeMan.CopyToClipboard">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Copies the data specified in the Text or Lines property to the Windows Clipboard, along with DDE link information.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Use <method namespace="DdeMan" class="TDdeServerItem">CopyToClipboard</method> to enable DDE clients to link to the DDE server item by executing an Edit | Paste Link command, or its equivalent in the command structure of the DDE client application.</para>
<method namespace="DdeMan" class="TDdeServerItem">CopyToClipboard</method> can be used to create a DDE link at runtime only. To create a link at design time, select the <method namespace="DdeMan" class="TDdeServerItem">TDdeServerItem</method> object and choose Edit | Copy from the menu. Then, activate the DDE client application and paste the link according to the rules of the DDE client application. See the documentation for the DDE client application for specific information about pasting the link.</para>
</comments>
</member>
<member name="M:DdeMan.DdeMan.Change">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Generates an On<method namespace="DdeMan" class="TDdeServerItem">Change</method> event.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Call <method namespace="DdeMan" class="TDdeServerItem">Change</method> to trigger an On<method namespace="DdeMan" class="TDdeServerItem">Change</method> event when not setting the Lines or Text property. Use <method namespace="DdeMan" class="TDdeServerItem">Change</method> in conjunction with the On<method namespace="DdeMan" class="TDdeServerItem">Change</method> event to enable the DDE server item to exchange data that is not compatible with the strings used by the Lines and Text properties.</para>
<method namespace="DdeMan" class="TDdeServerItem">Destroy</method>s an instance of <method namespace="DdeMan" class="TDdeServerItem">TDdeServerItem</method>.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Do not call <method namespace="DdeMan" class="TDdeServerItem">Destroy</method> directly in an application. Instead, call Free. Free verifies that the <method namespace="DdeMan" class="TDdeServerItem">TDdeServerItem</method> is not nil, and only then calls <method namespace="DdeMan" class="TDdeServerItem">Destroy</method>.</para>
<method namespace="DdeMan" class="TDdeServerItem">Destroy</method> frees the memory associated with the Lines property before calling the inherited destructor.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.Fmt">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indicates the clipboard format the DDE client item uses to pass data to the DDE client.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="DdeMan" class="TDdeServerItem">Fmt</property> in an OnChange event handler to specify a clipboard format for the data that is passed to the DDE client if it is not text. The DDE data that is sent to the DDE client includes this format so that clients can correctly interpret the data. Read <property namespace="DdeMan" class="TDdeServerItem">Fmt</property> when the client pokes data to the DDE server item to determine the clipboard format the client used to format the data.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.ServerConv">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Specifies the DDE server conversation to associate with the DDE server item. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="DdeMan" class="TDdeServerItem">ServerConv</property> to associate the DDE server item with a DDE topic represented by the DDE server conversation. If <property namespace="DdeMan" class="TDdeServerItem">ServerConv</property> is not set, the DDE topic of the conversation is the value of the Caption property of the form containing the <property namespace="DdeMan" class="TDdeServerItem">TDdeServerItem</property> component.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.Text">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Contains the data to exchange in a DDE conversation. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="DdeMan" class="TDdeServerItem">Text</property> to the data the DDE server item sends to the DDE client. Whenever the <property namespace="DdeMan" class="TDdeServerItem">Text</property> property changes, an OnChange event occurs and then the new value is sent to the DDE client. If the DDE server item accepts poked data, <property namespace="DdeMan" class="TDdeServerItem">Text</property> receives the data whenever the DDE client pokes data to this item. When <property namespace="DdeMan" class="TDdeServerItem">Text</property> is changed by a DDE client poking data, an OnPokeData event occurs after the OnChange event.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Usually <property namespace="DdeMan" class="TDdeServerItem">Text</property> contains text, and setting <property namespace="DdeMan" class="TDdeServerItem">Text</property> sets the Fmt property to CF_TEXT. However, <property namespace="DdeMan" class="TDdeServerItem">Text</property> can contain non-text data. If <property namespace="DdeMan" class="TDdeServerItem">Text</property> does not specify text data, Fmt must be changed to indicate the format of the data in an OnChange event handler.</para>
<property namespace="DdeMan" class="TDdeServerItem">Text</property> corresponds to the Lines property. Whenever the value of Lines or <property namespace="DdeMan" class="TDdeServerItem">Text</property> is changed, the other is updated so that the first line of Lines is always equal to <property namespace="DdeMan" class="TDdeServerItem">Text</property>.</para>
</comments>
</member>
<member name="P:DdeMan.DdeMan.Lines">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Contains the data to exchange in a DDE conversation. </para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Set <property namespace="DdeMan" class="TDdeServerItem">Lines</property> to the data the DDE server item sends to the DDE client. Whenever the <property namespace="DdeMan" class="TDdeServerItem">Lines</property> property changes, an OnChange event occurs and then the new value is sent to the DDE client. If the DDE server item accepts poked data, <property namespace="DdeMan" class="TDdeServerItem">Lines</property> receives the data whenever the DDE client pokes data to this item. When <property namespace="DdeMan" class="TDdeServerItem">Lines</property> is changed by a DDE client poking data, an OnPokeData event occurs after the OnChange event.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Usually <property namespace="DdeMan" class="TDdeServerItem">Lines</property> contains text, and setting <property namespace="DdeMan" class="TDdeServerItem">Lines</property> sets the Fmt property to CF_TEXT. However, <condition language="Delphi">Delphi</condition>
<condition language="CBuilder">C++Builder</condition> strings can contain non-text data. If <property namespace="DdeMan" class="TDdeServerItem">Lines</property> does not specify text data, Fmt must be changed to indicate the format of the data in an OnChange event handler.</para>
<property namespace="DdeMan" class="TDdeServerItem">Lines</property> corresponds to the Text property. Whenever the value of <property namespace="DdeMan" class="TDdeServerItem">Lines</property> or Text is changed, the other is updated so that the first line of <property namespace="DdeMan" class="TDdeServerItem">Lines</property> is always equal to Text.</para>
</comments>
</member>
<member name="E:DdeMan.DdeMan.OnChange">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs when the Lines property changes, before the changes have been sent to the DDE client.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="DdeMan" class="TDdeServerItem">OnChange</event> event handler to take specific action when the DDE server item is about to update the DDE client. The new value for the DDE client item can be found by reading the Lines or Text property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">If the value of Lines does not contain text data, an <event namespace="DdeMan" class="TDdeServerItem">OnChange</event> event handler must be assigned to change the value of Fmt. <event namespace="DdeMan" class="TDdeServerItem">OnChange</event> is called after Fmt gets set to CF_TEXT by setting the Lines property, but before the data gets sent to the client.</para>
</comments>
</member>
<member name="E:DdeMan.DdeMan.OnPokeData">
<summary>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Occurs after a DDE client changes the value of the Lines property.</para>
</summary>
<comments>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Write an <event namespace="DdeMan" class="TDdeServerItem">OnPokeData</event> event handler to take specific action when the DDE client pokes data to this DDE server item. The new value for the item can be found by reading the Lines or Text property.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">When a DDE client pokes data to a DDE server items, the PokeData method is called. PokeData causes the following events.</para>
<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1First, the new value is assigned to the Lines (Text) property.</para>