نمایش نتایج 1 تا 6 از 6

نام تاپیک: تفسیر یک خط کد(رقص نور 8 LED)

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1388
    پست
    73

    تفسیر یک خط کد(رقص نور 8 LED)

    با سلام خدمت تمامی دوستان عزیزم
    کد زیر جهت رقص نور 8 عدد LEd بوسیله پورت پارالل استفاده میشه. 888 آدرس پورت پارالل هست .


    void dance_LEDs(object o2, EventArgs e2) //Gives a motion to the LEDs
    {
    int value = 0;
    if (j < 9)
    {
    switch (j)
    {
    case 0:
    PortAccess.Output(888, 24);
    break;
    case 1:
    PortAccess.Output(888, 36);
    break;
    case 2:
    PortAccess.Output(888, 66);
    break;
    case 3:
    PortAccess.Output(888, 129);
    break;
    case 4:
    PortAccess.Output(888, 0);
    break;
    case 5:
    PortAccess.Output(888, 129);

    break;
    case 6:
    PortAccess.Output(888, 195);
    break;
    case 7:
    PortAccess.Output(888, 231);
    break;
    case 8:
    PortAccess.Output(888, 255);

    break;
    }
    }
    else
    {
    ((System.Windows.Forms.Timer)o2).Stop();
    ((System.Windows.Forms.Timer)o2).Tick -= new EventHandler(dance_LEDs);
    }
    j += 1;
    }


    خط زیر در کد بالا دقیقا چیکار می کنه؟

    ((System.Windows.Forms.Timer)o2).Tick -= new EventHandler(dance_LEDs);

    راستی کلا EventHandler چی هست ؟
    و اینکه =- با -= تفاوت داره؟

    value += 0;
    معنیش چیه؟

    با تشکر از همه دوستان
    آخرین ویرایش به وسیله amir_ir : چهارشنبه 13 مرداد 1389 در 00:27 صبح

  2. #2
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: تفسیر یک خط کد

    میگه که شی ه o2 رو به یه Timer
    Cast کن و متود dance_LEDs رو دیگه توی رویداد کلیک اون اجرا نکن.

  3. #3
    کاربر تازه وارد آواتار #eafshary#
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    هشت بهشت
    پست
    33

    نقل قول: تفسیر یک خط کد

    سلام دو ست عزیز شما نگفتید که متغیر o2 کجا تعریف شده و از چه نوعی.
    من فقط می تونم بگم که تابع dance_LEDs که قبلا با رویداد Timer_Tick دستورات درونش اجرا میشده با این دستور دیگه اجرا نمیشه. شما اگه بیشتر توضیح بدید منم بیشتر میتونم کمکتون کنم

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1388
    پست
    73

    نقل قول: تفسیر یک خط کد

    نقل قول نوشته شده توسط #eafshary# مشاهده تاپیک
    سلام دو ست عزیز شما نگفتید که متغیر o2 کجا تعریف شده و از چه نوعی.
    من فقط می تونم بگم که تابع dance_LEDs که قبلا با رویداد Timer_Tick دستورات درونش اجرا میشده با این دستور دیگه اجرا نمیشه. شما اگه بیشتر توضیح بدید منم بیشتر میتونم کمکتون کنم
    سلام
    می خوام کل کد را اینجا بذارم ولی زیاده و اجازه نمیده
    فکر کنم با این کد همه چیز علوم بشه .


    privatevoid button_Dance_Click(object sender, System.EventArgs e) // Executes the timer and dance LEDs function
    {
    System.Windows.Forms.
    Timer timer02 = new System.Windows.Forms.Timer();
    timer02.Interval = 300;
    timer02.Tick +=
    newEventHandler(dance_LEDs);
    timer02.Enabled =
    true;
    }


    احتمالا تایمری به نام o2 باشه. درسته ؟

    راستی کلا EventHandler چی هست ؟
    با تشکر
    آخرین ویرایش به وسیله amir_ir : سه شنبه 12 مرداد 1389 در 23:46 عصر

  5. #5
    کاربر تازه وارد آواتار #eafshary#
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    هشت بهشت
    پست
    33

    نقل قول: تفسیر یک خط کد(رقص نور 8 LED)

    ببینید دوست عزیز شما وقتی روی دکمه dance کلیک می کنید یه تایمر جدید ایجاد میشه که این تایمر در هر 300 میلی ثانیه رویداد Tick اش اجرا میشه این رویداد(Tick) در واقع یک آرایه است که نام متدهایی که باید توسط این رویداد اجرا بشوند در خانه های این آرایه قرار میگیرند خوب حالا شما اومدی با این خط کد:

    timer02.Tick += new EventHandler(dance_LEDs);

    به آرایه ی رویداد Tick یه خونه اضافه کردی که توی اون خونه متد dance_LEDs قرار گرفته که وقتی رویداد Timer_Tick رخ می دهد این متد هم باید اجرا شود.
    خوب حالا وقتی خاصیت Enabled تایمر True میشه بعد از 300 میلی ثانیه رویداد Timer_Tick اجرا میشه که متعا قبا باید متد dance_LEDs هم اجرا شود(باتوجه به توضیحات قبلی).
    وقتی متد dance_LEDs اجرا میشود رقص نور شما هم آغاز می شود تا وقتی که متغیر j کوچکتر از 9 باشد و وقتی شرط نقض شد باید اون تایمری که این متد رو فراخوانی کرده متوقف بشه و دیگه این متد توسط اون تایمر فراخوانی نشه. ممکنه بگید وقتی تایمر متوقف میشه دیگه متد dance_LEDs توسط اون تایمر اجرا نمیشه اما ممکنه شما دوباره بخواید تایمرتون رو فعال کنید. پس باید متد dance_LEDs رو از آرایه ی رویداد Tick تایمر حذف کنید با این دستور :

    ((System.Windows.Forms.Timer)o2).Tick -= new EventHandler(dance_LEDs);

    خوب متغیر o2 در متد dance_LEDs از نوع Object تعریف شده و ما نمیتونیم به عنوان تایمر ازش استفاده بکنیم پس باید اول به روش type casting متغیر o2 رو به تایمر تبدیل بکنیم تا بتونیم تایمر رو متوقف کنیم.
    ببخشید اگه متوجه نشدید

    بله با هم فرق داره =- از متغیر قبلش به تعداد نوشته شده جلوی مساوی کم میکنه مثال :
    int i=5;
    i-=3;
    در آخر i میشه 2
    این کد i-=3 با این کد i=i-3 هیچ فرقی نداره

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1388
    پست
    73

    نقل قول: تفسیر یک خط کد(رقص نور 8 LED)

    خیلی لطف کردی. خیلی گویا و شیرین

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •