解决方案 »
- 怎么用webbrowser组件实现页面拦截和跳转?
- delphi打印问题
- ActionManager1使用问题
- .NET转DELPHI,请问过程是不是不可设置为virtual
- 水晶报表,如何动太赋值?
- 想做一个简体版转换成繁体版的软件。哪里有GB和BIG5的转换资料
- 高分求一个关于一个物料报表的实现问题
- 谁能发一个数据库流程图让我做参考
- 关于电子签名的问题!
- 為什么安裝RxLib for Delphi6時﹐當編繹到CtlDB6.dpk時出現內部錯誤﹐錯誤號 U730 ,急!!!
- 帮忙看看这样的表达式是什么意思?
- 从此不再用以前地一个帐号了,重新开始,第一次提问,delphi中怎么自定义文件格式?该看那方面书籍?
加入一个image,设置picture的值。
就OK了。什么东西都有了。
要用时调用就OK了。
如果图片比较多的话就要用资源了。
建议你去看看书
资源标识符 + 关键字 + 资源文件名
① 资源标识符:程序中调用资源时的特殊标号;
② 关键字:标识资源文件类型;
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文件下
2.为了存取我们的资源文件,必须告诉Delphi链接我们的资源文件到应用程序中。因此我们可以在源代码中加入一条编译指令完成上述功能。这条指令必须紧跟在窗口指令后,如下形式:
{$R *.DFM} //Delphi自带编译指令
{$R FileName.Res} //新加入的编译资源文件的指令。
不要删除{$R *.DFM}指令,因为这行代码告诉Delphi链接下面的资源到窗口的资源中。
3.(1)存取资源文件中的位图(Bitmap)
程序中如果想存取资源,你必须调用一些Windows API函数。保存在资源文件中的位图、光标和图标可以通过调用LoadBitmap、LoadCursor和LoadIcon函数存取。
本例举例说明如何存取资源文件中位图并显示在Timage控件中。
procedure TfrMain.btnCanvasPic(Sender: TObject);
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;
够详细吧!
假设你要将C:\picture.jpg和C:\sound.wav加到应用程序的资源中,则内容如下:
picture RCDATA "c:\picture.jpg"
sound RCDATA "c:\sound.wav"然后用delphi自带的brcc32.exe将该文件编译为资源文件,用法如下:
"delphi安装目录\Bin\brcc32.exe" "工程目录\MyResource.rc"然后在窗体的“implementation”下面处加入如下一行代码:
{$R MyResource.res}以下是读取的代码;
procedure TForm1.Button1Click(Sender: TObject);
var
RS: TResourceStream;
JpegImage: TJpegImage;
begin
RS := TResourceStream.Create(HInstance, 'Picture', RT_RCDATA);
JpegImage := TJpegImage.Create;
JpegImage.LoadFromStream(RS);
Image1.Picture.Graphic := JpegImage;
JpegImage.Free;
RS.Free;
end;procedure TForm1.Button2Click(Sender: TObject);
var
RS: TResourceStream;
begin
RS := TResourceStream.Create(HInstance, 'sound', RT_RCDATA);
sndPlaySound(RS.Memory, SND_MEMORY or SND_ASYNC);
RS.Free;
end;