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=793)



مشكلة التايمر مع ارسال الاوأمر,,, كيف تجنب ضغط الجهاز ؟ - AL-MOB4RM3G - 09-04-2009

السلام عليكم ورحمة الله,,

اخواني الكرام,, سلام الله عليكم اجمعين,,

لا ادري ان كان العنوان مناسب Smile لكن هذا ما وصلت اليه بعد مدة من المحاولة

لإيجاد عنان مناسب,, سامحوني :o

نعم,, كنت اود ان اطرح هذه المشكلة التي بصراحة لم اجد لها حل مناسب بعد,,

مشكلة التايمر ,, + مشكلة الساعة مثلا,,

الكل يعلم ان التايمر يرسل آمر كل مدة تحدد من قبل المبرمج/المستخدم ,,

المراد هو بنسبة لي,, برنامج يقوم بعرض الساعة داخل edit ,,, + شئ آخر لا داعي لطرحه الآن,,,

لو فكرت قليلا,, ممكن وضعه في تايمر,,

ولكن هنا هي المشكلة,,, سترفع من ضغط البروسسور,, وو الى آخره.. وهذا هو الذي احاول تجنبه والله

المستعان,, هل هناك حل لمثل هذا الغرض,, لأنه سيتم استخدام التايمر كل ربع ثانية ان استخدت التايمر,,

وسيتم وضع اكثر من كود وهذا سيثقل البرنامج كثيرا,,

بارك الله فيكم جميعا وان شاء الله السؤآل واضح,؟؟

والسلام عليكم ورحمة الله


مشكلة التايمر مع ارسال الاوأمر,,, كيف تجنب ضغط الجهاز ؟ - kachwahed - 09-04-2009

إقتباس :ولكن هنا هي المشكلة,,, سترفع من ضغط البروسسور,, وو الى آخره.. وهذا هو الذي احاول تجنبه والله
لم أفهم المشكلة !!!



مشكلة التايمر مع ارسال الاوأمر,,, كيف تجنب ضغط الجهاز ؟ - AL-MOB4RM3G - 09-04-2009

kachwahed كتب :
لم أفهم المشكلة !!!

اخي الكريم.. لا عليك :eek:

كنت اقصد لو انه تم ارسال الأمر في التايمر,,, مثل,, كل 100 ,,, يعني 10 مرّات في الثانية الواحدة,,,

كود :
procedure TForm1.Timer1Timer(Sender: TObject); begin label1.Caption:= timetostr(time); end;

,, + انه ليس فقد هذا الآمر الذي اود ان ارسله,, بل هي اوامر عدة,,

,,

يعني سيتم ارسال عدة اوامر كبير 10 مرات في الثانية + انه سيتم عمل هذا من اثناء تشغيل البرنامج الى ان يتم اغلاقه,,,

الن يسبب هذا ثقل على اجهاز ؟ لأنه يتم ارسال اوامر كثيرا وبسرعة ؟

ان كان اجواب نعم ,, فسؤأل هو

ما هي الطريقة لتخلص من هذا,, ؟

ان شاء الله السؤأل واضح الآن اخي ؟

بارك الله فيكم جميعا

والسلام عليكم


مشكلة التايمر مع ارسال الاوأمر,,, كيف تجنب ضغط الجهاز ؟ - kachwahed - 09-04-2009

ما يزال بعض الغموض في السؤال
إذا كنت بحاجة لعمل شيء "10 مرّات في الثانية الواحدة" فتلك هي الطريقة الوحيد
لكن ما الذي تريد أن تفعله 10 مرّات في الثانية الواحدة !!!
لعرض التوقيت الحالي يكفي أن تضبط Interval لـ Timer ليعرض كل ثانية (أقصد القيمة 1000) ولا حرج عليك إن شاء الله.
إذا أردت أن تعرف فيما إذا كان ذلك يثقل البرنامج أم فما عليك إلا بالتجريب وقديما قيل: إسأل مجرب ولا تسأل طبيب Smile
أرفق المثال لنتمكن من مساعدتك إن استطعنا.



مشكلة التايمر مع ارسال الاوأمر,,, كيف تجنب ضغط الجهاز ؟ - AL-MOB4RM3G - 10-04-2009

إقتباس :لعرض التوقيت الحالي يكفي أن تضبط interval لـ timer ليعرض كل ثانية (أقصد القيمة 1000) ولا حرج عليك إن شاء الله.

