البرمجة الغرضية التوجه في دلفي
البرمجة الغرضية التوجه في دلفي
البرمجة الغرضية التوجه في دلفي
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 />
٢٨