Bonjour,

j'ai un problème avec cette procédure.

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
27
28
29
30
31
32
 
procedure Taccueil_vins.Panel43Click(Sender: TObject);
var
  bitmap: TBitmap;
  desktopHandle: THandle;
  deviceContext: HDC;
  ecran:string;
begin
  desktopHandle:= GetDesktopWindow; // Récupération du handle du bureau
  deviceContext:= GetDC(desktopHandle); // Récupération du contexte de périphérique du bureau
 
  bitmap:= TBitmap.Create; // Création d'une image bitmap
  try
    bitmap.Width:= Screen.Width; // Ajustement de la taille de l'image
    bitmap.Height:= Screen.Height; // pour qu'elle corresponde à celle du bureau
 
    BitBlt(bitmap.Canvas.Handle, 0, 0, bitmap.Width, bitmap.Height,
      deviceContext, 0, 0, SRCCOPY); // Copie du bureau dans l'image bitmap
    ecran:=ExtractFilePath(Application.ExeName)+'ecran.bmp';
    bitmap.SaveToFile(ecran); // Sauvegarde de l'image dans un fichier bmp
 
   Printer.PrinterIndex := 0;
   Printer.Orientation := poLandScape;
   Printer.BeginDoc();
   // on dessine le canevas du Bitmap dans celui de Printer
   Printer.Canvas.Draw(0,0, Bitmap);
   Printer.EndDoc();
 
  finally
    bitmap.Free; // Libération de l'image
    ReleaseDC(desktopHandle, deviceContext); // Libération du contexte de périphérique
  end;
je n'arrive pas à faire imprimer mon image en format A4.
J'ai essayé de mettre bitmap.heigth et Width à 763 et 1024 mais j'ai toujours une image qui fait à peu près 6.5 par 8.5 (en centimètre).

merci