نعم,, بارك الله فيك اخي,, ولكن اذا لاحظت,, اول ثانية في البرنامج لن يكون بها وقت,, ولهذا وودت عمله عدة مرات في الثانية حتى لا يلاحظ المستخدم انه لا يوجد وقت في الخانة,, على كل هذه ليست مشكلة ان شاء الله,,


إقتباس :إذا أردت أن تعرف فيما إذا كان ذلك يثقل البرنامج أم لا فما عليك إلا بالتجريب وقديما قيل: إسأل مجرب ولا تسأل طبيب

نعم هذا صحيح,, جربت هذا وبصراحة لم الاحظ ان الجهاز ثقيل,, ووضعت القيمة 1 ,, يعني 1000 مرة في الثانية ولم الاحظ فرق,, لعلّي مخطئ,, ولكن انا اتذكر جيدا انني قرأت موضوع هنا في المنتدى قال فيه احد الإخوة انه الجهاز يصبح ثقيل وهذا ما كنت اخشاه,, ولهذا طرحت السؤآل,, يعني سآمحوني,, سأحاول ايجاد المضوع ان استطعت,,

على كل حال بارك الله فيكم,,
و النتيجة بعد التجريب انه ليس هناك فرق,,
شكرا كثيرا والسلام عليكم ورحمة الله


مشكلة التايمر مع ارسال الاوأمر,,, كيف تجنب ضغط الجهاز ؟ - kachwahed - 10-04-2009

إقتباس :ولكن اذا لاحظت,, اول ثانية في البرنامج لن يكون بها وقت
للتخلص من تلك المشكلة أكتب في الحدث OnActivate شيء مثل:
PHP كود :
StatuBar1.Panels[0].Text := DateTimeToStr(Now); 
هذا أفضل من عرض نفس التاريخ والتوقيت عشر مرات في كل ثانية Wink



مشكلة التايمر مع ارسال الاوأمر,,, كيف تجنب ضغط الجهاز ؟ - AL-MOB4RM3G - 11-04-2009

kachwahed كتب :
للتخلص من تلك المشكلة أكتب في الحدث onactivate شيء مثل:
PHP كود :
statubar1.panels[0].text := datetimetostr(now); 
هذا أفضل من عرض نفس التاريخ والتوقيت عشر مرات في كل ثانية Wink

نعم صحيح بارك الله لكم,, فكرة مميّزة اخي الحبيب,,
لم تختر في بالي هذا الشئ,,, بارك الله فيك,,

وأشكرك كثيرا


مشكلة التايمر مع ارسال الاوأمر,,, كيف تجنب ضغط الجهاز ؟ - hanipino - 21-04-2009

السلام عليكم

لاكن هل الوقت يتغير بهده الطريقة اثناء سيران البرنامج ام لا .

شكرا .


مشكلة التايمر مع ارسال الاوأمر,,, كيف تجنب ضغط الجهاز ؟ - hanipino - 21-04-2009

PHP كود :
var
  
Form1: TForm1;
  
B: Boolean; 

PHP كود :
procedure TForm1.FormActivate(Sender: TObject);
begin
  repeat
     
if (Self <> nil)and(Self.Visible = Boolean(1)) then
         stat1
.Panels[1].Text := DateTimeToStr(Now);
         
Application.ProcessMessages;
  
until(B);
end; 

PHP كود :
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  B 
:= Boolean(1);
end; 



مشكلة التايمر مع ارسال الاوأمر,,, كيف تجنب ضغط الجهاز ؟ - AL-MOB4RM3G - 21-04-2009

hanipino كتب :السلام عليكم

لاكن هل الوقت يتغير بهده الطريقة اثناء سيران البرنامج ام لا .

شكرا .

نعم اخي الكريم,, الأخ طرح الفمرة وهي شغّالة زبدزن مشاكل,,

عند عمل aktive نضع الكود في الحدث نفسه,,, وبهذه الحالة يتم جلب الساعة,,

لكن مرة واحدة,, والطريقة فعّالة لو عملنا نفس الكود ولكن في الحدث OnActivate نعمل enable = true للتايمر,, ونضع الكود فيه,,

________

اشكرك اخي الكريم على حلّك,, لم اجربه بعد,, ولكن سأجربه ان شاء الله قريبا,,

بارك الله فيك