我试图在运行时分配图像(
Image1)一张图片.
因为我无法设置从资源加载的属性.所以我需要在运行时加载.
我有代码
procedure TForm1.FormCreate(Sender: TObject); var RS:Tresourcestream ; begin RS := TResourceStream.Create(HInstance,'Splashscreen_Background',RT_RCDATA); image1.Picture.Bitmap.LoadFromResourcename(HInstance,'splashscreen_background'); end;
但它只是加载一个空白图像的表单.以及:
procedure TForm1.FormCreate(Sender: TObject); BitMap1 : TBitMap; begin BitMap1 := TBitMap.Create; BitMap1.LoadFromResourceName(HInstance,'Live'); image1.Picture.Bitmap.Assign(Bitmap1); end;
我不知道底层是否会工作,猜测不行.只是我试过的东西
解决方法
我刚刚添加了一个名为SampleBitmap(位图图像)的资源到一个新的VCL项目.然后我添加了一个TImage控件,并给它一个OnClick处理程序:
procedure TForm1.Image1Click(Sender: TObject); begin Image1.Picture.Bitmap.LoadFromResourceName(HInstance,'SampleBitmap'); end;
它工作完美.
更新
问题很可能是您使用的是JPG图像,而不是位图.您不能将JPG图像加载到TBitmap中.那么该怎么办?那么,添加JPEG到你的uses子句,并做
procedure TForm5.Image1Click(Sender: TObject); var RS: TResourceStream; JPGImage: TJPEGImage; begin JPGImage := TJPEGImage.Create; try RS := TResourceStream.Create(hInstance,'JpgImage',RT_RCDATA); try JPGImage.LoadFromStream(RS); Image1.Picture.Graphic := JPGImage; finally RS.Free; end; finally JPGImage.Free; end; end;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。