delphi4arab منتديات دلفي للعرب
جعل مشروعي يعمل على كل الأجهزة - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : جعل مشروعي يعمل على كل الأجهزة (/showthread.php?tid=2250)

الصفحات: 1 2


جعل مشروعي يعمل على كل الأجهزة - أبو محمد اللحياني - 29-09-2010

بالنسبة للدالة 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

ولكن أيضاً نفس المشكلة .