情况我大概描述一下
比如我想动态创建一个控件,比如TEDIT,然后想给TEDIT.ONKeyDown赋一段代码,以执行相应的程序
这段代码用过程写下来
请教如果将这个过程赋给事件执行呢
最好有实例代码
谢谢!!!!!!!!!!

解决方案 »

  1.   

    procedure Module1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      //.................
    end;
    //上面是过程定义procedure TForm1.Button1Click(Sender: TObject);
    begin
       EditNew:=TEdit.Create(Form1);
       //EditNew.xxx   ====
       EditNew.OnKeyDown:=Module1.Edit1KeyDown;
    end;
      

  2.   

    情况我大概描述一下 
    比如我想动态创建一个控件,比如TEDIT,然后想给TEDIT.ONKeyDown赋一段代码,以执行相应的程序 
    这段代码用过程写下来 
    请教如果将这个过程赋给事件执行呢 
    最好有实例代码 
    谢谢!!!!!!!!!!//   下面举个例子:
    //   说明:MyKeyDown是自己定义的事件,在在点击Button1时候把默认的Edit.OnKeyDown 事件 
    //             替换为MyKeyDown事件。 
    //   显示效果是:单击窗体的时候弹出‘测试自定义事件!’提示信息。 
    //   如有问题,留言继续讨论。 procedure   TForm1.MyKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
        if   Sender   is   TEdit   then
        begin
            ShowMessage('测试自定义事件!');
        end;
    end;//动态创建Edit并且将自定义的MyKeyDown赋与Edit的OnKeyDown
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with TEdit.Create(Self) do
      begin
       Parent := Self;
       Left := 10;
       Top := 10;
       OnKeyDown := MyKeyDown;
      end;
    end;
      

  3.   

    补充:
    注意要先声明以下:
    private或public下面均可.procedure MyKeyDown(Sender:   TObject;   var   Key:   Word; 
        Shift:   TShiftState);