<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-15">
<META content="MSHTML 6.00.6002.18100" name=GENERATOR></HEAD>
<BODY style="MARGIN: 4px 4px 1px">
<DIV>Hendrik:</DIV>
<DIV> </DIV>
<DIV>Here is an excerpt from the FormsVBT Reference Manual (page 14) that describes how to choose at runtime whether to use the bundled data or data stored in a file.  Hope this helps.</DIV>
<DIV> </DIV>
<DIV>Regards,</DIV>
<DIV>Randy</DIV>
<DIV> </DIV>
<DIV>MODULE Hello EXPORTS Main;<BR>IMPORT FormsVBT, HelloBundle, Rsrc, Trestle;<BR>VAR<BR>   path := Rsrc.BuildPath(HelloBundle.Get());<BR>   fv := NEW (FormsVBT.T).initFromRsrc ("Hello.fv", path);<BR>BEGIN<BR>   Trestle.Install(fv);<BR>   Trestle.AwaitDelete(fv)<BR>END Hello.</DIV>
<DIV><BR>The call to HelloBundle.Get returns a bundle that is used to create a resource-path, which is<BR>then searched by the initFromRsrc method.<BR></DIV>
<DIV>But what if you want the application to use new resource files? For example, you might have<BR>changed some details of the .fv file that don't require any changes to the application code. Do you<BR>have to rebuild the entire application?<BR></DIV>
<DIV>Fortunately, the answer is no. However, you do need to tell FormsVBT that youwant it to look for<BR>those resources in the file systembefore it looks for them among the resources that were bundled into<BR>the application. You do this by changing the resource-path so that it includes one ormore directories<BR>before the bundle.<BR></DIV>
<DIV>The convention is to use environment variables whose names are spelled by combining the program's<BR>name with the string "PATH". This variable should be set to a list of directory-names, each<BR>separated by a colon. So, if you want to run the Hello program using the Hello.fv file that's in<BR>Smith's home directory instead of the one that's bundled with the application, you would type something<BR>like this shell command:<BR></DIV>
<DIV>   setenv HelloPATH /user/smith<BR></DIV>
<DIV>In the program, you would construct a resource-path that included this directory by adding the name<BR>HelloPATH, prefixed with a dollar sign:<BR></DIV>
<DIV>MODULE Hello EXPORTS Main;<BR>IMPORT FormsVBT, HelloBundle, Rsrc, Trestle;<BR>VAR<BR>   path := Rsrc.BuildPath("$HelloPATH", HelloBundle.Get());<BR>   fv := NEW (FormsVBT.T).initFromRsrc ("Hello.fv", path);<BR>BEGIN<BR>   Trestle.Install(fv);<BR>   Trestle.AwaitDelete(fv)<BR>END Hello.<BR><BR>>>> <hendrik@topoi.pooq.com> 11/10/2009 1:34 PM >>><BR>On Sat, Nov 07, 2009 at 03:34:12PM -0500, Randy Coleburn wrote:<BR>> Sounds like a job for bundles.<BR>>  <BR>> I use bundles a lot with FormsVBT and Trestle in Modula-3.  The idea <BR>> is that you create a bundle of the file(s) you need, but you code it <BR>> so that you can override these bundled defaults by placing a real file <BR>> in a certain location relative to the program binary.<BR>>  <BR>> If you want to see a code example, let me know and I'll send you something.<BR><BR>Yes, I'd appreciate a code example.<BR><BR>-- hendrik<BR></DIV></BODY></HTML>