Bonjour,
je fais un programme permettant de faire des rapports d'intervention et de les sauvegarder en PDF, tout fonctionne mais on m'a demandé la possibilité de rajouter des images JPG. J'utilise Delphi 2005 Personnel.

Avec le code que j'ai fais, lorsque je veux insérer plusieurs image, il prend bien en compte chaque image, mais il sauvegarde toujours la même dans le fichier PDF.
Je sais qu'il prend bien en compte les images car je modifie la taille de l'image pour que l'image soi bien intégré dans la page, donc si je mets une image de 800*600 et une autre de 32*32, dans mon fichier PDF, j'aurais l'image 800*600 mis à l'échelle et l'image de 32*32 conservera sa taille mais l'image sera la première.

Voilà le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
  PReport1.BeginDoc;
  PReport1.Print(form2.prpage1);
  PReport1.Print(form3.prpage1);
  if form4.ListBox1.Items.Count<>0 then
  begin
  for i:=0 to Form4.ListBox1.Items.Count-1 do
    begin
      page:=TPRPage.Create(self);
      calque:=TPRLayoutPanel.Create(page);
      calque.Parent:=page;
      calque.Align:=alClient;
      image:=TPRJpegImage.Create(calque);
      image.Parent:=calque;
      image.Picture.LoadFromFile(Form4.ListBox1.Items.Strings[i]);
      if image.Picture.Width>page.Width then
        begin
        image.Width:=page.Width;
        image.Height:=Trunc(image.Picture.height * (page.Width / image.Picture.Width));
        image.Stretch:=True;
      end;
      PReport1.Print(page);
      page.Free;
  end;
  end;
  PReport1.EndDoc;
Je ne saisi pas le problème, est-ce que le problème peut venir de la libération mémoire qui n'est pas faite correctement?
J'ai essayé de passer la procédure d'insertion d'image dans une procédure ainsi que créer un array de mes page, calque, image mais sans résultat.

Merci de votre aide.