كيف يمكن معرفة قياس الشاشة بالإنش؟
#1
هنالك طريقة سهلة لمعرفة قياس الشاشة المنطقي بالبيكسل من خلال تعليمة Screen و لكن لا أعلم كيف يمكنني الحصول على القياس الفيزيائي لقطر الشاشة بالإنش، مثلاُ أنا أستخدم شاشة قياس 15" و لكن كيف يمكن من خلال دلفي إكتشاف ذلك؟ أفيدون جزاكم الله خيرا
الرد
#2
السلام عليكم

باستخدام الدالة : GetDeviceCaps

والتي تقوم بارجاع قدرات الطرفية المراد الاستعلام عنها.

نمرر للدالة فهرس المعلومةHORZRES لتعطينا عرض الشاشة بالمليمتر، بعدها يمكن تحويلها إلى بوصة (بوصة = 25.4 ملم).
PHP كود :
procedure TForm1.bt2Click(Sender: TObject);
var
  
Mlm: integer;
  
Inch: single;
  
Hwnd: integer;
begin
  Hwnd 
:= GetDC(0);
  
Mlm := GetDeviceCaps(Hwnd, HORZSIZE);
  
Inch :=  Mlm /25.4;
  
caption := FloatToStr(Inch);
  
ReleaseDC(0, Hwnd);
end; 


يمكن الاستعانة بملف المساعـدة على GetDeviceCaps للاطلاع على فهارس القدرات التي يمكن الاستعلام عنها.
الرد
#3
أشكرك كثيراً على هذه النصيحة و بالفعل طبقتها مباشرة
و لكن ماذا حصل؟
النتائج لم تكن دقيقة كما هو متوقع بالميليميتر
في الواقع كان الفرق حوالي 3 بوصة!
نعم
فالبارامتر HorzSize يعطي عرض الشاشة بالميليمتر و لكنه أعطاني عرضاً أكبر بحوالي 60ملم زيادة
و البارامتر VertSize يعطي طول الشاشة بالميليمتر كذلك أعطاني طولاً أكبر بحوالي 40 ملم زيادة
و منه نسنتج القطر = الجذر التربيعي( مربع الطول + مربع العرض) و هو رقم كبير أيضاً
فمثلاُ شاشتي ذات قطر 15" و لكن بهذا الحساب أعطاني الحاسب 17.7"
فما الحل؟
الرد
#4
السلام عليكم

نعم النتائج غير دقيقة.
أيضا المعادلة التالية تعطي نتائج مختلفة
(Screen.Width / Screen.PixelsPerInch)
الحل الأمثل هو استخدام المسطرة !! Smile
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم