Microsoft KB Archive/166180

= PRB: Certain Settings Of MaxLength Property Closes Visual FoxPro =

Article ID: 166180

Article Last Modified on 12/11/1999

-

APPLIES TO


 * Microsoft Visual FoxPro 5.0 Standard Edition
 * Microsoft Visual FoxPro 5.0a
 * Microsoft Visual FoxPro 6.0 Professional Edition

-



This article was previously published under Q166180



SYMPTOMS
One of the following may cause Visual FoxPro to quit or cause a system error:
 * Opening a form containing an EditBox control or control based on the EditBox control..
 * Placing a class based on the EditBox control on a form.

The form or class that causes this behavior does not cause a problem in version 3.x of Visual FoxPro for Windows.



CAUSE
This is known to happen if the MaxLength property of a class based on the EditBox control is set to the following: LEN(EVAL(This.ControlSource))



RESOLUTION
Remove the offending functions from the MaxLength property of the class definition for the subclassed EditBox control. If the MaxLength property must be set to LEN(EVAL(This.ControlSource)), set it after placing the instance of the class on a form.



STATUS
Microsoft is researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.



MORE INFORMATION
This is not a problem in Visual FoxPro 3.x for Windows or Visual FoxPro 3.0b for Macintosh.

Note that when entering LEN(EVAL(This.ControlSource))in the Expression Builder, if the Verify button is pushed, the following error messages are returned:

In Visual FoxPro 5.x:

Missing expression.

In Visual FoxPro 3.x for Windows and for Macintosh:

THIS can only be used within a method.

Steps to Reproduce Behavior
Warning: The following steps will crash Visual FoxPro and even possibly the computer's operating system. Make sure anything important is saved and closed.   Create a new class based on the EditBox base class or issue the following command in the Visual FoxPro Command window: CREATE CLASS editcrash OF test.vcx AS editbox   Set the MaxLength property to the following: LEN(EVAL(This.ControlSource))  Save and close the class. Create a new form. Add an instance of the Editcrash class to the new form. To do this, click the View Classes button on the Form Controls toolbar. Choose Add in the Shortcut menu that is displayed. Open the Test.vcx class library file. The buttons on the Form Controls toolbar should now show the classes in the Test.vcx library. There should only be one in the Test.vcx. Place the mouse pointer over the buttons until the tooltip displays "editcrash." Click on this button and then click on the form.</li> Visual FoxPro should crash at this point.</li>  An alternate way to reproduce the crash is to create the class but not set the MaxLength property. Then place the class on a form. Save and close the form. Modify the class set the MaxLength property to the following, save it, and then try opening the form: LEN(EVAL(This.ControlSource)) </li></ol>

Keywords: kbprb KB166180

-

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

© Microsoft Corporation. All rights reserved.