关于Sender、Self、Owner、Parent的疑问
Sender--意义:指本对象。Sender在什么对象相关代码里,那么Sender就是什么。
Self--意义:指本类,也就是Self被引用的类。Form1内的所有对象都是Form1的类成员,所以他们的self都是Form1。
Owner--意义:指对象的所有者,在Form1内的所有对象的所有者都是Form1。
Parent--意义:指构件的包容器,此对象包括在哪个对象那里?
书上和网上的描述我是明白,但是例如:
一个窗体内有一个Button1,我们要在Button1的OnClick中得到Form1的Caption
此时:
Button1 的 Sender、self、Owner、Parent 都是 Form1,
其中,self可以直接这样引用:
ShowMessage(Self.Caption); //相当于Form1.Caption
而Sender、Owner、Parent却要这样引用:
ShowMessage(TButton(Sender).Caption) //同样是相当于Form1.Caption
这就证明了 Self 和 Sender、Owner、Parent 这三者性质是不同的。
我想知道的是,他们到底都是一个什么类型的东西(对象?类?属性?变量?)
[解决办法]
你的控件的Owner有可能是Form,也有可能是ListBox,Edit,而当控件的Owner是Form时它有Caption属性,而为Edit时,则没有Catpion属性。Owner是不确定具体控件类型的,SO^必需进行类型转换才行!