عزيزى الزائر ليس لديك حساب فى منتدانا لذا يجب عليك التسجيل معنا ولو لديك حساب مفعل لدينا نرجو منك الدخول

انضم إلى المنتدى ، فالأمر سريع وسهل

عزيزى الزائر ليس لديك حساب فى منتدانا لذا يجب عليك التسجيل معنا ولو لديك حساب مفعل لدينا نرجو منك الدخول

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

    دلفي: الدرس العملي الأول (دورة الدلفي), البدء بالعمل - مشروعك الأول - مفاهيم

    dr.hamza
    dr.hamza
    الرتبة :
    الرتبة :


    عدد المساهمات : 58
    نقاط : 148
    السٌّمعَة : 0
    تاريخ التسجيل : 26/08/2010

    دلفي: الدرس العملي الأول (دورة الدلفي), البدء بالعمل - مشروعك الأول - مفاهيم Empty دلفي: الدرس العملي الأول (دورة الدلفي), البدء بالعمل - مشروعك الأول - مفاهيم

    مُساهمة  dr.hamza الجمعة سبتمبر 03, 2010 4:39 am

    الدرس العملي الأول . -1-

    راجع مجموعة الدروس للإضطلاع على قائمة الدروس , وأضطلع على الدروس السابقة


    بدء مشروع جديد في دلفي :
    عندما تفتح دلفي للمرة الأولى , ستجد انها إفتراضيا فتحت لك مشروع جديد جاهز للعمل ,
    على كل حال لبدء مشروع جديد في أي وقت فالموضوع سهل جدا :
    من قائمة File إختر new ثم application . (file > new > application ) . وستجد مشروعك الجديد اصبح جاعزا لبدء العمل .

    حفظ مشروع دلفي :
    يفضل أن تقوم بحفظ مشروعك من البداية , وأنصحك هنا بحفظ كل مشروع في مجلد جديد بإسم يعبر عنه . لكي لا تختلط ملفات المشاريع المختلفة مع بعضها البعض ,
    لحفظ مشروع دلفي من قائمة File إختر save All , والتي ستحفظ لك كل ملفات المشروع في المجلد الذي سيتم إختيارة .

    تشغيل المشروع :
    بعد تصميم مشروعك وكتابة شفرته , يلزمك تشغيل المشروع لتوليد الملف التنفيذي النهائي , وتجربة المشروع .
    تشغيل المشروع سهل جدا , من قائمة Run أختر أول خيار وهو Run كذلك . ستلاحظ قيام دلفي بسرعة بتشغي المشروع , وسترى أمامك النموذج الفارغ مع أزراره الأساسية (الإغلاق والتكبير والتصغير) ,
    لإغلاق التنفيذ , أغلق النموذج بشكل طبيعي من علامة الX (الإغلاق) في الزاوية اليمنى .
    الملف التنفيذي : بعد القيام بتشغيل المشروع مرة على الأقل ستجد إضافة ملف جديد إلى مجموعة الملفات في المجلد الذي حفظ فيه المشروع , سيكون إسمه على الغالب (Project1.exe) وأيقونته تشبة أيقونة الدلفي , هذا هو الملف التنفيذي النهائي الذي تريدة , ويكفي نسخة على أجهزة الآخرين ليعمل مشروعك (مبدأيا على الأقل)

    تلميح :
    الحفظ والفتح وإنشاء مشروع جديد وتشغيل المشروع, وظائف متكررة كثيرا لذلك بإمكانك التعامل معها من شريط الادوات او من إختصارات لوحة المفاتيح (ألقي نظرة سريعه على شريط أدوات دلفي وستلاحظ أمكنة هذه الأزرار بسهولة)


    الخطوة الأولى : مشروعك الأول بلغة دلفي
    عند تعلم أي لغة برمجة ستمر بهذه الخطوة التي تسمى مشروع هيلو وورد (Hello World project) .
    برنامج هيلو وورد الذي سنقوم به الآن هو فقط عبارة عن نافذة مكتوب عليها "Hello world" في عنوانها , وفيها زر عند ضغطة سيعطيك عبارة Hello world بمربع رسالة .
    بعد إنشاء مشروع جديد ,
    1- قم بوضع زر على النموذج (Form) ,و غير تسمية الزر إلى Hello world (بضبط خاصية Caption التي تعني العنوان من ضابط الكائنات) .
    2- غير تسمية النموذج إلى Hello world project (يالله قم بذلك لوحدك) .
    3- بالضغط على الزر مرتين , ستفتح امامك نافذة محرر الشفرة , وتكتب لك دلفي تلقائيا جزء من الشفرة لمساعدتك في إختصار الوقت . وستبدو بالشكل التالي :
    4-



    PHP CODE:
    0001
    0002
    0003
    0004
    0005
    <?php procedure TForm1.Button1Click(Sender: TObject);
    begin

    end
    ;
    ?>


    الشفرة التي ستكتبها بين Begin و End ستنفذ عند ضغط الزر بعد تشغيل المشروع ,
    أكتب الآن السطر التالي :


    procedure TForm1.Button1Click(Sender: TObject);
    begin
    showmessage('Hello World!');
    end;


    قم الآن بحفظ المشروع ,
    لتجربة مشروعك أضغط زر Run (أو من قائمة Run كما أتفقنا ) .
    سيظهر أمامك النموذج الجديد , لاحظ عنوان النموذج كما ضبطناه آخر مرة , ولاحظ فيه الزر بعنوان hello world , عند ضغط الزر ستظهر لك رسالة HelloWorld مع زر ok لإغلاق الرسالة .

    مبروك , .. انهيت مثالك الأول ,, أهلا بك في عالم الدلفي ,
    إذا كنت مصر على تجربة ما قمت به من أجل إسم آخر , أعد ذلك وغير النص المكتوب في message من helloworld إلى إسمك الخاص (أكتبة بالعربية هذه المرة) .

    ماذا حدث :
    قمنا كما لاحظت بجزأي بناء أي برنامج , التصميم وكتابة الشفرة ,
    التصميم , من ضبط خصائص النموذج , ووضع زر وضبط خصائصة
    كتابة الشفرة المتعلقه بإظهار صندوق رسالة بزر OK .
    تعليمة الإظهار هذه متكررة كثيرا , لاأعرف ماذا سأشرح عنها , هذه التعليمة بكل بساطة تظهر مربع الرسالة التي تكتبها لها , مع زر OK الإفتراضي للإعلام بالإنتهاء من قراءة الرسالة .
    جرب أن تضع عدة رسائل وراء بعضها في الشفرة ولاحظ ان الرسائل لن تظهر معا , بل كلما ضغطنا زر OK لواحدة تظهر الرسالة التي تليها :


    procedure TForm1.Button1Click(Sender: TObject);
    begin
    showmessage('1');
    showmessage('2');
    showmessage('3');
    showmessage('4');
    showmessage('5');
    end;


    ملاحظة :
    لاحظ وجود فاصلة منقوطة بعد كل تعليمة مستقله , لإخبار مترجم دلفي بإنتهاء التعليمة .



    ثلاث أنواع لسطور الشفرة :
    التعليمات المستقلة .
    الخصائص .
    المناهج .

    توقع أن تتعامل مع هذه الطرق الثلاث في هذه الدورة .

    أولا : التعليمات المستقلة ,
    مثالها تعليمة Showmessage التي عرفتها منذ قليل , وهي تعليمات بسيطة نكتبها مباشرة ونمرر لها القيم اللازمة .

    ثانيا : الخصائص :

    كما أتفقنا في الدروس السابقة , لكل عنصر في دلفي مجموعة من الخصائص والمناهج , الخصائص هي صفات العنصر , مثل اللون العرض الطول الموقع العنوان الخ ...
    عادة وحتى الآن تعلمت كيف تغيير الخصائص من ضابط الكائنات , ولكن ضابط الكائنات ليس موجود في زمن التنفيذ مع الملف التنفيذي النهائي , السؤال الآن كيف أغير الخصائص برمجيا , (في زمن التنفيذ)
    الحل :
    كل خاصية يمكن ان تراها في ضابط الكائنات , وأكثر من ذلك , دعني أقول كل خاصية يمكلكها العنصر تستطيع الوصول إليها من الشفرة بفصلها بنقطة عن أسم العنصر الذي يملكها , ومن ثم نسب القيمة المرادة إليها بشرط ان تكون من نفس النوع (لاتنسب نص لخاصية اللون , ولا تاريخ لخاصية رقمية) :
    مثال :
    لتغيير لون النموذج إلى أزرق بإمكانك تغيير خاصية اللون الخاصه به من ضابط الكائنات . وبإمكانك أيضا الوصول لخاصية اللون من الشفرة وتغييرها برمجيا , والسماح للمستخدم بتغيرها حسب الحاجة.
    ضع 3 أزرار على النموذج :
    الزر الأول : للون الأزرق : ضع في شفرته (أنقر مزدوجا عليه ليفتح محرر الشفرة) التالي :


    procedure TForm1.Button1Click(Sender: TObject);
    begin
    form1.Color:=clblue;
    end;


    الزر الثاني , للون الأحمر في شفرته : (نفس الزر السابق لكن اللون أحمر)

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    form1.Color:=clred;
    end


    الزر الثالث : للون الأخضر :

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    form1.Color:=clgreen;
    end;


    شغل المشروع وجربة , وتمتع بتغيير ألةان الفورم في زمن التشغيل .
    جميل جدا .. ولكن ... ماذا فعلنا ؟
    نحن نريد تغيير خاصية لون النموذج إلى الأزرق بمجرد ضغط الزر .
    حسنا سأعيد ترتيب الأمر كالتالي ,
    للنموذج خاصية اللون , أريد تغيرها إلى أزرق .
    إذا أخذت بالحسبان أنه للوصول إلى أي خاصيه أنت بحاجة لفصلها بنقطة عن أسم المكون العائدة له , ستستنتج بذكاء أنه للوصول إلى خاصية اللون يجب أن أكتب : Form1.color .. (ااه يا ذكي)
    حسنا عليي الآن نسب لون ما لخاصية اللون (وكما أتفقنا مع الأخذ باالحسبان مراعاة التوافق بالأنواع ) طيب يا أخي ؟؟ كيف بدي فهم الكمبيوتر أنو Blue هي لون وليست نص , لذلك يا صديقي تملك دلفي تعريف خاص للألوان هو إسم اللون مسبوقا ب cl من كلمة color أي لون . يعني اللون الأزرق هي color blue وفي دلفي clBlue .
    أصبح الموضوع سهلا , لقد جمعنا كل أطراف المعادلة .
    الطرف الأول form1.color , الطرف الثاني clred , والنسب وهو في دلفي (:=) , سأفترض أن السطر :
    form1.Color:=clgreen;
    أصبح مفهوما أمامك ..

    هاقد انهينا أثنين . التعليمات والمستقلة والخصائص , ما رأيك بالإنتقال للثالثة :

    ثالثا : المناهج (Methods) :
    صديقي العزيز , بإمكانك إحتساء كأس من الشاي من اجل ترسيب المعلومات السابقة بشكل جيد في الرأس .. لا مشكلة سأنتظرك .. ؟
    هم
    هل أنتهيت .. ؟ على بركة الله .
    ألم تلاحظ معي أن الخصائص غير مناسبة للعمل في كل شيء ؟ إنها تسمح لي بتغيير صفات العناصر , وهذا شيء رائع , ولكن كيف سأنفذ أفعال على هذه العناصر .
    الجواب بنفس الطريقة (طريقة الفصل بنقطة ليس إلا) , ويسمى هذه الأفعال بالمناهج .
    يملك كل عنصر مجموعة من الأحداث ومجموعة من المناهج (الأفعال) هذه المناهج التي يملكها تسمح له بتنفيذ أفعال معينه خاصة به .
    مثلا : النموذج يملك فعل الإغلاق .. لإغلاق النموذج بذكاء حاد نستنتج وحسب قاعدة النقطة أن الشفرة كالتالي :


    Form1.close;


    جرب ذلك , ونفذ المشروع .. مارأيك ,, جميل هاه
    هذا هو المحور الثالث من الطرق التي ستتبعها عادة لكتابة الشفرات والتحكم في مكونات برنامجك وضبط افعالة :


    التعليمات المستقلة : مثال showmessage()
    الخصائص : مثال form1.color
    المناهج : مثال form1.close


    تمرين :
    على إفتراض أن النموذج يملك خاصتي الإرتفاع والعرض (Width Height ) قم بإنشاء برنامج يضبط حجم النموذج إلى (500*500) :
    الحل :


    procedure TForm1.Button1Click(Sender: TObject);
    begin
    form1.Height:=500;
    form1.Width:=500;
    end;


    تمرين2 :
    بفرض أن عنصر مربع النص (Edit) يملك خاصية text لتحديد النص المكتوب فيه .
    أنشيء برنامج يحوي edit و button . عند نقر الزر يكتب في مربع النص عبارة "بسم الله الرحمن الرحيم" .
    الحل :
    نضع العناصر على النموذج : والشفرة هي :


    edit1.Text:='بسم الله الرحمن الرحيم';

    لاحظ , وضع النص بين علامتي تنصيص لإخبار دلفي بإنه نص يكتب كما هو ..
    تنبية : عند التعامل مع النصوص في شفرة دلفي يجب وضعها ضمن إشارتي تنصيص (' ') .

    تمرين 3 :
    أنشيء برنامج يحوي زر ومربع نص , نكتب في النص أسمنا وعند النقر على الزر يظهر الإسم في مربع رسالة :
    الحل :


    ShowMessage(edit1.Text);

    لكل عنصر أكثر من معالج حدث :
    كما لاحظت حتى الآن لكتابة شفره تنفذ عند ضغط الزر كنا ننقر مرتين على الزر فتظهر لنا دلفي المحرر وقد جهز للكتابة تحت حدث الضغط الإفتراضي .
    السؤال , ألا يمكنني كتابة شفرات تنفذ في أحداث مختلفة (عند تحريك مؤشر الفأرة مثلا , أو عند ضغط زر , أو عند النقر المزدوج , أو عند السحب والإفلات ) ؟
    الجواب نعم , تسمح لك دلفي بإستخدام كل ذلك , ولكنها تسرع عليك العمل بإختيار الحدث الأفتراضي عند النقر المزدوج فوق عنصر .

    لإختيار كتابة شفرتك في حدث مختلف , تذكر ماتحدثنا عنه في الفقرات السابقة وضابط الكائنات .. ؟
    لماذا تتأتأ .. ؟ ألم نقل أن ضابط الكائنات يحوي صفحتين صفحة خصائص وصفحة أحداث ؟
    . ضع على النموذج العنصر Label (لافتة تعرض نص ما ولاتستخدم للإدخال , فقط للعرض)
    من ضابط الكائنات تستطيع ضبط خاصية العنوان caption كم تعلمنا , المهم الآن لاحظ في ضابط الكائنات الصفحتين properities و Events .. إختر الصفحة الثانية (صفحة الأحداث Events) ستجد لائحة بالأحداث المتوفرة لهذا المكون .
    onClick : تنفذ عند النقر بالماوس .
    onDblClick : تنفذ عند النقر المزدوج
    ondragdrop : تنفذ عند السحب والإفلات

    ..
    ..
    Onmousemove : تنفذ عند تحريك الفأرة فوق هذا العنصر
    Onmouseleave : تنفذ عند خروج الفأره من فوق العنصر
    الخ ...

    لكتابة الشفره تحت حدث من هذه الأحداث . ننقر نقر مزدوج على النص الملاصق لإسم الحدث , وبعدها كما تعرف سيفتح محرر الشفرة , وماستكتبة هنا سينفذ عند تنفيذ الحدث عند التشغيل .

    مثال :
    العنصر السابق label يحوي الحدثين الأخيرين .. ماذا سنفعل بهما .. حسنا دعنا نضيف تأثير على هذا العنصر بحيث عندما يأتي مؤشر الفأرة فوقة يصبح لون الخط أحمر , وعند ذهابها يعود أسود :
    أولا إضبط خاصية Font لهذا المكون من ضابط الكائنات وأختر خط كبير وواضح .
    ثانيا : في الحدث onmousemove ضع : (نقر مزدوج فوق مربع النص الملاصق)
    Label1.Font.Color:=clred;
    وفي حدث onmouseleave ضع :
    Label1.Font.Color:=clblack;
    لتصبح الشفرة كالتالي :


    procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
    begin
    Label1.Font.Color:=clred;
    end;




    procedure TForm1.Label1MouseLeave(Sender: TObject);
    begin
    Label1.Font.Color:=clblack;
    end;





    (لاحظ الخاصية الفرعية color لخاصية الخط font , ولاحظ ترتيب الخصائص .. سهل أليس كذلك ؟ ) .
    نفذ المشروع ولاحظ التألق غند تحريك المؤشر فوق اللافتة .



    لقائنا في الدرس القادم ..
    (إذا لم تقرأ الدرس جيدا وتعيد تنفيذ كل ماورد فيه بيدك ستتعب معي في فهم الدروس القادمة , وأنا جاهز لأي سؤال في المنتدى)
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]

    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]

      الوقت/التاريخ الآن هو السبت سبتمبر 28, 2024 6:13 am