26.04.2015 Views

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

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

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

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

المتحول الذي قمنا بتمريرة كزر أعطى عنوان الذاكرة للإجرائية التي دخلت إلية وقامت بالتعامل معه مباشرة<br />

.،<br />

هذا يعني أن الغرض تم تمريرة بالمرجع بلا إستخدام الكلمة المفتاحية Var التي نستخدمها بالحالة العادية،‏ وبدون أي من<br />

التقييدات الأخرى التي تفرضها حالة التمرير بالمرجع<br />

.<br />

(pass-by-reference)<br />

لكن ماذا لوكنا نريد أن نقوم بنسخ البيانات فعليا من غرض إلى آخر<br />

لإننا نريد نسخ فعلي للغرض<br />

،<br />

هذة المرة لانريد التعامل مع متغيرات وعناوين<br />

،<br />

.<br />

معرفة Public أي لانستطيع الوصول إليها جميعها<br />

ربما علينا أن نقوم بنسخ كل حقل من حقول الغرض<br />

،<br />

. ،<br />

<strong>في</strong> هذة الحالة نستخدم منهج خاص يقوم بنسخ البيانات الداخلية كلها<br />

توريثها من الصنف<br />

،<br />

Tpersistent<br />

تملك المنهج<br />

Assign<br />

والذي يقوم ذة العملية<br />

.<br />

ولكن ربما لاتكون كل الحقول<br />

أصناف مكتبة العناصر المرئية <strong>في</strong> دل<strong>في</strong> والتي تم<br />

‏(ملاحظة هذا المنهج غير متوفر <strong>في</strong> جميع أصناف ال VCL حتى المورثة من Tpersistent أحيانا ( .<br />

: ملاحظة<br />

نستطيع تزويد الأصناف التي نقوم بكتابتها بمناهج شبيهه بالمنهج<br />

Assign<br />

بسهولة من داخل شفرة الصنف<br />

لإننا نستطيع الولوج إلى جميع بيانات الصنف مثلا لإضافة المنهج Assign إلى الصنف Tdate الذي قمنا ببناءة سابقا<br />

:<br />

procedure TDate.Assign (Source: TDate);<br />

begin<br />

fDate := Source.fDate;<br />

end;<br />

‏(لاحظ أن المتحول fDate الذي تخزن ضمنة قيمة التاريخ لايكون متاحا خارج الوحدة لإنة معرف<br />

(<br />

private<br />

procedure TDateForm.BtnTodayClick(Sender: TObject);<br />

var<br />

NewDay: TDate;<br />

begin<br />

NewDay := TDate.Create;<br />

TheDay.Assign(NewDay);<br />

LabelDate.Caption := TheDay.GetText;<br />

NewDay.Free;<br />

end;<br />

وسيكون إستخدامة بالطريقة التالية مثلا<br />

:<br />

٢٨

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

Saved successfully!

Ooh no, something went wrong!