************************************************************************ * codefile.prg ************************************************************************ * Example only * Creates a table that stores a code name and code code * Allows program code to be compiled and run on the fly by seeking * the program name to run (stored in cprogram character field) and running * the associated code (stored in mcode memo field) * * VFP7 Example Usage: * EXECSCRIPT(codefile.mcode,'Good Morning',64,'Personal Message') * * FPD26 USAGE: * STRTOFILE(mcode, lcFileName ) * COMPILE (lcFileName) * DO (lcFileName) WITH 'This is an example using the compile'; * +'for FPD26.','15,10',10 * CLEAR IF FILE('codefile.dbf') DELETE FILE ('codefile.dbf') ENDIF IF FILE('codefile.cdx') DELETE FILE ('codefile.cdx') ENDIF IF FILE('codefile.fpt') DELETE FILE ('codefile.fpt') ENDIF lcFileName = SYS(2015) lcDelete=lcFilename + ".fxp" lcFileName=lcFilename+".prg" #IF 'VISUAL' $ UPPER(VERSION()) SET SAFETY OFF SELE 0 CREATE TABLE codefile FREE (cprogram c(15), mcode m) INDEX ON cprogram TAG cprogram SET ORDER TO TAG cprogram APPEND BLANK REPLACE cprogram WITH 'msgbox' REPLACE mcode WITH ; "PARAMETERS cmsg,nbuttons,ctitle"+CHR(13); +"IF TYPE('cmsg')='L'"+CHR(13); +" cmsg='This is a test message.'"+CHR(13); +"ENDIF"+CHR(13); +"IF TYPE('nbuttons')='L'"+CHR(13); +" nbuttons=16"+CHR(13); +"ENDIF"+CHR(13); +"IF TYPE('ctitle')='L'"+CHR(13); +" ctitle='IMPORTANT MESSAGE'"+CHR(13); +"ENDIF"+CHR(13); +"MESSAGEBOX(cmsg,nbuttons,ctitle)"+CHR(13) IF SEEK('msgbox','codefile','cprogram') *VFP7/VFP8 code: EXECSCRIPT(codefile.mcode,'VFP7 msg',64,'codeFile example.') *VFP6 and below code: STRTOFILE(mcode, lcFileName ) COMPILE (lcFileName) DO (lcFileName) WITH 'VFP6',64,'codeFile example.' ELSE WAIT WINDOW "Could Not Find Program to Run." AT 22,35 ENDIF #ELSE SET SAFETY OFF SELE 0 CREATE TABLE codefile (cprogram c(15), mcode m) INDEX ON cprogram TAG cprogram SET ORDER TO TAG cprogram APPEND BLANK REPLACE cprogram WITH 'waitbox' REPLACE mcode WITH ; "PARAMETERS cmsg,clocation,ntimeout"+CHR(13); +"IF TYPE('cmsg')='L'"+CHR(13); +" cmsg='This is a test message.'"+CHR(13); +"ENDIF"+CHR(13); +"IF TYPE('clocation')='L'"+CHR(13); +" clocation='22,35'"+CHR(13); +"ENDIF"+CHR(13); +"IF TYPE('ntimeout')='L'"+CHR(13); +" ntimeout=5"+CHR(13); +"ENDIF"+CHR(13); +"mycode=' WAIT WINDOW '"+";"+CHR(13); +"+CHR(39)+cmsg+CHR(39)"; +"+' AT '"+";"+CHR(13); +"+clocation"+";"+CHR(13); +"+' TIMEOUT '"; +"+ALLTRIM(STR(ntimeout))"; +CHR(13); +"&mycode" WAIT WINDOW "Ready to seek" IF SEEK('waitbox','codefile','cprogram') STRTOFILE(mcode, lcFileName ) COMPILE (lcFileName) DO (lcFileName) WITH 'FPD26.','15,10',10 ELSE WAIT WINDOW "Could Not Find Program to Run." AT 22,35 ENDIF #ENDIF IF USED('codefile') USE IN codefile ENDIF IF FILE(lcFileName) DELETE FILE (lcFileName) ENDIF IF FILE(lcDelete) DELETE FILE (lcDelete) ENDIF RETURNTIA All!!!