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

نام تاپیک: تغییر event ها از داخل برنامه

  1. #1
    کاربر دائمی آواتار babak869
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    کرمانشاه
    پست
    1,251

    تغییر event ها از داخل برنامه

    دوستان یک سوال ساده که تاحالا بهش برنخورده بودم

    چگونه یک event را در جاهای گوناگون تغییر بدهم

    مثلا فرض کنیم در یک فرم چند تا Button داریم
    می خواهم از یک فرم پارامتر دستور اجرای دگمه رو به اون فرم ارسال کنیم . مثلا از فرم 1 پارامتری ارسال کنیم که دگمه 1 در فرم 2 به این صورت شود :


    form2.Button1.OnClick:=.......



    procedure TForm2.Button1Click(Sender: TObject);
    begin
    ShowMessage('my message);
    end;



    و اگه بخواهیم اون دستور رو از فرم 1 تغییر بدیم کد دگمه فرم 2 بصورت زیر تغییر کنه


    procedure TForm2.Button1Click(Sender: TObject);
    begin
    Application.Terminate;
    end;


    ممنونم

  2. #2
    دو متد با Signature ایی مشابه Event ایی که می خواید، بسازید و کدهای مربوطه را در هر دوی آنها بنویسید. هر زمان لازم شد، یکی از این متدها را به Event مربوطه اختصاص بدید.
    یا در داخل کد مربوط به Event مربوطه شرطی بزارید که مشخص کنه در چه زمانی چه کدی باید اجرا بشه.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  3. #3
    کاربر دائمی آواتار babak869
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    کرمانشاه
    پست
    1,251
    نقل قول نوشته شده توسط علی کشاورز مشاهده تاپیک
    دو متد با Signature ایی مشابه Event ایی که می خواید، بسازید و کدهای مربوطه را در هر دوی آنها بنویسید. هر زمان لازم شد، یکی از این متدها را به Event مربوطه اختصاص بدید.
    یا در داخل کد مربوط به Event مربوطه شرطی بزارید که مشخص کنه در چه زمانی چه کدی باید اجرا بشه.
    علی جان سلام
    دگمه تشکر هم که غیب شده ازت تشکر کنم.
    میتونی یه کم بیشتر راهنمایی کنی یا اگه امکان داشته باشه نمونه ش رو بنویسی (خیلی مختصر) . دستت درد نکنه .

  4. #4
    کاربر دائمی آواتار Mohammad_Mnt
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    جنگلی به نام ایران
    سن
    42
    پست
    1,875

    procedure Proc1(Sender: TObject);
    begin
    ShowMessage('my message);
    end;

    procedure Proc2(Sender: TObject);
    begin
    Application.Terminate;
    end;


    حالا هر موقع خواستین :

    Form2.MyButton.OnClick := Proc1;

    یا

    Form2.MyButton.OnClick := Proc2;

  5. #5
    سلام
    در هر صورت باید کدها رو از قبل نوشته باشید و همونطور که آقای کشاورز گفتند در زمان اجرا اونها را به Event مربوطه اختصاص بدید ...
    به عنوان مثال :
    فرض کنیم طبق مطالب شما دو تا کد داریم که باید یکی از اونها رو در زمانهایی خاص به Event اختصاص بدیم ، اول هر دو رو تعریف میکنیم :

      public
    Procedure MyProc1(Sender : TObject);
    Procedure MyProc2(Sender : TObject);
    { Public declarations }
    ...

    implementation

    Procedure TForm1.MyProc1(Sender : TObject);
    begin
    Application.Terminate;
    end;

    Procedure TForm1.MyProc2(Sender : TObject);
    begin
    MessageBox(Handle, 'Text', 'Caption', MB_OK);
    end;


    بعد موقعی که میخواید اون رو اختصاص بدید باید یک شرطی بزارید و طبق اون Procedure مورد نیاز رو اختصاص بدید ، به عنوان مثال :

    procedure TForm1.BitBtn2Click(Sender: TObject);
    begin
    if MyVar = True then
    BitBtn1.OnClick := MyProc1
    else
    BitBtn1.OnClick := MyProc2;
    end;


    نکته مهم که آقای کشاورز هم اشاره کردند ( Signature مشابه ) اینه که باید Procedure شما مثل Event مربوط به BitBtn باشه یعنی عبارت " ( Sender : TObject ) " رو داشته باشه تا به عنوان Procedure به دکمه اختصاص پیدا کنه ...

    یک مثال هم آماده کردم که میتونید از اینجا دانلود کنید ...

    موفق باشید ...

    -------
    مثل این که آقا محمد زودتر جواب دادند ، به هر حال پست رو پاک نمیکنم ( حداقل به خاطر مثال )
    ------

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

  1. Delegate ,Event ,Event Handler , EventArg....
    نوشته شده توسط programmable در بخش C#‎‎
    پاسخ: 6
    آخرین پست: سه شنبه 04 اردیبهشت 1386, 09:33 صبح
  2. event مربوط به تغییر رکورد در DBGRID
    نوشته شده توسط kheyri در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 6
    آخرین پست: سه شنبه 17 بهمن 1385, 15:39 عصر
  3. تقدم و تاخر event ها
    نوشته شده توسط انگوران در بخش Access
    پاسخ: 1
    آخرین پست: شنبه 13 آبان 1385, 09:11 صبح
  4. در باره event ها
    نوشته شده توسط حامد فراست در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 0
    آخرین پست: دوشنبه 08 آبان 1385, 05:45 صبح
  5. Event مربوط به تغییر RecordSelector چیه؟
    نوشته شده توسط شاپرک در بخش Access
    پاسخ: 4
    آخرین پست: شنبه 14 آبان 1384, 12:45 عصر

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

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