比如说我生成 edits[1]....edits[10],10个EDIT
现在我想达到这样的效果,如果用户进入任一文本框则将当前文件框的内容清除。
在动态生成EDIT的过程中,应该如何绑定这样的事件,用户进入某一控件时我如何得到它的名字

解决方案 »

  1.   

    prcedure TForm1.EditEnter(Sender: TObject);
    begin
      TEdit(Sender).Clear;
    end;edits[1].OnEnter := EditEnter;
    edits[2].OnEnter := EditEnter;
    ...
      

  2.   

    public
       procedure EditsEnter(Sender: TObject);procedure TForm1.Button1Click(Sender: TObject);
    var Edits:array [1..10]of TEdit;
        i:integer;
    begin
      for i:=1 to 10 do
        begin
          Edits[i]:=TEdit.Create(self);
          Edits[i].Parent:=Form1;
          Edits[i].Top:=i*30;
          Edits[i].Name:='Edit'+IntToStr(i);
          Edits[i].OnEnter:=EditsEnter;
          Edits[i].Show;
        end;
    end;procedure TForm1.EditsEnter(Sender: TObject);
    begin
      Caption:=TEdit(Sender).Name;
      TEdit(Sender).Clear;
    end;