请问如何把过程绑定到事件上呢??
procedure aa(sender tobject);aa.onexit:=aa;呢??

解决方案 »

  1.   

    procedure showtip;button1.onclick=showtip;
      

  2.   

    procedure Tform1.OwnProc(sender tobject);//形参必须和控件定义的相同
    aa.onexit:=OwnProc;
      

  3.   

    Tcontrol.EventName := ProcedureName
    应该注意
      Type(EventName) =  Type(Procedurename)
      

  4.   

    参考一下:
    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;
      

  5.   

    在aa的onExit事件中直接执行过程不行吗?
    aa;
      

  6.   

    在aa的onExit事件中直接执行过程就可以了呀,为什么要绑定?
      

  7.   

    直接在 事件里  
    aa(sender tobject);
      

  8.   

    procedure aaExit(sender tobject);aa.onexit:=aaExit;
    aa.OnExit:=nil;不要把过程名取得和变量名一样。
      

  9.   

    procedure aaExit(sender :tobject);aa.onexit:=aaExit;
    aa.OnExit:=nil;不要把过程名取得和变量名一样。刚才掉了2点.如果你的事件的参数是其他的,比如:
    procedure ADOLogin(Sender: TObject; Username,Password: String);总之:事件的参数类型是怎样的,个数是多少,你的过程中参数的个数和类型就要一样就行了。
    指定的时候不要后面的括号。
      

  10.   

    事件其实就是函数指针
    要注意普通过程和对象方法的区别对对象方法(函数或过程)调用时会传递一个隐含参数,就是这个对象的指针,对象方法中就是通过这个对象指针访问对象的成员。大多数的事件都申明为对象方法指针类型
      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,就不能与这些事件绑定
      

  11.   

    我的控件是动态生成的
    for i :=0 to 5 do
    a[i].create(self);
    ……
    a[i].onexit:=exitevent();
    每一个事件都要附一个事件。
      

  12.   

    参数一致。
    还有一定要Publish,在public,private里没用的!
      

  13.   

    从DELPHI的事件声明来看:
    type TDataSetNotifyEvent = procedure(DataSet: TDataSet) of object;
    (例子,所有的事件道理都一样)声明的事件必须是对象的方法,不能是一个独立的过程或函数。对于你的问题,可以变通解决。给程序加一个DATA Modalus,将事件写在这里即可。(或一个窗体中,建议还是dm中,集中管理,相当与一个公有单元) 。
      

  14.   


    >> 我现在在数据库一个字段里加上内容,然后再将事件与这个字段内容进行绑定什么意思?说详细点。
      

  15.   

    就是用一个数据表有一个field_vld
    内容为code_fv()用控制取这个field_vld的值给他相应的事件。