Microsoft KB Archive/139872

= PRB: "Expand is not an array" Error When Using Outline Control =

Article ID: 139872

Article Last Modified on 2/10/2000

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition

-



This article was previously published under Q139872



SYMPTOMS
The Outline control has an Expand property and an Expand event. According to Visual FoxPro Help, you can expand an item of an Outline control (Outline1) by using this code: THISFORM.Outline1.Expand() = .T. However, this code produces this error:

'Expand' is not an array



CAUSE
Visual FoxPro is interpreting Expand as a property of the Outline container object. The syntax is similar to referencing Expand as an array. That is why Visual FoxPro reports this error. You need to tell Visual FoxPro that this is a property of the OLE control that the container is holding. The Help documentation is incomplete.



RESOLUTION
The Object property provides access to the OLE server properties and methods for an OLE object. Therefore, to expand an item, you can use this code: THISFORM.Outline1.Object.Expand() = .T. This assumes that the  of the Outline control contains subordinate items and that it is currently collapsed.



STATUS
This behavior is by design.



MORE INFORMATION
The Outline control (Msoutl32.ocx) is a special type of list box that you can use to display items in a list hierarchically. This is useful for showing directories and files in a file system; it is the technique used by the Windows File Manager.

Steps to Reproduce Behavior
  Open the Debug window, and enter this line: _SCREEN.ACTIVEFORM.ACTIVECONTROL.ListIndex  Use the DO FORM command to run the Outline1.scx form in the Samples\Ole directory. Click the Select a Database button, and select the Testdata.dbc (from the Samples\Data directory) Click different lines on the Outline Sample form to see that the ListIndex changes. Make sure the Customer line (ListIndex 0) is selected but not expanded (collapsed) before you perform the next step.</li>  To expand the Customer item programmatically, type the following command in the Command window: _SCREEN.ACTIVEFORM.OLEControl1.Expand(0) = .T. This will return the error noted above: "'Expand' is not an array." </li>  To get the correct behavior, use the following line of code instead: _SCREEN.ACTIVEFORM.OLEControl1.Object.Expand(0) = .T.                       </li></ol>

Additional query words: VFoxWin

Keywords: KB139872

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.