显示窗体时把二个Tedit事件(onkeydown,onclick事件)赋给edit1。 不知道那位高手解答难题?
我先谢谢各位了。

解决方案 »

  1.   

    edit1.onclick := 自定义的事件1;
    edit1.onkeydown:= 自定义的事件2;
      

  2.   

    procedure TForm1.TEditOnClick(Sender: TObject);
    begin
    end;
    ...edit1.OnKeyDown := TEditOnKeyDown;
    edit1.OnClick := TEditOnClick;
      

  3.   


    procedure TForm1.FormCreate(Sender: TObject);
    begin
     edit1.OnClick:=edit2.OnClick;
     edit1.OnKeyDown:=edit2.OnKeyDown;
    end;
      

  4.   

    procedure EditOnClick(Sender: TObject);
    procedure EditOnKeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);edit1.OnClick := EditOnClick;
    edit1.onkeydown := EditOnKeyDown;
      

  5.   

    在窗体类中定义两个事件函数:
    procedure edit1Click(sender:TObject);
    procedure edit1keydown(sender:TObject);
    然后把这两个函数实现,
    在窗体显示事件中加入下面代码:
    edit1.onclick:=edit1click;
    edit1.onkeydown:=edit1keydown;
      

  6.   

    procedure Tfr_priceNew.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
      procedure myonkeydown(Sender: TObject; var Key: Word);
      begin
        if key=13 then
          showmessage('adf');
      end;
    begin
      edxh_code.OnKeyDown:=myonkeydown;
    end;
    帮我看看这为什么不行
      

  7.   

    OnKeyDown要的是一个类过程(Objected Procedure),你这传的是一个静态过程(Static Procedure)不匹配。
    类过程在实际调用的过程当中会先传入对象的self指针,跟静态过程是不同的。
      

  8.   

    把成定义成FTfr_priceNew的类函数不就可以了?
    在Tfr_priceNew.的Private域增加一个
    Tfr_priceNew = class(TForm)
      ...
      private
        procedure myonkeydown(Sender: TObject; var Key: Word); 
      ...
    end;实现代码写:
    procedure Tfr_priceNew.myonkeydown(Sender: TObject; var Key: Word); 
    begin
      ...
    end;
      

  9.   

    帮我看看这个执行结果时全部的tedit onkeydown事件当中showmessage出来8了
    不知道为什么,帮忙看看
    private
       bathi:integer;
       bathtedit:array of Tedit;
    procedure Tfr_priceNew.zoneArray;
    begin
      setlength(bathtedit,9);
      bathtedit[0]:=edxh_code;  bathtedit[1]:=edchname;
      bathtedit[2]:=edenname;   bathtedit[3]:=edspec;
      bathtedit[4]:=edunit;           bathtedit[5]:=edmnf;
      bathtedit[6]:=edtrd_price;  bathtedit[7]:=edprice;
      bathtedit[8]:=edexctime;
    end;procedure Tfr_priceNew.BathKeydownEvent(Sender: TObject; var Key: Word; Shift: TShiftState);
    begin
      if key=vk_return then begin
        showmessage(inttostr(bathi));
      end;
    end;procedure Tfr_priceNew.FormCreate(Sender: TObject);
    var i:integer;
    begin
      zoneArray;
       bathi:=0;
      while bathi<high(bathtedit) do begin
         showmessage(inttostr(bathi));
         BathTedit[bathi].OnKeyDown:=BathKeydownEvent;
         bathi:=bathi+1;
       end;
    end;