procedure TForm1.SpeedButton1Click(Sender: TObject)
经常看到这个sender
后面又可以引用比如sender.classname.....

解决方案 »

  1.   

    sender:事件的引发者;
    在你上面的事件中,就是指的SpeedButton1它自己了.多看看书吧.^___^
      

  2.   

    sender.classname 用法不好啦, 这个是字符串比较, 无类型检查, 用 is, as 好if Sender is TSpeedButton then 是不是 TSpeedButton
      with Sender as TSpeedButton 当作TSpeedButton 还用
    begin
    end;看到你另外一个问题 "初学delphi的困惑!", 这就是对像多态的一种用法delphi 中强制所有类从 TObject 派生而不理会你是否申明了从 TObject 派生, 比方 TFoo = class; 这样的 TFoo 也是 TObject 子类(隐式)
    TObject 提供了对像的 RTTI 支持, 这样就可以对 delphi 所有对像作 is/as 操作
    由于 TObject 是所有类的基类, 所以 Sender 就用 TObjectdelphi VCL 本身就是一个很好的面像对像结构, 主要部分是 
    TObject     支持 RTTI
      |
    TPersistent 支持持久化对像
      |
    TComponent  支持 Name 这种东东, 本身是 delphi magic
      |
    TControl    支持可视组件
      |---------------------------------------|
    TWinCotnrol Windows 可视组件        TGraphicsControl 图形组件等等等, delphi 光盘上应该有个 pdf 的文件是整个这样的图
      

  3.   

    sender:事件的引发者
    其实,它只是变量名称,
      

  4.   

    sender是指事件的触发者,应用最多的就是
    if Sender is TButton then  \\先判断是不是 TButton
      with Sender as TButton do \\强制转换为TButton
      begin  end;