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

نام تاپیک: یک تابع مشترک برای رویدادها

  1. #1
    کاربر دائمی آواتار Borland.C
    تاریخ عضویت
    مهر 1390
    محل زندگی
    مشهد
    پست
    131

    Question یک تابع مشترک برای رویدادها

    می خوام برای رویدادهای چند کامپوننت مختلف یک تابع مشترک بنویسم تا از دوباره کاری جلوگیری بشه
    مثلا: فرض کنید 3یا4 تا TextEdit داریم ،می خوایم وقتی وارد هر کدوم میشیم رنگ اون ادیت زرد و وقتی خارج می شیم سفید بشه.
    نام کامپوننت ها : Edit1,Edit2,... غی هرچی دیگه میتونه باشه
    فرض کنید تابه به این صورت باشه
    void mEnter(نام کامپوننت)

    وقتی وارد ادیت میشیم تابع رویدادش به این صورته

    void __fastcall TForm1::Edit1Enter(TObject *Sender)
    {

    }

    فکر کنم منظورم واضح گفته باشم
    * جهت یادآوری:
    می دونم اگه تو این تابع از خصیصه color استفاده کنم مشکل حله!اما این جوری باید برای هر رویداد همون رو تکرار کنم با نام کامپوننت.می خوام نامش رو خودش تشخیص بده بعد تغییرات بده فکر می کنم با استفاده از اشاره گر Sender بشه 1کارایی کرد.اگه کسی این کارو انجام داده لطفا راهنمایی کنه.
    ممنون

  2. #2
    کاربر دائمی آواتار #target
    تاریخ عضویت
    دی 1387
    محل زندگی
    استان گلستان
    پست
    589

    نقل قول: یک تابع مشترک برای رویدادها

    void mEnter()
    {
    TEdit* C = (TEdit*)Form4->ActiveControl;
    C->Color = clRed;
    }

  3. #3
    کاربر دائمی آواتار Ananas
    تاریخ عضویت
    آبان 1390
    محل زندگی
    طول 50 و عرض 34 درجه
    سن
    36
    پست
    894

    نقل قول: یک تابع مشترک برای رویدادها

    سلام.
    void __fastcall TForm1::Edit1Enter(TObject *Sender)
    {
    dynamic_cast< TEdit * >( Sender )->Color = 0x00FFFFFF;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Edit1Exit(TObject *Sender)
    {
    dynamic_cast< TEdit * >( Sender )->Color = 0x00808080;
    }

  4. #4
    کاربر دائمی آواتار Borland.C
    تاریخ عضویت
    مهر 1390
    محل زندگی
    مشهد
    پست
    131

    نقل قول: یک تابع مشترک برای رویدادها

    با تشکر از target# , ananas
    هر دو پاسخ درسته اما به نظرم راه حل آناناس بهتره چون راه حل اول برای تابع exit باید اول رنگ کامپوننت رو تغییر داد بعد دستورات mEnter تایپ کرد و به 1 اشاره گر C هم نیازداریم در صورتی که در راه دوم این مسائل نیست.
    اما واقعا از هردو ممنونم،مدتی بود بدجوری کلافم کرده بود.از اونجایی که 1مرجع درست و حسابی برای سی وجود نداره گیج شده بودم

  5. #5
    کاربر دائمی آواتار Borland.C
    تاریخ عضویت
    مهر 1390
    محل زندگی
    مشهد
    پست
    131

    نقل قول: یک تابع مشترک برای رویدادها

    نقل قول نوشته شده توسط Ananas مشاهده تاپیک
    سلام.
    void __fastcall TForm1::Edit1Enter(TObject *Sender)
    {
    dynamic_cast< TEdit * >( Sender )->Color = 0x00FFFFFF;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Edit1Exit(TObject *Sender)
    {
    dynamic_cast< TEdit * >( Sender )->Color = 0x00808080;
    }
    میشه در مورد dynamic_cast کمی توضیح بدی؟!!

  6. #6
    کاربر دائمی آواتار Ananas
    تاریخ عضویت
    آبان 1390
    محل زندگی
    طول 50 و عرض 34 درجه
    سن
    36
    پست
    894

تاپیک های مشابه

  1. برگرداندن مقدار یک تابع مشترک برای چندین کنترل
    نوشته شده توسط battak در بخش ASP.NET Web Forms
    پاسخ: 7
    آخرین پست: یک شنبه 26 اردیبهشت 1389, 11:46 صبح
  2. پاسخ: 2
    آخرین پست: دوشنبه 30 بهمن 1385, 12:57 عصر
  3. تابع رند برای استرینگ
    نوشته شده توسط angel_boy013 در بخش PHP
    پاسخ: 3
    آخرین پست: چهارشنبه 08 شهریور 1385, 12:48 عصر
  4. تابع API برای گرفتن سریال نامبر هارد
    نوشته شده توسط jome ramezani در بخش C#‎‎
    پاسخ: 2
    آخرین پست: سه شنبه 07 شهریور 1385, 05:34 صبح
  5. یه تابع API برای در اختیار گرفتن فوکوس؟
    نوشته شده توسط VB6.0 در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: سه شنبه 18 آذر 1382, 13:25 عصر

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

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