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

Langage Delphi Discussion :

Impression


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 19
    Points : 3
    Points
    3
    Par défaut Impression
    Bonjour !!

    J'ai un ptit soucis au niveau de mes impressions...Elles sortent pas trop mal, mais tout les Label qui la compose sont systématiquement sortis avec leur cadre...j'sais pas si vous voyez ce que je veux dire. Mais en gros tout mes textes sont encadrés comme si chaque Label gardait son cadre pour être imprimé.

    La méthose utilisée pour imprimée passe par canvas.

    2e interrogation, Comment pourrais-je faire pour que mon Label soit toujours centré quelque soit le contenu (qui peut donc avoir des tailles différentes) que je lui affecte par mon code ?

  2. #2
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    pour le centrage, tu aurais pu trouver tout seul :

    propriété Alignment -> taCenter

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 23
    Points : 24
    Points
    24
    Par défaut Pour cerner le problème
    Salut,

    Je voudrais être sûr de piger.
    Tu imprimes une feuille en la faisant passer par Canvas?

    Envoie le code conderné.

    A+

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 19
    Points : 3
    Points
    3
    Par défaut
    Oui, j'avais déjà essayé avec Alignment -> taCenter. L'ennui c'est que ça marchait pas

    Pour ce qui est du code, ça donne ça :



    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    procedure TSynthese.prn_btnClick(Sender: TObject);
    var espace,
        Debx, Deby,
        moitie,
        marge       : integer ;
    begin
       Printer.Orientation:=poPortrait;
       if PrintDialog1.Execute then
       with Printer do
       begin
          espace := 2*canvas.TextHeight('O'); { Interligne (10 par 
     
    défaut).}
          marge := PageWidth div 20 ;       { Marge. }
          deby := PageHeight div 20 ;       { Début d'écriture par 
     
    rapport au haut de la page.}
          moitie := round(PageWidth/2);
          BeginDoc;
          with Courbes.indiv.data do
          begin
             // Entête
             Canvas.Font.Size := 20;
             Canvas.Font.Style := [fsBold,fsUnderline];
             Canvas.TextOut(round(moitie-canvas.textWidth('FICHE DE 
     
    SYNTHESE')/2),
                            deby, 'FICHE DE SYNTHESE') ;
             debX := marge;
             deby := deby + 3*espace;
             // Ecriture du texte
             Canvas.Font.Size := 14;
             Canvas.Font.Style := [];
     
              // Confidentialité du nom du patient
              if (ModeAnonyme) and (MessageDlg('Voulez vous rendre 
     
    anonyme les nom et prénom du patient ?',
                          mtInformation, [mbYes, mbNo], 0) = mrYes) 
     
    then
              begin
              Canvas.TextOut(DebX, DebY, 'Nom : ' + 'Anonyme');
              end
              else
              begin
                 Courbes.indiv.Get_info_patient(patient);
                 Canvas.TextOut(DebX, DebY, 'Nom : '+patient.nom);
                 Canvas.TextOut(moitie, DebY, 'Prénom : 
     
    '+patient.prenom);
              end;
     
             deby := deby + espace;
             Canvas.TextOut(DebX, DebY, 'Sexe : '+patient.sexe);
             Canvas.TextOut(moitie, DebY, 'Age : 
     
    '+IntToStr(patient.age)+' ans');
             deby := deby + espace;
             Canvas.TextOut(DebX, DebY, 'Activité : 
     
    '+patient.profession);
             deby := deby + espace;
             Canvas.TextOut(DebX, DebY, 'Entreprise : 
     
    '+patient.entreprise);
             deby := deby + espace;
             Canvas.TextOut(DebX+canvas.textWidth('Entreprise : 
     
    '),DebY,patient.adresse_1);
             deby := deby + espace;
     
    (...)
     
             Canvas.TextOut(DebX+marge, DebY, TB_Concl[8]);
             deby := deby + 3*espace;
             Canvas.Font.Style := [fsUnderline, fsItalic];
             Canvas.TextOut(DebX, DebY, 'Nom du médecin');
             Canvas.TextOut(moitie+2*marge, DebY, 'Signature');
             Canvas.Font.Style := [];
             Canvas.TextOut(DebX+canvas.textWidth('Nom du médecin   
     
    '),DebY,Courbes.indiv.Get_nom_medecin);
             EndDoc;
          end; { with Courbes.indiv.data }
       end; { with printer }
    end;
    Note : Le code n'est pas de moi à la base, je le retravaille...Et il faut que mes impressions ne donnent plus ces cadres, mais là je sèche...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 19
    Points : 3
    Points
    3
    Par défaut
    Bon après avoir fait une gde simplification des textes à afficher, j'obtiens 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
    procedure TPageTitre.prn_btnClick(Sender: TObject);
    var espace,
        Debx, Deby,
        moitie,
        marge       : integer ;
    begin
       Printer.Orientation:=poPortrait;
       with Printer do
       begin
          BeginDoc;
             // Entête
             Canvas.Font.Size := 20;
             Canvas.TextOut(0,0,'Right here right now !! D''you know what I mean ??');
          EndDoc;
       end;
    end;
    Et même avec ça, je ressors un cadre autour de mon texte...

    Même si j'en doute, ça pourrait venir tout bêtement de l'imprimante ?

  6. #6
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    Bonjour,

    et en mettant

    Canvas.Pen.Color := Canvas.Brush.Color; juste avant le textout ?

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 19
    Points : 3
    Points
    3
    Par défaut
    Salut,

    J'ai testé, mais non ça marche pas...J'ai exactement le même résultat.

  8. #8
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    A mon avis, tu as un problème de driver d'imprimante. Ton code est correct et ne doit pas produire cet effet.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 19
    Points : 3
    Points
    3
    Par défaut
    Ouais ok merci, je vais tenter de remplacer mon driver, ou essayer de me mettre sur une aurte machine voir si j'imprime mieux

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 19
    Points : 3
    Points
    3
    Par défaut
    Bon ben ok, c'était tout bêtement une histoire de pilote d'imprimante qu'il fallait mettre à jour

    Merci bien pour les conseils en tout cas !!!

  11. #11
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    tu as fait ce calcul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     espace := 2*canvas.TextHeight('O');
    avant de changer le font.size?
    je sais que ce n'est pas de raport pour votre probléme mais c'est pour la logique c'est tt
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

Discussions similaires

  1. [CR][VB6] Impression d'un état depuis VB
    Par sda dans le forum SDK
    Réponses: 3
    Dernier message: 06/02/2007, 17h27
  2. Quick Report et impression de données hors BDD
    Par gRRosminet dans le forum C++Builder
    Réponses: 8
    Dernier message: 19/08/2002, 09h47
  3. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26
  4. Impression d'image bmp
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 18/07/2002, 09h38
  5. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37

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