本人刚学delphi不久,在一些书上经常看到属性,方法,事件,sender,Tobject,self这几个词,书中也有解释,但往往不全面而理解得不是很深入。所以请教各位属性,方法,事件,sender,Tobject,self的具体解释。

解决方案 »

  1.   

    马上准备睡觉了,看到这个帖子。过来写几句,抛块砖引个玉。
    希望楼上继续。【方法】  属于一个对象的过程或者函数名。在C++中,被称为成员函数
        例如,TControl类的GetText就是一个方法,你可以在controls.pas单元的第3798行看到它的实现过程。
    function TControl.GetText: TCaption;
    var
      Len: Integer;
    begin
      Len := GetTextLen;
      SetString(Result, PChar(nil), Len);
      if Len <> 0 then GetTextBuf(Pointer(Result), Len + 1);
    end;
    ------------------------------------------
    【属性】  外部代码访问对象中数据以及代码的访问器,它隐藏了具体实现的细节。
        例如,TControl类中的Caption就是一个属性,说tControl有点远,最简单的理解就是你通常使用Tlabel类(标签组件)中就有这个东西。在controls.pas单元的第854行你可以看到如下定义property Caption: TCaption read GetText write SetText stored IsCaptionStored;你会发现Caption属性中的 read gettext以及write setText。从字面很容易理解,当你调用Caption属性并读取它的内容时,你便是通过这个访问器,通过这个指针调用了GetText方法。
    仔细观察Controls.pas单元中TControl的定义,你会发现,getText是一个private的方法,也就是说,外部代码无法对它直接访问,它最大限度的隐藏了实现的细节。而你访问它的形式则是通过写在protected中Caption属性来完成的,写在proteceted意味着可以被他的派生类访问,所以在Tlabel中,你可以使用caption属性来完成对标题信息的读写。简单的说,一般大多数方法都是私有的,是最大限度隐藏了实现细节的,而属性则是外部代码可以访问的,非私有的。至于为什么这么做,就需要你在以后的学习中逐渐理解了。
    ------------------------------------------
    【事件】  VCL事件系统封装了许多WINDOWS的消息,许多VCL的事件都对应一个WM_***的WINDOWS消息,事件的处理是无约定的,从这个意义上说,使用事件比直接使用消息要方便一些。
        通常我们使用BUTTON组件,使用他的onClick事件,他的代码是在你点击按钮之后执行的。onClick就是一个事件。关产它的定义(Controls.pas单元中的873行)
    property OnClick: TNotifyEvent read FOnClick write FOnClick stored IsOnClickStored;
    你会发现,它也是一个属性,也会发现它的类型是TNotifyEvent 。好了,不多说了,顺藤摸瓜,自己再往下继续研究研究吧。睡觉去了。
      

  2.   

    Tobject :  如VC中Cobject, 是Delphi的总基类,所有的类都是从它最基本的继承过来的Sender & Self  使用就比较相对一些,怕解释有误,等下面的细说
      

  3.   

    我的愚见:
      Sender 在事件处理程序参数表中,参数Sender代表触发事件处理程序的组件.
      Self 引用方法调用所在的对象
      

  4.   

    TObject是Delphi中所有类的根基类,当然也包括自已定义的类
    不过在定义类时,TObject可以省略,如
    TMyObject = class
      ...
    end;
    等同于
    TMyObject = class(TObject)
      ...
    end;
      

  5.   

    ,方法,事件,sender,Tobject,self你是一个人类(Tobject),你有你自己的性别,年龄,身高等(属性),你也会攀爬蹬走(方法),你也有你的情绪,思想,当别人说你好的时候你很高兴,说你坏时你会很沮丧(事件),有一天你自己(self)听到别人(sender)说你的女朋友好漂亮传给你的思想(事件),这时你会非常不高兴(事件处理外界的响应)
      

  6.   

    ghyghost的比喻有意思!
    果然精辟!老石头果然高!!~~~CSDN论坛浏览器:浏览、发帖、回复、结贴自动平均给分,下载地址:http://CoolSlob.ys168.com
      

  7.   

    《ObjectPascal语法中文手册》不错
      

  8.   

    在controls.pas单元的第3798行    上面的单元在什么地方打开啊  初学