Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
VFP Closed immediately after build
Message
De
11/08/2008 13:42:35
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP SP2
Database:
Visual FoxPro
Divers
Thread ID:
01338052
Message ID:
01338100
Vues:
27
I did it few times, each time the same problem.

BTW, If I add messagebox and return before the do form top form I dont have problem.

>Ok, sounds like you have a problem with the project itself. Try to create a new project and just add your main program. Would it build OK?
>
>>The strt code is below.
>>
>>Vfp closes after when I try to build.
>>the VFP9.exe apered on windows task manager processes, I must to terminate it manually and to restore my project from backup (PJX memo damage).
>>
>>
>>
**** start app ****
>>local lerrorflag,cerror,cdatabase,nloop,nanswer,lfrmlogin,cdbcname,nlength,lcdefaultpath
>>set procedure to sysproc additive
>>oapp=createobject('clSystem')
>>do header
>>do declare
>>oapp.startdir=sys(5)+curdir()
>>
>>**** open config.dbf
>>select 0
>>cerror=on("ERROR")
>>on error lerrorflag=.t.
>>use config shared
>>on error &cerror.
>>if lerrorflag=.t.
>>	=messagebox("Cannot Open Config.dbf"+chr(13)+sys(5)+curdir(),0+16,oapp.msgtitle)
>>	do footer
>>	return
>>endif
>>**** open settings.dbf
>>select 0
>>cerror=on("ERROR")
>>on error lerrorflag=.t.
>>use settings shared
>>on error &cerror.
>>if lerrorflag=.t.
>>	oapp.settingflag=.f.
>>else
>>	oapp.settingflag=.t.
>>endif
>>lerrorflag=.f.
>>**** open database
>>cdbcname=alltrim(config.datadir)+oapp.dbcname+".dbc"&&DY data base name:dyts.dbc
>>nlength=len(oapp.dbcname)+4		&& add '.dbc'
>>wait window "Open Database" nowait
>>cerror=on("ERROR")
>>on error lerrorflag=.t.
>>_screen.visible=.t.
>>cdatabase=alltrim(locfile(cdbcname,"dbc"))
>>_screen.visible=.f.
>>on error &cerror.
>>if lerrorflag=.t.
>>	wait clear
>>	do footer
>>	return
>>endif
>>if upper(right(cdatabase,nlength))<>upper(oapp.dbcname)+".DBC"
>>	wait clear
>>	=messagebox("Wrong Database!",0+16,oapp.msgtitle)
>>	do footer
>>	return
>>endif
>>wait clear
>>cerror=on("ERROR")
>>on error lerrorflag=.t.
>>open database &cdatabase. shared
>>on error &cerror.
>>if lerrorflag=.t.
>>	=messagebox("Cannot Open Database",0+16,oapp.msgtitle)
>>	do footer
>>	return
>>endif
>>if upper(left(cdatabase,len(cdatabase)-nlength))<>upper(alltrim(config.datadir))
>>	replace config.datadir with left(cdatabase,len(cdatabase)-nlength)
>>endif
>>**** start application
>>do form topform name topform linked
>>
>>read events
>>if type("oApp")="O" and not isnull(oapp)	&& it might be helpful :)
>>	do footer
>>endif
>>return
>>
>>
>>define class clsystem as custom
>>	version="3.1"
>>	msgtitle="Main Company"
>>	dbcname="maindata"
>>	userid=''
>>	errorind=0
>>	quitflag=.f.
>>	topform=.null.
>>	frmlogin=.null.
>>	startdir=""
>>	debugflag=.f.
>>	register1=.f.	&& for dynamic multi-object processes, sometimes can be object!
>>	settingflag=.f.	&& for saving individual settings
>>	frmsplash=.null.
>>	blockmenu=.f.
>>enddefine
>>
>>define class myheader as header		&& header for shipinvn.scx
>>	fieldnumber=0
>>	procedure rightclick
>>		thisform.headerrightclick(this)
>>	endproc
>>enddefine
>>
>>
>>
>>
>>function apishellexecute(m.lnhwnd, m.lcoperation, m.lcfile, m.lcparameters, m.lcdirectory, m.lnshowcmd)
>>	declare integer ShellExecute in Shell32.dll as apiShellExecute ;
>>		integer lnHwnd, ;
>>		string lcOperation, ;
>>		string lcFile, ;
>>		string lcParameters, ;
>>		string lcDirectory, ;
>>		integer lnShowCmd
>>	return apishellexecute(m.lnhwnd, m.lcoperation, m.lcfile, m.lcparameters, m.lcdirectory, m.lnshowcmd)
>>endfunc
>>
>>
>>
>>**********************************sysproc
>>
>>
>>procedure header
>>	on error do errorhandler with program(),lineno(1)
>>	clear
>>	close data all
>>	close tables all
>>	set exclusive off
>>	set escape on
>>	set deleted on
>>	set exact on
>>	set confirm off
>>	set near on
>>	set multilocks on
>>	set sysmenu to
>>	set path to
>>	set classlib to class1
>>	set classlib to class2 additive
>>	set reprocess to automatic
>>	set collate to 'MACHINE'
>>	set century off
>>	set century to 19 rollover 15
>>	=hidescreen()
>>	_screen.caption="company"
>>	_screen.icon="desktop.ico"
>>	_screen.fontname="Arial"
>>	_screen.fontsize=8
>>	_screen.fontbold=.f.
>>	_screen.themes=.f.
>>	set status bar off
>>	on shutdown do quitapp
>>	on escape do escapekey
>>	return
>>endproc
>>
>>
>>
>>
>>
>>procedure footer
>>	wait window 'Closing... Wait, Please!' nowait
>>	close data all
>>	close tables all
>>	set escape on
>>	set deleted off
>>	set exact off
>>	set multilocks off
>>	set sysmenu to default
>>	set path to
>>	set classlib to
>>	set exclusive on
>>	set notify on
>>	oapp.topform=.null.
>>	oapp.register1=.null.
>>	release all
>>	=showscreen()
>>	_screen.caption="Microsoft Visual Foxpro"
>>	set status bar on
>>	on shutdown
>>	on key
>>	on error
>>	on escape
>>	set procedure to
>>	clear all
>>	wait clear
>>	set talk on
>>	return
>>endproc
>>
>>
>>procedure escapekey
>>	if type('oApp')<>'O' or isnull(oapp)
>>		on shutdown
>>		cancel
>>		return
>>	endif
>>	if messagebox('Do You Really Want To Cancel Processing And Close The System?', ;
>>			4+32,oapp.msgtitle)<>6
>>		retry
>>	endif
>>	on shutdown
>>	clear events
>>	cancel
>>	quit
>>	return
>>endproc
>>
>>
>>
>>
>>function showscreen
>>	_screen.left=0
>>	_screen.windowstate=2
>>	_screen.caption=""
>>	_screen.visible=.t.
>>	return
>>endfunc
>>
>>
>>function hidescreen
>>	_screen.left=-2000
>>	_screen.windowstate=2
>>	_screen.caption=""
>>	_screen.visible=.f.
>>	return
>>endfunc
>>
>>
>>procedure showtable&&brow table for developer debug
>>	lparameter calias
>>	=showscreen()
>>	select (calias)
>>	browse
>>	=hidescreen()
>>	return
>>endproc
>>
>>
>>procedure quitapp&&stop event processing
>>	on shutdown
>>	if vartype(_screen.themesmanager)=="O"
>>		_screen.removeobject("ThemesManager")
>>	endif
>>	if type('oApp')<>'O'
>>		clear events
>>		return
>>	endif
>>	if type('oApp.topform.tmrTop')=='O' and not isnull(oapp.topform.tmrtop)
>>		oapp.topform.closemodalforms()
>>		oapp.topform.tmrtop.enabled=.t.
>>	else
>>		oapp.quitflag=.t.
>>		clear events
>>	endif
>>	return
>>endproc
>>
>>
>>
>>
>>procedure errorhandler
>>	parameter cprogram,nline
>>	local nanswer
>>	local array aerrorinfo(7)
>>	=aerror(aerrorinfo)
>>	if used('syserror')
>>		insert into syserror (userid,sysinfo,created,linenum,errornum,errormsg,progname) ;
>>			values(oapp.userid,sys(0),datetime(),nline,aerrorinfo[1],aerrorinfo[2],cprogram)
>>	endif
>>	nanswer=messagebox("Application Error: "+aerrorinfo[2]+". Program "+cprogram+ ;
>>		". Line "+alltrim(str(nline)),2+16,oapp.msgtitle)
>>	do case
>>		case nanswer=3	&& abort
>>			oapp.errorind=1
>>			do quitapp
>>			on error
>>			*	cancel
>>		case nanswer=4	&& retry
>>			retry
>>		case nanswer=5	&& ignore
>>			oapp.errorind=1
>>	endcase
>>	return
>>endproc
>>
>>
>>
>>
>>>>Help Please
>>>>When I run build in my new project VFP Closed immediately
>>>>even I use with "read events".
>>>>
>>>>Thanks
>>>
>>>Can you post your main program? Do you use forms in your application? Do you start with some modal form?
>>>
>>>BTW, do you mean VFP closes after you run your EXE or in the process of building the EXE (project)?
Thank you
Chaim
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform