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

إحدى الأفكار المفتاحية للتغليف هي تقليل المتغيرات العامة المستخدمه من كامل البرنامج<br />

من أي جزء من البرنامج<br />

أحد حقول صنف ما<br />

،<br />

،<br />

،<br />

يمكن الدخول إلى المتغير العام<br />

لذلك فإن تغييرا <strong>في</strong> متحول عام سيؤثر على كامل البرنامج ، <strong>في</strong> حين أنك عندما تغير تمثيل<br />

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

لذلك نستطيع القول أن إخفاء المعلومات يشير إلى تغليف التغييرات<br />

ولتوضيح هذة الفكرة سأقترح مثالا<br />

،<br />

.<br />

،<br />

لدينا برنامج له عدة أشكال<br />

البيانات متاحة لكل الأشكال بتعريفها <strong>في</strong> قسم الواجهة<br />

سيعمل البرنامج بشكل جيد ذة الطريقة<br />

الذي عرفناها <strong>في</strong>ة<br />

،<br />

(Multiple Forms)<br />

(Interface)<br />

لإحدى الأشكال<br />

نستطيع أن نجعل بعض<br />

var<br />

Form1: TForm1;<br />

nClicks: Integer;<br />

،<br />

،<br />

بل أصبحت تابعة لكامل البرنامج<br />

،<br />

ولكن عليك أن تعرف بإن البيانات التي عرفناها هنا ليست تابعة للشكل<br />

فإذا أنشأنا شكلان من نفس الصنف فإما سيتشاركان البيانات<br />

المعرفة <strong>في</strong> قسم الواجهة نفسها . مثلا لو قمنا بإنشاء عدة نسخ من الصنف Tform3 <strong>في</strong> زمن التشغيل بإستخدام الباني<br />

سيصبح لدينا عدة أشكال لنفس الصنف ، كيف نجعل بيانات ما خاصة بإحداها ومرئية من بقية البرنامج ؟<br />

فإذا أردت أن يكون لكل واحد منهما نسختة الخاصة من البيانات<br />

وبالتالي سينسخ كل شكل نسخة خاصة به<br />

، Create<br />

،<br />

.<br />

فعليك إضافة البيانات إلى صنف الفورم نفسة<br />

type<br />

TForm1 = class(TForm)<br />

public<br />

nClicks: Integer;<br />

end;<br />

: ملاحظة<br />

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

الأشكال التي سينشئها المستخدم <strong>في</strong> زمن التصميم<br />

حاليا<br />

،<br />

،<br />

ولة إستخدامات كثيرة أخرى<br />

.<br />

أو <strong>في</strong> تطبيقات الويب مثلا بحيث نحتاج جلسة لكل مستخدم موجود<br />

٢٢

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

Saved successfully!

Ooh no, something went wrong!