为什么TLabel显示不出来啊?
procedure TForm2.FormCreate(Sender: TObject);
begin
  with TLabel.Create(Self) do
  begin
    Name:= 'Label1';
    Parent:=Form2;
  end;
end;Form2的创建
 form2:=Tform2.Create(self);
 form2.Show;大家帮帮忙啊

解决方案 »

  1.   

    你给Label的Catipn赋个值 看一看。
      

  2.   

    'Label1'是不是已经存在了?换个别的名称看看!
      

  3.   

    with TLabel.Create(Self) do
      begin
        Name:= 'Label1';
        Parent:=Form2;
      end;self是指本窗体form1,而你的parent又是form2,有冲突吧?这么修改:var
      lb:TLable;
    begin
      lb:=TLabel.Create(self);
      lb.Parent:=Form1;
      ...
    end;
      

  4.   

    再修改一下:var
      lb:TLable;
    begin
      lb:=TLabel.Create(nil);
      lb.Parent:=Form1;
      lb.visible:=true;
      lb.Caption:='Hello World!';
      ...
    end;
      

  5.   

    没有Caption当然没什么好显示的
      

  6.   

    大家介绍的方法都试了,还是不行,我估计是模态窗体的问题,改成parent:=form1后能在form1上显示,但parent:=form2就不能显示
      

  7.   

    找到答案
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       Form2:=Tform2.Create(application);
       Form2.Show;
       with TLabel.Create(self) do
       begin
         caption:='aaaaaaaaaaa';
         parent:=form2;
       end;
    end;
    控件的创建不能写在模态窗体的OnCreate事件中,不像非模态窗体,本身在程序启动时已经创建,包含在窗体的所有控件也随之创建,模态窗体在运行中动态创建,自己都未创建完成,所以根本谈不上有form2这个对象存在,所以所有在模态窗体OnCreate事件中引用这个窗体对象都是不允许的,但delphi也不报错
      

  8.   

    跟我第一次动态创建Lable犯的错误一样
    没有Caption,显示了也看不出来啊
      

  9.   

    procedure TForm2.FormCreate(Sender: TObject);
    begin
        with TLabel.Create(Self) do
      begin
        Name:= 'Label1';    Autosize:=false;
        width:=50;
        color:=clCream;
        top:=80;
        left:=50;
        caption:='nihao';
        Parent:=self;//注意着一行,这段程序在tform2.create时候写这时候form2还没有被创建出来当然就不会显示了,如果改成self就可以了
      end;
    end;
    /////