اقوم بعمل برنامج هذا البرنامج به loop يستمر لفترة طويلة جدا
مما يجعل البعض يفتكر ان البرنامج (هنيج)
كان فى حل فى لغة الـVisual Basic 6.0
هو جملة DoEvents
اقوم بعمل برنامج هذا البرنامج به loop يستمر لفترة طويلة جدا
مما يجعل البعض يفتكر ان البرنامج (هنيج)
كان فى حل فى لغة الـVisual Basic 6.0
هو جملة DoEvents
- لكي تجعل المستخدمين يفهموا ان البرنامج يعمل , يمكنك عرض رسالة في Label مثلاً :"جاري معالجة البيانات ..."
- لكي تقلل من الجهد وتزيد السرعة يمكنك استعمال Threads
اقتباسIf A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut
Albert Einstein
انا بعرض ProgressBar
لكن المشكلة لما حد بينشط اى برنامج او الDesktopاو .... الخ
بيظهر البرنامج كانه هنيج ودى مشكلة
وانا كنت بحل المشكلة دى فى Vb بكود Doevents بوظعها فى اول الـloop
الاخ Ala2 VB كنت ذكرت فى كلامك Threads
فما هى الـ Threads ولو سمحت شرح
وشكرا لتعبك
السلام عليكم...
استعمل Application.ProcessMessages داخل الحلقات الطويلة:
حيث يسمح ذلك للتطبيق بمعالجة الرسائل القادمة من النظام.
نرجو الاستفادة و السلام.
وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ
صدق الله العظيم
اضافة تجريبية
ممكن تعمل Sleepi بعد كل فترة علشان البرنامج يستقر جرب بس
بالتوفيق
Comming Soon
السلام عليكم
انصح بستخدام
Application.ProcessMessages;
شكرا
السلام عليكم
استعمال Threads للإجراءات الطويلة أو التي لا تحتاج إلى ظهور النتائج أنيا في الواجهة
استعمال Application.ProcessMessages للعمليات التي تحتاج لظهور النتائج أنيا في الواجهة
لمعرفة الفرق: Threads يعمل بشكل متوازي مع البرنامج (بالنسبة للمستعمل العادي) وهو يقلص وقت التنفيذ، لذلك نستعمله للحسابات و/او للعميات التي لا تـُعرف وقت انتهائها بينما نوفر الوقت و الموارد للعمل مع البرنامج (مثل عمليات التحميل بينما البرنامج نستعمله لأغراض أخرى مثل متصفح أنترنت).
Application.ProcessMessages : نستعمله في حال نعمل مع البرنامج و الإجراء قيد التنفيذ لكن إما العملية طويلة أو غير معلومة وقت الإنتهاء (مثل عملية البحث) لذلك هو أفضل لرؤية النتائج أول بأول (هنا العمليات غير متوازية و إنما البرنامج مشغول بالإجراء الحالي)
:)
مشكلة Application.ProcessMessages أنها ستأخذ كل وقت CPU .
Igonrance is HeLL,need to say any more?
Laziness is HeLL, Lazy programmers must be shoot on the head
Stupidity is HeLL, u can patch everything but not human stupidity
SaD jAckAl كتب:مشكلة Application.ProcessMessages أنها ستأخذ كل وقت CPU .
هي تأخذ وقت كبير من ال CPU ولكن ليس كله, جرب التالي
procedure TForm1.Button1Click(Sender: TObject); var I : Integer; begin ProgressBar1.Max := 1000000; ProgressBar1.Step := 1; for I := 0 to 1000000 do begin ProgressBar1.StepIt; Application.ProcessMessages; end; end;
يعني استخدام ProcessMessages سوف يأخذ نفس استخدام ال Thread من المعالج.
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
ممكن تساعدك هذه الروابط
هذا كتاب يشرح ال threads
مهذا رابط الامثلة
تم تعديل هذه المشاركة بواسطة BLOODYSTORM في 28 أغسطس 2008 في 18:43
BLooDY - StOrM

أشهد ان لا اله الا الله واشهد ان محمد رسول الله
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…