Distributing resources

You can choose to distribute your resources (pictures, pointers, and icons) separately or include them in your executable file or dynamic library.

Distributing resources separately

When a resource is referenced at runtime, if the resource has not been included in the executable file or in a dynamic library, PowerBuilder looks for it in the search path. You need to distribute resources with your application and make sure they get installed in the user's search path.

For example, assume you use two bitmap files as in the following script:

IF Balance < 0 THEN
   p_logo.PictureName = "frown.bmp"
ELSE
   p_logo.PictureName = "smile.bmp"
END IF

You can distribute the files frown.bmp and smile.bmp with your application. If the files are on the search path at runtime, the application can load them when they are needed.

The Windows search path is as follows:

  • The current directory

  • The Windows directory

  • The Windows system directory

  • All directories in the PATH environment variable

Using PowerBuilder resource files

Instead of distributing resources separately, you can create a PowerBuilder resource file (a PBR file) that lists all dynamically assigned resources.

A PBR file is an ASCII text file in which you list resource names (such as BMP, CUR, GIF, ICO, JPEG, RLE, WMF, and PNG files) and DataWindow objects. To create a PBR file, use a text editor. List the name of each resource, one resource on each line, then save the list as a file with the extension PBR.

Here is a sample PBR file:

ct_graph.ico
document.ico
codes.ico
button.bmp
next1.bmp
prior1.bmp
background.png

PowerBuilder compiles the listed resources into the executable file or a dynamic library file, so the resources are available directly at runtime.

Using DataWindow objects

If the objects in one PBL reference DataWindow objects, either statically or dynamically, that are in a different PBL, you must either specify a PowerBuilder resource file that includes the DataWindow objects, or define the library that includes them as a PBD or DLL that you distribute with your application. You cannot distribute them separately as you can image files.

For more information about creating and using PBR files, see Packaging an Application for Deployment in Application Techniques.

What happens at runtime

When a resource such as a bitmap is referenced at runtime, PowerBuilder first looks in the executable file for it. Failing that, it looks in the PBDs that are defined for the application. Failing that, it looks in directories in the search path for the file.