一般的窗口声明为:
type
TForm1= Class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject); ..............1
private
public
procedure Public1; .....................2
end;procedure procedure1; ................................3var
Form1: TForm1;implementation{$R *.dfm}
请问,上面的3个procedure有何不同??
type
TForm1= Class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject); ..............1
private
public
procedure Public1; .....................2
end;procedure procedure1; ................................3var
Form1: TForm1;implementation{$R *.dfm}
请问,上面的3个procedure有何不同??
第二个是对象form1的行为方法,这个方法放在public里面 说明他对所有的单元都是可见的(你要uses这个单元先)
第三个方法不属于任何对象,只是为了实现某个算法,也对所有单元可见。不知道小弟这样理解对不对 还请高手指点
2.任何访问该类的单元都可以调用procedure
3.Button1Click的实现部分
Public1是属于类的,要用类对象调用
Button1Click跟Public1差不多
这样说算不算
1.public里的是全局的
2.private里的局部的,
另种范围记不太清楚了
第一个,Button1Click(Sender: TObject);看他的定义就可以明白
property onclick:TNotifyEvent;而TNotifyEvent是这样定义的
Type TNotifyEvent = procedure (Sender:Tobject) of object;
这说明方法类型是一个特殊的过程类型,他用of object来标识。
所以他的作用范围就是所有类的实体对象都可以调用,也可以说算是全局的。
第二个,定义在private里面所以属于类方法,只有类内部的定义函数才能调用它
第三个,也应该也是全局的,但是他和一有很大区别,它不需要类的实体,在任何地方都能调用,所以它是更纯粹的全局函数。