我是Delphi新手
发现很多过程中用到Sender这个参数
对其函意很是蒙胧,请各位大虾多多指点
小弟在此拜谢

解决方案 »

  1.   

    Sener我的理解就是运行时调用该过程的实例,一般在几个实例共用该过程时用处比较大,比如几个TEdit实例共用该过程,在过程里就不能指明实例的名称,可以用TEdit(Sender)表示。
      

  2.   

    Sender就是引发该事件的对象。道理是这样的,windows是依靠消息驱动的,消息总会有产生者,和处理者,Sender就包括产生者的信息,处理者就是获得此消息的代码。
    由于Delphi中对象是以控件名称存在于Form中的,所以一般很少会用到此参数。但Sender一般只能处理程序内部对象,对于程序以外对象产生的消息,它通常收不到的。
      

  3.   

    procedure TCustomForm.DoCreate;
    begin
      if Assigned(FOnCreate) then
      try
        FOnCreate(Self);
      except
        if not HandleCreateException then
          raise;
      end;
      if fsVisible in FFormState then Visible := True;
    end;------
    FOnCreate(Self);就是你定义的oncreate事件
      

  4.   

    Sender对象是说明调用事件的来源如:
    //隅砱珨跺聆彸腔源楊
    procedure TForm1.SenderTest(Sender: TObject);
    begin
      //彆覃蚚腔岆TButton勤砓
      if Sender is TButton then
      begin
        ShowMessage('Sender is Button');
        //党蜊Caption扽俶
        TButton(Sender).Caption := 'Sender 0';
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      SenderTest(Sender);
    end;
      

  5.   

    Sender 为“当事人”
    Sender is TButton 当事人种类(中国人,外国人,黄种人...)TButton(Sender).Caption 当事人名字....
      

  6.   

    指调用这个方法(类里的过程)的实例了,C++、Java里也有类似的
      

  7.   

    sender是激发事件的对象楼上有人说过个样的说法,在我所有用的过程,这个说法我是最支持的,当然在其它书上看到过别的说法,但我只认这个说法有对TAdoconnection 做三层结构非常熟的高手吗?在有请联系[email protected],有问题请教,