نهاية؛
نهاية؛
الإجراءTBounceThread. ينفذ؛
يبدأ
بينما لم يتم إنهاؤه
يبدأ
مزامنة(MoveShape);
نهاية؛
نهاية؛
builderTBounceThread. إنشاء (معلق: منطقي؛ الشكل: TShape؛ XSpeed، YSpeed: عدد صحيح)؛
يبدأ
inheritedCreate(Suspending);
شكل F: شكل؛
FXSpeed: ΚXSpeed {سرعة المحور السيني}
FYSpeed: ΚYSpeed {سرعة اتجاه المحور Y}
FreeOnTerminate:ΚTrue;
نهاية؛
نهاية.
هذه لعبة كرة ممتصة للصدمات متعددة الخيوط، يمكنك الحصول على عدة كرات مختلفة، والتي تنتمي إلى خيوط مختلفة وتتصادم على الشاشة بشكل مستقل. من الواضح أنه نظرًا لأن عرض الكرات المتعددة قيد التشغيل سيعمل على تشغيل موارد VCL في نفس الوقت، فمن أجل السلامة، أضفنا المزامنة (MoveShape) في جزء التنفيذ من عملية التنفيذ لاستدعاء عملية MoveShape في الواقع، حيثما تحتاج موارد VCL ليتم تشغيلها، مثل النماذج والصور النقطية، يجب إضافتها إلى استدعاء المزامنة.
عند التنفيذ يمكننا إنشاء برنامج جديد، ثم إضافة وحدة BncThrd المذكورة أعلاه في قسم الاستخدامات، ثم إضافة عنصري التحكم في الشكل Shape1 وShape2 إلى شكله FORM1 يمكن أن يكون مستطيلًا وShape2 دائرة. أضف الكود التالي لتحريك المستطيل والدائرة.
الإجراءForm1. Button1Click(Sender: TObject);
يبدأ
TBounceThread. إنشاء(خطأ,شكل1,1,2);
TBounceThread. إنشاء(خطأ,شكل2,2,3);
نهاية؛
مدونة المؤلف: http://blog.csdn.net/zou5655/