IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Impression d'une capture écran


Sujet :

Delphi

  1. #1
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut Impression d'une capture écran
    Bonjour,

    Je vous expose mon soucis.
    Sur un TImage, je place d'autres TImages qui comportent des données. Chacun de ces TImages (créés de façon dynamique) sont reliés par une ligne.
    Je souhaiterai rendre possible l'impression de ce qu'à fait l'utilisateur.
    Afin d'avoir tout le contenu du TImage contenu, je fais une capture écran.
    Ensuite je fais une impression mais le problème, c'est que c'est imprimer en très très petit.
    Je ne sais pas comment imprimer le contenu de ce TImage afin que cela prenne une taille plus adapté.
    Par exemple, faire correspondre la hauteur et la largeur du Timage avec la hauteur et la largeur d'une feuille.

    Voici le code de la capture d'écran ainsi que l'impression:

    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
     
    //Procédure de capture écran
    procedure TFPrincipale.Copier1Click(Sender: TObject);
    var HandleDCBureau : HDC;
    begin
      HandleDCBureau:=GetDC(GetDesktopWindow);
      ImageBureau.Bitmap.Width := BitmapDessin.Width-5;// ImageBureau est un TPicture  qui est créé dès le lancement de l'application
      ImageBureau.Bitmap.Height := BitmapDessin.Height-5;// idem pour la hauteur
      BitBlt(ImageBureau.Bitmap.Canvas.Handle,0,0,BitmapDessin.Width,BitmapDessin.Height,
      HandleDCBureau,BitmapDessin.ClientOrigin.X,BitmapDessin.ClientOrigin.Y,SrcCopy);//recopie l'image du desktop vers ImageBureau
      ReleaseDC(GetDesktopWindow,HandleDCBureau);
      Clipboard.Assign(ImageBureau);
    end;
     
    // Procédure d'impression
    procedure TFPrincipale.Imprimer1Click(Sender: TObject);
    var
    DocImprimer : TBitmap;
     
    begin
      Copier1Click(sender);
      DocImprimer:= TBitmap.Create;
      DocImprimer.Width:=BitmapDessin.Width;
      DocImprimer.Height:=BitmapDessin.Height;
      Printer.BeginDoc;
      Printer.Canvas.Draw(0,0,DocImprimer);
      Printer.EndDoc;
    end;
    J'espère que vous pourrai me mettre sur une piste!
    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Bonjour à tous !

    J'ai résolu le problème pour l'impression.
    J'ai utilisé la fonction StretchDraw.

    Voici le code du bouton imprimer, Copier1Click(sender) étant resté identique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TFPrincipale.Imprimer1Click(Sender: TObject);
    var
    DocImprimer : TBitmap;
    begin
      Copier1Click(sender);
      DocImprimer:= TBitmap.Create;
      DocImprimer.Width:=BitmapDessin.Width;
      DocImprimer.Height:=BitmapDessin.Height;
      DocImprimer.Assign(ImageBureau);
      Printer.Orientation:=poLandscape;
      Printer.BeginDoc;
      Printer.Canvas.StretchDraw(rect(0,0,printer.PageWidth,printer.PageHeight),DocImprimer);
      Printer.EndDoc;
    end;
    Si vous avez une réponse à apporter, une meilleure solution, je suis toujours là

    Bon week end

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réaliser une capture d'écran
    Par izeba dans le forum Imagerie
    Réponses: 9
    Dernier message: 25/05/2007, 16h02
  2. [FAQ] [OpenGL] "Comment faire une capture d'écran ?"
    Par damienlann dans le forum Contribuez
    Réponses: 1
    Dernier message: 07/06/2006, 17h22
  3. [VB.NET] Redimensionner Bitmap d'une capture d'écran
    Par HULK dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/01/2006, 11h31
  4. Réponses: 4
    Dernier message: 30/05/2005, 10h29
  5. Réponses: 10
    Dernier message: 10/10/2003, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo