常见在过程定义中,什么用途?

解决方案 »

  1.   

    比如有两个按钮公用一个OnClick过程,比如是Button1Click(Sender: TObject)当你按Button1,或Button2都会触发这个过程,但Sender不一样;一个是Button1,一个是Button2。你可以在这个过程中写Showmessage(TButton(Sender).Name);  看看结果。
      

  2.   

    楼上的,我知道sender会不一样,但sender自身是什么?Tobject又是什么?请原谅,我是初学者~~~
      

  3.   

    Button1Click(Sender: TObject)pascal语言,参数的定义方式就这样,sender是参数名,tobject是参数类型,Button1Click就是过程名(或方法名)
      

  4.   

    Sender就是执行该过程的对象.
    Sender的类型是TObject。其实是用Sender去引用具体对象,其中有个父类引用子类的概念。
      

  5.   

    如其英文原意,对象、物件,就像苹果、香蕉、梨都是水果,所有对象都可以向上兼容,认为是TObject,而其实质是传递对象指针,通过强制类型转化,告诉计算机该指针指向对象是什么!
      

  6.   

    事件处理过程一般都有至少一个参数Sender:TObject,表示触发这个事件的对象.
    在事件处理过程中可以靠它来对那个对象进行相应的操作,一般是把它强制转换成主调对象的类型.
      

  7.   

    我试了一下一些简单的过程,例如“关闭”按钮,
        procedure TForm1.exitButtonClick(Sender: TObject);
            begin
                Close;
            end;把其中的(Sender: TObject)去掉也一样呀?
      

  8.   

    呵呵
    你没有使用sender这个参数啊
    当然没有影响啦!
      

  9.   

    你可以这么试试:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if Sender is TButton then
        TButton(Sender).Caption := 'Sender is button';
    end;
      

  10.   

    在TOBJECT类中,一般不直接访问其Caption等属性,而是用
    (Sender as Tbutton).Caption
    当类型失败时,引起异常,可提高代码安全性