程序中要显示bmp时,弹出 can not open c:\1.bmp
但其实是见到的
是不是可以把bmp等文件包含到程序中,如*.res或*.exe?
请问该如何处理?

解决方案 »

  1.   

    可以做相对路径,或者做成资源编译到.exe中
      

  2.   

    做成资源文件再进行引用。工具编辑*.rc文件。
    $DELPHI\bin\brcc32 *.rc再引用。
      

  3.   

    1、建一个资源文件,保存文件名的扩展为.rc,资源文件内容如下:
    CHM RC_CHM Help.chm     //CHM RCDATA Help.chm
    注意:
    我直接在Delphi里建这个资源文件,编绎后文件扩展名为.res
    在工程文件中会自动添加{$R 'MyRes.res' 'MyRes.rc'})
    2、程序运行时释放文件
    var
      sFile:string;
    RES:TResourceStream;
    begin
    sFile:=ExtractFilePath(Application.ExeName)+'Help.chm';
      if  FileExists(sFile) = false then
      begin
       RES:= TResourceStream.Create( 0, 'CHM', 'RC_CHM');
     // RES:= TResourceStream.Create( 0, 'CHM', RT_RCDATA);还需引用Windows单元
       try
       RES.SaveToFile(sFile);
       finally
          RES.Free;
        end;
    end;
    3、程序关闭时删除文件
    var
      sFile:string;
    begin
    sFile:=ExtractFilePath(Application.ExeName)+'Help.chm';
    DeleteFile(sFile); //如果引用Windows的话,参数类型为pchar
    //第二种情况此处应为DeleteFile(pchar(sFile)); 
    end;这是我把帮助文件封将在EXE中的例子,你只要把Help.chm改成你改成你的图片文件就可以了