Les Snippets

Connexion

Convertir une distance sur votre écran, de pixels en millimètres.

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 30/09/2007 23:57:36 et initié par Caribensila [Liste]
Vue : 3794
Catégorie(s) : API, Graphique
Langages dispo pour ce code :
- Delphi 5
- Delphi 5
- Voir tous les langages pour ce code snippet



Langage : Delphi 5
Date ajout : 28/07/2008
Posté par Caribensila [Liste]

type
      TPixDistXY = Record
         X: Double;
         Y: Double;
       end;


function Mesurer(const PixDistX, PixDistY:Integer) : TPixDistXY; // PixDistX est une mesure en pixels.
  var DC : HDC;
begin
  DC        := GetWindowDc(0); // Obtenir contexte graphique de l'écran
  Result.X := PixDistX * GetDeviceCaps(DC,HORZSIZE) / GetDeviceCaps(DC,HORZRES);
  Result.Y := PixDistY * GetDeviceCaps(DC,VERTSIZE)  / GetDeviceCaps(DC,VERTRES);
end;


{Exemple d'utilisation.}
procedure TForm1.Button1Click(Sender: TObject);
  var aPixDistXY: TPixDistXY;
begin
  aPixDistXY := Mesurer(Screen.Width, Screen.Height);
  Edit1.Text := FormatFloat('####.##" mm."',aPixDistXY.X) + ' x '
      +FormatFloat('####.##" mm."',aPixDistXY.Y);//Renverra, par ex : 410 mm. x 256 mm.
end;


Remarque :
Merci à PCPT et à CIREC de m'avoir signalé que certains écrans de type WideScreen n'ont pas toujours des pixels carrés.