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 :

MM_LOMETRIC et les marges


Sujet :

Langage Delphi

  1. #1
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut MM_LOMETRIC et les marges
    Bonjour au forum

    Petite question toute bête, car ayant passé bien des pages en revue, je n'ai toujours pas la réponse à ma question :

    MM_LOMETRIC ne prend t-il pas en compte les marges non imprimable ?

    J'ai bien vérifié que non, mais j'aimerais avoir vos avis là-dessus.

    C'est étonnant car j'ai lu que l'on pouvait utiliser directo cette méthode

    Je sais comment calculer les marges non imprimables, la question n'est pas là.

    http://www.swissdelphicenter.ch/torr...ode.php?id=584
    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

    Merci d'avance de votre lumière et expérience

  2. #2
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 360
    Points : 3 135
    Points
    3 135
    Par défaut
    Bonjour,

    je ne sais pas si cela peut t'aider, mais voici un bout de code qui donne les différents paramètres de la page d'une imprimante

    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
    var
     H: integer;
    begin
     Printer.Orientation := poLandscape;
     
     // On place dans une variable le handle de l'imprimante
     H := Printer.handle;
    // SetMapMode(H,MM_HIMETRIC) ;
     
     Details.Clear ;
     Details.Lines.Add(Printer.Printers[Printer.PrinterIndex]) ;
     //La constante LOGPIXELSX nous fournit la résolution de l'imprimante
     Details.Lines.Add(format('Résolution de l''imprimante : %d ppp',  [GetDeviceCaps(H, LOGPIXELSX)]));
     // Printer.GetPrinter();
     //La constante HORZSIZE nous fournit la largeur en millimètres
     Details.Lines.Add(format('Largeur zone imprimable : %d mm',  [GetDeviceCaps(H, HORZSIZE)]));
     //La constante VERTSIZE nous fournit la hauteur en millimètres
     Details.Lines.Add(format('Hauteur zone imprimable : %d mm', [GetDeviceCaps(H, VERTSIZE)]));
     //La constante HORZRES nous fournit la largeur en pixels
     Details.Lines.Add(format('Largeur zone imprimable : %d pixels', [GetDeviceCaps(H, HORZRES)]));
     //La constante VERTRES nous fournit la hauteur en pixels
     Details.Lines.Add(format('Hauteur zone imprimable : %d pixels', [GetDeviceCaps(H, VERTRES)]));
     
     { Vous pouvez voir ici qu'il est maintenant facile de calculer le rapport entre  les pixels }
     { et les millimètres sur votre page imprimée 1 pixel horizontal imprimante = }
     { GetDeviceCaps(H, HORZSIZE) / GetDeviceCaps(H, HORZRES) }
     
     
     {La constante PHYSICALOFFSETX nous fournit la taille en pixels de la zone }
     {  non imprimable à partir du bord gauche de la feuille}
     Details.Lines.Add(format('pixels non imprimables à gauche: %d',  [GetDeviceCaps(H, PHYSICALOFFSETX)]));
     
     {La constante PHYSICALOFFSETY nous fournit la taille en pixels de la zone }
     { imprimable à partir du bord gauche de la feuille}
     Details.Lines.Add(format('pixels non imprimables en haut: %d', [GetDeviceCaps(H, PHYSICALOFFSETY)]));
     
      //La constante PageWidth nous fournit la largeur de la page en px
     Details.Lines.Add(format('Printer.PageWidth : %d pixels', [Printer.PageWidth]));
     //La constante PageHeight nous fournit la hauteur de la page en px
     Details.Lines.Add(format('Printer.PageHeight : %d pixels', [Printer.PageHeight]));
     
     //La constante Title nous fournit le nom réseau
     Details.Lines.Add('Printer.Title : '+Printer.Title  );
    (code pris sur le site ou sur internet ?)

    A+

    Charly

  3. #3
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Salut Charly,

    Merci c'est sympa, mais c'est justement pour passer "au dessus" de GetDeviceCaps que ma demande ici est faite.

    @+

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 743
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 743
    Points : 13 299
    Points
    13 299
    Par défaut
    MM_LOMETRIC s'applique à des fonctions GDI.
    En te renvoyant la question : ou as-tu vu que cela concernait spécifiquement l'impression ?

  5. #5
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Andnotor bonjour

    Pour répondre à ta question, je n'ai jamais dit que c'était une spécificité d'impression.

    Mais pour schématiser ma demande et en m'appuyant sur le code de mon premier lien dito ; je constate que la correspondance à l'impression est approximative.

    Et justement je pensais à la différence des marges non imprimables.

    Hé bien je ne crois pas que ce soit ça.

    Simplement voir ici toute ma recherche en ce sens = impression et correspondance directe précise.

    Ou bien veux-tu dire qu'afin que cette méthode soit effectivement prise en compte faut obligatoirement passer par une imprimante gamme Winprinters, justement en rapport avec le GDI ?

    @+

Discussions similaires

  1. Redéfinir les marges d'une liste à puces
    Par om.rava dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/12/2005, 14h54
  2. [TChart] Comment définir les marges d'un graphe ?
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 01/08/2005, 16h48
  3. Fixer les marges à l'impression.
    Par roots_man dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 17/11/2004, 10h30
  4. [EXCEL]Modifier les marges d'une page dans Excel
    Par ms91fr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/01/2004, 15h26

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