我动态创建了10个Image控件。代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;NewBtn:array of TImage;
begin
setlength(NewBtn,10);
for i:=0 to 9 do
  begin
    NewBtn[i]:= TImage.Create(self) ;   
    NewBtn[i].Parent :=Flatpanel1 ;
    NewBtn[i].Top:=20*i;
    NewBtn[i].Left :=50*i;
    NewBtn[i].Height :=20 ;
    NewBtn[i].Width :=20 ;
    NewBtn[i].Picture.LoadFromFile(extractFilePath(paramStr(10)) + '图片\new1.bmp');
end;//大家帮我看看这句我写的对不对。是不是相对路径
 end;
我把这个小程序进行打包后运行,系统就提示“can not open file c:\图片\new1.bmp,系统找不到指定的路径”。
我想可能是相对路径不对吧。那NewBtn[i].Picture.LoadFromFile(extractFilePath(paramStr(10)) + '图片\new1.bmp');要怎么写呢?谢谢

解决方案 »

  1.   

    查看你的图片是否在系统提示路径下
    这个是基本的问题
    或者不行的话
    用ExtractFilePath(Application.ExeName) + '图片\new1.bmp'来试试
      

  2.   

    NewBtn[i].Picture.LoadFromFile(extractFilePath(application.exename)) + '图片\new1.bmp');
      

  3.   

    paramStr是程序接收的参数,如:dir /a /s    /a /s 就是参数paramStr(0)、paramStr(1)
    用返回程序当前执行路径:
    ExtractFilePath(Application.ExeName) + '图片\new1.bmp'
      

  4.   

    extractFilePath(paramStr(10),接受输入的参数,就像在运行框里输入文件名 参数,你输入了吗?还是用一个路径试试比较好,不会有什么问题的,对了,要uses jpeg;呀,如果你装载jpeg图片的话
      

  5.   

    建议将图片做成资源,或者编译在本应用程序,或者另外添加一个资源DLL。
      

  6.   

    ExtractFilePath(Application.ExeName) + '\图片\new1.bmp'来试试