var
 LB: TLabel;begin
  LB := TLabel.Create(nil);
  LB.Parent := self;
  LB.Caption := 'OK';
  Lb.Left := 10;
  Lb.top := 20;
  showmessage(Lb.Caption);
注意要是放    Lb.Free;

解决方案 »

  1.   

    如果是动态的创建并管理多个控件,可以使用TObjectList或TList,每创建一个控件就把它加到链表里,以后要用时用链表的items属性来访问
      

  2.   

    var
    LB: TLabel;begin
      LB := TLabel.Create(nil);
      LB.Parent := self;
      LB.Caption := 'OK';
      Lb.Left := 10;
      Lb.top := 20;
      showmessage(Lb.Caption);
      

  3.   

    应该是:
    var
    LB: TLabel;begin
      LB := TLabel.Create(self);
    //                    ^^^^或Application,这样可以不用lb.free
      LB.Parent := self;
      LB.Caption := 'OK';
      Lb.Left := 10;
      Lb.top := 20;
      showmessage(Lb.Caption);
      
      

  4.   

    面以动态生成一个按钮为例:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      btn:TButton;
    begin
      btn:=TButton.Create(Self);
      btn.Parent:=Self;
      btn.Top:=100;
      btn.Left:=100;
      btn.Width:=80;
      btn.Height:=30;
      btn.Caption:='New';
    end;
    首先要声明一个TButton的变量,然后再调用Create过程,接着设置
    它的一些属性就行了,其中最重要的是Parent属性,如果不设置,
    将无法显示。如果动态生成的控件是不可视的,则不需Parent属性。
    如果是在编写控件时要动态生成控件,则情况又稍有不同,Parent
    是TWinControl类型,在上例中,btn的Parent设为Self,这个Self指的
    是Form1,而TForm是TWinControl的子孙类,因此是正确的,如果
    你编写的控件并不是继承自TWinControl类,则不能将要动态生成
    的控件的Parent属性设为Self,可以(我没有用“必须”这个词)设
    成Self.Parent,但还有一点要注意的是,给Parent属性赋值并不能在
    控件的Create过程中实现,因为此时控件的Parent还没有被赋值,所
    应该在控件的Loaded过程中实现。
      

  5.   

    type
      Tform1=class(Tform)
       ...
      private 
         Procedure OnMyLblClik(Sender:Tobject);
      ...
      end;
    .....procedure Tform1.....   
    Begin
      ...
      lb.onClick:=OnMyLblClik;
    end;Procedure Tform1.OnMyLblClik(Sender:Tobject);
    Begin
       ShowMessage('Lable Clicked');
    End;我劝你还是找本书看吧!