Gia*_*rmo 1 delphi resources load image bitmap
如何从资源文件加载图像bmp并将其加载到image1.Picture?我试过这个:
{$R resource.res}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
BitMap1 : TBitMap;
begin
BitMap1 := TBitMap.Create;
try
BitMap1.LoadFromResourceName(HInstance,'down');
Image1.Picture(BitMap1);
finally
BitMap1.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
但是不行.谢谢!
我创建了一个文件.RC:
DOWN BMP DOWN.BMP
Run Code Online (Sandbox Code Playgroud)
我用brcc32.exe编译:
brcc32.exe resource.rc
Run Code Online (Sandbox Code Playgroud)
我实现了资源:
{$R resource.res}
Run Code Online (Sandbox Code Playgroud)
但是找不到文件bmp.
它不起作用,总是一个错误,但我找到了另一个代码:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Image1.Picture.Bitmap.Handle := LoadBitmap(hInstance, 'DOWN');
end;
Run Code Online (Sandbox Code Playgroud)
但是当我点击图像消失时,为什么?谢谢
这是代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, ExtCtrls;
type
TForm1 = class(TForm)
XPManifest1: TXPManifest;
Image1: TImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$R RESOURCE.RES}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Image1.Picture.Bitmap.Handle := LoadBitmap(hInstance,'DOWN');
end;
end.
Run Code Online (Sandbox Code Playgroud)
您必须首先正确创建资源.下面是示例(通用Delphi,因为您没有指定版本).
文件:( Resource.rc
可怕的名字,BTW和可怕的资源名称)
DOWN BITMAP DOWN.BMP
Run Code Online (Sandbox Code Playgroud)
然后在代码中包含该文件以供编译器处理:
{$R resource.res resource.rc}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
BitMap1 : TBitMap;
begin
BitMap1 := TBitMap.Create;
try
BitMap1.LoadFromResourceName(HInstance,'DOWN');
Image1.Picture.Assign(Bitmap1);;
finally
BitMap1.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
如果您的Delphi版本不支持上述{$R }
指令,只需删除该resource.rc
部分,然后首先从项目文件夹中的命令提示符编译资源:
brcc32 resource.rc
Run Code Online (Sandbox Code Playgroud)