谁的Create?
Form1还没有创建No.1
Label2.Caption := lv1.Items[lv1.Selected.Index].Caption ;No.2
  if Assigned(Form1) then
Label2.Caption := Form1.lv1.Items[Form1.lv1.Selected.Index].Caption ;

解决方案 »

  1.   

    一般来说,如果窗体设为自动create的话(缺省值),那么它们在程序运行前就会create,参见你的程序的dpr文件,可以看到,在Application.Run之前就会对每个窗体进行Application.CreateForm。因此,在某窗体的create事件触发时,如果想要访问其他窗体的控件的话,有可能该控件尚未create,自然就无法访问了。像你所写的那种情况,应该将代码放在窗体的OnActiviate中。
      

  2.   

    你在oncreate时间中才create form1 吧
    是不是Label2.Caption := Form1.lv1.Items[Form1.lv1.Selected.Index].Caption ;在create form1语句之前?
      

  3.   

    form1已经创建,还是有问题。
      

  4.   

    Label2.Caption := Form1.lv1.Items[Form1.lv1.Selected.Index].Caption ;
    如果Form1已经创建了并且确实有ITEMINDEX,访问该变量就没有问题
    可以定义其它临时串看一下就知道取回来了
    可能是Create的时候Label2还没有create,所以不能给它定义caption
      

  5.   

    form1已经创建不代表它上面的控件都创建了