Forum > Arabic

بديل sleep

(1/1)

Al-Eid:
السلام عليكم
وجدت هذا الكود والذي يستعمل في عملية تاخير أو إنتظار بذل الأمر sleep

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---procedure MyDelay(milliSecondsDelay: int64);var  stopTime : TDateTime;begin  stopTime := IncMilliSecond(Now,milliSecondsDelay);  while (Now < stopTime) and (not Application.Terminated) do    Application.ProcessMessages; end; لا يقوم هذا الإجراء بتعطيل البرنامج كما يفعل الأمر slpee
هل هناك بديل أحسن من slpee و هذ الكود

Zaher:
هذا الكود سيء مقارنة مع ال sleep
ال sleep تعطي للمعالج الحرية بتشغيل ثريدات اخرى او برامج اخرى
بينما هذا الكود يقوم باشغال حيز من المعالج ولو انه هنالك  Application.ProcessMessages
و هو غير دقيق

يوجد بديل نعم وهو ال TEvent
لكن لنسأل اولأ لماذا السؤال؟

Al-Eid:
الأمر بسيط بالنسبة لـي sleep أو هذا الإجراء كل ما في الأمر
عند إجراء أي عملية على قاعدة المعطيات يقوم البرنامج بإظهار رسالة على label يخبر المستخدم بنجاح الأمر ثم تختفي الرسالة مع موسيقة Beep وهذا الأمر قد يستغرق أقل من ثانتين
بالنسبة لـ sleep يقوم بتوقيف البرنامج بينما الإجراء وحسب الرابط فإنه لا يقوم بتعطيل البرنامج أنظر
https://www.tweaking4all.com/forum/delphi-lazarus-free-pascal/lazarus-pascal-how-to-make-a-delay-sleep-without-locking-up-your-application/
 لذلك أردت أن أطرح الموضوع لـمعرفة طرق أخر أو أوامر أخر أحسن sleep

قد تخبرني عن أداة Timer
نعم تكفي بالغرض ولكن أنا أريد أن أجعل إجراء في وحدة عامة يمكن منادته في جميع النوافذ و بارمجي

Zaher:
المؤقت ال Timer هو الافضل
حتى الكود اعلاه له مساوءه، عليك ايجاد استراتيجية افضل، انا نفس الى الآن استعمل المؤقت ببرامجي لمثل هذا النوع من التنبيهات

https://github.com/cs-erp/pgtools/blob/master/MainForms.pas#L611
https://github.com/cs-erp/pgtools/blob/master/MainForms.pas#L637

Al-Eid:
شكرا أخ زاهر على النصيحة وبارك الله فيك

Navigation

[0] Message Index

Go to full version