delphi中调用资源文件循环显示位图问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:22:52
我想随窗体打开而自动循环显示资源中的4个图片。之前在窗体的ONCREAT事件中随窗体显示的是一张图片已经成功。现在是通过TIMER来循环显示:
var
pic:string;
begin
if idx<4then
idx:=idx+1
else
idx:=1;
pic:='mp.res\b'+inttostr(idx)+'';
Image1.Picture.Bitmap.LoadFromResourceName
(HInstance,'pic');
end;
运行后我另外设计的音乐也出现了,同时窗体在出现1秒多之后出了个调试器异常通知对话框:project p999.exe raised exeception class EResNotFound with message 'Resource pic not found'.process stopped.use step or run to continue.
请问原因是什么,怎么解决?
dos62先生一下抓住了问题的核心。可我是个计算机业余初学者,对于DELPHI有许多搞不清楚。仅就以上你提出的3个问题,我做针对性的补充:
1.我做的RC脚本文件格式是B1 BITMAP P1BMP(B2/B3/B4依次放在相应位置),那么调用它的变量pic:='mp.res\b'+inttostr(idx)+''有什么错误?
2.我现在可以在窗体的ONCREATE事件中Image1.Picture.Bitmap.LoadFromResourceName(HInstance,'b4')来分别显示出我的MP.RES资源文件中的4个图片(更换“B4”尾数的“1、2、3、4”4个序号然后关闭程序再反复RUN),这应该能说明mp.res已经编译进project了。
3.我的Image1.Picture.Bitmap.LoadFromResourceNa

我写过一个循环显示位图的例子,mysor.rc文件中是这样的:
my1 bitmap 1.BMP
my2 bitmap 2.BMP
my3 bitmap 3.BMP
my4 bitmap 4.BMP
编译产生了mysor.res文件,winxp+delphi7运行正常。你可以看一下:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
start: TButton;
Image1: TImage;
Timer1: TTimer;
stop: TButton;
procedure Timer1Timer(Sender: TObject);
procedure startClick(Sender: TObject);
procedure stopClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
num:integer;
implementation
{$R mysor.res}
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
num:=1;//初始值为1,读资源文件中第一个bmp
end;

procedure TForm1.Timer1T