Delphi 加载资源文件和检索位图

Delphi 加载资源文件和检索位图,delphi,Delphi,我想把大量的小位图放到一个*.res文件中。但我不想把它和编译器联系起来,而是让它放在硬盘上。我可能会创造更多的 有没有办法获取这个资源文件,读取它并加载具有确切名称的位图?比如: Bitmap.LoadFromResourceFile(AFileName: TFileName; const BMPName: string); Bitmap.LoadFromResourceFile(GetCurrentDir+'\sprites.res','SMILE') 关于*.res文件的所有内容都与编译

我想把大量的小位图放到一个*.res文件中。但我不想把它和编译器联系起来,而是让它放在硬盘上。我可能会创造更多的

有没有办法获取这个资源文件,读取它并加载具有确切名称的位图?比如:

Bitmap.LoadFromResourceFile(AFileName: TFileName; const BMPName: string);
Bitmap.LoadFromResourceFile(GetCurrentDir+'\sprites.res','SMILE')

关于*.res文件的所有内容都与编译的文件有关,但我没有找到任何解决方案,正如我在上面所描述的那样


thanx

根据定义,资源被编译成可执行文件,无论是在主应用程序中还是在外部DLL中,但它仍然被编译。如果不编译位图,则无法将其从编辑器保存到.res文件中,因为它是一个已编译文件。如果不想将位图编译到应用程序中,可以保存单个.bmp文件,然后通过
TBitmap.LoadFromFile()
加载它们,或者将它们编译到资源DLL中,然后使用
LoadLibrary()
TBitmap.loadfromfource…()
加载它们,我不太明白这一点,您可以不费吹灰之力地创建仅限资源的DLL。无论如何,您可以通过读取/解析文件资源编辑器来完成。是规范。@Sertac-Akzuz:我没有想过创建DLL。我想用编辑器创建位图,然后保存它们,以便在应用程序中使用。@Remy:“不编译位图,就无法将位图从编辑器保存到.res文件中,因为它是一个已编译的文件”。。。那么在Delphi中通过图像编辑器定期保存的*.res文件呢?我认为它是一种特殊的格式,像动画gif。。。这就是为什么我认为在delphi的图像编辑器中简单地制作位图并将其保存到res文件是合理的,并且。。。。等等。。。。Delphi中的图像编辑器可以打开、编辑和保存它们。所以我现在感到有点困惑…图像编辑器将图像编译成.res文件。如果要将图像放入文件中,请将其存储为图像文件。除非将这些资源链接到PE模块,否则将它们放在.res容器中没有任何好处。编译器使用.res文件将数据放入可执行文件中。它是一种中间文件类型,如.obj或.dcu文件。不要被图像编辑器和大多数其他资源编辑器知道如何直接编辑.res文件这一事实所迷惑。作为使用单独的.bmp和.rc文件的替代方法,这只是一种方便。事实上,没有用于访问.res文件数据的API,您必须手动编写该逻辑。但是,有一个API可以在资源数据编译成可执行文件后访问它@Remy@David好啊这似乎是一条死胡同。。。谢谢你的解释