안녕하세요.
pixe값을 mm으로 값으로 가져오기 위해서 작업을 하는 중에 이상한 부분이 있어서 올립니다.(혹시 표현이 잘못이 있는지 모르겠습니다.)
아래....
// 화면 모드 1024x768일 때
var
t:integer;
H, W : Real;
begin
WITH ImgDot.Canvas DO BEGIN
WITH Memo1.Lines DO BEGIN
t:=GetDeviceCaps(Handle,HORZSIZE);
Add('Width in millimeters='+IntToStr(t));
문제1) // Windows98se:270, Windows2000k Pro:320
t:=GetDeviceCaps(Handle,VERTSIZE);
Add('Hight in millimeters='+IntToStr(t));
문제2) // Windows98se:203, Windows2000k Pro:240
t:=GetDeviceCaps(Handle,HORZRES);
Add('Width in pixels='+IntToStr(t));
t:=GetDeviceCaps(Handle,VERTRES);
Add('Hight in pixels='+IntToStr(t));
// 1픽셀당 mm
t:=GetDeviceCaps(Handle,HORZSIZE);
W := Screen.Width/t;
Add('Width 1 Pixel millimeters='+FloatToStr(W));
t:=GetDeviceCaps(Handle,VERTSIZE);
H := Screen.Height/t;
Add('Hight 1 Pixel millimeters='+FloatToStr(H));
END;
END;
end;
위 문제 1), 문제 2)에서 windows98se에서와 windows2000kPro에서
// Windows98se:270, Windows2000k Pro:320
// Windows98se:203, Windows2000k Pro:240
같은 모니터에서 실행을 했는데 왜 차이가 생기지요.
고수님들의 지도 편달을 부탁드립니다.
그럼.