************************************************** DEFINE CLASS cparent AS form DoCreate = .T. Visible = .T. Name = "cparent" ADD OBJECT cbutton1 AS commandbutton WITH ; Top = 196, ; Left = 140, ; Caption = "Get Values", ; Name = "Cbutton1" ADD OBJECT ctextbox1 AS textbox WITH ; Left = 155, ; Top = 30, ; Name = "Ctextbox1" ADD OBJECT ctextbox2 AS textbox WITH ; Left = 155, ; Top = 71, ; Name = "Ctextbox2" ADD OBJECT clabel1 AS label WITH ; Caption = "Array Value (2,3)", ; Left = 60, ; Top = 33, ; Name = "Clabel1" ADD OBJECT clabel2 AS label WITH ; Caption = "String Value", ; Left = 83, ; Top = 74, ; Name = "Clabel2" PROCEDURE cbutton1.Click local loParmObject do form Child to loParmObject thisform.cTextBox1.value = loParmObject.aArrayVar[2,3] thisform.cTextBox2.value = loParmObject.cStringVar ENDPROC ENDDEFINE ************************************************** ************************************************** DEFINE CLASS cchild AS form Top = 0 Left = 0 DoCreate = .T. Visible = .T. WindowType = 1 Name = "cchild" ADD OBJECT cbutton1 AS button WITH ; Top = 202, ; Left = 142, ; Caption = "Done", ; Name = "Cbutton1" ADD OBJECT clabel1 AS label WITH ; Caption = "String Value", ; Left = 32, ; Top = 21, ; Name = "Clabel1" ADD OBJECT clabel2 AS label WITH ; Caption = "Array Values", ; Left = 9, ; Top = 57, ; Name = "Clabel2" ADD OBJECT atextbox1 AS textbox WITH ; ControlSource = "thisform.oParmObj.cStringVar", ; Left = 103, ; Top = 18, ; Name = "Atextbox1" ADD OBJECT clistbox1 AS listbox WITH ; ColumnCount = 5, ; ColumnWidths = "40,40,40,40,40", ; RowSourceType = 5, ; RowSource = "thisform.oParmObj.aArrayVar", ; Height = 126, ; Left = 84, ; Top = 58, ; Width = 249, ; Name = "Clistbox1" PROCEDURE Unload local loParmObj loParmObj = thisform.oParmObj return loParmObj ENDPROC PROCEDURE Load local lnCnt, lnRow, lnCol, loParmObj thisform.AddProperty('oParmObj') loParmObj = newobject('cParmObj', 'classes\serial') thisform.oParmObj = loParmObj for lnCnt = 1 to alen(thisform.oParmObj.aArrayVar,0) lnRow = asubscript(thisform.oParmObj.aArrayVar, lnCnt, 1) lnCol = asubscript(thisform.oParmObj.aArrayVar, lnCnt, 2) thisform.oParmObj.aArrayVar[lnRow, lnCol] = lnCnt endfor thisform.oParmObj.cStringVar = 'Groovy!' ENDPROC PROCEDURE cbutton1.Click thisform.Release() ENDPROC ENDDEFINE **************************************************Of course, to get this to work, you'll need to create these classes then do....
create form child as cChild from MyClassLib create form parent as cParent from MyClassLibthen save both forms and run the parent.