Microsoft KB Archive/113031

= FIX: ActiveControl Property of Screen Object Loses Memory =

Article ID: 113031

Article Last Modified on 10/29/2003

-

APPLIES TO


 * Microsoft Visual Basic 3.0 Professional Edition
 * Microsoft Visual Basic 3.0 Professional Edition

-



This article was previously published under Q113031



SYMPTOMS
It is possible to receive an "Out of Memory" error when using the ActiveControl property of the Visual Basic Screen object.



CAUSE
The ActiveControl property of the screen object can leak memory when used with the Is operator.



RESOLUTION
Use a temporary variable to work around the problem. For example, change the command click event in the code listed in the More Information section below to this code: Sub Command1_Click Dim ctr As Long Dim ActControl As control Do     ctr = ctr + 1 Text1.Text = ctr ' Use a temporary object variable Set ActControl = Screen.ActiveControl If ActControl Is Command1 Then End If  Loop End Sub This code should run indefinitely.



STATUS
Microsoft has confirmed this to be a bug in Visual Basic version 3.0 for Windows. This problem has been corrected in Visual Basic version 4.0.



Steps to Reproduce Problem
 Start a new project in Visual Basic. Form1 is created by default. Put a command button (Command1) and a text box (Text1) on the form.  Add the following code to the command button's click event: Sub Command1_Click Dim ctr As Long Do        ctr = ctr + 1 Text1.Text = ctr If Screen.ActiveControl Is Command1 Then End If     Loop End Sub  Run the program, and you will receive an "Out of Memory" error eventually.

Additional query words: buglist3.00 3.00 MemLeak fixlist4.00

Keywords: kbbug kbfix KB113031

-

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

© Microsoft Corporation. All rights reserved.