Bonjour,
J'essaie de résoudre un problème de conversion en vain... Dans mon application l'utilisateur saisit la largeur et la hauteur d'un TPanel en millimètres ce qui permet de modifier ses dimensions.
Il me faut donc convertir les dimensions saisies en pixels pour pouvoir affecter ces valeurs aux propriétés "Width" et "Height" du TPanel.
Je m'y prends de la manière suivante :
La valeur renvoyée par Screen.PixelsPerInch est à priori incorrecte (96PPI) et ne correspond pas à la réalité (109PPI avec mon écran). J'ai également testé avec les fonctions suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function MillimetresToPixelsY(HauteurMillimetres: Integer): Integer; var YPixelsParPouce: Integer; YPixelsParMilli: Integer; begin YPixelsParPouce := Screen.PixelsPerInch; YPixelsParMilli := Trunc(YPixelsParPouce / 25.4); // Conversion en millimètres Result := Trunc(HauteurMillimetres* YPixelsParMilli); end;
Mais j'obtiens le même résultat 96PPI. Avez-vous des conseils pour récupérer de la meilleure manière le nombre de pixels par pouce quelque soit l'écran utilisé ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DC := GetWindowDc(0); YPixelsParPouce := GetDeviceCaps(DC, LOGPIXELSY);
Je vous remercie pour votre aide.
Partager