Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
VFP Closed immediately after build
Message
De
11/08/2008 13:30:03
 
 
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:
01338096
Vues:
22
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