![]() |
|
[مقال] Generic Delegates - Func and Action - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : [مقال] Generic Delegates - Func and Action (/showthread.php?tid=14389) الصفحات:
1
2
|
Generic Delegates - Func and Action - silverlight - 14-01-16 السلام عليكم ورحمة الله وبركاته الهدف: الهدف من هذا الموضوع هو مشاركة بعض الافكار البرمجية مقدمة: Generic Delegates بداية ظهورها كان في نسخة الدوت نت 3.5 و للأسف عندما تبجث علي النت لن تجد موضوعات كثيرة توضح كيفية استخدامها لكن وبشكل عام فإن اغلب ما قرأته كان يتحدث عن استخدامها في أبسط صورة لها الحقيقة و لضيق الوقت غالبا ما لايجد المبرمج وقتا كافيا للتعامل مع الكلاسات الجديدة في الدوت نت و للاسف موقع مايكروسوفت غالبا و ابدا لا يوضح اي شئ جديد بالشكل المناسب ودائما لا تجد موضوعات تتعمق في الأمر بشكل يجعلك تفهم تماما كيفية التعامل مع بعض الكلاسات الجديدة في الدوت نت هنا غالبا عليك أنت أن تقرأ و تقرأ ثم تحاول و تحاول حتي تفهم و من ثم تستطيع أن تستفيد بشكل افضل من أي شئ جديد في الدوت نت عموما الشئ المبدئي الوحيد الواضح جدا هو أن Func and Action Delegates تقبل متغيرات او باراميتر من اي نوع و كان اول ما تبادر في ذهني هو هذا السؤال هل يمكن استخدامها لحفظ الملفات و قراءة الملفات ؟ و كانت الإجابة علي هذا حاضرة في ذهني بشكل مباشر من المؤكد و بما أنها تقبل متغيرات من اي نوع فبالتالي يمكن أن نستخدمها مع اي كلاس موجود في الدوت نت Generic Func ابسط تعريف لها انها عبارة عن دالة Function في صورة EventHandler او في صورة حدث مثل اي حدث موجود في الدوت نت وهي تقبل باراميتر او تقبل متغيرات من اي نوع و لكنها تستخدم بدون استخدام RaisEvent وعلي ما أظن انها مصممة لكي تستخدم مثل اي دالة نسترجع منها قيمة ما Generic Action أبسط تعريف لها هو أنها روتين Method في صورة EventHandler أو في صورة حدث مثل اي حدث موجود في الدوت نت وهي تقبل اي باراميتر او تقبل متغيرات من اي نوع أيضا و بما أنها من النوع Delegate فبالتالي يمكن استخدامها في صورة دالة و ايضا يتم استخدامها بدون استخدام جملة RaisEvent وعلي ما أعتقد انها مصممة لكي تستخدم مثل اي روتين نكتبه او مثل اي دالة نكتبها كيفية الاستخدام: ولتوضيح كيفية الاستفادة من Generic Delegates سوف أستخدم فكرة بسيطة موجودة في موقع مايكروسوفت الفكرة عبارة عن كيفية تخزين بعض المعلومات في ملف ثم إعادة قراءة البيانات من نفس الملف باستخدام كل من BinaryWriter و BinarrReader وهذه الفكرة الهدف منها أن تساعد علي توضيح الأمر عندما نقوم بإعادة كتابتهابشكل أخر وذلك باستخدام Func and Action Delegates كتابة و قراءة البيانات باستخدام BinaryWriter و BinaryReader الكود التالي يوضح كيفية قراءة و حفظ String في ملف باستخدام BinaryReader و BinaryWriter PHP كود : Private Const fileName As String = ".\data.dat"كتابة و قراءة البيانات باستخدام Generic Delegates الكود التالي يوضح كيفية استخدام Generic Delegates في كتابة نفس الكود أعلاه وهو سيؤدي نفس الهدف وسوف يقوم بحفظ البيانات في ملف PHP كود : Private Const fileName As String = ".\generic.dat"المصادر المستخدمة: Func Delegate Action Delegate BinaryReader BinaryWriter في المرفقات ستجدون نسخة من الكود مع توضيح لكيفية استخدامه الكود بنسخة الفيجوال استوديو 2015 تقبلوا تحياتي RE: Generic Delegates - Func and Action - 10468 - 14-01-16 شكراااا على مجهودك المتواصل فى توضيح وتعجز الكلمات عن شكرك فقد تعلمت منك كثيرا اريد من حضرتك طريقة رسم متور او بريمة لانى اعمل على برامج ومشاريع سكادا شكرا انا من الاسكندرية كنت اريد كيفية عمل طريقة tool ber الموجودة فى c++ mfc فى vb .net تجد صورة bmp فيها اكثر من صورة مختلفة وتجد تستخدم فى toolber جربت اكثر من طريقة ولم اجد ارجوا المساعدة RE: Generic Delegates - Func and Action - silverlight - 14-01-16 من فضلك توضح فقط ما تريد رسمه بارسال صوره لي لأني مش فاهم هل تقصد بكلمة بريمة = DrillingRig كما في شركات حفر البترول؟ RE: Generic Delegates - Func and Action - 10468 - 14-01-16 زى متور مثلا زى تكس رقمية https://scontent-cai1-1.xx.fbcdn.net/hphotos-xtp1/v/t1.0-9/12301558_882265195222196_392565294374727015_n.jpg?oh=4a8af050b83064672e172ce17a4c9ee5&oe=573E0A99 من فضلك ادخل على الرابط تجد صورة من برنامج تحكم الى انا صممتة فية صورة بريما ومواتير كيف اصممها https://fbcdn-photos-a-a.akamaihd.net/hphotos-ak-xfa1/v/t1.0-0/s526x296/12573728_908353335946715_8156739804119031893_n.jpg?oh=542ba5af97154acc4ae3092f51178067&oe=5746B985&__gda__=1463883863_c6c05878a26a39347dd99cfa8bb1dd5f RE: Generic Delegates - Func and Action - silverlight - 15-01-16 ما فهمته هو انك تحاول رسم Crusher او مطحنة و هي تدور بشكل حلزوني اي أنك تريدها متحركة وعندما يتم ايقافها بالضغط علي باتون تتوقف عملية Animation الخاصة بهذه المطجنة عموما الرسم ليس صعبا و لكنه يحتاج الي وقت لتنفيذه مبدئيا انت تحتاج لرسم motors و Structure سؤال هل رسمت اي شئ من الموجود في الصورة ام لا؟ RE: Generic Delegates - Func and Action - 10468 - 15-01-16 انا استخدمت Industrial_Gadgets_ActiveX_Pro فية صور الموجودة فى الصورة RE: Generic Delegates - Func and Action - 10468 - 16-01-16 هذا رابط صورة https://scontent-frt3-1.xx.fbcdn.net/hphotos-xtl1/v/t1.0-9/12400660_449427958590419_7692735889799597712_n.jpg?oh=d68bae3f1939d3e209e06d93564b9988&oe=5743C887 كيف اجزى الصورة فى toolstrip h او imeg list شكرا على التجاوب RE: Generic Delegates - Func and Action - silverlight - 16-01-16 الفكرة: ان هذا النوع من الصور ما يكون ارتفاع الصورة الواحدة يساوي عرضها و غالبا ما يتم حساب عدد الصور عن طريق قسمة طول الصورة الاصلية علي ارتفاعها ثم نقوم بحساب المستطيل الخاص بأول صورة موجودة في شريط الصور ثم نستخدم تلك البيانات في استخلاص كل صورة علي حدة و نضيفها الي مصفوفة صور في المرفقات ستجد مثالا لكيفية استخلاص جميع الصور من شريط الصور ومن فضلك وفي المرات القادمة ان تضع اسئلتك في قسم الاسئلة حتي يستفيد منها الجميع خاصة ان الموضوع المطروح هنا مختلف تماما عن نوعية سؤالك RE: Generic Delegates - Func and Action - 10468 - 17-01-16 شكرا على الكود عمل بشكل تمام ولاكن لم افهم جزء من الكود اريد توضيحة For i As Integer = 0 To counter - 1 images.Add(img.Clone(r, img.PixelFormat)) r.X += img.Height Next انا الذى فهمتة انة يخزن على حسب العددىالناتج من القسمة ولكن السطر لم افهمة هو images.Add(img.Clone(r, img.PixelFormat)) r.X += img.Height img.Clone وكيق اجعل الخلفية شفافة شكرا RE: Generic Delegates - Func and Action - silverlight - 17-01-16 القيمة Counter -1 تحدد عدد الصور الموجودة في شريط الصور و نحصل عليها عن طريق ناتج قسمة طول شريط الصور مقسوما علي ارتفاع شريط الصور ثم نطرح من الناتج 1 فنحصل علي عدد الصور اما بخصوص الجزء الغير واضح لك فهو و ببساطة شديدة يعبر عن كيفية نسخ Copy جزء من شريط الصورة عن طريق تحديد المستطيل الموجودة به الصورة و باستخدام نفس البكسل الخاصة بشريط الصور و بما أن الصورةالاصلية مكونة من عدة صور فبالتالي النقطة x الخاصة بالمستطيل سوف يتغير مكانها و قيمة X عبارة عن اضافة قيمة مساوية لإرتفاع شريط الصور الي القيمة الاصلية المبدئية و التي تبدأ اصلا من القيمة صفر في عملية loop أما بخصوص أن تجعل الصورة شفافة فهناك أسلوبان لذلك وعموما الكود التالي سوف يقوم بتحويل خلفية الصورة الي اللون الشفاف PHP كود : For Each bmp As Bitmap In images |