这样试一下:
strFileName:=PChar(lvDocList.Selected.Data); 

解决方案 »

  1.   

    在保存至data中的时候把string转换成pchar,使用时再回过来,这样就不会有问题了,不过你的关注字串的长度
      

  2.   

    To lixif:
      那样也不行,和以前一样
    To iBear:
      我就是象你说的那样做的
      

  3.   

    不会吧,这是常用的方法,不过iBear(大熊) 说的很重要。要不你可用Char数组试试。
      

  4.   

    现在好了,我改了一下:
    var strFileName:String; 
    pFileName:PChar; 
    begin 
    with lvDocList.Items.Add do 
    begin 
      //GetMem(pFileName,Length(strFileName)); 
      //StrPcopy(pFileName,strFileName); 
      pFileName:=StrNew(PChar(strFileName));
      Data:=pFileName; 
    end; 
    end; 这样就行了,我也不知道是什么原因
      

  5.   

    getmem(pfilename,length(strfilename)+1);
    读取data时最好用的 strFileName:=Strpas(lvDocList.Selected.Data);