想实现一个speedbutton按纽上图案的变换,却不能成功(50分)

  • 主题发起人 主题发起人 wapftgdss
  • 开始时间 开始时间
W

wapftgdss

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了如下一段代码,用了FormShow事件想实现一个speedbutton按纽上图案的变换,

procedure TForm5.FormShow(Sender: TObject);
begin
if i<50 then
begin
am.Create;
am.LoadFromFile('image/SmileyAngry.bmp');
speedbutton1.Glyph:=am;
am.Free;
end
else
begin
bm.Create;
bm.LoadFromFile('image/Smile.bmp');
speedbutton1.Glyph:=bm;
bm.Free;
end
end;

其中i<50是判断式,am,bm是全局变量,类型是“am,bm :tbitmap”。
但程序运行后却不能实现图案的变换,反而跳出一个窗口,提示如下:
Access violation at address 0047c758 inmodule 'projiect1.exe'.Read of address 00000000
“projiect1.exe”是我写的程序。

请问这段提示的意思是什么?如何才能实现图案的变换?
 
把bm.Free注释掉看看
 
procedure TForm5.FormShow(Sender: TObject);
begin
if i<50 then
begin
am.Create;
am.LoadFromFile('image/SmileyAngry.bmp');
speedbutton1.Glyph:=am;
//am.Free;
end
else
begin
bm.Create;
bm.LoadFromFile('image/Smile.bmp');
speedbutton1.Glyph:=bm;
//bm.Free;
end
end;
 
应该是不能Free的,或者你用Assign之后再Free也许还行
 
Am:=TBitmap.create;
am.creat这一句我倒也经常用,可惜的是从来就不成功
 
问题解决了,谢谢lanyun2和各位
 
后退
顶部