请有经验的朋友帮忙!先谢啦!

解决方案 »

  1.   

    这个其实只要搜索一下就可以找到答案。一个例子http://www.ChinaOK.net/Down/big_res.zip
      

  2.   

    打开记事本写入:
    MYJPEG JPEG "d:\1.jpg" 
    另存为d:\Myres.txt;在MSDOS中调用Delphi\bin目录下执行
    brcc32 d:\Myres.txt就可以生成Myres.res调用:
      1)在.dpr中引用Myres.res
      program xxxx;  uses
       .....  {$R *.res}
      {$R MyRes.res}
      begin
        Application.Initialize;
        ......
        Application.Run;
      end.
    2)在单元中添加这个过程
    procedure LoadJPEGFromRes(TheJPEG : string; ThePicture : TPicture);
    var
      ResHandle : THandle;
      MemHandle : THandle;
      MemStream : TMemoryStream;
      ResPtr : PByte;
      ResSize : Longint;
      JPEGImage : TJPEGImage;
    begin 
      ResHandle := FindResource(hInstance, PChar(TheJPEG), 'JPEG'); 
      MemHandle := LoadResource(hInstance, ResHandle); 
      ResPtr := LockResource(MemHandle); 
      MemStream := TMemoryStream.Create; 
      JPEGImage := TJPEGImage.Create; 
      ResSize := SizeOfResource(hInstance, ResHandle); 
      MemStream.SetSize(ResSize); 
      MemStream.Write(ResPtr^, ResSize); 
      FreeResource(MemHandle); 
      MemStream.Seek(0, 0); 
      JPEGImage.LoadFromStream(MemStream); 
      ThePicture.Assign(JPEGImage); 
      JPEGImage.Free; 
      MemStream.Free; 
    end;在form.oncreate中:
      LoadJPEGFromRes('MyJPEG',Image1.Picture);
      

  3.   

    新建一言语本文件内容为
    1 jpg myjpg.jpg
    改其扩展名为.rc
    然后用brcc32.exe *.rc就行了
      

  4.   

    点击project-->resources-->
    点击右击,-->new--user date出现一个条目,弹出一对话框,选择你的.jpg文件,好了把资源默认的资源标识改为'Myjpg',点右键就可以改的了Var
       Stream:TStream;
       MyJpg:TJpegImage;
      Begin
       Stream:=TResourceStream.Cceat(HINSTANCE,'MyJpg','JPEG');
       Try
         MyJpg:=TJpegImage.Create;
        Try
          MyJpg.LoadfromStream(Stream);
          Image1.Picture.Assignc(MyJpg);
        Finally
          MyJpg.Free;
        end;
       Finally
        Stream.Free;
       end;
      end;
      

  5.   

    我的资源要打包在DLL中,然后主程序通过DLL来调用,怎么实现呢?
      

  6.   

    昨天看到的。
    可以制作纯粹的资源DLL文件,如library Pictures;
    {$R Test.res }
    begin
    end.即可将其编译为一个DLL文件!然后
    var hDll:Hmodule;hDll:= LoadLibrary('Test.dll');
    //可以用LoadString,LoadIcon,LoadCursor等载入资源
    如:
    Hicon:=Loadicon(hDll,'TestIcon');Wav音乐直接播放的话可以用PlaySound,未知数据类型可用流,如:
    Stream:=TResourceStream.Create
      

  7.   

    user date在程序里调用 Stream:TStream;
       MyJpg:TJpegImage;
      Begin
       Stream:=TResourceStream.Cceat(HINSTANCE,'MyJpg','JPEG');
       Try
         MyJpg:=TJpegImage.Create;
        Try
          MyJpg.LoadfromStream(Stream);其它文件也一样。通过数据流的方式什么格式的文件都可以。
      

  8.   

    我很感谢楼上兄弟的热心,可是这样能让EXE从DLL中调用JPG资源吗?EXE中应该怎样写?DLL中又应该怎样写啊
      

  9.   

    然后
    var hDll:Hmodule;hDll:= LoadLibrary('Test.dll');
    //可以用LoadString,LoadIcon,LoadCursor等载入资源
    如:
    Hicon:=Loadicon(hDll,'TestIcon');Wav音乐直接播放的话可以用PlaySound,未知数据类型可用流,如:
    Stream:=TResourceStream.Create
      

  10.   

    作rc文件
    TEST1 DLLRES "test1.dll"
    TEST2 EXERES "test2.exe"
    TEST3 BPLRES "test3.bpl"
    然后,将这个RC文件加入到Project中。程序运行时,取出资源文件并存成文件。
    bool SaveResToFile(LPCSTR ResName, LPCSTR ResType, LPCSTR FileName)
    {
        int hFile;
        HRSRC hRes;
        HANDLE hMem;    hRes = FindResource(HInstance,
            ResName, ResType);
        if (hRes==NULL) return false;    if (FileExists(FileName))
            DeleteFile(FileName);
        hFile = FileCreate(FileName);
        if (hFile==-1) return false;
        hMem = LoadResource(HInstance,hRes);
        FileWrite(hFile, LockResource(hMem),
            SizeofResource(HInstance,hRes));
        FileClose(hFile);  return true;
    }调用这个函数,将资源存成文件:
    SaveResToFile("TEST1", "DLLRES", "Test1.dll");
      

  11.   

    My_first(海浪) 是最好的
    现在写RC文件是效率低的笨办法!
    Delphi的IDE可以直接实现资源的引入!