Bonjour à tous,

j'ai une fonction qui me permet d'imprimer le contenu de plusieurs listbox mais le problème c'est que je n'arrive a imprimer q'une page balgré que ma boucle contient tout les éléments, une seule page sort de l'imprimante.

Le composant TPrinterDlg a une propriété PrintRange qui est par défaut a prAllPages, je l'ai également initialisée au début de ma boucle mais rien y fait.
Voici mon 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
var
  Line,H : integer;
  MyPrinter: TPrinter;
  test : integer;
begin
  if PrintDialog1.Execute then
  begin
    MyPrinter := Printer;
    MyPrinter.BeginDoc;
    MyPrinter.Canvas.Font.Name := 'Arial';
    MyPrinter.Canvas.Font.Size := 7;
    H := MyPrinter.Canvas.TextHeight('Gg') + 2;
    test :=  Listbox1.Items.Count-1;
    for Line := 0 to test do
    begin
      MyPrinter.Canvas.TextOut(25, 25 + Line * H, ListBox1.Items.Strings[Line]);
      MyPrinter.Canvas.TextOut(250, 25 + Line * H, ListBox2.Items.Strings[Line]);
      MyPrinter.Canvas.TextOut(2000, 25 + Line * H, ListBox3.Items.Strings[Line]);
      MyPrinter.Canvas.TextOut(2300, 25 + Line * H, ListBox4.Items.Strings[Line]);
      MyPrinter.Canvas.TextOut(3300, 25 + Line * H, ListBox5.Items.Strings[Line]);
      MyPrinter.Canvas.TextOut(3600, 25 + Line * H, ListBox6.Items.Strings[Line]);
      MyPrinter.Canvas.TextOut(4400, 25 + Line * H, ListBox7.Items.Strings[Line]);
    end;
    MyPrinter.EndDoc;
  end;
end;
Voilà, si vous avez une idée de quelle propriété se cache derière ce "bloquage"

Encore une chose : J'ai regardé du côté de Tprinters et il y a une propriété PageNumber qui est toujours à 1. Elle est déclarée en Private dans le compostant alors pas possible d'influencer dessus.

Encore merci pour l'énergie de ce forum et à très vite !

inc002