//先定义事件处理过程
procedure Form1.Click(Sender:TObject);
begin
  (Sender As TEdit).Text:='it's me';
end;
//把事件处理过程赋给MyEdit的OnClick事件
MyEdit.OnClick:=Click;

解决方案 »

  1.   

    声明一个过程:procedure Proc(Sender: TObject);,
    并实现,
    然后MyEdit.OnClick:=Proc;
      

  2.   

    在Tedit.onclick事件中,我们可以定义它的点击事件,如果要实现你的想法,有两种方法:
    一、在TEDIT基础上定义一个新的类,封装一个Click事件。
    二、blazingfire的方法。定义表单的Click(也可以是另外的名称)事件,判断该事件的来源(Sender),当来源属性是Tedit类时,触发事件。最后一句MyEdit.Onclick ;= Click,是定义MyEdit的Click事件即你定义的过程。
      

  3.   

    按照 dong163(瑞雪) 写的,我试了,但是编译提示:
    [Error]Unit1.pas(20):Unsatisfied forward or external declaration:"TForm1.itsme"
    下面是我声明的过程。
    procedure itsme(Sender: TObject);
      

  4.   

    应该是
    procedure TForm1.itsme(Sender: TObject);
      

  5.   

    可能是你声明的地方不对
    type
     ......
     procedure itsme(Sender: TObject);
    end;实现的时候应这样写:
     procedure tform1.itsme(sender:tobject);
     begin
     tedit(sender).text:='it''s me';
     end;
    然后在动态创建tedit对象时:
     myedit.onclick:=itsme;
      

  6.   

    可能是你声明的地方不对吧
    type
     ........
     procedure itsme(sender:Tobject);
    end;实现时这么写:
     procedure Tform1.itsme(sender:Tobject);
     begin
      Tedit(sender).text:='it''s me';
     end;然后在你动态创建Tedit对象是 这么赋:
      youredit.onclick:=itsme;
    应该没问题。
      

  7.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls;type
      TForm1 = class(TForm)
        ControlBar1: TControlBar;
        procedure FormActivate(Sender: TObject);
        procedure Click(Sender:TObject);  private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      myedit:tedit;implementation
    procedure tform1.Click (Sender:TObject);
                 begin
                (Sender As TEdit).Text:='its me';
                end;
    {$R *.dfm}procedure TForm1.FormActivate(Sender: TObject);begin
    myedit:=tedit.Create(Self);
    myedit.Parent:=controlbar1;
    myedit.Height:=13;
    myedit.Width:=30;
    myedit.Top :=1000;
    myedit.Visible :=true;
    myedit.OnClick :=click;
    end;end.测试通过,给分!
      

  8.   

    wind8bell(风之铃)不好意思,谢谢,解决了。