جعل مشروعي يعمل على كل الأجهزة
#11
بالنسبة للدالة GetDC فإنها تعطي المقبض الخاص بالجهاز ، وأناأريـــد الشاشة وهذا رقم لا يتغير أثناء مسيرة عمل البرنامج ، فلا داعي لتكرار مناداتها في الـ Timer ، فالمناسب هو مناداتها عند تشغيل البرنامج فقط.

أما الدالة GetPixel فهي تعطي إحداثيات الماوس وما فيها من ألوان فالمناسب مناداتها كل مرة فوضعت في الحدث Timer .

نعم كان المناسب أن أكتب هكذا :
كود :
begin // DC := ReleaseDC(0,0); // error ! // DC := ReleaseDC(Application.Handle,0); // error ! // DC := ReleaseDC(GetActiveWindow,0); // error ! DC := GetDC(0); // okey if DC = 0 then Timer1.Enabled := False; end;

كود :
pColor := GetPixel(DC, p.X, p.Y); if pColor <> CLR_INVALID then begin GetColor (pColor) ; SetColor; end else txtColor.Caption := 'Pixel Invalid.';

أما بالنسبة للدالة ReleaseDC فإنها مع عدة محاولات لم تعمل عندي والله اعلم .

ولما نقلت الملف التنفيذي إلى الجهاز الآخر للاختبار ظهرت العبارة : Pixel Invalid. فعلمت أن الخطأ في الدالة
GetPixel .

وجربت طريقة أخرى موجودة على هذا الموقع
كود :
http://www.delphitricks.com/source-code/graphic/get_a_pixel_color_of_the_desktop.html

ولكن أيضاً نفس المشكلة .
وإن تقدم ذو تقوى بصالحةٍ *** قدمتُ بين يديه عبرة الندمِ
الرد


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


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