Q142885: How to Add the Data Environment to a Form Programmatically
Article: Q142885
Product(s): Microsoft FoxPro
Version(s): 3.00 3.00b
Operating System(s):
Keyword(s): kbcode kbvfp300 kbvfp300b kbvfp600
Last Modified: 09-AUG-1999
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual FoxPro for Windows, versions 3.0, 3.0b, 6.0
-------------------------------------------------------------------------------
SUMMARY
=======
When a form is created using the Form Designer, a DataEnvironment object is
automatically added to the form. To simulate this behavior in a programmatically
created form, a DataEnvironment property must be declared for the form. Then a
pointer to a DataEnvironment object may be stored in the form's DataEnvironment
property.
MORE INFORMATION
================
1. Create a new program and type the following code:
oform1=CREATEOBJECT("Myform") && Instantiate the form
oform1.SHOW(0)
oform1.refresh
READ EVENTS
RETURN
DEFINE CLASS Data1 AS dataenvironment && DataEnvironment Class
Name = "Dataenvironment"
ADD OBJECT "Cursor1" AS MyCursor && ADD OBJECT for each
ENDDEFINE && cursor in dataenvironment
DEFINE CLASS MyCursor AS cursor && Cursor Class
Alias = "customer"
Database = "C:\vfp\samples\data\testdata.dbc"
CursorSource = "customer"
Name = "Cursor1"
ENDDEFINE
DEFINE CLASS Myform AS form
Top = 0
Left = 0
Height = 386
Width = 587
DoCreate = .T.
Caption = "Form1"
Name = "FORM1"
DataEnvironment="" && DataEnvironment is a property
&& of the form.
PROCEDURE Destroy
WAIT WINDOW PROGRAM() TIMEOUT 2
THISFORM.DATAENVIRONMENT.CLOSETABLES && Close tables at the end
ENDPROC && of destroy procedure.
PROCEDURE Unload
CLEAR EVENTS
ENDPROC
PROCEDURE Load
* The DataEnvironment is instantiated and the form property
* DataEnvironment references the object. The DataEnvironment
* is never actually added to the form. THISFORM.DATAENVIRONMENT
* is just a pointer to the DataEnvironment object.
THISFORM.DATAENVIRONMENT=CREATEOBJECT("Data1")
* Open the tables at the beginning of the LOAD.
THISFORM.DATAENVIRONMENT.OPENTABLES
WAIT WINDOW PROGRAM() TIMEOUT 2
ENDPROC
ENDDEFINE
2. Open the Debug window.
3. Type the following on the left side of the debug window
_SCREEN.ACTIVEFORM.DATAENVIRONMENT.NAME
4. Run the program created in step 1.
5. Note that the debug window correctly displays Dataenvironment as the value of
_SCREEN.ACTIVEFORM.DATAENVIRONMENT.NAME
Additional query words: VFoxWin
======================================================================
Keywords : kbcode kbvfp300 kbvfp300b kbvfp600
Technology : kbVFPsearch kbAudDeveloper kbVFP300 kbVFP300b kbVFP600
Version : 3.00 3.00b
=============================================================================
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1986-2002.