الصفحة رقم 2 من 6 البدايةالبداية 1234 ... الأخيرةالأخيرة
مشاهدة النتائج 21 الى 40 من 111
  1. #21
    يسلمووووووووووووووو
    موضوع مفيد
    الله يعطيك العافية ..........
    9e0d9c278f853e3d2bc73421133611fc


  2. ...

  3. #22

    تحقيق أو نبذه او قصه

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

  4. #23
    أخي اياس كلمني بالماسنجر و أفهمك
    My Soul has been lost for a While and here i come back!!!i feel so alone, missing u my frnds!
    5 years no connection !! do u still remember me?!!!

  5. #24

    تحقيق أو نبذه او قصه الدرس 7 : ملفات الocx و التعامل معها

    السلام عليكم ورحمة الله..سنتكلم اليوم عن ملفات الOcx و التي سنتعرف عليها الآن ...

    الدرس 7 : ملفات الocx و التعامل معها
    :


    أولا ما هي ملفات الOCX?
    ببساطة إن ملف الocx الذي يشبه ملف الDll هو ليس إلا هذه الأداة التي تأخها من صندوق الأدوات Tool Box ثم تقوم برسمها على الفورم بالحجم و الشكل الذي تريده و اللون و الاسم و ....و كل خاصية أو حدث كلها تكون مبرمجة و جاهزة للاستعمال في ملف الocx الذي يوجد عدد كبير منها في مجلد الSystem..
    و لنأخذ هذه المقدمة عنها
    تقنية OCX - وبداية ظهور Activex :
    إن ثورة التقنيات لـMicrosoft Visual Basic بدأت مع الإصدار الأول وأخذت تنموا بالتدريج حتى كانت الثورة الثانية في الإصدار الرابع حيث في هذا الإصدار تم تغير محركEngine (وهوا الملف الذي يدعم البرامج أثناء تشغيلها ويسمى VVBRUN والذي كان مبني على تقنية 16-Bit ويعرف باسم Ruby والذي قام بابتكاره (الآن كوبر ) الأب الروحي لـ Visual basic) وفي بداية ظهور تقنية 32-Bit (Windows95 & WindowsNt) قامت Microsoft ببناء محرك جديد أسمته Object Basic والذي يعرف الآن باسم VBA وكان أهم ما في هذا المحرك هوا دعمه لتقنية COM .
    وكان مع الإصدار الرابع على مطوري Visual basic دعم أدوات التحكم الخاصة Custom Controls ولم تكن VBX صالحة لذلك لا شكلاً ولا مضمونا , وكان البديل لذلك هوا دعم هذه الأدوات عن طريق تقينه OLE 2 ولكن لم تفي تقنية OLE 2 باحتياجات Visual basic لذلك تم تطوير OLE في صورة ابتكار أداة تحكم قائمة على OLE سميت (ocx)

    ومع تتطور أنظمة التشغيل التي تعمل على تقنية 32-Bit وانتشارها , ومع ظهور لغات برمجة الانترنت المختلفة , قامت Microsoft بتغير هندسة تقنية ocx لتصبح صالحة للاستخدام على الشبكات وبخاصة شبكة الانترنت وقد قامت الشركة أيضاُ بتغير اسم التقنية من OLE والتي بنيت عليها ocx إلىActiveX .
    ومن هنا بدأت الثورة الحقيقة لمبرمجين Visual Basic وهي إتاحة تطوير الأدوات Activex لتكون أسهل الطرق لإنتاج كائنات جديدة أو برمجة صفحات الويب بواسطة هذه التقنية .
    وبعد هذه المقدمة...دعونا نتعرف أكثر عليها أنت حتى الآن من خلال الدروس السابقة لم تتعامل إلى مع عدد قليل منها Text و Labelو Picture و غيرها ..و لكن ما رأيك أن الفيجوال يملك عناصر أكثر من هذه التي تراها أضعاف مضاعفة و ألأكثر احترافية ...( ستتعرفون على قوة الفيجوال الحقيقية في برمجة الألعاب)..
    الآن لا بد أن ذلك أثار حيرتكم أين هذه العناصر إذا ...هيا معا كي نتعرف عليها ان تختبأ..
    اذهب لقائمة العناصر Tool Box و انقر بالزر اليمين للفأرة ..(انقر خارج العناصر في المساحة الفارغة).
    و الآن لاحظ قد ظهرت لك قائمة بثلاثة عناصر اختر الاول المسمى ب Components أي عناصر أو أجزاء.
    و لاحظ النافذة التي ظهرت ..نعم إنها نافذة العناصر و كل ما تراه من العناصر الموجودة في القامئة البيضاء أمامك هي عناصر أو ملفات Ocx اختر أحدها و ذلك بتفعيل إشارة صح إلى جانبه ثم OK و لا حظ انه عند اخيارك أي عنصر ستلاحظ امسه وموقعه في الFrame تحت الآن اختر أحدها ثم OK و لاحظ صندوق العناصر Tool Box لقد زاد عدد العناصر و احد أو ربما اكثر (حسب الأداة)..على كل حتى الآن لن تتعاملوا مع هذه العناصر لأنها متقدمة قليلا مثل ال Common Dialog المسؤول عن فتح الملفات الخارجية مثل الصور و الاصوات .
    و لكن ما ذا لو أردنا مستقبلا التعامل مع ملفات الOcx التي نستوردها من الخارج ...مثلا ربما تجد اداة في أحد المواقع تقوم بتحميلها و تريد استعمالها الآن سنتعلم كيف سنستوردها ...
    عد للنافذة Components ثم بدل أن تختار عنصر ما من القائمة البيضاء أمامكم اختر Browse..
    بعدها حدد موقع الأداة في جهازك ثم OPEN..عندها ستجد الأداة و قد اصبح اسمها في القامئة ثم اختر OK و ستجد الأداة في Tool Box ...
    و أدوات الOcx على الرغم من صعوبة برمجتها أو بالأحرى تطويرها لكن يوجد عدد كبير من الأدوات التي صممها أشخاص عرب و أنا شخصيا قد صممت عدد من الأدوات مثل أداة شريط ال Xp الجانبي و أداة ال Suoper Label ولو كان الوقت مناسبا لقمت بإضافتها للموقع..
    و شكرا
    أخوكم : إيــاس نبهان
    eiasnabhan@hotmail.com
    في انتظار الاخ Anime لكي يضيف الدروس الجديدة للفهرس..

  6. #25

    تحقيق أو نبذه او قصه

    السلام عليكم ورحمة الله نكمل دروسنا بدرس يسلط الضوء على أداة هامة في بعض البرامج وهي أداة الList..

    الدرس 8 : التعامل مع الListو أشباهها:

    في البداية يجب وضع الlist على المشروع
    اذهب إلى صندوق الأدوات (tool box) و اختر منها list box
    بعد و ضعها على الفروم وعند تشغيل البرنامج ستجد بأنها فارغة ةذلك بالحالة العادية .
    الآن يجب و ضع مفاتيح لها أو خيارات و يتم ذلك بالفورم نفسها و ليس
    بالList.
    اذهب إلى الفورم load و ضع الكود التالي:
    كود:
    List1.AddItem "تجريب"
    وهذا الكود حتى الآن يضيف للlist مفتاح واحد وسنكرر هذا العملية في كل مفتاح تريده..
    (ملاحظة: من المفضل وضع المفاتيح بالترتيب الأبجدي و ذلك حتى لا تسبب ضياع بالبحث.)
    شغل الفورم الآن و ستجد بأن الlistقد أضيف لها المفتاح(تجريب)
    و هكذا كلما أضفت الكود السابق أضيف مفتاح كما أن المفاتيح سيكون ترتيبها كترتيب كوداتاها
    "إذا وضعت الكودين التالين
    كود:
    List1.AddItem "eias1"
    List1.AddItem "eias2"
    فإن eias1 ستظهر قبل eias2 في الlist"
    كما أن حجم الlist طولي يتمدد تلقائيا بعدد المغاتيح التي تضعها أي لا تخشى الإكثار من المفاتيح فإنه سوف يظهر شريط تمرير جانبي عندما
    يكون عدد المفاتيح أكبرمن حجم اList. ومن محاسن هذا الشريط بأنه يتأثر بالthems الخاص للنظام.
    ويمكن التنقل بين المفاتيح بالأسهم ( أعلى -أسفل) كما أنه إذا ضغطت من لوحة المفاتيح على أول حرف من المفتاح سينتقل تلقائيا للمفتاح.
    ولاآن كيف نضع لهذا المفاتيح أولمر عند الضغط عليها.
    اضغط على list ضغتتين لتظهر لك صفحة الكود click
    ضع هذا السطر في البداية:

    كود:
    Select Case List1.Text
    وبه نبدأ الكود الخاص بالList دائــما
    ثم بعداها نبدأ بإعطاء الأوامر للمفاتيح وهنا سيكون الأمر أنه بالضغط على المفتاح الذي يرمزله ب (CASE)
    سوف يتم الحدث (مثلا وضع نص في TEXT)..

    كود:
    Case "eias" 
    Text1.Text = "عضو يريد الإفادة"
    Case "MHDH"
    Text1.Text = "صديق كريم"
    Case "eias" 'في هذا السطر حددنا أي مفتاح من المفاتيح
    Text1.Text = "عضو يريد إفادة الآخرين" 'وهنا كتبنا الحدث الذي سيقع
    و الآن بنفس الطريقة أعطي حدث للمفتاح (MHDH) "الذي يرمز لأحد أصدقائي المبرمجين"
    والآن القسم الأخيرمن الكود هو الـتأكيد على الإنتهاء من عملية اختيار المفاتيح و هو بسيط جدا اكتب في نهاية الكود

    كود:
    End Select
    فيصبح الكــود كــاملاً
    في الفورم LOAD:

    كود:
    Select Case List1.Text
    Case "eias" 
    Text1.Text = "عضو يريد الإفادة"
    Case "MHDH"
    Text1.Text = "صديق كريم"
    End Select

    شغل البرنامج وجربها و ذلك بعد أن تكون قد وضعت الTEXT1على الفورم أولا.
    ويمكن التحكم بحجم الخط و شكله كأي عنصر آخر عن طريق الخاصية FONT
    ----------------------------------
    أما بالنسبة اعنصر الكومبو(combo) أو القائمةذات السهم التي يتم إنزالها اذهب إلى قائمة الأدوات واختر منها
    combobox ونضيف إليها مفاتيح عن طريق الكود التلي في الفورمload

    كود:
    Combo1.AddItem "http://www.vb4arab.com/"
    Combo1.AddItem "http://www.mexat.com/"
    -------------------------------------

    أما بالنسبة للبحث عن عنصر من عناصر الLiST فيتم بالكود التالي :

    كود:
    Dim name As String
    Dim i As Integer
    name = InputBox("PLease enter term you want to search for")
    
    For i = 0 To (List1.ListCount - 1)
        If List1.List(i) = name Then
            List1.Selected(i) = True
            Exit For
        End If
    Next i

    ولكن و للأسف إذا لم تكن الكلمتان متطابقتان لا يجده أبدا.
    أردو أن أكون قد وفقت في هذا الدرس و أن تبدو رأيكم الذي يهمني ويدفعني لكتابةالمزيد.موعدنا بدرس قادم.و في انتظار الأخ Anime يضيف الدرس للفهرس.

    جربو المثال مع الدرس...
    أخوكم : إيـــاس نبهان

  7. #26
    أخي اياس كلمني لو سمحت بالماسنجر الساعة يا 12 أو 1 أو 2 طبعا بتوقيت السعودية

  8. #27

    تحقيق أو نبذه او قصه الدرس9 : الجملة الشرطية If ..then

    السلام عليكم ورحمة الله ...سنتكلم اليوم عن مفهوم في البرمجة وهو مفهوم الجملة if Then ...

    الدرس 9 : الجملة الشرطية If...Then

    من معنىالجملة فهي تبدو جملية شرطية أي وترجمتها (إذا ......عندها) أي أنه إذا حدث كذا افعل كذا و لهذه الجملة ثلاثة أساسيات لا تتم بدونها وهي:
    بداية الشرط :If.
    إنهاء الشرط وبداية نتيجة الشرط:Then
    إنهاء المجيلة كاملة :End If
    و يكون بناء المجلة كما يلي :
    If aaa Then
    bbbbb
    End If
    حيث
    aaa: الشرط اللازم تحققه .
    bbbb: العملية التي ستنفذ عند تحقق الشرط ..
    و لكي نفهم الجملية الغامضة إلى الآن يجب ان نأخذ مثال...
    مثلا ليكن لدينا Text وCommandنريد أنه عند الضغط على الCommand إذا كان الرقم الموجود في الText يساوي الواحد يظهر صندوق نص ...تعالوا لنجرب هذه العملية..
    في الCommand ضعوا الكود التالي:
    كود:
    If Text1.Text = "1" Then
    MsgBox "الرقم هو الواحد"
    Else
    MsgBox "الرقــم ليس الواحد"
    End If
    ويمتاز هذا الشرط بالقدرة على التعددية ...فمثلا تستيطيع أن تكتب عدد كبير جدا من الشروط المتتالية:
    فمثلا لو كنت تريد أنه إذا كان الرقم واحد يظهر رسالة (الرقم واحد) و إذا كان الرقم اثنين تظهر رسالة (الرقم اثنين )
    إذا كان الرقم ثلاثة تظهر رسالة (الرقم ثلاثة) ...فلنجرب..
    كود:
    If Text1.Text = "1" Then
    MsgBox "الرقم هو واحد"
    End If
    If Text1.Text = "2" Then
    MsgBox "الرقم هو اثنين"
    End If
    If Text1.Text = "3" Then
    MsgBox "الرقم هو ثلاثة"
    End If
    والآن جربوا البرنامج و جربوا إدخال أحد الأرقام 1 -2 -3..و لاحظوا كيف يظهر الMsgbox.

    استخدام Or:
    من معنى الكلمة تبدو أنها (أو) و نستخدمها مع الجملة الشرطية للتخيير
    إذا كان النص =1 أو النص=2 عندها
    صندوق نص "الشرط محقق"
    و إلا
    صندوق نص "الشرط غير محقق"
    إنهاء الشرط
    كانت الجملة السابقة ترجمة حرفية لماسأكتبه الآن
    كود:
    If Text3.Text = "1" Or Text3.Text = "2" Then
    MsgBox "الشرط محقق الرقم واحد أو اثنين"
    Else
    MsgBox "الشرط غير محقق"
    End If
    و هكذا نكون قد تعرفنا جيدا على الجملة if مع or. وهنا لن أتكلم عن الجملة AND وهي ابضا تابعة لiF.
    و شكرا.

    أخوكم : إيــاس نبهان
    eiasnabhan@hotmail.com
    جربو المثال مع الدرس
    أخي الكريم حسام الحقيقة أنا الماسنجر عندي يعمل 30 ثانية و يسجل خروج وحده لذلك لو ترسل لي بريد بما تريد أفضل وتوقيتكم يختلف عن توقيتنا بساعة لأنكم لاتغيرون الساعة عند التوقيت الصيفي و الشتوي. و شكرا

  9. #28

    تحقيق أو نبذه او قصه الدرس 10 : التعامل مع المسارApp Path :

    السلام عليكم ورحمه الله...في بعض البرامج قد نحتاج لاستيراد ملفات من الخارج صور أو ملفات نص او ماشابه و لما كان موقع البرنامج غير ثابت أي أنه ربما قام بتحميله المشتخدم في القسم c أو ربما في القسم d أو في مجلدات أخرى مثلD:\program لكان لا بد من أن يعرف البرنامج موقعه وموقع الملفات التي معه وهو ما يدعلى بال App Path وهو الدرس لهذا اليوم
    ملاحظة: تفاديا للتكرار من غير فائدة فقررت أنه إذا وجد درس كتبه غيري بنفس المعلومات سأنقله إلى هنا ..و هذا الدرس من كتابة أخونا عضو نادي فيجوال بيسك للعرب العضو فتى فيجوال و له الشكر.

    الدرس 10 : التعامل مع المسارApp Path :
    App.path تعني مسار البرنامج ، وهي تستخدم للحصول على مسار المجلد الذي يوجد فيه البرنامج .
    فمثلاً إذا كان لدينا برنامج في C:\New فهذا هو مسار البرنامج والذي يمكننا الحصول عليه باستخدام App.path
    وللتجربة يمكنك الحصول على مسار برنامجك بواسطة أمر هكذا :

    كود:
    Msgbox App.path
    وسترى أنه يعطيك مسار المجلد الذي تحفظ فيه المشروع .

    الفائدة من ذلك هو تلافي مشكلة تغير المسارات من جهاز لآخر ، فمثلاً في برنامج للصور ضع جميع الصور في نفس مجلد البرنامج ، ولتحميل صورة مثلاً اسمها PP1 وامتدادها Bmp اكتب :
    كود:
    Picture1.Picture = Loadpicture(App.path & "\PP1.Bmp")
    ويمكنك أيضاً إنشاء مجلد جديد في نفس مجلد البرنامج وتسميه مثلاً Image وتضع فيه الصور ، وبذلك يصبح أمر تحميل الصور بالشكل التالي :
    كود:
    Picture1.Picture = Loadpicture(App.path & "\Image\PP1.Bmp")
    وليست الصور هي كل ما نستخدم فيها App.path بل كل شيء ، فمثلاً لتشغيل ملف مفكرة ملحق بالبرنامج نضعه في مجلد البرنامج ونكتب :
    كود:
    Shell "notepad.exe" & " " & App.path & "\RedMe.txt", vbNormalFocus

    ولنسخ نفس البرنامج نستخدم الأمر التالي :
    كود:
    Filecopy App.path & App.EXEName , "C:\Ahmed"

    وهكذا ، وتوجد لـ App العديد من الفوائد التي لا يتسع المجال لذكرها ، ومنها مثلاً إنهاء البرنامج إذا لم يكن يعمل من القرص المدمج ، واستخدامها في أوامر حفظ البيانات واسترجاعها ، ومنع تشغيل أكثر من نسخة .... الخ

    لكن ينبغي التنبه إلى أن App.path قد تعطينا C:\Ahmed أو C:\Ahmed\ ولتلافي هذه المشكلة نقوم بالتالي :


    كود:
    Dim Folder
    Folder = App.path
    If Right(Folder,1) <> "\" then Folder = Folder & "\"

    هنا قمنا بتعريف متغير وخزنا فيه مسار البرنامج ، واختبرناه ، فإذا كان آخر حرف من اليمين لا يساوي \ فإننا نقوم باضافتها إليه .

    وهكذا نتعامل مع الناتج والمخزن في المتغير Folder كأنه يحتوي على \ مباشرة ، ولذا لا حاجة لكتابتها قبل كتابة اسم الملف .
    أما المتغييرات فسنتكلم عنها لاحقا
    كاتب الدرس: فتى فيجوال

    مع تحيات إخوكم :إيــاس نبهان
    قوموا بتجريب المثال...إلى متى ستبقون صامتين هكذا..bawlingmsn

  10. #29

    تحقيق أو نبذه او قصه الدرس11: المتغيرات و الثوابت و المعاملات (القسم 1)

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

    الدرس11: المتغيرات و الثوابت و المعاملات :القسم الأول
    مقدمــــــــــــــة :

    البيانات في أي لغة من لغات البرمجة بما فيها فيجول بيسك أما أن تكون متغيرات Variables أو ثوابت Constants و المتغير هو مكان في الذاكرة يتم تخصيصه لك لتقوم بوضع عنوان له ويخزن المعلومة التي تريدها بداخلة كما يمكنك تغير هذه المعلومة بمعلومة أخري في نفس المكان ويظل عنوانه ثابت .
    أما الثابت فمثله مثل المتغير تماما إلا انك لن تحتاج لتغير هذه المعلومة . وكما هو واضح من الاسم عبارة عن اسم يحمل قيمة ثابتة لا تتغير أثناء تنفيذ البرنامج .

    ولكي هذان المثالين ليوضح لك وظيفة كل من المتغيرات والثوابت ..


    مثال علي المتغيرات والثوابت :
    المتغيرات . إذا أردت أن تسال عن اسم العميل الذي سيدخله المستخدم فان اسم العميل قيمة متغيرة لأنك لا تعرف من هو هذا العميل الذي سيقع عليه اختيار المستخدم في هذه الحالة تستخدم متغير لتضع فيه اسم العميل انظر المثال التالي :

    كود:
    HisName$=InputBox$("اكتب اسم العميل")
    في هذا المثال سيعرض فيجول بيسك علي المستخدم مربع حوار نتيجة لتنفيذ أمر InputBox$ يطالبه فيه بكتابه اسم العميل ويقوم بحفظ اسم العميل الذي يدخله المستخدم في المتغير HisName$ ويبقي المتغير HisName$ يحمل هذا الاسم حتى يقوم المستخدم بتغيره ويتم تغير القيمة التي يحملها المتغير HisName$ بوضع قيمة أخري داخلة فيقوم الفيجول بيسك باستبدال القيمة القديمة بالقيمة الجديدة .
    الثوابت . إذا كان عملك يتطلب مجموعة من العمليات الحسابية ترتبط بوحدة ثابتة مثل وحدة القياس المتر وهو يساوي مائه سنتمتر فيمكن الإعلان عن ذلك بالأمر التالي:
    كود:
    Const Meter=100
    (مداخلة : التعريف يتم في القسم General).

    وهذه يفيدك عندما تكون جميع حساباتك بالنسبة للوحدة سنتمتر فبدلا من قيمة المتر وكتابة الرقم ( 100 ) في كل مرة سيتم كتابه الثابت Meter في جميع التعليمات المطلوبة داخل البرنامج وهي فائدة كبيرة تجعل برنامجك سهلا وبسيطا.
    فائدة أخري يمكن الحصول عليها من استخدام الثوابت ، فمثلاً في حالة تعديل كل حساباتك لتصبح منسوبة لوحدة الملليمتر بدلا من السنتمتر ( والمعروف أن المتر = 1000 ملليمتر ) فبدلا من إجراء هذا التعديل في جميع إجراءات برنامجك ( وهو كتابة الرقم 1000 بدلا من الرقم 100 ) يكفي أن تعدل الرقم 100 ليصبح 1000 في نفس الأمر كآلاتي .
    كود:
    Const Meter=1000

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

    أنواع المتغيرات :
    يوجد في الفيجول بيسك أنواع كثيرة للمتغيرات نوضح منها ما يلي .
    نوع المتغير Integer : عدد صحيح صغير نسبيا ــ حجمه 2 Byte ــ مداه من 32768- إلي 32767
    نوع المتغير Long : عدد صحيح كبر نسبيا ــ حجمه 4 Byte ــ مداه من 2147483648- إلي 214783674
    نوع المتغير Single : عدد حقيقي صغير نسبيا ( يحتوي علي علامة عشرية عائمة Floating Point ) ــ حجمه 4 Byte ــ مداه من 3.402823E38- إلي -1.401298E-45 (قيم سالبة) و من 1.401298E-45 إلي 3.402823E38 (قيم موجبة)
    نوع المتغير Double : عدد حقيقي كبير نسبيا (يحتوي علي علامة عشرية عائمة) ــ حجمه 8 Byte ــ مداه رقم هائل
    نوع المتغير Currency : عدد حقيقي كبير نسبيا (يحتوي علي علامة عشرية ثابتة ) ــ حجمه 8 Byte ــ مداه رقم هائل
    نوع المتغير Byte : عدد صغير جدا أو بيانات ثنائية ــ حجمه 1 Byte ــ مداه من الصفر إلي 255
    نوع المتغير Boolean : متغير منطقي يحمل قيمتان فقط صفر أو واحد . أو True or False ــ حجمه 2 Byte
    نوع المتغير Data : يحمل قيم تاريخه و وقت وهو من نفس نوع المتغير Double ــ حجمه 8 Byte ــ مداه من التاريخ 1 يناير 100 إلي 31 ديسمبر 9999 ومن الساعة 00:00:00 إلي 23:59:59
    نوع المتغير Object : كائنات أو فئات Classes
    نوع المتغير String : سلسلة من الحروف ــ مداه من صفر إلي 65500 حرف تقريبا
    نوع المتغير Variant : الوقت/التاريخ أو عدد ذو علامة عشرية عائمة أو سلسة حروف ــ حجمه 16 Byte ــ مداه التاريخ من 1 يناير 0000 إلي 31 ديسمبر 9999 وفي الأعداد مثل Double وفي الحروف مثل String

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

    الشروط الواجب توافرها عند اختيار اسم للمتغير ..
    يجب أن يبدأ اسم المتغير بحرف أبجدي وليس رقما .
    ألا يزيد عدد حروف اسم المتغير عن 40 حرفا .
    ويجب ألا يحتوي علي أي مسافات أو نقاط وإذا كان اسم المتغير يحتوي علي كلمتين فأنصحك باستخدام (_) Under Score للفصل بينهما ..
    و يجب أيضا إلا يتضمن كلمة من الكلمات المحجوزة وهي الكلمات التي تستخدم في الأوامر و العبارات التي يستخدمها فيجول بيسك فمثلا لا يسمح باستخدام كلمة Print كاسم للمتغير فإذا احتجت لتسمية متغير مثل كلمة Print فيمكنك أن تكتب الكلمة كجزء من اسم المتغير PrintText مثلا .
    فائدة (1) :
    يفضل الإعلان عن نوع المتغير لزيادة سرعة التعامل معه .المتغيرات التي لم تحدد نوعها يعمل فيجول بيسك علي الإعلان عنها تلقائيا من النوع Variant وهو أبطأ أنواع المتغيرات .

    فائدة (2) :
    يوجد نوعان من المتغير من النوع String وهي متغيرات ثابتة الطول Fixed Length و متغيرات متغيرة الطوال Variable Length . و المتغيرات الحرفية ثابتة الطوال وكما واضح من اسمها هي متغيرات محدد لها عدد الحروف في أثناء التصريح عنها ولا يمكن أن يتغير طولها وتكون بصورة التالية :


    كود:
    Dim TafTaf As String * 10

    و المتغيرات الحرفية متغيرة الطول تستخدم في حالة عدم معرفتك بطول المتغير المار إليها ومن عيوبها إنها تلتهم حجم كبير جدا من الذاكرة .

    كيفية الإعلان عن المتغيرات :
    عند استخدام المتغير في فيجول بيسك فأن فيجول بيسك تتعرف علي المتغير بمجرد استخدامه في الكود وهذه الطريقة مريحة لأنك لان تحتاج إلي تعريف كل متغير قبل استخدامه ألا إنها يعاب عليها شئ خطير جدا وهو انك إذا أخطأت في كتابة اسم المتغير فأن فيجول بيسك سيعتبره متغيرا جديدا فمثلا إذا أنشأنا متغيرا مثل هذا ..
    كود:
    Value = 10              '   قيمة = 10Value هنا أعطينا المتغير
    Text1.Text = Valu  'و هنا أخطأنا في كتابة اسم المتغير

    و لحل هذه المشكلة الإعلان عن المتغير بأمر Dim مثلا . ( سنتكلم عن أوامر الإعلان عن المتغيرات لاحقا )

    كود:
    Dim Value As Integer
    ولجعل فيجول بيسك لا يستخدم متغيرا إلا قبل الإعلان عنه أو بمعني اصح يجبرك للإعلان عن كل متغير تستخدمه بكتابة هذه العبارة في قسم التصاريح العامة General Declaration . بإظهار رسالة خطأ ..
    كود:
    Option Explicit
    ولجعل هذه العبارة تكتب تلقائيا . من قائمة Tools اختر أمر Options وضع علامة صح في صندوق الاختيار أمام عبارة Require Variable Declarations من صفحة Editor أي طلب الإعلان عن أي متغير قبل استخدامه ..


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

    أخوكم : إيــاس نبهان

  11. #30
    أخي اياس عذرا يمكن لن استطيع ان اكمل بسبب انني السنة القادمة

    عندي ثالث ثانوي وتعرف بدها شدة حيل إذا ممكنتحط الدروس الحالية ال 11 في ملف واحد وتعطيني اياه

    والله مو ملل منك بس تعرف الوالد فوق راسي يقولي اترك الكمبيوتر لانو السنة هذه سنة مصيرية بالنسبة لي

    كطالب مقبل على الجامعة

    وشكرا على اجتهادك وجهدك في انجاح الدورة

  12. #31
    أخي الكريم حســام الحقيقة مصيبتي أكبر من مصيبتك أنا بدأت من اليوم بالثالث الثانوي العلمي و الحمد لله بدأنا من أول يوم بالدروس المرعبة والحقيقة أنا مرتبك جدا...على الرغم من أنن عدت الدروس 100 مرة.
    الحقيقة أنا ما فهمت قصد هل تريد الدروس في كتاب الكتروني ..انشاء الله هي خطوة قادمة سأنشر 3كتب بالنادي و لمصلحتك لن اعطيك شيء الآن اذهب و ادرس و العام القادم نلتقي أنا و أنت بعد أن ننهي هذه المصيبة التي و قعت علينا..
    ربما لا تروني بعد الآن كثيرا للعام القادم أرجو أن يبقى الموضوع..

  13. #32
    السلام عليكم ورحمه الله ..نتابع الدرس السابق
    الدرس11: المتغيرات و الثوابت و المعاملات : (الجزء الثاني)
    أوامر الإعلان عن المتغيرات :
    أمر الإعلان Dim : يستخدم لتعريف متغير ديناميكي Dynamic Variables ضمن الأجراء ويكون مجال رؤية هذا المتغير داخل الأجراء فقط وعمرة من عمر الأجراء أي أن عندما ينتهي الأجراء ينتهي معه مفعول المتغير المحلي ويصبح لا قيمة له أو صفر ولهذا سمي أمر الإعلان هذا بديناميكية لأنه يوفر في الذاكرة بشكل جيد .
    أمر الإعلان Redim : تستخدم لتعريف مصفوفة ديناميكية Dynamic Array غير معرفة لعدد العناصر أي يمكنك تغير أبعادها أثناء عمل البرنامج ويعمل أمر الإعلان Redim عندما ترغب في تحديد حجم المصفوفة وتظهر الفائدة من أمر الإعلان Redim في استغلال الجزء المطلوب فقط من الذاكرة دون زيادة . وأمر الإعلان هذا يجعلنا ندخل إلي عالم آخر وهو عالم المصفوفات وإذا تكلمنا عن المصفوفات في هذا الجزء الصغير فبذلك نكون قد لا نوفيها حق قدرها . ولكن من يعلم قد يأتي يوم الأيام ونتكلم عن المصفوفات إنشاء الله .

    فائدة (3) :
    أن أمر الإعلان Redim لا يستخدم ألا داخل أجراء فقط أي لا يستخدم في قسم الإعلانات مثل الأمر Dim
    أمر الإعلان Static : يستخدم لتعريف متغير ستاتيكي Static Variables ضمن الأجراء ويكون مجال رؤية هذا المتغير داخل الأجراء فقط وعمرة من عمر الوحدة التي بداخلها الأجراء سواء كانت الوحدة هذه Form أو Module أو Class أي أن عندما ينتهي الأجراء يظل المتغير ساكن في الذاكرة وكذلك قيمته موجودة ولكنك لا يمكنك الوصول إلية ألا من داخل الأجراء التابع له .

    نصيحة (1) :
    حاول أن لا تكثر من استخدام أمر الإعلان Static ألا في أضيق الحدود لأنه يستغل الذاكرة طوال فترة عمل البرنامج .
    أمر الإعلان Private : : يستخدم لتعريف متغير عام General Variables ولكنه يكون علي مستوي الوحدة سواء كانت Form أو ملف برمجة BAS أو فئة Class وبالطبع عمرة يكون من عمر الوحدة .
    أمر الإعلان Public : يستخدم لتعريف متغير عام General Variables ولكنه يكون علي مستوي المشروع ككل ويمكن الوصول إليه من جميع الوحدات الموجودة في المشروع وعمرة من عمر البرنامج ككل ويظل في الذاكرة حتى ينتهي البرنامج .
    أمر الإعلان Global : أمر الإعلان أو الكلمة المحجوزة Global كانت تستخدم في الإصدارات القديمة للفيجول بيسك ومازالت حتى الآن تستخدم وهي تؤدي نفس وظيفة أمر الإعلان Public ولكنك لن تستطيع التصريح عنها ألا في الوحدات النمطية فقط .

    الإعلان بإضافة رمز مميز :

    تستخدم هذه الطريقة في نوع أي متغير وذلك بإضافة حرف معين إلي اسم المتغير و هذه الطريقة تسهل عليك معرفة نوع المتغير المستخدم مع اسم المتغير و الجدول التالي يبين شكل هذه الأحرف و النوع المقابل لها ..
    نوع المتغير Integer : الرمز المستخدم " % "
    نوع المتغير Long : الرمز المستخدم " & "
    نوع المتغير Single : الرمز المستخدم " ! "
    نوع المتغير Currency : الرمز المستخدم " # "
    نوع المتغير Double : الرمز المستخدم " @ "
    نوع المتغير String : الرمز المستخدم " $ "
    فمثلا الأمر ..
    كود:
    MyName$="TafTaf"
    يعلن عن متغير من نوع String ( سلسة من الحروف )
    الإعلان باستخدام الوظيفة AS :

    وهنا تفيد الوظيفة AS في تميز نوع المتغير الذي يأتي بعد الوظيفة AS مع أحد الأوامر Redim. Dim. Static. Global Private. Public حيث يتم كتابة الأمر ثم اسم المتغير ثم كتابة الوظيفة AS ثم كتابة نوع المتغير . انظر المثال التالي .

    كود:
    Dim TafTaf  AS String
    فائدة (4) :
    أوامر الإعلان السابق ذكرها هي تعتبر ضمن الكلمات المحجوزة مثل الجملة Option Explicit أو أمر Print والكلمات المحجوزة هي الكلمات التي يحتفظ بها الفيجول بيسك لنفسه ولا يمكنك استخدامها كاسم للمتغير أو للثابت .

    الإعلان باستخدام أمر تعريف دالة :

    في هذه الطريقة يتم استخدام أحد الأوامر التالية :
    ( CCur , CLng , CDbl , Clnt, CStr , CSng, Cvar)
    للأنواع الآتية علي التوالي.
    Currency , Long , Double , Integer , String , Single , Variant
    وعند كتابة أي حرف بعد أي من هذه الأوامر تتحول كل المتغيرات التي تبدأ بهذه الأحرف إلي نفس النوع المعلن عنه في الأوامر المستخدم ، وفي المثال التالي نستخدم الأمر Clnt للإعلان عن جميع المتغيرات الموجودة في البرامج والتي تبدأ بحرف A علي إنها من النوع Integer .
    كود:
    Clnt A
    أما في المثال التالي فيتم الإعلان عن التغيرات الموجودة في البرامج و التي تبدأ بأحد الأحرف التالية B أو C أو D علي أنها من النوع String .
    كود:
    Cstr B-D

    لاحظ أنه لا ينبغي كتابة أكثر من حرفين متصلين بدون العلامة ( - ) بعد الأمر .
    للإعلان عن أي متغير يبدأ بالحرف (A ) أو بأحد الحروف من ( D ) إلي ( F ) أو من ( X ) إلي ( Z ) علي أنه من النوع Double اكتب الأمر بالصورة التالية :
    كود:
    CDbl A, D-F , X-Z
    علاقة المصفوفات بالمتغيرات :

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

    كود:
    Private Names(99)  As String
    مدي استخدام المتغير وعمرة Lifetime and Scope of Variable :

    ويقصد بمدي استخدام المتغير Scope Of Variable والإجراءات و الوحدات النمطية التي ستتأثر به أي الأماكن التي أن يستخدم فيها هذا المتغير داخل البرنامج أما عمر المتغير Lifetime Of Variable فيقصد به المدة التي سيبقي المتغير خلالها محتفظا بقيمته الحالية داخل الذاكرة دون أن يفقدها وتنقسم المتغيرات من حيث مدة بقائها في الذاكرة ومداها إلي متغيرات عامة ومتغيرات علي مستوي الوحدة النمطية ومتغيرات علي مستوي الأجراء وفيما يلي نوضح كل نوع من هذه الأنواع الثلاثة والأمر الذي يستخدم للإعلان عنه ..

    1. المتغيرات العامة ..
    هي المتغيرات التي يمكنك استخدامها من أي مكان داخل البرنامج أو التطبيق وتبقي في الذاكرة الحاسب طوال فترة عمل البرنامج فإذا انتهي البرنامج تحذف من الذاكرة ولذلك يجب أن يعلن عن المتغير العام من خلال الوحدة النمطية لكي تتعرف عليه جميع الإجراءات الموجودة في جميع الوحدات النمطية بالبرنامج أو التطبيق .
    يستخدم الأمر Public للإعلان عن المتغيرات العامة في المثال التالي يتم الإعلان عن متغير عام لكي تستخدمه جميع الإجراءات في جميع الوحدات النمطية من نوع Integer واسمه ABC .
    كود:
    Public ABC AS Integer
    3. متغيرات علي مستوي الأجراء ..
    يقتصر مدي هذه المتغيرات علي الأجراء الموجودة به فقط ولا يمكن استخدامه في أي مكان غيرة وهي بهذا تعتبر اقل المتغيرات مدي من حيث عمرها فهي تبقي موجودة بالذاكرة حتى بعد أن ينتهي الأجراء الذي أعلن فيه عنها وبهذا يتضح أن الفرق بين هذه المتغيرات و المتغيرات العامة أو المتغيرات علي مستوي الوحدة النمطية في مداها فقط حيث لا يتعدى مداها الأجراء الذي أعلن عنها فيه . يستخدم لهذا الغرض الأمر Static ويتضح ذلك من المثالين التالين في المثال الأول يظهر المتغير S1 محتفظا بقيمته فترة تنفيذ الأجراء Load Form وبمجرد الخروج من الأجراء ستكون قيمته تساوي صفر بينما في حالة استخدام المثال الثاني فإن المتغير سيحتفظ بقيمته بعد تنفيذ نفس الأجراء السابق .
    المثال الأول :
    كود:
    Private Sub Form_Load (Cancel As Integer)
    Dim S1 As Integer
    S1 = 5
    End Sub
    المثال الثاني :
    كود:
    Private Sub Form_Load (Cancel As Integer)
    Static S1 As Integer
    S1 = 5
    End Sub
    فائدة (5) :

  14. #33

    تحقيق أو نبذه او قصه

    (آسف على الانقطاع ..تابع فورا )
    يوفر عليك مدي المتغيرات وعمرها استهلاك مساحة من الذاكرة بدون داع فمثلا إذا كنت تريد استخدام متغير في أكثر من وحدة نمطية فيجب أن تعلن عنه كمتغير عام بالأمر Public وإذا كنت تحتاج للمتغير في وحدة نمطية واحدة فقط استخدم الأمر Private للإعلان عنه أما إذا كنت تحتاج للمتغير مؤقتا في هذا الأجراء فقط استخدم أمر Static ليبقي مداه داخل الأجراء فقط .

    .مستويات الإعلان عن المتغيرات : ( هذا الجزء منقول عن موضوع العقل الصناعي : الثوابت و المتغيرات للأخ BSC )
    في القسم العام لملفات البرمجة Dim عام ، Private عام ، Public شامل ، Global شامل
    في القسم العام للنوافذ Dim عام ، Private عام ، Public عام
    داخل إجراءات الملفات Dim ساكن
    داخل إجراءات النوافذ Dim محلي ، Static ساكن

    المصطلحات :
    - شامل : عام لجميع نوافذ البرنامج وملفاته
    2- عام : عام لجميع إجراءات النافذة أو الملف الذي تم الإعلان داخلها ( الشامل أعم )
    3- المحلي والساكن : كلا منهما خاص بالإجراء الذي تم الإعلان داخله

    الفرق بين المحلي والساكن :
    - المتغير المحلي يفقد قيمته عند الخروج النهائي من الإجراء
    2- الساكن يحتفظ بقيمته طوال مدة تشغيل البرنامج

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

    تسمية الثابت :
    يخضع اسم الثابت لنفس الشروط التي شرحناها عند اختيار اسم المتغير وهي ألا يزيد عدد حروفه عن 40 حرفا، وأن يبدأ بحرف هجائي وألا يستخدم إحدى الكلمات المحجوزة للفيجول بيسك .

    مدي الثوابت :
    تتبع الثوابت نفس القواعد التي تحدد مدي المتغيرات حيث يحدد مدي الثابت بالمكان الذي تعلن فيه عن هذا الثابت . وتوضيح ذلك كما يلي .

    ثوابت عامة : إذا أردت أن يكون الثابت عاما أي يمكن استخدامه من أي مكان في البرنامج فيجب أن تعلن عنه في الوحدة النمطية بشرط أن يسبق الإعلان عنه كلمة Public هكذا.
    كود:
    Public Const My_Name As String = "TafTaf"
    ثوابت علي مستوي الوحدة النمطية : لكي تستخدم الثابت في وحدة نمطية فقط يجب أن تعلن عنه في قسم الإعلانات في هذه الوحدة النمطية تسبقه كلمه Private هكذا.
    كود:
    Private Const My_Age As Integer = 25

    ثوابت علي مستوي الأجراء : : لكي تستخدم الثابت مؤقتا داخل إجراء معين أعلن عن الثابت داخل هذا الإجراء بنفس الطريقة السابقة.
    و نكتشف من الكلام السابق أن الثوابت مشابه إلي حد كبير للمتغيرات في طريقة الإعلان عنها بأمر الإعلان Const أو حتى الإعلان عن نوع الثابت لزيادة سرعة التعامل معه وأيضا مجال رؤية الثابت وعمرة .
    وللثوابت أنواع منها ثوابت عددية وثوابت حرفيه String وللإعلان عن ثابت حرفي يجب وضعة بين علامتي تنصيص " " .

    الإعلان عن الثوابت : ( هذا الجزء منقول عن موضوع العقل الصناعي : الثوابت و المتغيرات للأخ BSC )
    يتم الإعلان عن الثوابت باستخدام( Const ) أو ( Public Const )
    مستوى الإعلان :

    1- إذا تم الإعلان داخل إجراء يعتبر الثابت المعلن عنه محليا Const a=5


    2- وإذا تم الإعلان في القسم العام للنافذة يصبح عاما لجميع إجراءات تلك النافذة Const a=5


    3- وإذا تم الإعلان في القسم العام للملف يصبح عاما لجميع إجراءات ذلك الملف Const a=5


    4- أما إذا تم الإعلان في القسم العام للملف - كما سبق - لكن سبقت كلمة Const بكلمة Public فسيصبح الثابت شاملا لجميع ملفات البرنامج ونوافذه

    يتم الإعلان عن الثابت الشامل هكذا ( Public Const a=5 )

    الثوابت و API :

    كلنا نعرف مكتبات الربط الديناميكي Dynamic Link Libraries ( DLL ) و الفائدة الكبيرة التي نستفيد منها في برامجنا من التوابع ( الدوال ) و التي يطلق عليها واجهة برمجة التطبيقات Application Programming Interface ( API ) .
    ولكن عند استخدام هذه التوابع يوجد بعض الثوابت التي يجب تمريرها لهذه التوابع لتقوم بعملها المطلوب منها علي أكمل وجهه لان الكل يعرف القاعدة الذهبية تقول أن لكل دالة من دوال API لها ثوابت خاصة بها . انظر المثالي التالي :
    يصرح بهذه الدالة في قسم التصاريح العامةGeneral:
    كود:
    Private Declare Function MessageBox Lib "user32" _
    Alias "MessageBoxA" (ByVal hwnd As Long, ByVal _
    lpText As String, ByVal lpCaption As String, ByVal _
    wType As Long) As Long
    Const MB_OK = 0
    اكتب هذا الكود في حدث Click للـ CommandButton :
    كود:
    Private Sub Command1_Click()
    MessageBox Me.hwnd, "Hallow", "Example", MB_OK
    End Sub
    الكود السابق هو كود بسيط لعرض رسالة عن طريق توابع الــ API .
    في البداية عملنا علي التصريح بالدالة في قسم التصاريح العامة بأمر الإعلان Private وبعد ذلك صرحنا عن ثابت وهو ثابت معرف مسبقا و موجود في الفيجول بيسك واسم الثابت MB_Ok وبالطبع لك مطلق الحرية في تسمية الثابت كما تعلمنا سابقا .
    والخطوة الثانية العمل علي تمرير الثابت ليؤدي وظيفته المطلوبة منه في حدث Click للـ CommandButton أو في أي حدث تريده . ووظيفة هذا الثابت هي إظهار الزر موافق vbOkOnly للرسالة .

    فائدة (6) :
    من الممكن الاستغناء عن أمر الإعلان Private إذا كان الإعلان علي مستوي الوحدة أو الأجراء
    كود:
    Private Const MB_OK = 0
    Const MB_OK = 0
    يؤديان نفس الوظيفة ..

    شكرا لصديقنا مصطفى Taf Taf على الدرس الرائع...

    أخوكم: إيــاس نبهان

    يا جماعة أرجو أن لاتعتبوا علي أن كنت سأقصر جدا في كتابة الدروس القادمة بسبب الثالث الثانوي و بالكاد سأقدر على الدخول أيــام العطل لذلك أرجو من الأخ الكريم Animeان يحافظ على الموضوع ريثما اعود بشكل كامل تقريبا في
    2005/6/25
    و أعرف أنه لن يخذلني الله يوفقنا جميعاُ.

  15. #34

  16. #35
    جزاك الله خير اخي اياس تسلم ايدك الشرح تعبت معانا ولله ^د^
    وان شاء الله سأحافظ عالموضوع كما اوصيتني الى حين رجعتك
    http://www.geocities.com/fahoode4/anime1.swf

  17. #36
    مشكووووووووووووووور اياس صراحة مواضيعك مرررررررررررررة مفيدة لكل اعضاء المنتدى



    والله بينجح المنتدى لو كان الاعضاء مثلك يا the crush



    تحياتي

    اختك ماندي gooood gooood

  18. #37

    تحقيق أو نبذه او قصه

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

    الدرس12 :طرق استخراج الألوان وعمل التدرجات المختلفة

    أولاً : الألوان باستخدام QBColor :
    تضم هذه الطريقة خمسة عشر لوناً تبدأ من الصفر وحتى 15 ولكل رقم لون معين ، ويمكن الحصول على الألوان من هذه القائمة بالطريقة التالية :
    كود:
    Picture1.BackColor = QBColor(Number)
    حيث Number هو رقم بين 0 و 15 .

    ثانياً : اختيار الألوان من مربعات الحوار .
    مربعات الحوار أو CommonDialog تحتوي على أكثر من شاشة مثل شاشة حفظ وفتح والخطوط وغيرها ، ومن ضمنها لوح الألوان ، ويمكن الإستفادة من هذه الأداة في الألوان بالطريقة التالية :
    أضف الأداة إلى النموذج ثم اكتب الكود التالي :


    ملاحظة هامة: هذه الطرريقة تحتاج إلى إضافة اداة من اللوحة Components التي تحدثنا عنها سابقا اسم الأداة CommonDialog أضفها لبرنامجك ..لم يتكلم عنها الكاتب لأنها ربما معروفة عند الجميع لذلك سنتكلم عنها بدرس آخر..
    كود:
    ' لتغيير عنوان مربع الحوار
    CommonDialog1.DialogTitle = "اختر اللون الذي تريد"
    ' لعرض مربع ( لوحة الألوان )
    CommonDialog1.ShowColor
    ' لعرض رقم اللون في رسالة
    MsgBox CommonDialog1.Color
    ' وتغيير لون الفورم حسب اللون المختار .
    Form1.BackColor = 
    
    CommonDialog1.Color
    ثالثاً : معرفة رمز اللون .
    بفرض أن لدينا لون هو خلفية الفورم فيمكن معرفة رمز اللون ( غير رقمه ) بالشكل التالي :

    كود:
    Dim MyColor
        MyColor = Form1.BackColor
    
    Dim Red_C, Green_C, Blue_C
    
        Red_C = (MyColor And &HFF&)
        Green_C = (MyColor And &HFF00&) \ 256
        Blue_C = (MyColor And &HFF0000) \ 65536
        
        Dim Color_1
        Color_1 = Format(Hex(Red_C) & 
    
    Hex(Green_C) & Hex(Blue_C), "000000")
    
    MsgBox Color_1

    رابعاً : تكوين لون من تغير تركيز الألوان الأساسية ( أحمر + أخضر + أزرق ) .
    اضف ثلاثة من أدوات HScrollBar واجعل خاصية Max لها = 255 ( واحدة لتغيير تركيز كل لون ) .
    ثم ضع الكود التالي في حدث HScroll_Change

    كود:
    Form1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
    وهكذا ستجد أن لون الفورم يتغير بتغير نسبة الألوان الأساسية فيه .

    كود:
    TextRed.Text = (Form1.BackColor And &HFF&)
    TextGreen.Text = (Form1.BackColor And &HFF00&) \ 256
    TextBlue.Text = (Form1.BackColor And &HFF0000) \ 65536
    خامساً : معرفة تركيز الألوان الأساسية في أي لون ، وهي عملية عكسية للعملية السابقة :
    ضع الكود التالي لمعرفة تركيز الألوان في خلفية الفورم

    سادساً : معرفة لون النقطة التي يمر بها الماوس . اكتب أولاً الأوامر التالية في الجينرال :

    كود:
    ' لمعرفة نقطة الماوس
    Option Explicit
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    ' =========================================
     Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
     Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
     Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
    
    ومن ثم اكتب الأمر التالي في تايمر :
    Dim tPOS As POINTAPI
    Dim sTmp As String
    Dim lColor As Long
    Dim lDC As Long
    Dim thecolor
    lDC = GetWindowDC(0)
    Call GetCursorPos(tPOS)
    lColor = GetPixel(lDC, tPOS.x, tPOS.y)
    Form1.BackColor = lColor
    أكواد متنوعة تتعلق بالألوان :

    * لعمل خلفية متدرجة بالأزرق مثل برامج التنصيب :
    كود:
    Sub Fade(vForm As Form)
    Dim intLoop As Integer
    vForm.DrawStyle = vbInsideSolid
    vForm.DrawMode = vbCopyPen
    vForm.ScaleMode = vbPixels
    vForm.DrawWidth = 2
    vForm.ScaleHeight = 256
    For intLoop = 0 To 255
    vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(0, 0, 255 - intLoop), B
    Next intLoop
    End Sub
    Private Sub Form_Activate()
    Fade Me
    End Sub
    * لعمل فورم بلون قوس المطر :

    كود:
    Option Explicit
    Private Sub Form_Load()
        Me.AutoRedraw = True
        Me.ScaleMode = vbTwips
        Me.Caption = "Rainbow Generator by " & _
        "K. O. Thaha Hussain"
    End Sub
    
    
    Private Sub Form_Resize()
        Call Rainbow
    End Sub
    
    
    Private Sub Rainbow()
        On Error Resume Next
        Dim Position As Integer, Red As Integer, Green As _
        Integer, Blue As Integer
        Dim ScaleFactor As Double, Length As Integer
        ScaleFactor = Me.ScaleWidth / (255 * 6)
        Length = Int(ScaleFactor * 255)
        Position = 0
        Red = 255
        Blue = 1
        'Purposfully avoided nested loops
        '------------- 1
    
    
        For Green = 1 To Length
            Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
            RGB(Red, Green \ ScaleFactor, Blue)
            Position = Position + 1
        Next Green
        '--------------- 2
    
    
        For Red = Length To 1 Step -1
            Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
            RGB(Red \ ScaleFactor, Green, Blue)
            Position = Position + 1
        Next Red
        '---------------- 3
    
    
        For Blue = 0 To Length
            Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
            RGB(Red, Green, Blue \ ScaleFactor)
            Position = Position + 1
        Next Blue
        
        '----------------- 4
    
    
        For Green = Length To 1 Step -1
            Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
            RGB(Red, Green \ ScaleFactor, Blue)
            Position = Position + 1
        Next Green
        
        '------------------ 5
    
    
        For Red = 1 To Length
            Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
            RGB(Red \ ScaleFactor, Green, Blue)
            Position = Position + 1
        Next Red
        '------------------- 6
    
    
        For Blue = Length To 1 Step -1
            Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
            RGB(Red, Green, Blue \ ScaleFactor)
            Position = Position + 1
        Next Blue
    End Sub
    كل اجراء من الإجراءات السابقة يعطينا تدرجاً معينا كما يلي :

    لتدرج من أزرق إلى أسود :
    Call XFormBlueFade(Me) 'Makes it Fade Blue

    لتدرج من الأصفر إلى الاحمر :
    Call XFormFireFade(Me) 'Makes it FIRE!! My FAV

    لتدرج من أخضر فاتح إلى أخضر غامق :
    Call XFormGreenFade(Me) 'Makes it Fade Green

    لتدرج من بني إلى أزرق
    Call XFormIceFade(Me) 'Makes it Fade ICE

    لتدرج من بنفسجي لامع إلى أسود :
    Call XFormPurpleFade(Me) 'Makes it Fade Purple

    لتدرج من الأحمر إلى الأسود
    Call XFormRedFade(Me) 'Makes it Fade Red

    لتدرج من الأبيض إلى الأسود :
    Call XFormSilverFade(Me) 'Makes it Fade Silver

    عسى أن يكون في هذا الدرس المتعة و الفائدة ...و عذرا لأنني من مدة لم أكتب درس بنفسي و لكن أعدكم بدرس هــام هو درس قواعد البيانات ..و شكرا
    أريد أن أقول هنا شكرا لك أختي ماندي ...الحقيقة انا لاحظت أن الموضوع لم يعد بالقامئة الاولى هل هذا صحيح أم أنا أتخيل أم انكم ظننتم أنني هربت و لن أعود ...الله يسامحكم

  19. #38

    تحقيق أو نبذه او قصه

    بسم الله الرحمن الرحيم
    السلام عليكم ....سنتكلم اليوم عن الأداة التي أتينا على ذكرها سابقا وهي اداة الCommonDialog تعد هذه الأداة من أهم الأدوات على الإطلاق فهي المسؤولة عن مربع فتح -حفظ باسم- مربع الألوان و غيرها....أما مثالها سيوؤجل للقسم الثاني من الدرسوهو مثال هام جدا.....و الدرس لكاتبه المشرف حســام دمشــق

    الدرس 13: التعامل مع الملفات باستخدامCommonDialog:
    بداية يجب إضافة الأداة المعنية ويتم إضافتها من قائمة Project ثم Components أو بالضغط على Ctrl+T من لوحة المفاتيح .
    عندها ستظهر نافذة التالية .. اختر منها Microsoft Common Dialog Control 6.0 .
    عندها سيدرج الرمز الخاص بها في صندوق الأدوات وتكون بشكل مربع.


    قم بإدراج الأداة على الـ Form وذلك بالنقر المزدوج عليها أو بالنقر لمرة واحدة ورسم الأداة على الـ Form .

    قم بإدراج CommandButton بنفس الأسلوب السابق والذي سنستخدمه لتنفيذ أوامر الأداة .

    يتم استدعاء مربعات الحوار بإحدى الطريقتين التاليتين :

    1- بالاعتماد على الخاصية Action ويتم ذلك حسب ما يلي :

    كود:
    'الخيار التالي لفتح ملف
    CommonDialog1.Action = 1
    'الخيار التالي لحفظ ملف
    CommonDialog1.Action = 2
    'الخيار التالي لاختيار اللون
    CommonDialog1.Action = 3
    'الخيار التالي لاختيار الخط
    CommonDialog1.Action = 4
    'الخيار التالي لخيارات الطباعة
    CommonDialog1.Action = 5
    'الخيار التالي لاستدعاء التعليمات
    CommonDialog1.Action = 6

    وهذا هو الأسلوب القديم ...

    2- بالاعتماد على الخصائص Show ويتم ذلك حسب ما يلي :
    كود:
    'الخيار التالي لفتح ملف
    CommonDialog1.ShowOpen
    'الخيار التالي لحفظ ملف
    CommonDialog1.ShowSave
    'الخيار التالي لاختيار اللون
    CommonDialog1.ShowColor
    'الخيار التالي لاختيار الخط
    CommonDialog1.ShowFont
    'الخيار التالي لخيارات الطباعة
    CommonDialog1.ShowPrinter
    'الخيار التالي لاستدعاء التعليمات
    CommonDialog1.ShowHelp

    طبعا ولا شك الأسلوب الثاني هو الأفضل

    خاصية أخرى من خصائص مربعات الحوار هي خاصية DialogTitle والتي تحدد عنوان مربع الحوار الذي ستظهره لاحقاً ، وهي إختيارية لك أن تختارها أو لا .

    أيضا يوجد خاصية جميلة وهي CancelError والتي تقوم بإصدار خطأ إذا قام المستخدم بالضغط على زر Cancel ورقم هذا الخطأ هو 32755 ولعل البعض يتساءل ما الفائدة من هذه الخاصية والجواب هو معرفة هل يكمل البرنامج عمله أم لا .

    هناك خاصية الـ Filter وهي واحدة من الخصائص الخاصة بمربعي حوار الفتح والحفظ وهي تحدد نوع الملفات التي تود عرضها في مربع الحوار مثل ملفات (txt) وتكتب بهذا الشكل :
    كود:
    'السطر التالي يجعل لك خيارين للفلتر وهي ملفات النصوص وكل الملفات
    CommonDialog1.Filter = "Text Files|*.txt|All Files|*.*"

    خاصية أخرى من الخصائص الخاصة بمربعي حوار الفتح والحفظ وهي InitDir والي تحدد المجلد (الدليل) الذي سيعرضه مربع الحوار عند ظهوره ويكون استخدام هذه الخاصية بالشكل :
    كود:
    CommonDialog1.InitDir = "C:\Windows"
    أيضا لمربعي حوار الفتح والحفظ خاصيتي هما FileName و FileTitle والفرق بينهما أن الأولى تعرض المسار الكامل للملف في حين أن الأخرى لا تعرض سوى اسم الملف
    كود:
    'سيحتوي المتغير التالي على قيمة تشابه
    'C:\Windows\Win.ini
    MyFile = CommonDialog1.FileName
    'سيحتوي المتغير التالي على قيمة تشابه
    'Win.ini
    MyFile = CommonDialog1.FileTitle
    يقابل هذه الخاصية في مربع اختيار اللون خاصية Color وللتعامل مع هذه الخاصية اكتب شيئاً كهذا :
    كود:
    'بهذا تغير لون الـ Form1
    Form1.BackColor = CommonDialog1.Color

    ويقابها في مربع اختيار الخط مجموعة الخصائص Font وللتعامل مها نكتب :

    كود:
    'أسود عريض
    Label1.FontBold = CommonDialog1.FontBold
    'مائل
    Label1.FontItalic = CommonDialog1.FontItalic
    'نوع الخط
    Label1.FontName = CommonDialog1.FontName
    'حجم الخط
    Label1.FontSize = CommonDialog1.FontSize
    'يتوسطه خط
    Label1.FontStrikethru = CommonDialog1.FontStrikethru
    'تحته خط
    Label1.FontUnderline = CommonDialog1.FontUnderline
    أو
    كود:
    'أسود عريض
    Label1.Font.Bold = CommonDialog1.FontBold
    'مائل
    Label1.Font.Italic = CommonDialog1.FontItalic
    'نوع الخط
    Label1.Font.Name = CommonDialog1.FontName
    'حجم الخط
    Label1.Font.Size = CommonDialog1.FontSize
    'يتوسطه خط
    Label1.Font.Strikethrough = CommonDialog1.FontStrikethru
    'تحته خط
    Label1.Font.Underline = CommonDialog1.FontUnderline
    ويقابلها في مربع حوار خيارات الطباعة مجموعة من الخصائص هي :
    كود:
    'تعيين عدد النسخ
    NumberOfCopies = CommonDialog1.Copies
    'من الصفحة
    StartFromPage = CommonDialog1.FromPage
    'إلى الصفحة
    StopOnPage = CommonDialog1.ToPage
    خاصية جديدة من الخصائص وهي Flags وهي من الخصائص المهمة جداً والتي تستخدم مع كل مربعات الحوار ويستفاد منها في تعيين بعض الخيارات الأساسية لمربع الحوار ...

    مربعي الحوار الفتح والحفظ :
    كود:
    'يجب أن يكون الملف موجوداً وإلا تعرض رسالة خطأ
    CommonDialog1.Flags = &H1000&
    'يعرض مربع الحوار رسالة تحذير إذا اختار المستخدم ملف موجود للحفظ فوقه
    CommonDialog1.Flags = &H2&
    'يجب أن يكون مسار الملف موجوداً
    CommonDialog1.Flags = &H800&
    وإذا أردت الجمع بين عدة خيارات فيجب أن تفصل بينها بـ Or كأن تكتب مثلاً :
    كود:
    CommonDialog1.Flags = &H1000& Or &H2& Or &H800&
    مربع حوار اللون
    كود:
    'فتح المربع كاملا بما في ذلك الجزء الخاص بتحديد ألوان جديدة
    CommonDialog1.Flags = &H2&
    'تعطيل الزر الذي يقوم بفتح الجزء الخاص بتعيين ألوان جديدة
    CommonDialog1.Flags = &H4&
    مربع حوار اختيار الخط
    كود:
    'يعرض مربع الحوار خطوط الشاشة فقط
    CommonDialog1.Flags = &H2&
    'يعرض مربع الحوار خطوط الطابعة فقط
    CommonDialog1.Flags = &H4&
    'يعرض مربع الحوار خطوط الشاشة والطابعة معاً
    CommonDialog1.Flags = &H2&
    انتظروا المثال

  20. #39
    مشكووووووووووور أخووووي والله يجعلها في موازين حسناتك يا الغالي




    والله موضوعك في قمة الروووووووووووووعة . . والله يخليك ويحفظك قول آمين







    ولك تحياتي , , ,



    ermm

  21. #40
    أهلا أخي الكريم King PhotoShop هو أنا بصراحة ما زلت متردد هل أكمل الموضوع أم ادعه معلق هكذا .

الصفحة رقم 2 من 6 البدايةالبداية 1234 ... الأخيرةالأخيرة

بيانات عن الموضوع

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

عدد زوار الموضوع الآن 1 . (0 عضو و 1 ضيف)

المفضلات

collapse_40b قوانين المشاركة

  • غير مصرّح لك بنشر موضوع جديد
  • غير مصرّح بالرد على المواضيع
  • غير مصرّح لك بإرفاق ملفات
  • غير مصرّح لك بتعديل مشاركاتك
  •  

مكسات على ايفون  مكسات على اندرويد  Rss  Facebook  Twitter