ShellExecute(Handle,nil,'winrar','a "C:\Documents and Settings\ui\桌面\临时文件夹1\as.rar"' + ' F:\as.txt',nil,SW_SHOW);
改成:
ShellExecute(Handle,nil,'winrar','a "C:\Documents and Settings\ui\桌面\临时文件夹1\as.rar"' + ' '+filelistbox1.filename,nil,SW_SHOW);就会出错

解决方案 »

  1.   

    参数是pchar类型,如果是普通string类型,可能不要紧,像你这样写就需要转换成pchar
    ShellExecute(Handle,nil,'winrar',pchar('a "C:\Documents and Settings\ui\桌面\临时文件夹1\as.rar"' + ' '+filelistbox1.filename),nil,SW_SHOW);
      

  2.   

    参数是pchar类型,如果是普通string类型,可能不要紧,像你这样写就需要转换成pchar
    ShellExecute(Handle,nil,'winrar',pchar('a "C:\Documents and Settings\ui\桌面\临时文件夹1\as.rar"' + ' '+filelistbox1.filename),nil,SW_SHOW);
      

  3.   


    ShellExecute(Handle,nil,'winrar',Pchar('a "C:\Documents and Settings\ui\桌面\临时文件夹1\as.rar"' + ' '+filelistbox1.filename),nil,SW_SHOW);
      

  4.   

    改成:ShellExecute(Handle,nil,'winrar','a "C:\Documents and Settings\ui\桌面\临时文件夹1\as.rar"',PChar(filelistbox1.FileName),nil,SW_SHOW);
    又会出现这样的错误:
    Incompatible types: 'Integer' and 'Pointer'
      

  5.   

    ShellExecute(Handle,nil,'winrar',pchar('a "C:\Documents and Settings\ui\桌面\临时文件夹1\as.rar"' + ' '+'"'+filelistbox1.filename+'"'),nil,SW_SHOW);
    这样就对了,真的,谢谢了