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 />

procedure Tform1.Button1Click(Sender: TObject);<br />

var<br />

NewDay: TDate;<br />

begin<br />

NewDay := TDate.Create;<br />

TheDay := NewDay;<br />

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

end;<br />

: مثال<br />

... ماذا حصل<br />

، TheDay<br />

؟<br />

مواقع الذاكرة فقط<br />

يقوم هذا الكود بنسخ موقع ذاكرة الغرض الذي يشير إلية المتحول NewDay ووضعة <strong>في</strong> المتحول<br />

إن ذلك ليس نسخ بيانات غرض ما إلى غرض آخر<br />

،<br />

.<br />

ولكن عليك أن تحذر من ذلك<br />

وتحسن إستخدامة ،<br />

على الزر button1 ولم نقم بتحريرة بإستخدام<br />

،<br />

،<br />

Free مثلا<br />

ولتجنب ذلك تستطيع ببساطة تحرير الغرض القديم قبل بناء الغرض الجديد<br />

:<br />

إن هذة العملية سهلة وسريعة التن<strong>في</strong>ذ لإا تنقل عناوين<br />

لاحظ أننا سنقوم بإنشاء الغرض من جديد كل مرة يتم الضغط<br />

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

begin<br />

TheDay.Free;<br />

TheDay := TDate.Create;<br />

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

يمكنة أن يشير إلى غرض ما يجعل من الممكن إستخدام المتحول لتخزين الغرض الناتج من قراءة إحدى الخصائص<br />

وإستخدامه <strong>في</strong>ما بعد<br />

،<br />

: مثلا ،<br />

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

كما تستطيع تمرير الغرض ذة الطريقة على شكل بارامتر خاص بتابع ما<br />

مناهج تقوم بمعالجتة والتعديل <strong>في</strong>ة من مكانة<br />

var<br />

ADay: TDate;<br />

begin<br />

ADay := UserInformation.GetBirthDate;<br />

// use a ADay<br />

.<br />

،<br />

.<br />

مثلا نفرض إجرائية لها بارامتر وحيد من الصنف<br />

، TButton<br />

أي أننا نعامل الغرض كمتحول ونمررة إلى<br />

نمرر لها زر ما فتقوم بتغيير إسمة مثلا أو أي بيانات يملكها<br />

:<br />

procedure ChangeCaption (B: TButton);<br />

begin<br />

B.Caption := B.Caption + ' was Modified';<br />

end;<br />

…………<br />

// call...<br />

ChangeCaption (Button1)<br />

٢٧

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

Saved successfully!

Ooh no, something went wrong!