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

نام تاپیک: raising event

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799

    raising event

    سلام.

    1.اگه ممکنه لطف کنید طریقه نوشتن یه event برای یه کامپوننت رو بنویسید :roll:

    2.من تو یه کامپوننت مثلا از یه Button استفاده کردم. حالا چطور میتونم event مربوط به click شدن رو handle کنم ؟

    خیلی خیلی ممنون.

  2. #2
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;

    type
    TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormDblClick(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ShowMessage('Hello World');
    end;

    procedure TForm1.FormDblClick(Sender: TObject);
    var
    Button1: TButton;
    Begin
    Button1 := TButton.Create(Self);
    with Button1 do
    begin
    Name := 'ButtonX';
    Parent := Self;
    Left := 10;
    Top := 60;
    Width := 75;
    Height := 25;
    Caption := 'ButtonX';
    TabOrder := 0;
    OnClick := Button1Click; // here we assign a procedure to event handler
    end;
    end;

    end.

  3. #3
    سلام

    1- رویدادها در واقع خاصیت هایی هستند از نوع اشاره گر رویه؛
    TMyControl = class(TComponent)
    private
    FOnClick: TNotifyEvent;
    ...
    protected
    procedure DoClick;
    pubished
    property OnClick: TNotifyEvent read FOnClick write FOnClick;
    end;

    ....
    proecdure TMyControl.DoClick;
    begin
    if Assigned(FOnClick) then
    FOnClick( Self );
    end;


    2- یک رویه در کلاس کامپوننت اصلی خود تعریف کنید مطابق نوع رویه آن رویداد و آن را برای گرداندن رویداد موردنظر بکار برید:
    TMyControl = class(TComponent)
    private
    FInternalButton: TButton;
    procedure CreateInternalButton;
    public
    procedure InternalButtonOnClick(Sender: TObject);
    end;
    ...
    procedure TMyControl.CreateInternalButton;
    begin
    FInternalButton := TButton.Create(Self);
    //...
    FInternalButton.OnClick := InternalButtonOnClick;
    end;

    procedure TMyControl.InternalButtonOnClick(Sender: TObject);
    begin
    //event handling codes
    end;

  4. #4
    1 سوال
    آیا می توان Eventای را که پارامترهایش با یک Event دیگر شبیه نیستند برابر کرد؟
    مثلا در Onclick
    OnmouseUp را جایگزین نمود
    (البته چون نتونستم می پرسم)

  5. #5
    آیا می توان Eventای را که پارامترهایش با یک Event دیگر شبیه نیستند برابر کرد؟
    خیر. باید از نظر تعداد، ترتیب و نوع پارامترها یکی باشند.

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

  1. Delegate ,Event ,Event Handler , EventArg....
    نوشته شده توسط programmable در بخش C#‎‎
    پاسخ: 6
    آخرین پست: سه شنبه 04 اردیبهشت 1386, 09:33 صبح
  2. فراخوانی یک event در فرم دیگر
    نوشته شده توسط bahramsport در بخش VB.NET
    پاسخ: 4
    آخرین پست: چهارشنبه 20 دی 1385, 18:40 عصر
  3. فراخوانی یک event در فرم دیگر
    نوشته شده توسط bahramsport در بخش VB.NET
    پاسخ: 7
    آخرین پست: پنج شنبه 16 شهریور 1385, 20:45 عصر
  4. مشکل با event ها در #C
    نوشته شده توسط Leon_pro در بخش C#‎‎
    پاسخ: 2
    آخرین پست: جمعه 07 بهمن 1384, 18:23 عصر

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

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