delphi4arab منتديات دلفي للعرب
لماذا البرنامج يتجمد عند عمليات For في Listview وماهو الحل لتخطي هذه المشكلة ؟ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : لماذا البرنامج يتجمد عند عمليات For في Listview وماهو الحل لتخطي هذه المشكلة ؟ (/showthread.php?tid=6049)



لماذا البرنامج يتجمد عند عمليات For في Listview وماهو الحل لتخطي هذه المشكلة ؟ - M_Mori2010 - 27-03-2014

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

لماذا البرنامج يتجمد عند عمليات For I := 0 to Listview1.items.count Do

وماهو الحل المناسب لتخطي هذا التجمد ؟

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


لماذا البرنامج يتجمد عند عمليات For في Listview وماهو الحل لتخطي هذه المشكلة ؟ - smart24 - 28-03-2014

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


لماذا البرنامج يتجمد عند عمليات For في Listview وماهو الحل لتخطي هذه المشكلة ؟ - M_Mori2010 - 28-03-2014

شكراً جزيلاً اخي هل من الممكن شرح لآنشاء ثيرد ؟ وكيف التعامل معه وجزاك الله خيراً

حيث اني حاولت سابقاً التعامل مع ثيرد وفشلت للأسف


لماذا البرنامج يتجمد عند عمليات For في Listview وماهو الحل لتخطي هذه المشكلة ؟ - smart24 - 28-03-2014

يمكنك استخدام CreateThread لهذا الغرض أو يمكنك استخدام Class TThread لهدا الغرض أيضا
هدا مشروع يوضح كيفية استخدام CreateThread
كود :
http://www.gulfup.com/?ULkNuh
هذا رابط من msdn لشرح مدخلات الدالة
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682453%28v=vs.85%29.aspx

وهذا مشروع اخر يوضح كيفية التعامل مع TThread (المهم موجود في Unit2 )
أبحث أكثر في الأمر لان هذه المشاريع لا أظن بأنها ستقرب الفكرة
كود :
http://www.gulfup.com/?OB1Olg



لماذا البرنامج يتجمد عند عمليات For في Listview وماهو الحل لتخطي هذه المشكلة ؟ - M_Mori2010 - 28-03-2014

أخي الكريم ليس بوسعي قول الا جزاك الله كل خير


لماذا البرنامج يتجمد عند عمليات For في Listview وماهو الحل لتخطي هذه المشكلة ؟ - phpbb3 - 28-03-2014

الكود يجب ان يكون بهذا الشكل

كود :
For I := 0 to Listview1.items.count - 1 Do



لماذا البرنامج يتجمد عند عمليات For في Listview وماهو الحل لتخطي هذه المشكلة ؟ - Houdini - 28-03-2014

اعتقد يمكن استعمال
application.processmessages

لتخفيف التجميد لاكن يبقى ثريد افضل


لماذا البرنامج يتجمد عند عمليات For في Listview وماهو الحل لتخطي هذه المشكلة ؟ - ALmuhhnad - 28-03-2014

الاخوان افادوك من ناحية الثريد(Thread)
لكن لدي إضافة تخص الـTListview

عندما تريد تحديث أو اضافة عناصر جديدة في المكون تضع هذه الأوامر :
PHP كود :
try
      
Listview1.Items.BeginUpdate;
      for 
i := 0 to Listview1.items.count-1 do
      
begin
        
/////
        ///// write your code 
        /////
      
end;
    finally
      
Listview1.Items.EndUpdate;
      
Listview1.Refresh;
    
end; 

ويكون الكود الخاص بك داخل الـ try

حيث الأمر :
PHP كود :
Listview1.Items.BeginUpdate; 
يتيح لك التعديل في القائمة بدون حصول أخطاء أو تعليق
أما الأمر :
PHP كود :
Listview1.Items.EndUpdate; 
يغلق عملية التعديل على القائمة

أتمنى اني أفدتك , والسلام عليكم ورحمة الله وبركاتة