If I execute FoxFire8 by clicking on FFStart9 it runs without errors.
But if I call it from my application (MassTwo) I get these errors after selecting the Developers option.
Please specify a valid object name for FFActiveX.cObjectName FFActiveX.cLibrary (ffdeftvwRegMgrlcons.prg) cannot be found Please specify a valid library name for FFActiveX.cLibrary
And others...
These are the pertinent paths in FFPREFER:
PF_Name: MassTwo Reports PF_RqstFl: DBFS\MAS2RQST.DBF PF_DItemFl: DBFS\MAS2ITEM.DBF PF_JoinFl: DBFS\MAS2JOIN.DBF PF_StylFl: dbfs\FFSTYLEF.DBF PF_FrxDir: REPORTS\ PF_OutDir: OUT\ PF_SetPath: DBFS; ..\Data; ..\MetaData; ..\Programs; PF_InstDbf: FFQLOG.DBF PF_GroupFl: DBFS\MAS2GRPS.DBF
Please let me know if I missed any path setup.
I've posted my calling routine below.
TIA
Peter
*************************************************************************PROCEDURE CALLFF.PRG*************************************************************************Purpose.....: Call and return from FoxFire**Parameters..: tcFFPath**Notes.......: Using the minimum complexity in calling FF now.**Created.....: 1998.10.19**History.....:&& 1999.06.01 New parameter: tcFFPath&& 1999.08.23 Hide MassTwo toolbar during FF execution.&&RS 2009.03.01 PRR2 Turn off our error trapping during call to FF&&RS 2009.03.04 PRR2 Restore screen dimensions after return**********************************************************************lparameter tcFFPath
local lcOldDeflocal lcErrorlocal lcFFStart
if not type("tcFFPath") == "C" tcFFPath = alltrim(goAPPTAB.cFFPath)endif
lcFFStart = tcFFPath + alltrim(goAPPTAB.cFFStart)
if not file(lcFFStart) Msg_RS("<Can't locate FoxFire application>:" +chr(13)+chr(10) ; + lcFFStart,"MD") return .f.endif
goApp.oFrmStatus.oToolbar.visible = .f. && 1999.08.23&&RS 2009.03.06 PRR2 TODO: findout why toolbar is still visable
lcOldDef = sys(5) + curd()
set default to (tcFFPath)
**do ("FOXFIRE") with "REQUESTS", "PRR", "TESTING", "F1CONFIG"
lcOnError = on("ERROR")on error *
**WAIT WINDOW "_screen.width=" + tran(_screen.width) + " _screen.height=" + tran(_screen.height)
do (lcFFStart)set default to &lcOldDefclear
_screen.width = hnScreen_Width_screen.height = hnScreen_Height_screen.windowstate = 0 && _SCREEN assumes dimensions
if type("goApp.oFrmStatus.oToolbar.name") == "C" goApp.oFrmStatus.oToolbar.visible = .t. && 1999.08.23 on error &lcOnErrorendif
return
I'm only testing with my development machine at this time. I have made a simpler calling program which you can see below.
I made a copy of the FF80 directory and placed in beneath the startup directory for my app (MassTwo). If I double-click on the FFStart9.exe file in the FF80 directory, FoxFire starts up normally.
But if I call it with the program below I get this error:
'Please specify a valid object name for FFActiveX.cObjectName'
The paths before the call look like this:
CallFF
Procedure =
Path =
*************************************************************************PROCEDURE TestFF.PRG*************************************************************************Purpose.....: Simplified stub for testing call and return from FoxFire**Parameters..: none**Created.....: &&RS 2009.03.19 PRR2**History.....: Adapted from CallFF.prg**********************************************************************local tcFFPath
local lcErrorlocal lcFFStartlocal lcOldDef
tcFFPath = "FF80\"lcFFStart = "FF80\FFStart9.exe"
lcOldDef = sys(5) + curd()set default to (tcFFPath)
messagebox("CallFF: " ; + "Current Directory = "+sys(2003) + chr(13)+chr(10) ; + "Procedure = " + set("procedure") + chr(13)+chr(10) ; + "Path = " + set("path"))strtofile("CallFF: " ; + "Current Directory = "+sys(2003) + chr(13)+chr(10) ; + "Procedure = " + set("procedure") + chr(13)+chr(10) ; + "Path = " + set("path"), "CallFF.txt")
do (lcFFStart)
messagebox("CallFF: " ; + "Current Directory = "+sys(2003) + chr(13)+chr(10) ; + "Procedure = " + set("procedure") + chr(13)+chr(10) ; + "Path = " + set("path"))
set default to &lcOldDefclear
OK, new calling program. Eliminated my paths and procedure. See below.
It skipped the form with the 'Administrators/Developers' button, but I got the same error. I picked 'DEBUG' this time and got this:
lparameters tlNoLoadif not tlNoLoad return This.LoadActiveX()endif not tlNoLoad
...
assert not empty(.cNewObjectName) and type('.cNewObjectName') = 'C' and ; type('This.Parent.' + .cNewObjectName + '.Top') = 'U' ; message 'Please specify a valid object name for ' + ; 'FFActiveX.cNewObjectName'
The error message I am seeing is coming from this ASSERT.
I don't have any object named FFActiveX.
*************************************************************************PROCEDURE TestFF2.PRG*************************************************************************Purpose.....: Extremely simple stub for testing call and return from FoxFire**Parameters..: none**Created.....: &&RS 2009.03.19 PRR2**History.....: Adapted from CallFF.prg**********************************************************************local tcFFPath
set path toset procedure to
messagebox("CallFF: " ; + "Current Directory = "+sys(2003) + chr(13)+chr(10) ; + "Procedure = " + set("procedure") + chr(13)+chr(10) ; + "Path = " + set("path"))set safety offstrtofile("CallFF: " ; + "Current Directory = "+sys(2003) + chr(13)+chr(10) ; + "Procedure = " + set("procedure") + chr(13)+chr(10) ; + "Path = " + set("path"), "CallFF.txt")set safety on
do ("FOXFIRE.APP") WITH "REQUESTS", "SYSTEM", "", "FFCONFIG.PRG"