TECH TIP: Using the JITPipeilne OnGetPicture Event to Display Images
Question: “I am using a JITPipeline to output data stored in a series of stringlists,
one of these stringlists contains the names of a graphic. How can I use the JITPipeline.OnGetPicture Event to display an image?”
Solution:
- Use JITPipeline fields editor to declare a Field with FieldType = dtGraphic. For this example, set the FieldName to ‘Graphic’. Create a second Field with FieldType = dtString and set the FieldName to ‘GraphicFile’.
- In the Report Designer, create a DBImage component and connect to the Graphic field.
- Use the Delphi code editor to declare a private variable for your form:
private FPicture: TPicture;
- In the FormCreate event instantiate the picture object:
procedure TForm1.FormCreate(Sender: TObject); begin FPicture := TPicture.Create; end;
- In the FormDestroy event, free the picture object:
procedure TForm1.FormDestroy(Sender: TObject); begin FPicture.Free; end;
- In the JITPipeline.OnGetPicture event, load the picture:
function TForm1.ppJITPipeline1GetFieldAsPicture(aFieldName: String): TPicture; var lsFileName: String; begin if aFieldName = 'Graphic' then begin lsFileName := JITPipeline['GraphicFile']; FPicture.LoadFromFile(lsFileName); end; Result := FPicture; end;