اكتب تطبيق دلفي لا يعطل تخصيص الموارد
والمفتاح هو التأكد من أنه إذا تم تخصيص الموارد في البرنامج، حتى في حالة حدوث فشل، فإن البرنامج
يجب أن يكون البرنامج أيضًا قادرًا على تحرير الموارد المشغولة.
الملفات والذاكرة وموارد WINDOWS والكائنات هي بعض الأشياء التي يجب إضافتها من وقت لآخر
احرص على ضمان تحرير الموارد. في المثال التالي لرمز التحكم في الحدث
يتم تخصيص الذاكرة أولاً، ثم يحدث خطأ يؤدي إلى توقفها عن التنفيذ.
رمز البرنامج لتحرير الذاكرة:
الإجراءTForm1. ButtonlClick(Sender:Tobject
);
فار
المؤشر 1: المؤشر؛
عدد صحيح1، رقم الصفر: عدد صحيح؛
يبدأ
رقم الصفر:Κ0;
GetMem(Pointer1, 1024); {تخصيص 1 كيلو من موارد الذاكرة}
Integer1: Κ5divNumzero {تؤدي هذه الجملة إلى إنشاء خطأ في القسمة
خطأ}
FreeMem (Pointer1, 1024); {لن يتم تنفيذ هذه الجملة هنا
موافق} النهاية؛
على الرغم من أن معظم الأخطاء ليست بهذا الوضوح، إلا أن المثال أعلاه يحتوي على معلومات مهمة
نقطة واحدة: عند حدوث خطأ، ينتقل تنفيذ البرنامج إلى خارج الوحدة، ويتم تحرير الموارد اللاحقة.
لم يعد يتم تنفيذ رمز البرنامج. للتأكد من أن FreeMem في المثال أعلاه يمكن
لتحرير موارد الذاكرة التي يشغلها GetMem، يجب وضع التعليمات البرمجية في أحد الموارد
وحدة الحماية.
فيما يلي تنسيق وحدة حماية الموارد المنحنية:
{تخصيص الموارد}
يحاول
{استخدام الموارد}
أخيراً
{الإفراج عن الموارد}
نهاية؛
المحاولة المذكورة أعلاه. . . الوحدة الأخيرة تمكن البرنامج من تنفيذ fi دائمًا
??أخيرًا أي رمز برنامج في القسم، حتى لو كان هناك خطأ في الوحدة المحمية
أنتجت في. عندما يتسبب جزء من التعليمات البرمجية في قسم المحاولة في حدوث خطأ عند تنفيذه، قم بالتنفيذ
سينتقل السطر مباشرة إلى القسم الأخير في حالة عدم حدوث أي أخطاء أثناء التنفيذ
يتم تنفيذ البرامج بالترتيب الطبيعي.
في المثال التالي لرمز التحكم في الحدث، يتم تخصيص الذاكرة أولاً ثم
حدث خطأ، ولكن رمز البرنامج الذي حرر الذاكرة لا يزال قيد التنفيذ:
نموذج الإجراء1. Button1 انقر (المرسل: الموضوع
);
فار
المؤشر 1: المؤشر؛
عدد صحيح1، رقم الصفر: عدد صحيح؛
يبدأ
رقم الصفر:Κ0;
GetMem(Pointer1, 1024); {تخصيص 1 كيلو من موارد الذاكرة}
يحاول
Integer1: Κ5divNumzero {تؤدي هذه الجملة إلى إنشاء خطأ في القسمة
خطأ}
أخيراً
FreeMem(Pointer1,1024);{هنا سيتم تنفيذ هذه الجملة
نعم}
نهاية؛
نهاية؛
تعد كيفية التأكد من أن البرنامج يطلق الموارد المستخدمة مسألة مهمة في البرمجة.
وهذه مسألة مهمة جدًا يجب التدرب عليها والاهتمام بها أثناء البرمجة.