+ الرد على الموضوع
النتائج 1 إلى 3 من 3

الموضوع: الدرس الثالث لتعليم الفيجول بيسك

  1. #1
    مشرف منتديات الكمبيوتر و الموبايل و التقنية kudama is on a distinguished road الصورة الرمزية kudama
    تاريخ التسجيل
    Aug 2010
    الدولة
    بابل
    المشاركات
    1,297

    515 الدرس الثالث لتعليم الفيجول بيسك


    منتديات الفرات

    اليكم الدرس الثالث في تعليم الفيجول بيسك ارجو من الله
    ان تنفعكم في مجال التطور العلمي




    احداث لوحة المفاتيح
    ثلاثة احداث مرنة يوفرها لك Visual Basic ناتجة من لوحة المفاتيح هي ،KeyPress
    KeyDown و KeyUp . فعندما يقوم المستخدم بالضغط على أي زر من ازرار لوحة
    المفاتيح، فالحدث KeyDown سيتم تفجيره، ثم يقوم Visual Basic بتحويل المفتاح
    المدخل الى مقابله في جدول ASCII ثم يتم تفجير الحدث KeyPress ، وبعد ان
    يرفع المستخدم اصبعه عن المفتاح يبدأ الحدث KeyUp بالانفجار.
    بالنسبة للحدث KeyPress فيفجره Visual Basic في حالة قيام المستخدم الضغط
    على المفاتيح [ Ctrl+…] ،[ESCAPE] ،[BACKSPACE] ،[ENTER ] والحروف
    المطبوعة، اما المفاتيح الاخرى آالاسهم او مفاتيح الوظائف وغيره ا... فلا تؤدي
    الى انفجار الحدث KeyPress ولكن الاحداث KeyDown و KeyUp لها نصيب من
    الوقوع. المزيد ايضا، يرسل الحدث KeyPress قيمة عددية من النوع Integer متمثلة
    في متغير عددي بالاسم KeyAscii تمثل المقابل العددي للحرف المدخل في جدول
    :ASCII
    Private Sub Form_KeyPress(KeyAscii As Integer)
    Print Chr$(KeyAscii) & " = " & KeyAscii
    End Sub
    المتغير KeyAscii مرسل بالمرجع وليس القيمة اي يمكنك تعديل قيمته مما يترتب
    عليه مرونة آبير في التحكم في مدخلات المستخدم، هذا الكود مثلا يحول جميع
    الحروف المدخلة في أداة النص الى حروف آبيرة :Capital
    Private Sub Text1_KeyPress(KeyAscii As Integer)
    KeyAscii = Asc(UCase(Chr$(KeyAscii)))
    End Sub
    واذا اسندت قيمة الصفر الى هذا المتغير، فانك قد الغيت عملية ارسال قيمة
    المفتاح الى الأداة المستقبلة له . هذا الكود مثلا يمنع المستخدم من آتابة أي
    شئ في أدا النص عدا الاعداد 0، 1، ...، 9:
    Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
    KeyAscii = 0
    End If
    End Sub

    ملاحظة: تلاحظ انني اعتمد في الامثلة السابقة على الدالتين Asc و $ .Chr
    مع ذلك، يمكنك الاستغناء عنهما اذا آنت تعرف المقابل العددي
    للحرف المطلوب في جدول .ASCII
    يزودك الحدثين KeyDown و KeyUp بقيمتين الاولى KeyCode وتمثل المفتاح
    المدخل، والثانية هي Shift وتمثل حالة المفاتيح [ CTRL] ،[SHIFT ] و [ ALT ] فيما
    اذا آانت مفعوصة –اقصد مضغوطة- او لا آما في الكود التالي:
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If Shift And vbShiftMask Then
    المفتاح [ SHIFT ] مضغوط '
    End If
    If Shift And vbCtrlMask Then
    المفتاح [ CTRL ] مضغوط '
    End If
    If Shift And vbAltMask Then
    المفتاح [ ALT ] مضغوط '
    End If
    End Sub
    بالنسبة الى قيمة المفتاح المدخل -المتمثلة في المتغير KeyCode - هي القيمة
    الفيزيائية للمفتاح في لوحة المفاتيح، صحيح انها مثل قيمة المتغير KeyAscii ، الا
    انها لا تمثل نوعية الحرف المدخل سواء آان صغير Small Letter او علامات آ
    ؟%#@ .... الخ، او حتى حروف عربية ا، ب، ت .... الخ. فهي ترسل دائما الق يمة
    للحرف الانجليزي الكبير Capital آ C ،B ،A .... الخ . المزيد ايضا، لا يمكننا تعديل
    قيمة المفتاح المدخل KeyCode آما آنا فعلنا في الصفحة السابقة مع المتغير
    .KeyAscii
    اخيرا، احداث لوحة المفاتيح KeyDown ،KeyPress و KeyUp يتم تفجيرها عندما
    يكون الترآيز على الأ داة المكتوب فيها الكود، واذا وجدت احداث اضافية تابعة لنافذة
    النموذج وسألتني أي الاحداث سيتم تنفيذها اولا؟، هل هي الاحداث التابعة لنافذة
    النموذج ام الأداة التي عليها الترآيز؟ فساخبرك بان لديك عقلية نبيهة جدا جدا
    تستحق ان تكون مبرمج Visual Basic بسببه ا! فان آانت قيمة الخاصية
    KeyPreview التابعة لنافذة النموذج تساوي True ، فان النافذة ستفجر احداثها اولا
    ومن ثم الأداة التي عليها الترآيز، اما ان آانت قيمة هذه الخاصية False ، فان نافذة

    النموذج ستتجاهل هذه الاحداث وآأنها غير موجودة، ولن تفجر الا احداث الأداة
    فقط.


    حدث التغيير Change


    يتم تفجير حدث التغيير Change بمجرد القيام بتغيير محتويات الاداة آتغير النص
    الظاهر في الخاصية Caption او الخاصية Text . ولكن الاعتماد على هذا الحدث فيه
    شيء من الخطأ، فعند تغيير قيمة الخاصية Value للأداتين CheckBox و
    OptionButton لن يقوم Visual Basic بتفجير هذا الحدث، آذلك عند تغيير الشكل
    الظاهري للادوات آحجمها او الوانها لن يتم تفجير هذا الحدث.

    نافذة النموذج

    نافذة النموذج عزيزة على قلوب جميع مبرمجي Visual Basic ، فهي البؤرة التي
    نرى Visual Basic من خلالها مع الاسم الابتدائي لها Form1 والذي ص احبني منذ
    عشر سنوات مع بدايات VB1 . ولحبي لها وتقديري للعشرة الطويلة بيني وبينها،
    قررت تخصيص فقرة خاصة بها في هذا الفصل وفصل آامل "الاستخدام المتقدم
    للنماذج" في هذا الكتاب، عساها ان تميزني بين المبرمجين آما ميزتها عن سائر
    الكائنات!
    قبل ان اخوض في تفصيل نافذ ة النموذج واتحدث عن خصائصها، طرقها واحداثها،
    بودي التطرق الى فكرة القوالب Templates او قوالب النماذج ،Form Templates
    وهي عبارة عن نماذج جاهزة التصميم ومضبوطة الخصائص تستخدمها في برامجك
    اليومية بصورة متكررة دون الحاجة الى اعادة تصميمها من الصفر . اختر الامر Add
    Form من قائمة Project وستفهم الفكرة من قوالب النماذج الجاهزة. ففي صندوق
    الحوار الذي سيظهر امامك، ستجد العديد من النماذج التي تستخدمها آثيرا في
    برامجك الاعتيادية، واذا آانت لا تملأ بريق عينيك، صمم يا مصمم النماذج آما تريد،
    ومن ثم قم بحفظها في المجلد VB98\Template\Forms \ -او المسارالمحدد في
    خانة التبويب Environment في صندوق الحوار Options - ستلاحظ وجود نافذتك
    آقالب Template بين القوالب السابقة.

    خصائص النموذج

    بعد ان تبرق نافذة النموذج امام عينيك، ستبدأ بوضع الادوات عليها ومن ثم
    تحجيمها. وبعد ذلك، تقوم باخت يار شكل حدودها مع الخاصية BorderStyle . القيمة
    0-None لا استخدمها الا في الشاشة الافتتاحية Splash Screen لبرامجي لانها

    تخفي حدودها وحتى شريط عنوانها TitleBar ، فتمنع المستخدم من امكانيات
    تحريك النافذة وتسبب له حالة من الندم على تشغيل برنامجك ان لم يقم بالضغط
    على المفاتيح [ Ctrl+Alt+Del ] او [ Ctrl+Shift+Esc ] آي يتمكن من اغلاق
    برنامجك. اما القيمة 2-Sizable فستمكن المستخدم من تحريك النافذة بانسيابية
    مريحة وتمكنه ايضا من اعادة تحجيم النافذة بالشكل الذي يناسبه ولن يقوم –ان
    شاء الله- باستخدام المفاتيح السابقة. القيمت ان 1-Fixed Single و 3-Fixed Dailog
    تمنع المستخدم من اعادة تحجيم النافذة مع ابقاء شريط العنوان وهي قيم قياسية
    لصناديق حوار Dialog Boxes تطبيقات Windows ، والفرق بين القيمتين يظهر جليا
    في ان الاولى تسمح بظهور زر التكبير Maximize والتصغير Minimize على شريط
    العنوان اما الثانية فلا. استخدم القيمتين 4-Fixed ToolWindow و 5-Sizable
    ToolWindow لتصغير ارتفاع شريط العنوان وهي موضة لنوافذ اشرطة الادوات.
    توجد قيمة سادسة لشكل الحد اشبه ما تكون بالقيمة 0-None لكن مع حدود
    ثلاثية الابعاد 3-D ، ولن تستطيع مشاهدتها الا ان آانت القيمة الموجودة في
    الخاصية Caption خالية، وقيمة الخاصية ControlBox تساوي False ، مع اختيار
    القيمة 3-Fixed Dailog من الخاصية السابقة .BorderStyle
    تستطيع اظهار، اخفاء او تمكين صندوق التحكم او ازرار التكبير والتصغير عن طريق
    الخصائص MaxButtom ،ControlBox و MinButton . النص الذي سيظهر في شريط
    عنوان النافذة هو نفس النص الموجود في الخاصية Caption . تستطيع توسيط
    النافذة وسط الشاشة عن طريق اختيار القيمة 2-Center من قيم الخاصية
    StartupPosition ، وبامكانك منع المستخدم من تحريك النافذة عن طريق تحويل
    قيمة الخاصية Moveable الى False . اما الخاصية ShowInTaskBar فهي تضيف زر
    الى شريط المهام Windows Task Bar بجانب زر "ابدأ" او Start بحيث يتمكن
    المستخدم من تنشيط نافذة برنامجك بمجرد النقر على هذا الزر . اخيرا، خاصية
    WindowState التي تمكنك من تكبير النافذة لتغطي آامل الشاشة، تصغيرها او
    استرجاع الحجم الطبيعي لها.

    خصائص الصور:

    عن طريق الخاصية AutoRedraw تحدد ما اذا آانت اعادة رسم نافذة النموذج تتم
    تلقائيا True او يدويا False بواسطة اآوادك . في الحالة الاولى فان سرعة اعادة
    الرسم تكون اسرع من الحالة الثانية، الا انها تستهلك الاف الكيلوبايت ات في الذاآرة
    مما يقلل من مصادر النظام System Resources المتاحة للبرامج الاخرى، لك ان
    تتخيل نافذة حجمها 800x600 مع عمق لوني True Color تستهلك 1406
    آيلوبايت –ما يزيد على 1ميجا، ولك ان تتخيل 5 او 9 نوافذ جشعة من برنامجك
    مفتوحة، وآم ستسبب من البطء في التحميل والحجز الكبير في الذاآرة؟ من

    المهم ان اذآر هنا بان الحدث Form_Paint لن يتم تفجيره ابدا طالما آانت قيمة
    هذه الخاصية True . باختصار، لا تستخدم هذه الخاصية الا عند الحاجة الماسة
    فقط، وحاول وضع اآواد الكتابة والرسم آ Line ،Print .... الخ بين سطور الحدث
    .Form_Paint
    اذا آنت تستخدم طرق الرسم Circle ،Line .... الخ بكثرة، فانصحك بتغيير قيمة
    الخاصية ClipControls الى False حتى تزيد سرعة طرق الرسم بمقدار الضعف لان
    Visual Basic لن يقوم بإنشاء منطقة Clipping region ولن يقوم باعادة الرسم الا
    للمناطق التي تحتاج الى اعادة رسم، اما اذا لم تستخدم طرق الرسم، فالقيمة
    True تكون مناسبة لهذه الخاصية.
    الخاصية HasDC تخيرك فيما لو آنت تريد إنشاء سياق رسم Device Context
    لنافذة النموذج ام لا، سياق الرسم عبارة عن ترآيب خاص بنظام التشغيل يحمل
    مواصفات وبيانات الصورة . اذا آنت لا تنوي وضع صورة في الخاصية Picture ، فاجعل
    قيمة هذه الخاصية False آي تقلل من استهلاك مصادر النظام مع العلم ان
    الخاصية hDC لن تعمل معك الا اذا قمت بتحميل صورة على نافذة النموذج
    فستحمل الخاصية hDC قيمة مؤقتة تزول مباشرة بعد زوال الصورة.

    الخاصية Icon

    تمثل الرمز الذي يظهر في صندوق التحكم Control Box التابع لنافذة
    النموذج والرمز الظاهر على زر النافذة في شريط المهام ، هذا إذا آانت الخاصية
    ShowInTaskbar تساوي True ، اما ان آانت قيمة الخاصية ( None ) فان نظام
    التشغيل يضع رمز افتراضي شريطة أن تكون قيمة الخاصية ControlBox تساوي
    True . من الضروري أن تعلم انه لا يمكنك تخصيص رمز البرنامج EXE File Icon
    بشكل مستقل، ف Visual Basic يخيرك بين احد رموز نوافذ النماذج التابعة
    لمشروعك عن طريق القائمة Icon من خانة التبويب Make الموجودة في صندوق
    حوار خصائص المشروع .Project Properties
    الخاصية Picture تمكنك من تحميل ملف صورة ووضعه في داخل نافذة النموذج،
    تدعم هذه الخاصية هيئات مختلفة من الملفات هي : ،JPG ،GIF ،DIB ،BMP
    ICO ،EMF ،WMF و CUR . تستطيع تحميل ملف الصورة وقت التصميم باختيار اسم
    الملف من صندوق حوار الخاصية، او استخدام طريقة اخرى افضلها آثيرا و هي
    نسخ Copy الصورة من البرنامج الذي يعرضها الى الحافظة Clipboard ومن ثم
    لصقها باختيار الامر Paste من القائمة Edit . واذا اردت وضع الصورة في وقت التنفيذ،
    فالدالة LoadPicture تمكنك من فعل ذلك او سرقة صورة تابعة لكائن آخر:
    تحميل صورة وجهي الوسيم! ‘ (” Form1.Picture = LoadPicture (“C:\Turki.BMP
    نفس الصورة الموجودة في النموذج Form2.Picture = Form1.Picture ‘ Form1

    ملاحظة: الخاصية Picture هي آائن يحتوي على خصائص اضافية آعرض

    الصورة وارتفاع وغيرها:

    Print Me.Picture.Height
    Print Me.Picture.Width
    اضاف VB6 متغيرات جد يدة الى الدالة LoadPicture تمكنك من استخلاص رمز Icon
    من مجموعة رموز مضمنة في ملف ICO تجد شرح وافي لها في مكتبة ،MSDN
    وبما انني ذآرت الدالة LoadPicture ، فما المانع من ذآر زميلتها SavePicture التي
    تمكنك من حفظ الصورة الى ملف:
    SavePicture Form1.Picture, “C:\Aseeri.BMP”
    ملاحظة: الهيئة Format التي تحفظ بها الدالة SavePicture هي نفس هيئة
    الصورة التي حملت في الخاصية، باستثناء الهيئات GIF و JPG فيتم
    تحويلهما الى الهيئة .
    BMP
    خصائص الرسم:


    الخاصية Image تمثل الرسمة الموجودة على نافذة النموذج الناتجة من استخدام
    طرق الرسم Cirle ،Line .... الخ، وستكون دائما فوق الصورة الموجودة في الخاصية
    Picture ، لن تستطيع استخدام او الاستفادة –ان صح التعبير - من هذه الخاصية الا
    ان آانت قيمة الخاصية AutoRedraw هي .True
    الخاصية DrawWidth تحدد عرض او سمك الفرشاة المستخدمة لرسم الخطوط
    والاشكال بطرق الرسم Line ،PSet و Circle اما الخاصية ForeColor فهي تحدد
    اللون الافتراضي للطرق السابقة . بالنسبة للخاصية DrawStyle فهي تمكنك من
    تحديد شكل النقش لرسم الخطوط والدوائر باستخدام الطريقتين Line و ،Cirlce
    آذلك تمكنك منه الخاصية FillStyle للمنطقة الداخل ية من المربع او الدائرة مع لون
    التعبئة الموجود في الخاصية FillColor . اما الخاصيتان CurrentX و CurrentY
    فتمثلان الاحداثيات الحالية التي تستخدم لطرق المخرجات والرسم Line ،Print
    .... الخ، واللتان تتأثران بكل عملية رسم او خرج باستخدام الطرق السابقة . اما
    الخاصية FontTransparent فهي تحدد اسلوب خرج الطباعة باستخدام الامر ،Print
    فإن آانت قيمة الخاصية تساوي False فسيكون لون خلفية الطباعة هو نفس لون
    الخلفية BackColor للنموذج، أما إن آانت قيمة الخاصية True فإن خلفية الطباعة
    ستكون شفافة.


    تقبلوا تحياتي

  2. #2
    ابن الحويجة العبيدي is on a distinguished road الصورة الرمزية العبيدي
    تاريخ التسجيل
    Oct 2009
    الدولة
    منشن
    المشاركات
    3,561

    افتراضي رد: الدرس الثالث لتعليم الفيجول بيسك

    قمة الابداع اخي الفاضل
    دروس قيمة ومرجع للدراسة قيم
    ربي ما يحرمنا من ابداعك
    تحياتي وتقبل مروري

  3. #3
    مشرف منتديات الكمبيوتر و الموبايل و التقنية kudama is on a distinguished road الصورة الرمزية kudama
    تاريخ التسجيل
    Aug 2010
    الدولة
    بابل
    المشاركات
    1,297

    افتراضي رد: الدرس الثالث لتعليم الفيجول بيسك

    حبيبي الغالي يا اخي انس العزيز ومنورنا والله
    تحياتي لك

+ الرد على الموضوع

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

     

المواضيع المتشابهه

  1. بطوله كأس العالم... تاريخها الكامل ...
    بواسطة iraq hawk في المنتدى كأس العالم
    مشاركات: 15
    آخر مشاركة: 17-07-2012, 03:13 PM
  2. تعليم استعمال الكمبيوتر
    بواسطة ضرغام الزير في المنتدى البرامج و شروحاتها
    مشاركات: 7
    آخر مشاركة: 29-08-2009, 08:41 PM
  3. شرح الفوتوشوب و تحميل الفوتوشوب
    بواسطة alfr3on في المنتدى البرامج و شروحاتها
    مشاركات: 0
    آخر مشاركة: 14-06-2008, 04:09 AM

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك