المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : كيف يمكن معرفة قياس الشاشة بالإنش؟


LoveEng
04-06-2010, 11:53 AM
هنالك طريقة سهلة لمعرفة قياس الشاشة المنطقي بالبيكسل من خلال تعليمة Screen و لكن لا أعلم كيف يمكنني الحصول على القياس الفيزيائي لقطر الشاشة بالإنش، مثلاُ أنا أستخدم شاشة قياس 15" و لكن كيف يمكن من خلال دلفي إكتشاف ذلك؟ أفيدون جزاكم الله خيرا

shagrouni
04-06-2010, 01:24 PM
السلام عليكم

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

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

نمرر للدالة فهرس المعلومةHORZRES لتعطينا عرض الشاشة بالمليمتر، بعدها يمكن تحويلها إلى بوصة (بوصة = 25.4 ملم).

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 للاطلاع على فهارس القدرات التي يمكن الاستعلام عنها.

LoveEng
05-06-2010, 06:58 AM
أشكرك كثيراً على هذه النصيحة و بالفعل طبقتها مباشرة
و لكن ماذا حصل؟
النتائج لم تكن دقيقة كما هو متوقع بالميليميتر
في الواقع كان الفرق حوالي 3 بوصة!
نعم
فالبارامتر HorzSize يعطي عرض الشاشة بالميليمتر و لكنه أعطاني عرضاً أكبر بحوالي 60ملم زيادة
و البارامتر VertSize يعطي طول الشاشة بالميليمتر كذلك أعطاني طولاً أكبر بحوالي 40 ملم زيادة
و منه نسنتج القطر = الجذر التربيعي( مربع الطول + مربع العرض) و هو رقم كبير أيضاً
فمثلاُ شاشتي ذات قطر 15" و لكن بهذا الحساب أعطاني الحاسب 17.7"
فما الحل؟

shagrouni
05-06-2010, 09:59 AM
السلام عليكم

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