26.04.2015 Views

البرمجة الغرضية التوجه في دلفي

البرمجة الغرضية التوجه في دلفي

البرمجة الغرضية التوجه في دلفي

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>البرمجة</strong> <strong>الغرضية</strong> <strong>التوجه</strong> <strong>في</strong> دل<strong>في</strong><br />

عروة عيسى<br />

كثيرا ً ما يشار إلى الأغراض بالكيانات<br />

.<br />

(entities)<br />

-<br />

العلاقة بين الغرض<br />

الصنف(‏class‏)‏ و (object)<br />

هي نفسها العلاقة بين المتحول(‏variable‏)‏ والنمط<br />

. (type)<br />

مثلا هي العلاقة بين والمتحول A<br />

حيث<br />

A : integer ;<br />

Integer<br />

دعنا نوضح بعض المسائل المهمة هنا :<br />

إن متحول من نمط صنف معين <strong>في</strong> دل<strong>في</strong> كما هو الحال <strong>في</strong> معظم لغات <strong>البرمجة</strong> <strong>الغرضية</strong> التوجة<br />

الذاكرة ضمن هذا المتحول<br />

لن يمثل تخزينا للغرض <strong>في</strong><br />

،<br />

ولكنة فقط عبارة عن مؤشر إلى الغرض <strong>في</strong> الذاكرة<br />

.<br />

وبناء على ذلك فإننا لا نستطيع التعامل مباشرة مع الأغراض كما نتعامل مع المتحولات العادية<br />

<strong>في</strong> ذاكرة المتحول المعرف لها كما يحدث <strong>في</strong> حالة متحول عادي<br />

،<br />

،<br />

لإن الأغراض لن تخزن<br />

بل هي بحاجة إلى حجز يدوي لمساحة ذاكرة خاصة<br />

ا ومن ثم يصبح المتحول الخاص ا يؤشر على هذة المساحة ، أي يخزن عنوان هذة المساحة فقط<br />

الغرض ضمنة..‏<br />

إذن وجدنا الآن فرقا مهما بين طريقة التعامل مع المتحولات العادية ومع الأغراض<br />

للغرض قبل إستخدامة<br />

،<br />

،<br />

،،،<br />

يتم ذلك بإحدى طريقتين<br />

:<br />

كيف يتم ذلك ؟<br />

ولايخزن بيانات<br />

وقلنا أنة يجب حجز ‏(إنشاء)‏ ذاكرة<br />

إنشاء وحجز الذاكرة يدويا لغرض من صنف ما .. )<br />

بإستخدام المنهج الباني<br />

(Create<br />

-١<br />

(<br />

:=<br />

..<br />

-٢<br />

أو نسب الغرض إلى غرض موجود تم حجز الذاكرة له مسبقا<br />

‏(بإستخدام النسب<br />

var<br />

Obj1, Obj2: TClass;<br />

begin<br />

// assign a newly created object<br />

Obj1 := TMyClass.Create;<br />

// assign to an existing object<br />

Obj2 := Obj1;<br />

٥

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!