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 : 3809
Catégorie(s) : API, Graphique
Langages dispo pour ce code :
- Delphi 5
- Delphi 5



Langage : Delphi 5
Date ajout : 30/09/2007
Posté par Caribensila [Liste]


function Mesurer(PixDist:Double):Double; //PixDist est une mesure en pixels.
  var    DC : HDC;
  begin
  DC      := GetWindowDc(0); //Obtenir contexte graphique de l'écran
  Result := PixDist * GetDeviceCaps(DC,HORZSIZE) / GetDeviceCaps(DC,HORZRES)
end;


  {Exemple d'utilisation.}
procedure TForm1.Button1Click(Sender: TObject);
  begin
  Edit1.Text :=
      FormatFloat('####.##" mm."',Mesurer(Image1.Height)) + ' x '
   + FormatFloat('####.##" mm."',Mesurer(Image1.Width)) 
                   // Renverra, par exemple :   79,72 mm. x 64,63 mm.
end;


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.