تعلم معنا لغة البرمجة الحديثة mql5 الخاصة بالميتاتريدر 5

الموضوع في 'مجالس البرمجة الاحترافية - MQL Programming' بواسطة وضاح عطار, بتاريخ ‏23/6/2010.

  1. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف
    [​IMG]


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

    الخطة المعتمدة في هذا الموضوع هي كالتالي :

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

    - البداية ستكون لتعلم برمجة المؤشرات أولا .

    - سيكون الشرح للأهم فالأهم ثم نتناول التفاصيل شيئا فشيئا .

    - أشدد على الإخوة المتابعين أن يأخذوا الأمر بجدية ويبذلوا جهدا لتعلم هذه اللغة الرائعة والمفيدة .

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

    - أيضا يجب أن تكون الأسئلة ذات غرض تعليمي وليست طلبات برمجية كاملة .


    وبالله التوفيق .
  2. bolbol911

    bolbol911 عضو

    إنضم إلينا في:
    ‏16/2/2010
    المشاركات:
    35
    العمر الفوركسي:
    من 1 الى 3 عام
    الخبرة البرمجية:
    متقدم


    يسرني أن اكون اول المتابعين
    واعدك أن أكون تلميذ مجتهد باذن الله
    فتح الله عليك فتوح العارفين ​
  3. wajdyss

    wajdyss عضو

    إنضم إلينا في:
    ‏3/3/2009
    المشاركات:
    92
    الخبرة البرمجية:
    متقدم


    وفقك الله اخي وضاح

    متابع معك بإذن الله
  4. محب وضاح

    محب وضاح عضو

    إنضم إلينا في:
    ‏19/6/2010
    المشاركات:
    23



    حضور ومتابعه ومذاكره بجد واجتهاد معكم ...........

    بما تنصحنا يا أستاذنا ونحن على اعتاب تعلم هذا الجديد ............ هل نراجع الشروح السابقه ام لاتوجد لها صله , من قبل نصحنى احد المبرمجين بلزوم تعلم لغه ال cبلس 3 لان بها حلول بعض المعضلات التى قد تواجه المبرمج فهل نحن الان فى حاجه لها ايضا مع هذه اللغه الجديده .

    شكرا لكم مقدما

    تحياتى

  5. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف



    حياك الله أخي وأهلا بك معنا .





    أهلا وسهلا بالاستاذ وجدي المبرمج الرائع .


    أهلا بك أخي

    لا بأس بمراجعة الدروس السابقة عن اللغة mql4 لأنها ستفيد ولن تضر .

    ولا داعي لتعلم لغة سي بلس بس أبدا لتعلم mql5 .
  6. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف


    نبدأ على بركة الله ...


    مقدمة :

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

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

    أي يجب أن يتعلم المبرمج لغة mql5 من جديد كأنها لغة جديدة تماما .

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

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

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

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

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

    وهذه الأمور كانت شبه مستحيلة في اللغة السابقة .


    يتبع ...
  7. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف


    يمكن توضيح منهجية عمل أي برنامج ( اكسبيرت أو مؤشر أو سكريبت ) في الميتاتريدر 5 بأنها برمجة منهجية مقادة بالأحداث .

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

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

    يقوم المبرمج بوضع كل التعليمات البرمجية التي يريد تنفيذها لمرة واحدة فقط عند بدء تشغيل المؤشر في هذه الوظيفة .

    وعادة تكون هذه التعليمات البرمجية عبارة عن تهيئة البارامترات والبفرات وجميع خصائص المؤشر الرسومية .

    طبعا كما هو واضح فإن هذه الوظيفة هي البديل لوظيفة Init في اللغة السابقة MQL4 .

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

    وهذا الحدث هو حدث إزالة التهيئة وهو المتمثل بالوظيفة OnDeinit .

    يقوم المبرمج بوضع التعليمات البرمجية التي يريد تنفيذها عند انتهاء عمل المؤشر .

    وغالبا تكون هذه التعليمات عبارة عن كتابة نتائج معينة إلى ملف نصي وإغلاق ملفات مفتوحة وما شابه ذلك .

    من خلال ما سبق تعلمنا أن الوظيفة OnInit يتم بها البدء بتنفيذ المؤشر أو الاكسبيرت أو السكريبت .

    والوظيفة OnDeinit يتم تنفيذها عند إغلاق المؤشر أو الاكسبيرت أو السكريبت عند انتهاء عمله في الذاكرة .

    هاتين الوظيفتين هما عامتين لكل برامج الميتاتريدر 5 .

    لأننا سنتعرف لاحقا على وظائف أخرى خاصة لكل نوع من أنواع البرامج وهي إما مؤشر أو اكسبيرت أو سكريبت .

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

    وأن الاكسبيرت هو عبارة عن برنامج لإدارة الصفقات ولا يمكنك الرسم من خلاله على الشارت .

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


    يتبع ...
  8. صقرالبيداء

    صقرالبيداء رحمه الله

    إنضم إلينا في:
    ‏1/1/2009
    المشاركات:
    1,479
    الخبرة البرمجية:
    متوسط


    متابع معاك باذن الله

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

    وكل الشكر على هالمجهود الجبار اللي تقوم فيه
  9. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف



    نعم أخي الكريم

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

    وشكرا لك
  10. كسير الحظ

    كسير الحظ عضو

    إنضم إلينا في:
    ‏18/6/2010
    المشاركات:
    99
    العمر الفوركسي:
    من 1 الى 3 عام
    الخبرة البرمجية:
    لايوجد


    سنتابع معك بارك الله فيك

    توصى فينا بالشرح المبسط المدعم بالصور
    و لامانع من توزيع الحلويات والمشروبات اثناء الدرس
    [​IMG]

    موفق يارب
  11. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف


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

    بمعنى أن ما نكتبه هو تعليمات برمجية معينة بتركيب نحوي خاص بكل لغة .

    لغتنا التي سوف نتعلمها هو لغة الميتاتريدر 5 وهي قريبة في تركيبها النحوي من لغة سي ++ .

    كما قلت سابقا فإننا سنبدأ تعلم اللغة من خلال تعلم برمجة المؤشرات .

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

    أول وأبسط شيء سنتعلمه حاليا هو سطر الملاحظات Comments .

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

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

    سطر الملاحظات يجب أن يبدأ بحرفي // ثم نستطيع بعده كتابة الشرح الذي نريده .

    مثال :

    كود PHP:
    //+------------------------------------------------------------------+
    //|                                          Waddah Attar Expert.mq5 |
    //|                        Copyright 2010, MetaQuotes Software Corp. |
    //|                                              http://www.mql5.com |
    //+------------------------------------------------------------------+

    كما تلاحظون أن أول كل سطر يبدأ بحرفي // .

    طبعا هذا التوثيق والشرح لا يؤثر على عمل البرنامج نفسه أبدا .

    وذلك لأن برنامج الميتاتريدر يتجاهل كل الأسطر التي تبدأ بالحرفين // .


    هناك فائدة أخرى لكتابة الملاحظات داخل الكود نفسه وهي :

    أن المبرمج يحتاج أحيانا إلى تجربة شيء معين داخل سطر برمجي معين أو عدة أسطر .

    فبدل أن يحذف السطر الأساسي من الكود الذي سيرجع له لاحقا .

    فإنه يقوم بوضع حرفي // قبل السطر البرمجي الأساسي الذي يريد إلغائه وتجربة سطر برمجي آخر .

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

    هناك طريقة أخرى لكتابة الشروحات والتعليقات وهي خاصة ببلوك كامل أي عدة أسطر متتالية .

    فمثلا لو أردنا أن يكون الشرح على أكثر من سطر أو أردنا إيقاف عمل أكثر من سطر برمجي متتالي في نفس الوقت .

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

    فإننا ببساطة نقوم بكتابة */ أول البلوك و /* نهاية البلوك .

    مثال :

    كود PHP:
    /*
    +------------------------------------------------------------------+
    |                                          Waddah Attar Expert.mq5 |
    |                        Copyright 2010, MetaQuotes Software Corp. |
    |                                              http://www.mql5.com |
    +------------------------------------------------------------------+
    */
    هذا كل شيء عن التعليقات وكيفية كتابتها والاستفادة منها برمجيا .


    يتبع ...
  12. محب وضاح

    محب وضاح عضو

    إنضم إلينا في:
    ‏19/6/2010
    المشاركات:
    23


    تمام
    تم التدريب على ذلك من خلال وقف عمل بعض المؤشرات بمجرد وضع // امام اكواد المؤشر
    بالمرفق مؤشر ال atr وقد تم وقفه عن العمل من خلال ذلك ....

    لوحظ ان بعض المؤشرات تتضمن كتابات بالعربيه كملاحظات بجوار الاكواد فهل هذا للتعريف بالكود حتى يمكن استغلال هذا الكود والاستفاده منه والرجوع اليه عند الحاجه له ؟؟؟
    تم رفعه بهذا الرابط لصعوبه الارفاق

  13. متمكن

    متمكن عضو

    إنضم إلينا في:
    ‏23/6/2010
    المشاركات:
    5


    متابع بشغف

    [​IMG]

    [​IMG]
  14. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف


    أهلا بك أخي

    نعم يمكن كتابة التعليق والشرح بجانب سطر الكود نفسه وذلك بعد كتابة حرفي // آخر الكود ومن ثم التعليق .

    والتعليق كما ذكرنا هو للشرح غالبا ويمكن كتابته بأي لغة .


    نتابع بعد قليل ونشرح مواصفات وخصائص المؤشر .
  15. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف


    قدمت لنا لغة الميتاتريدر 5 المزيد من الخصائص والمواصفات التي يمكن تعريفها للبرنامج .

    يتم تعريف الخاصية من خلال التعليمة البرمجية property# ومن ثم ذكر اسم الخاصية ومن ثم قيمتها بدون اشارة مساواة .

    مثلا السطر التالي
    كود PHP:
     
    #property copyright "Copyright 2010, Eng Waddah Attar."

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

    فيما يلي سرد لهذه الخصائص وشرحها :

    - link وهي قيمة نصية تعبر عن رابط لموقع الشركة أو ايميل المبرمج ويظهر هذا الرابط من خلال نافذة خصائص البرنامج .
    - copyright وهي قيمة نصية تعبر عن حقوق الملكية للمبرمج أو للشركة المنتجة للبرنامج ويظهر هذا النص من خلال نافذة خصائص البرنامج .
    - version وهي قيمة نصية تعبر عن الإصدار الحالي للبرنامج وذلك لكي يتسنى للمستخدم من معرفة إصدار النسخة الحالية التي يستخدمها من البرنامج ومعرفة أي النسخ أحدث من الأخرى لنفس البرنامج ويظهر الإصدار من خلال نافذة خصائص البرنامج .
    أقصى عدد أحرف مقبول هو 31 حرف .

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



    وهذا المثال كاملا :

    كود PHP:
     
    #property copyright "Copyright 2010, Eng Waddah Attar."
    #property link      "http://vb.borsat.net"
    #property version   "1.00"
    #property description "هذا برنامج تعليمي لتوضيح كيفية كتابة خصائص البرنامج"
    #property description "مع تحيات مجالس بورصات"
    #property description "إعداد المهندس وضاح عطار"



    يتبع ...

    الملفات المرفقة:

    • test.png
      test.png
      حجم الملف:
      36.3 ك. ب
      المشاهدات:
      32
  16. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف


    stacksize
    تحديد حجم مخصص من الذاكرة لعمل هذا البرنامج .

    library
    لا توجد قيمة مدخلة مع هذه الخاصية . فقط عند تحديد هذه الخاصية فإن البرنامج سوف يتم التعامل معه على أنه مكتبة من الوظائف يمكن استدعائها من خلال برامج أخرى وليس برنامج مستقل بذاته .
    وهذا النوع من البرامج يجب أن لا يحتوي الوظيفة start .


    indicator_chart_window
    لتحديد أن المؤشر سوف يظهر على النافذة الرئيسية .


    indicator_separate_window
    لتحديد أن المؤشر سوف يظهر في نافذة مستقلة .

    indicator_buffers
    عدد البفرات ( مصفوفة محجوزة في الذاكرة ) التي سوف يتم استخدامها في المؤشر .

    indicator_plots
    عدد الخطوط التي سيتم رسمها من خلال المؤشر .


    indicator_minimum
    عند رسم المؤشر في نافذة مستقلة يمكن تحديد القيمة الدنيا لمقياس المؤشر العمودي .
    مثلا تكون القيمة صفر فلا يظهر المؤشر أقل من هذه القيمة في مقياسه .

    indicator_maximum
    عند رسم المؤشر في نافذة مستقلة يمكن تحديد القيمة العليا لمقياس المؤشر العمودي .
    مثلا تكون القيمة 100 فلا يظهر المؤشر أكثر من هذه القيمة في مقياسه .


    indicator_colorN
    تحديد لون افتراضي لكل خط من خطوط المؤشر حيث يعبر الرمز N عن رقم الخط .
    مثلا indicator_color1 و indicator_color2 وهكذا .

    indicator_widthN
    تحديد سماكة افتراضية لكل خط من خطوط المؤشر . أيضا يدل الرمز N على رقم الخط .


    indicator_styleN
    تحديد شكل الخط الافتراضي هل هو مستمر أو منقط وهكذا .


    indicator_typeN
    تحديد نوع الخط هل هو على شكل شموع أو بارات أو متعرج وهكذا .

    indicator_levelN
    تحديد مستويات مختلفة يمكن إظهارها في نافذة المؤشر المستقلة .


    indicator_levelcolor
    تحديد لون كل مستوى على حدة .


    indicator_levelwidth
    تحديد سماكة المستوى .


    indicator_levelstyle
    تحديد شكل خط المستوى .


    script_show_confirm
    لإظهار نافذة تأكيدية للمستخدم لتنفيذ البرنامج على الشارت أو لا .

    script_show_inputs
    إظهار نافذة مدخلات البرنامج للمستخدم قبل تنفيذ البرنامج فعليا على الشارت .


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

    يتبع ...
  17. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف


    أنواع المتحولات :

    أضافت لغة الميتاتريدر 5 الكثير من أنواع المتحولات الجديدة بالنسبة للغة نفسها .

    هذه الأنواع معروفة لمبرمجي السي أو المبرمجين المحترفين بشكل عام .

    في هذا الشرح سنقوم بتوضيحها بشكل كامل إن شاء الله .

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

    يمكننا قراءة قيمة المتحول أو كتابة قيمة مختلفة لقيمته السابقة أو مقارنته مع متحول آخر وهكذا .

    مثال :

    كود PHP:
    int BarCount=500;
    في المثال السابق قمنا بتعريف متحول اسمه BarCount على أنه متحول رقمي من النوع الصحيح integer بدون فاصلة وأسندنا له قيمة ابتدائية هي 500 .


    هناك أنواع كثيرة من المتحولات فمنها ما هو رقمي بدون فاصلة أو رقمي بفاصلة أو نصي .

    هناك أنواع متحولات هي عبارة عن أرقام ولكن لها مدلول آخر مثل النوع تاريخ أو النوع لون أو النوع المنطقي .

    يمكننا أيضا أن نعرف متحول مركب من عدة متحولات أساسية لننشيء متحول جديد تماما .


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

    فمثلا أنا أحتاج لمتحول لأخزن فيه قيمة تتراوح من 0 إلى 200 فإنني سأختار متحول رقمي يستخدم بايتا واحدا فقط وذلك بدل أن أستخدم متحول رقمي يستخدم أربع بايتات .

    الشيء المهم أيضا عند اختيارنا الصحيح لنوع المتحول هو أننا نضمن أن يعمل برنامجنا بأسرع ما يمكن على الجهاز .

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

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



    يتبع ...
  18. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف


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

    وسنبدأ الآن بشرح أنواع المتحولات المتوفرة بهذه اللغة الجديدة .

    أولا المتحولات الرقمية الصحيحة :

    وهي أحد عشر نوع ( لا تخف من كثرتها فهي لصالحك ) .

    - النوع char ( حرف بايت ) .
    يستخدم بايت واحد في الذاكرة .
    مجاله من -128 إلى 127 .

    - النوع uchar ( الحرف u يرمز إلى unsigned )
    يستخدم بايت واحد في الذاكرة .
    مجاله من 0 إلى 255 .

    - النوع bool ( منطقي )
    يستخدم بايت واحد في الذاكرة .
    يخزن صفر أو واحد حيث القيمة صفر هي (false) والقيمة واحد هي (true) .

    - النوع short ( رقم صحيح قصير ) .
    يستخدم بايتان في الذاكرة .
    مجاله من -32768 إلى 32767 .

    - النوع ushort ( رقم صحيح قصير بدون إشارة )
    يستخدم بايتان في الذاكرة .
    مجاله من 0 إلى 65535 .

    - النوع int ( رقم صحيح ) .
    يستخدم أربع بايتات في الذاكرة .
    مجاله من - 2147483648 إلى 2147483647 .

    - النوع uint ( رقم صحيح بدون إشارة ) .
    يستخدم أربع بايتات في الذاكرة .
    مجاله من 0 إلى 4294967295 .

    - النوع color ( لون ) .
    يستخدم أربع بايتات في الذاكرة .
    مجاله من -1 إلى 16777215 .

    - النوع long ( رقم صحيح طويل ) .
    يستخدم ثمان بايتات في الذاكرة .
    مجاله من -9223372036854775808 إلى 9223372036854775807 .

    - النوع ulong ( رقم صحيح طويل بدون إشارة ) .
    يستخدم ثمان بايتات في الذاكرة .
    مجاله من 0 إلى 18446744073709551615 .

    - النوع datetime ( تاريخ زمن ) .
    يستخدم ثمان بايتات في الذاكرة .
    مجاله من 0 (1970.01.01 0:00:00) إلى 32535244799 (3000.12.31 23 : 59 : 59) .


    كما تلاحظون فإن الأنواع السابقة الرقمية الصحيحة قد شملت تقريبا كل مجالات الأرقام بإشارة أو بدون إشارة .

    يتبع ...
  19. wajdyss

    wajdyss عضو

    إنضم إلينا في:
    ‏3/3/2009
    المشاركات:
    92
    الخبرة البرمجية:
    متقدم


    بارك الله فيك اخي وضاح
    مبدع كعادتك

    اردت توضيح حول النوع Color
    كيف 4 بايت ومداه من
    -1 إلى 16777215 فقط ؟
    يعني يستخدم 3 بايت فقط

    ووجدت الاجابة من الموقع الرسمي


    Color Type

    The color type is intended for storing information about color and occupies 4 bytes in memory. The first byte is ignored, the remaining 3 bytes contain the RGB-components.


    شكراً لك أخي وضاح مرة أخرى

  20. وضاح عطار

    وضاح عطار مشرف سابق

    إنضم إلينا في:
    ‏27/5/2010
    المشاركات:
    1,460
    مكان الإقامة:
    سورية حلب
    العمر الفوركسي:
    من 8 الى 12 عام
    الخبرة البرمجية:
    محترف


    أخي العزيز وجدي صدقني أنت من الأشخاص الرائعين الذين أفرح عندما أقرأ له .

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

    البايت الرابع هو لتخزين درجة الشفافية Alpha ويصبح رمز اللون ARGB .

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

    في المستقبل قد تصبح لغة ميتاتريدر 6 مثلا تعتمد مبدأ الشفافية في التعبير عن اللون وبذلك تستخدم البايت الرابع .


    شكرا لك أخي وجدي مرة أخرى ولا تحرمنا مشاركاتك القيمة .

مشاركة هذه الصفحة