怎么把位图放进资源文件中 建资源文件不是先建一个.rc的纯文本文件吗,然后再编译使其成为.res文件,但,我想把位图加入资料文件怎么加呢,是编译完.res文件后加,还是在.rc下加入呢。怎么加入? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看我的文档,http://www.csdn.net/develop/Read_Article.asp?Id=18399 新建一个文本文件写下面一句话ABC BITMAP c:\bitmap\a.bmp然后把该文件保存为一个*.rc的文件,使用资源编辑器编译成res文件,然后就可以在Delphi里面用了 用Delphi自带的ImageEditor打开资源文件,你就知道了。 Delphi自带的ImageEditor只能处理256色位图,最好使用RESCreater,可能处理各种位图和文本,可在http://download.pchome.net/development/vb/11090.html处下载 Dephi5 中资源文件的创建和使用 崔同杰 张卫华 -------------------------------------------------------------------------------- 几乎每个 Windows 应用程序都使用图标、图片、光标等资源。资源是程序的一部分,但是它是不可执行代码。下面我们就详细介绍资源文件在 Delphi5 中建立和使用方法。 1 .把资源放到 Exe 文件的优点 由于定位资源比在磁盘中定位文件花费时间少,所以应用程序执行会更快。多种资源可以放在一个文件中,减少了图标、图片、光标等文件数量。保存资源文件时不要和工程名相同,因为 Delphi 创建工程时会自动创建一个和工程名相同的资源文件。并且最好将资源文件保存到和工程文件同一个文件夹中。 2 .创建资源文件 首先创建一个 .Rc 的纯文本文件。格式如下: 资源标识符 + 关键字 + 资源文件名 ① 资源标识符:程序中调用资源时的特殊标号; ② 关键字:标识资源文件类型; Wave : 资源文件是声音文件; RCDATA : JPEG 文件; AVI : AVI 动画; ICON : 图标文件; BITMAP : 位图文件; CURSOR : 光标文件; 资源文件名:资源文件名; ③ 资源文件名:编译的资源文件,比如动画、位图、光标等; ④ 如: MyWav WAVE -FileName.Wav- 使用 Borland 资源编译器( BRCC32.EXE )转化 .Rc 文件成 .Res 文件。在 DOS 命令行下输入下列命令: Brcc32 FileName.Rc // Brcc32.Exe 在 Delphi5\Bin 文件下。 3 .在工程中引用资源文件 为了存取我们的资源文件,必须告诉 Delphi 链接我们的资源文件到应用程序中。因此我们可以在源代码中加入一条编译指令完成上述功能。这条指令必须紧跟在窗口指令后,如下形式: {$R *.DFM} //Delphi 自带编译指令 {$R FileName.Res} // 新加入的编译资源文件的指令。 不要删除 {$R *.DFM} 指令,因为这行代码告诉 Delphi 链接下面的资源到窗口的资源中。 4 .调用资源文件 (1) 存取资源文件中的位图 (Bitmap) : 程序中如果想存取资源,你必须调用一些 Windows API 函数。保存在资源文件中的位图、光标和图标可以通过调用LoadBitmap 、 LoadCursor 和 LoadIcon 函数存取。 本例举例说明如何存取资源文件中位图并显示在 Timage 控件中。 procedure TfrMain.btnCanvasPic(Sender: TObject); begin Image1.Picture.Bitmap.Handle :=LoadBitmap(hInstance, '' 资源标识符 ''); end; 注:如果位图没有装载成功,程序仍旧执行,但是 Image 将不再显示图片。你可以根据 LoadBitmap 函数的返回值判断是否装载成功,如果装载成功返回值是非 0 ,如果装载失败返回值是 0 。 另外一个存取显示位图的方法如下: procedure TfrMain.btnLoadPicClick(Sender: TObject); begin Image1.Picture.Bitmap.LoadFromResourceName(hInstance, '' 资源标识符 ''); end; (2) 存取资源文件中的光标: Screen.Cursors[] 是一个光标数组,使用光标文件我们可以将定制的光标加入到这个属性中。因为默认的光标在数组中索引值是 0 ,所以除非想取代默认光标,最好将定制的光标索引值设为 1 。 procedure TfrMain.btnUseCursorClick(Sender: TObject); begin Screen.Cursors[1] :=LoadCursor(hInstance,'' 资源标识符 ''); Image1.Cursor :=1; end; (3) 存取资源文件中的图标: 将图标放在资源文件中,可以实现动态改变应用程序图标。 procedure TfrMain.LoadIconClick(Sender: TObject); begin Application.Icon.Handle := LoadIcon(hInstance, '' 资源标识符 ''); End; (4) 存取资源文件中的 AVI : procedure TfrMain.LoadIconClick(Sender: TObject); begin Animate1.ResName :=''MyAvi'' ; // 资源标识 Animate1.Active :=True ; End ; (5) 存取资源文件中的 JPEG: 把 jpeg 单元加入到 Interface 的 uses 单元中。 procedure TForm1.LoadJPGClick(Sender: TObject); var Fjpg : TJpegImage ; FStream :TResourceStream ; begin Fjpg :=TJpegImage.Create ; FStream := TResourceStream.Create (Hinstance,'' 资源标识符 '',RT_RCDATA) ; FJpg.LoadFromStream (FStream) ; Image1.Picture.Bitmap.Assign (FJpg); end; (6) 存取资源文件中的 Wave: 把 MMSystem 加入到 Interface 的 uses 单元中 procedure TForm1.LoadWaveClick(Sender: TObject); begin PlaySound(''MyWav'', HInstance, Snd_ASync or Snd_Memory or snd_Resource) ; end; 5 .结束语 位图、光标和图标、 AVI 动画、 JPEG 和 Wave 文件等可以放到资源文件中,上面我们介绍了如何将资源加入到资源文件中,并介绍了在 Delphi 中动态存取资源文件的方法。 Delphi 编译工程会自动创建一个和工程名相同的资源文件(如果没有其他的资源,主窗口的图标会放在这个资源文件中)。但是建议最好不要改变这个资源文件。 delphi如何调用c#写的dll 求更好的方法:如何判断SQL Server中数据库已经存在并得到它的大小? 如何对RichEdit.Lines.Add的字符串指定颜色? 判断多个普通窗体是否存在的问题 请问如何自定义一个还没指定参数类型的函数? 祸不单行昨日行,福无双至今日至 请问为何不能进行多个报表?谢谢! 如何取得dbtext中的值? 高手教我一下 VB做成的dll文件接口怎么转换成delphi所用? 一菜鸟问题 怎么样可以调用API将一个指定的文本文档打开? 关于两表之间复制的问题
http://www.csdn.net/develop/Read_Article.asp?Id=18399
ABC BITMAP c:\bitmap\a.bmp
然后把该文件保存为一个*.rc的文件,使用资源编辑器编译成res文件,然后就可以在Delphi里面用了