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

C++Builder Discussion :

imprimer une interface TForm


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 27
    Points : 13
    Points
    13
    Par défaut imprimer une interface TForm
    salut a tous;
    je programme avec c++builder6, je voudrez imprimer l'interface de TForm
    voila le code que j'ai fais
    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
    void __fastcall TForm4::imp1Click(TObject *Sender)
     
     {
     
     
       Form4->Width = 1000; 
      Form4->Height = 7800; 
     
     
     Form4->Font->Size = 10;
     
      if (PrintDialog1->Execute())
     
        Form4->Print();
     
      }
    sur le coté width j'ai pas de probleme. mais sur le coté height ca pose probleme ca bloque sur 7800 y a pas plus. quand je lance l'impression sur une page A4 l'interface est coupé et il reste du vide sur la page . aidez moi svp merci

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut bicha_27
    Un lien sur deux tuto sur l'impression
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    En même temps 1000 x 7800 ça ne fait qu'une bande verticale sur ta page !
    Si tu as un écran en 1024 x 768 imprimé en 600dpi A4 (environ 5000 x 7000) joue avec PrintScale

    Avec TForm.Print il va "étendre" ta fenêtre en conservant ses proportions sans que tu aies besoin de le faire toi même en fonction de la propriété PrintScale

    Sinon, tu peux utiliser PaintTo dans un TBitmap puis c'est ce dernier que tu dessine en Strech sur le Canvas du TPrinter

    Test ceci :

    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
    void __fastcall TVCLManipForm::BtnDrawingToPrinterClick(TObject *Sender)
    {
      if ((ComboBoxDrawingPrinters->Items->Count > 0) && (ComboBoxDrawingPrinters->ItemIndex >= 0))
      {
        Printer()->PrinterIndex = ComboBoxDrawingPrinters->ItemIndex;
        Printer()->Orientation = poLandscape;
        LabelDrawingPrinterInfo->Caption = String().sprintf(_T("Height %d, Width %d"), Printer()->PageHeight, Printer()->PageWidth);
     
        this->PrintScale = poNone;
        this->Print(); // Cela prend même pas 5% de la Page comme PaintTo
     
        this->PrintScale = poProportional;
        this->Print(); // Cela prend environ 80% de la Page, avec une résolution parfaite
     
        this->PrintScale = poPrintToFit;
        this->Print(); // Cela prend 98% de la Page, et ça bave à cause du Stretch
     
        Printer()->BeginDoc();
        this->PaintTo(Printer()->Canvas, 0, 0);
        Printer()->EndDoc();
      }
    }
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. [VB.NET]Comment Imprimer une form
    Par bernard06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/10/2011, 17h43
  2. Comment faire une interface de ce type....
    Par SpiderAlpha dans le forum C++Builder
    Réponses: 6
    Dernier message: 30/04/2007, 13h50
  3. [Débutant] Lancer une interface sous éclipse
    Par bonnefr dans le forum SWT/JFace
    Réponses: 11
    Dernier message: 11/05/2004, 15h59
  4. Comment créé une "interface" pour mes programmes??
    Par alcazar dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 09/02/2004, 13h02
  5. portabilité d'une interface
    Par marou dans le forum JBuilder
    Réponses: 4
    Dernier message: 21/03/2003, 08h53

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