منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : معرفة عدد العناصر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
معرفة عدد العناصر التي سوف يتم اضافتها الى listbox فى 30 ثانية
هل من حل لمعرفة عدد هذه العناصر قبل اضافتها مع العلم عدد العناصر هنا مجهول ؟
ممكن توضح اكثر؟
اذكر مثلاً لماذا تريد معرفة العدد؟
ولماذا في 30 ثانية ؟
وكيف يتم اضافتها ؟

أمور كثيرة مجهولة في سؤالك؟
عطنا نبذة من الكود الي تستخدمة مثلاً !!!!!!!!!!!!!!!!
(09-01-18, 09:32 PM)عبدالله الدوسري كتب : [ -> ]ممكن توضح اكثر؟
اذكر مثلاً لماذا تريد معرفة العدد؟
ولماذا في 30 ثانية ؟
وكيف يتم اضافتها ؟

أمور كثيرة مجهولة في سؤالك؟
عطنا نبذة من الكود الي تستخدمة مثلاً !!!!!!!!!!!!!!!!

اذكر مثلاً لماذا تريد معرفة العدد؟
اريد معرفة العدد الذى سوف يتم اضاقتة بواسطة تيمر خلال 35 ثانية 
ولماذا في 30 ثانية ؟
فقط مثال 
وكيف يتم اضافتها ؟
عشوائي بواسطة تيمر
ماذا ستفعل لو عرفت العدد؟
إذا كان الـــ Interval  الخاص بــ Timer فرضاً مضبوط على 1000

إذاً العدد هو عدد الثواني

إذا كان الــ Interval  مختلف

إذاً العدد هو ( ( عدد الثواني مظروب في 1000 ) يقسم على قيمة الـــ Interval  ) 



لكن!!!


هل تستطيع أن تحسب فرق الزمن بين الضغط على الزر وبين أول Tick الخاصة بالتايمر
ستكون أجزاء من الثانية تقدر ما بين 20 إلى 150 جزء من الثانية


حسابياً ما ذكرتة في الأعلى صحيح
لكن عملياً يمكن أن تخفق آخر Tick في إضافة عنصر جديد في الـــlistbox 

يعني عندك 1 ممكن يكون خارج الحساب (إحتمال يحدث في فارق الزمن) إذا قمت بحساب فارق الزمن بين البداية وبين عدد الثواني المطلوب في كل Tick 

أما إذا قمت بالعملية الحسابية منذ البداية وقمت بتعيين العدد حسب الطريقة التي ذكرت في الأعلى
عندها يمكنك في كل مرة Tick حساب ما إذا اكتمل عدد العناصر أو لا بدون حساب قارق الزمن


وهذا مثال :
[attachment=16673]

المشروع : [attachment=16674]
(11-01-18, 06:09 PM)عبدالله الدوسري كتب : [ -> ]إذا كان الـــ Interval  الخاص بــ Timer فرضاً مضبوط على 1000

إذاً العدد هو عدد الثواني

إذا كان الــ Interval  مختلف

إذاً العدد هو ( ( عدد الثواني مظروب في 1000 ) يقسم على قيمة الـــ Interval  ) 



لكن!!!


هل تستطيع أن تحسب فرق الزمن بين الضغط على الزر وبين أول Tick الخاصة بالتايمر
ستكون أجزاء من الثانية تقدر ما بين 20 إلى 150 جزء من الثانية


حسابياً ما ذكرتة في الأعلى صحيح
لكن عملياً يمكن أن تخفق آخر Tick في إضافة عنصر جديد في الـــlistbox 

يعني عندك 1 ممكن يكون خارج الحساب (إحتمال يحدث في فارق الزمن) إذا قمت بحساب فارق الزمن بين البداية وبين عدد الثواني المطلوب في كل Tick 

أما إذا قمت بالعملية الحسابية منذ البداية وقمت بتعيين العدد حسب الطريقة التي ذكرت في الأعلى
عندها يمكنك في كل مرة Tick حساب ما إذا اكتمل عدد العناصر أو لا بدون حساب قارق الزمن


وهذا مثال :


المشروع : 
جزاك الله خير شكرآ علي الشرح
تحتاج الي متغير يعبر عن DateTime = Now
أيضا تحتاج الي متغير اخر عبارة عن DateTime  أو TimeSpan  وهو عباره المتغير الأول + 30 ثلنية
ثم وعندما قيمة المتغير الأول تساوي المتغير الثاني عليك أن تخرج من Loop الخاص باضافة العناصر الي الليست بوكس
ومن ثم تحسب عدد العناصر التي تم اضافتها الي الليست بوكس وهو يعبر عن الرقم الذي تريده

ملحوظة:
ممكن تستخدم متغير واحد يعبر عن التاريخ و ليس متغيران يعبران عن التاريخ والوقت

حل أخر
ممكن أيضا تستخدم الكلاس StopWatjch بديلا للتاريخ و الوقت
تقوم بتعريف متغير يعبر عن StopWatch ثم تعمل له Start 
ثم تبدأ في اصافة العناصر الي الليست بوكس من خلال Loop
وعندما تصل قيمة الثواني في stopwatch الي 30 ثانية عليك ايقافه و الخروج من Loop ثم تحسب عدد العناصر التي تم اضافتها
(12-01-18, 01:22 AM)silverlight كتب : [ -> ]تحتاج الي متغير يعبر عن DateTime = Now
أيضا تحتاج الي متغير اخر عبارة عن DateTime  أو TimeSpan  وهو عباره المتغير الأول + 30 ثلنية
ثم وعندما قيمة المتغير الأول تساوي المتغير الثاني عليك أن تخرج من Loop الخاص باضافة العناصر الي الليست بوكس
ومن ثم تحسب عدد العناصر التي تم اضافتها الي الليست بوكس وهو يعبر عن الرقم الذي تريده

ملحوظة:
ممكن تستخدم متغير واحد يعبر عن التاريخ و ليس متغيران يعبران عن التاريخ والوقت

حل أخر
ممكن أيضا تستخدم الكلاس StopWatjch بديلا للتاريخ و الوقت
تقوم بتعريف متغير يعبر عن StopWatch ثم تعمل له Start 
ثم تبدأ في اصافة العناصر الي الليست بوكس من خلال Loop
وعندما تصل قيمة الثواني في stopwatch الي 30 ثانية عليك ايقافه و الخروج من Loop ثم تحسب عدد العناصر التي تم اضافتها

جزاك الله خيرآ اخي