كيف تربط وحدتين معاً دون أخطاء

بسم الله الرحمن الرحيم

لنفرض أن لديك وحدتين , Unit A و Unit B

وتريد استدعاء كائن من B من خلال A

وأيضا استعمال دالة في A من خلال B

 

إذا كنت مبتدئاً فسيكون كود الوحدات كالتالي :

unit Unit A ;

interface

uses

Unit B ;

…..

implementation

…..

و

unit Unit B ;

interface

uses

Unit A ;

…..

implementation

…..

 

الآن جرب البرنامج , سيعرض المترجم رسالة خطأ , عنوانه هو F2047

ولن يتم تنفيذ البرنامج

 

السبب بسيط , وهو ان المترجم عندما يقوم بترجمة القسم interface فإنه سيواجه خطأ , وهذا بسبب ارتباط الوحدتين معاً داخل هذا القسم

 

الحل بسيط , وهو نقل تعريف إحدى الوحدتين إلى القسم implementation , فيصبح أكواد الوحدتين كالتالي :

(هذه الوحدة بدون تغيير)

unit Unit A ;

interface

uses

Unit B ;

…..

implementation

…..

(لاحظ انتقال تعريف الوحدة إلى القسم implementation)

unit Unit A ;

interface

…..

implementation

uses Unit B ;

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s