OnGetPicture Event

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:

  1. 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’.
  2. In the Report Designer, create a DBImage component and connect to the Graphic field.
  3. Use the Delphi code editor to declare a private variable for your form:
      private
         FPicture: TPicture;

     

  4. In the FormCreate event instantiate the picture object:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    
      FPicture := TPicture.Create;
    
    end;

     

  5. In the FormDestroy event, free the picture object:
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
    
      FPicture.Free;
    
    end;

     

  6. 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;