Pages

Sunday, September 28, 2008

Thursday, September 25, 2008

ImageListAppl classes

The idea with the ImageListAppl classes is that you load and cache a list of images once in for example a form. For each record where you want to show an image, through a display method you just lookup the image in the cached list.

However I often see code where the image list is loaded in the display method itself, putting some overhead on the display method.

Steps to use an ImageListClass
First of all, create a form window control to hold the images. These would be appropriate properties if you place this control in a grid:
PropertyValue
AutoDeclarationYes
AllowEditNo
Width14
Height14
EnabledNo
SkipYes
AlignControlNo
ImageModeSize to fit
ShowLabelNo
DataSourceYour controlling datasource
DataMethodYour method to select the right image

In the ClassDeclaration of the form declare your ImageListAppl class:
ImageListAppl_MyImageList imageListAppl;


In the init method of the form, initialize your ImageListAppl object:


imageListAppl = new ImageListAppl_MyImageList();


And still in the init method pass the list of images to your window control:

myWindowControl.imageList(imageListAppl.imageList());


Implement your display method driving which image to show:

//BP Deviation Documented
display ImageRes myDisplayMethod(MyRecord _myRecord)
{
ImageRes res = -1;
#resAppl;
if (_myRecord.someConditioin())
{
res = imageListAppl.image(#MyImage);
}
return res;
}


That's it...