مشكل في تسريب thread
#1
السلام عليكم
صادفني مشكل اثناء تعلمي لاستعمال threads في دلفي حيث انني صنعت برنامج من عنصري لابل و زر boutton و thread في unit 2 حيث وضعت الكود الآتي في اجراء الـ thread.

كود :
var i:integer; begin First := not First; if First then for i:=1 to 1000000 do begin Form1.Label1.Caption:=inttostr(i); sleep(200); end else for i:=1 to 1000000 do begin Form1.Label2.Caption:=inttostr(i); sleep(200); end; end;
وعند عمل الـ compil يقوم البرنامج بالعد و عند الضغط عدة مرات على الزر تزيد سرعة العد.
و لحظة معينة تخرج رسالة خطأ تنوه opéraion de pointeur incorrecte. processus stoppé و هي من النوع EinvlaidPointer ثم تشير الى السطر ٍ sleep(200) ... هل من احد يحل مشكلتي بارك الله فيكم ؟
مع العلم ان Try..exceptions تفي بالغرض الاّ ان معرفة سبب هذا المشكل نقطة رئيسية لحن تعلم الـ thread.... البرنامج في المرفقات


الملفات المرفقة
.rar   thre.rar (الحجم : 5.67 ك ب / التحميلات : 14)
الرد
#2
كود :
procedure TForm1.Button1Click(Sender: TObject); var Counter:[color=Red]TCounterthread[/color]; begin Counter:=[color=Red]TCounterthread[/color].Create(False); end;

المتغيرات باللون الأحمر هو ما قمت بتصحيحه في برنامجك و كل شيء سار على ما يرام (Delphi2007)
الرد
#3
اعرف .... لكن المشكل ليس في الكتابة ... لاني اخطات فقط حين النقل ... المشكل لو تركت البرنامج يعد
راقب عمله فهو يعن خطأ pointer:lol:
الحمد لله، الحمد لله، الحمد لله.
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم