首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

DELPHI新手求教个很基础的有关问题-一直没弄懂-麻烦大家帮下!

2012-03-12 
DELPHI新手求教个很基础的问题----一直没弄懂----------麻烦大家帮下!!!1.关于TNotifyEvent的使用-----定

DELPHI新手求教个很基础的问题----一直没弄懂----------麻烦大家帮下!!!
1.关于TNotifyEvent的使用
-----定义
private 
  FOnClick: TNotifyEvent;
  public
  property OnClick:TNotifyEvent read FOnClick write FOnClick;
----使用
procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.OnClick:=FOnClick;
end;
--------------------------
这样子做有什么用?网上找了TNotifyEvent总是那两上例子,没看懂。。。


----------------------------------
2.另外再问个简单的小问题:为什么私有变量很多程序里前缀都加“F”来标识呢?
这个F是什么英文意思吗?



[解决办法]
F->数据域(Field)的意思
就像类名T开头->Type意思

至少TNotifyEvent
就像你定义一个字符类型变量s:string一样
只不过它表示的是事件的方法指针,指向一个函数地址;这个函数可以是自己写的,也可以是系统的

这是我的见解,有错之处,楼下解释一下哈
[解决办法]
FOnClick是内部触发的事件;
我们只关心OnClick,这是供外部调用的接口,一旦设置OnClick属性,FOnClick就会执行。

例:
双击button1,会产生button1click事件,这个可以看作是TNotifyEvent的具体实例了
当然也可以自定义,如:
Procedure Txx.xxoo(Sender:TObject);
Begin

End;

赋值:
Button1.onclick:=xxoo;

即只要设置了OnClick方法,就会触发read/write过程(即FOnClick);

[解决办法]
FOnClick是一个事件指针,可以从外部传递过来,方便执行类外部自己定义的东西
[解决办法]
就像5L说的,事件声明后,可以从外部传递事件方法,就像你写buttonclick,组件publiced的事件是可以对外发布的,但是事件是消息驱动的,光写事件还不行,还要把消息处理也写进去,让消息处理函数去调用事件方法,详细例子就不贴了,delphi代码里有的是,点进去找个简单的例如tbutton看看就明白了
[解决办法]

Delphi(Pascal) code
unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;type  TForm1 = class(TForm)    Button1: TButton;    procedure FormCreate(Sender: TObject);  private    FMyEvent:TNotifyEvent;    procedure TriggerMyEvent(Sender:TObject);  public    property OnMyEvent:TNotifyEvent read FMyEvent write FMyEvent;  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.TriggerMyEvent(Sender: TObject);begin  ShowMessage('This is a self event, just simple!');end;procedure TForm1.FormCreate(Sender: TObject);begin  Form1.OnMyEvent:= TriggerMyEvent;  Button1.OnClick:=Form1.OnMyEvent;end;end. 

热点排行