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 le texte d'un Memo


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 22
    Points
    22
    Par défaut Imprimer le texte d'un Memo
    Bonjour,

    J'essaie d'imprimer le contenu d'un mémo.
    J'utilise le code suivant:

    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
     
    if (MessageBox (NULL, "Voulez-vous vraiment imprimer ?", "Print",MB_YESNO) == IDYES)
    	{
    	int FontHeight, LinesOnPage;
    	TCanvas *pcanvas;
    	Printer()->BeginDoc();
    	pcanvas = Printer()->Canvas;
    	FontHeight = pcanvas->Font->Height;
    	LinesOnPage = Printer()->PageHeight / -FontHeight;
    	for (int i = 0, j = 0; i < Memo1->Lines->Count; i++, j++)
    	{
    		if ((i > 1) && (i % LinesOnPage == 0))
     
    		{
    			j = 0;
    			Printer()->NewPage();
    		}
    	pcanvas->TextOut (10, ((j * -FontHeight) + 10),Memo1->Lines->Text]);
     
    	Printer()->EndDoc();
     
     
    	}
        }
    Mais à la sortie je récupère quelque chose du genre:

    aaaaaaaaa bbbbbbbbb ccccccccc dddddddddddd

    alors que ca devait etre comme dans le memo:
    aaaaaaaaaaaaa
    bbbbbbbbbbbbb
    ccccccccccccc

    Avez vous une solution svp?

    Merci par avance.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 387
    Points : 1 774
    Points
    1 774
    Par défaut
    Salut !

    Je pense que ça ne fonctionne pas ... à dessein !
    En effet, je doute qu'en arrière plan, TCanvas sache gérer le wordwrap.
    TMemo par contre sait le faire mais uniquement pour lui-même (puisque c'est une de ses propriétés).
    Donc, imprimer ligne par ligne nécessitera du code supplémentaire.

    Par contre, fais un tour dans l'aide : TWinControl et sa méthode PaintTo.
    Il y a un exemple pour dessiner le contenu graphique d'un TMemo mais dans le contexte bitmap -> imprimante.
    En matière de texte, le résultat obtenu pourrait ne pas être optimal !

    Il existe une autre possibilité en utilisant les composants dédiés à ce type de traitement : voir la palettte des composants QReport.
    C'est fait pour !

    A plus !

  3. #3
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par henderson Voir le message
    En effet, je doute qu'en arrière plan, TCanvas sache gérer le wordwrap.
    À la place d'utiliser pcanvas->TextOut, il faut utiliser pcanvas->TextRect.
    Pour le troisième paramètre, tu peux mettre quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Graphics::TTextFormat() << tfWordBreak << tfNoPrefix << tfNoClip
    Pour avoir la liste complète des TTextFormat va sur http://docwiki.embarcadero.com/VCL/f...s.TTextFormats
    Pour les descriptions il est préférable d'aller sur le site de Microsoft: http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Points : 334
    Points
    334
    Par défaut
    Sinon, il y a aussi l'excellent tutoriel de Blondelle sur ce site:
    http://jp-blondelle.developpez.com/t...?page=sommaire
    qui détaille l'impression sans composant (juste TPrinter). Donc ça demande un peu de programmation.
    Mais c'est facile d'imprimer du texte en suivant le tutorial.
    Il suffira de lire le TMemo ligne a ligne (methode Lines).

    Yarp

Discussions similaires

  1. [Print]Comment imprimer le texte d'une Jframe???
    Par greg3105 dans le forum Général Java
    Réponses: 4
    Dernier message: 03/04/2005, 19h47
  2. Réponses: 14
    Dernier message: 08/01/2005, 16h53
  3. VB6] imprimer le texte afficher dans une picturebox
    Par Persons dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/08/2004, 11h15
  4. Imprimer fichier texte
    Par Freeze dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/11/2003, 11h37
  5. Réponses: 1
    Dernier message: 12/02/2003, 09h36

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