请问如何把过程绑定到事件上呢??
procedure aa(sender tobject);aa.onexit:=aa;呢??
procedure aa(sender tobject);aa.onexit:=aa;呢??
解决方案 »
- 自定义组件问题
- 请教DBGrid内显示access的字段只显示MEMO,不显示内容的问题
- 急急急急,一个算法解密问题,已知输入数据和结果,求算法~~
- fastReport在delphi7 上安装时提示fs7.bpl is not a design time package?
- 【想开始学习DEPHI语言,用的是DEPHI 7只有能做小软件就可,请大家推荐一下好的入门书籍?】
- 求助:用QReport时,怎样在detail中动态生成TQRLabel?一定给分
- 大讨论:Delphi DbGrid 究竟好不好???Borland 为何对它没什么改变呢???
- 我下载了FastReport控件,怎么将它添加到delphi的环境中去?谢谢
- tquery 为什么在sql属性写入语句后,点击active为真时,为何出现错误提示?
- 在delphi的package(包)怎么获取主程序的参数?
- 怎样用treeview实现数据的分类查询
- DxDBTreeView的问题
aa.onexit:=OwnProc;
应该注意
Type(EventName) = Type(Procedurename)
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure BtnClick(Sender: TObject);
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BtnClick(Sender: TObject); //参数一定要与事件的参数据保持一致
begin
showmessage('OK');
end;procedure TForm1.Button1Click(Sender: TObject);
var
Button2:TButton;
begin
Button2:=TButton.Create(self);
Button2.Parent:=Form1;
Button2.Top:=0;
Button2.Left:=0;
Button2.Width:=100;
Button2.Height:=50;
Button2.Show;
button2.OnClick:=BtnClick; //把过程绑定到事件
end;
aa;
aa(sender tobject);
aa.OnExit:=nil;不要把过程名取得和变量名一样。
aa.OnExit:=nil;不要把过程名取得和变量名一样。刚才掉了2点.如果你的事件的参数是其他的,比如:
procedure ADOLogin(Sender: TObject; Username,Password: String);总之:事件的参数类型是怎样的,个数是多少,你的过程中参数的个数和类型就要一样就行了。
指定的时候不要后面的括号。
要注意普通过程和对象方法的区别对对象方法(函数或过程)调用时会传递一个隐含参数,就是这个对象的指针,对象方法中就是通过这个对象指针访问对象的成员。大多数的事件都申明为对象方法指针类型
TOnEvent = procedure(Sender: TObject) of Object;这样的事件只能绑定到对象方法
procedure TForm1.OnEvent(Sender: TObject);要想绑定到普通过程
procedure DoEvent(Sender: TObject);事件类型必须申明为
TOnEvent = procedure(Sender: TObject);还有如果申明时含有调用规则,如stdcall、fastcall等,也要匹配类申明中还有一种类方法
TObject = class
class function InitInstance(Instance: Pointer): TObject;
end;这种类方法传递的隐含参数是类的VMT,就不能与这些事件绑定
for i :=0 to 5 do
a[i].create(self);
……
a[i].onexit:=exitevent();
每一个事件都要附一个事件。
还有一定要Publish,在public,private里没用的!
type TDataSetNotifyEvent = procedure(DataSet: TDataSet) of object;
(例子,所有的事件道理都一样)声明的事件必须是对象的方法,不能是一个独立的过程或函数。对于你的问题,可以变通解决。给程序加一个DATA Modalus,将事件写在这里即可。(或一个窗体中,建议还是dm中,集中管理,相当与一个公有单元) 。
>> 我现在在数据库一个字段里加上内容,然后再将事件与这个字段内容进行绑定什么意思?说详细点。
内容为code_fv()用控制取这个field_vld的值给他相应的事件。