المشاركات : 232
المواضيع 98
:
: 0
الإنتساب : Oct 2011
السلام عليكم ورحمة الله وبركاته ..
لماذا البرنامج يتجمد عند عمليات For I := 0 to Listview1.items.count Do
وماهو الحل المناسب لتخطي هذا التجمد ؟
جزاكم الله كل خير
اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت
فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
المشاركات : 6
المواضيع 0
:
: 0
الإنتساب : Aug 2011
الحل هو انشاء ثريد Thread جديد
السبب في حدوث التجمد هو عند انشاءك لبرنامج فهو يحتوي على Thread واحد على الاقل وعند الدخول الى حلقة تكرارية فان الثريد يشتغل لاتمام الحلقة التكرارية و لهذا يتجمد البرنامج
المشاركات : 232
المواضيع 98
:
: 0
الإنتساب : Oct 2011
شكراً جزيلاً اخي هل من الممكن شرح لآنشاء ثيرد ؟ وكيف التعامل معه وجزاك الله خيراً
حيث اني حاولت سابقاً التعامل مع ثيرد وفشلت للأسف
اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت
فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
المشاركات : 6
المواضيع 0
:
: 0
الإنتساب : Aug 2011
يمكنك استخدام CreateThread لهذا الغرض أو يمكنك استخدام Class TThread لهدا الغرض أيضا
هدا مشروع يوضح كيفية استخدام CreateThread
كود :
http://www.gulfup.com/?ULkNuh
هذا رابط من msdn لشرح مدخلات الدالة
http://msdn.microsoft.com/en-us/library/...85%29.aspx
وهذا مشروع اخر يوضح كيفية التعامل مع TThread (المهم موجود في Unit2 )
أبحث أكثر في الأمر لان هذه المشاريع لا أظن بأنها ستقرب الفكرة
كود :
http://www.gulfup.com/?OB1Olg
المشاركات : 232
المواضيع 98
:
: 0
الإنتساب : Oct 2011
أخي الكريم ليس بوسعي قول الا جزاك الله كل خير
اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت
فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
المشاركات : 56
المواضيع 8
:
: 2
الإنتساب : Jun 2009
الكود يجب ان يكون بهذا الشكل
كود :
For I := 0 to Listview1.items.count - 1 Do
المشاركات : 183
المواضيع 7
:
: 1
الإنتساب : Sep 2011
اعتقد يمكن استعمال
application.processmessages
لتخفيف التجميد لاكن يبقى ثريد افضل
.:: مبرمج شوارع ::.
المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
الاخوان افادوك من ناحية الثريد(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;
يغلق عملية التعديل على القائمة
أتمنى اني أفدتك , والسلام عليكم ورحمة الله وبركاتة