在百度搜了半天也无解..实在是郁闷啊...
现软件需要要将多种图片ICO,PNG,GIF,jpg存入DLL里面然后在程序里面调用到IMAGELIST里面.或者是CXIMAGELIST.然后程序运行的时候从DLL里面读出来做为菜单的图标
哪位帮忙写下代码,资源文件里面怎么写,程序读写的时候又要怎么写,需要引用哪些单元,最好只使用DEV里面的PAS或者D7自带的pas.
除了感谢还是感谢啊..

解决方案 »

  1.   

    建议提问之前先在CSDN里搜搜类似的问题:
    如何把资源文件放到DLL中?
      

  2.   

    搜过,不过本人愚笨看不大明白.还有就是缺少PNG,gif的相关写法..大多是BMP的.如果能一并写来就最好了.
      

  3.   

    谢谢楼上的,例子里面都只有BMP的写法,现在是要解决JPEG和ICO还有GIF的写法问题.
    而且编译ICO到RES的时候还报错,ICO是16位的确认无误.
    而且image里面也只有BITMAP和ICON,并无JPEG等的写法..顶顶啊,谁来帮帮我
      

  4.   

    补充个jpeg加载的,唉
    JPEG.rc
        Budded JEPG Euro.JPG
    {$R 'jpeg.res' 'jpeg.rc'}uses
       jpeg;procedure TForm4.Button1Click(Sender: TObject);
    var
      FData: TResourceStream;
      F: TJPEGImage;
    begin
      FData := TResourceStream.Create(HInstance, 'Budded', 'JEPG');
      try
        FData.Position := 0;
        Image1.Picture.Graphic := TJPEGImage.Create();
        Image1.Picture.Graphic.LoadFromStream(FData);
      finally
        FData.Free;
      end;
    end;
      

  5.   

    所有文件都可以压到资源文件中,然后编译成DLL
      

  6.   

    ico还是编译不进去,
    put ICON 2.ico
    cut RCDATA 1.BMP
    Budded JEPG a1.JPG
    这是RC文件,编译不通过,
    [RC Error] tb.rc(1): Allocate failed
    把ICON改成rcdata就可以生成RES和DLL,但是代码无法找到var
      DL:THANDLE;  ht:hIcon;
    begin
     dl:=Loadlibrary('project2.dll');
    ht:=LoadIcon(DL,'cut');
    img2.Picture.Icon.Handle:=ht;帮帮忙啊!一天还还是没什么进展.
      

  7.   

    Indicate ICO Indicate.ico
    Indicator ICO Indicator.ico
    ...MainFrame JPG MainFrame.jpg
    Call JPG Call.jpg
    Management JPG Management.jpg
    ...procedure LoadIconFromDLL(const Icon: TIcon; ResName: String); stdcall;
    var
      Stream: TStream;
    begin  Stream := TResourceStream.Create(HInstance, ResName, PChar('ICO'));
      try
        Icon.LoadFromStream(Stream);
      finally
        Stream.Free;
      end;end;