如何在运行时在FORM上动态生成添加TEDIT,TShape等标准控件,并且能在EDIT里输入内容

解决方案 »

  1.   

    动态创建就完了。
    在formshow 中
    var
      edit1 : Tedit;
    begin
      edit1:= Tedit.create(self);
      edit1.top := 100;
      edit1.left := 100;
    end;以后用完记得释放:
    edit1.free;
      

  2.   

    加上一句:
    edit1.Parent := form1;
      

  3.   

    var edit1:TEdit;showarea:Trect;
    begin
     edit1:=Tedit.Create(self);
     edit1.Parent:=form1;
     edit1.Width:=160;
     edit1.Height:=10;
    end;
      

  4.   

    能动态生成此控件的方法吗?// 你指的是什么东西?单击调用一个方法,生成一个控件是吧?一样的呀,把这些事儿放到函数或过程中就行了。不过你还是要传点参数进去呀,比如说top和left 呀?!!
      

  5.   

    ygb321(学习) 
    能动态生成此控件的方法吗当然可以
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Label1: TLabel;
        procedure FormCreate(Sender: TObject);
        procedure Label1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var edit1:TEdit;
    begin
     edit1:=Tedit.Create(self);
     edit1.Parent:=form1;
     edit1.Width:=160;
     edit1.Height:=10;
     edit1.OnClick := self.Label1.OnClick;
    end;procedure TForm1.Label1Click(Sender: TObject);
    begin
      showmessage('d');
    end;end.
      

  6.   

    动态创建就完了。
    var
      edit1 : Tedit;
    begin
      edit1:= Tedit.create(self);
      edit1.top := 100;
      edit1.left := 100;
    end;以后用完记得释放:
    edit1.free;