程序总是非法操作,还请高手进来看一下!!(100分)

  • 主题发起人 001china
  • 开始时间
0

001china

Unregistered / Unconfirmed
GUEST, unregistred user!
我的设想是要在supeedbutton控件上画上用ExtractAssociatedIcon函数提取的一个图标文件。
具体代码如下:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
xcon:Ticon;
IconIndex : word;
begin
xcon.Create ;
xcon.Handle:=ExtractAssociatedIcon(HInstance,pchar('C:/01.txt'),IconIndex);
with speedbutton1.Glyph do
width:=xcon.Width ;
height:=xcon.Height ;
canvas.Draw (0,0,xcon);
end;

编译时提示xcon可能是非法变量。运行后出错。请各位高手多多帮忙。
 
你用TBitmap类做绝对没有问题,一样可以从资源文件中读文件,我做过,没问题
 
xcon.Create
改为
Xcon:=Ticon.Create;
 
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
xcon:Ticon;
IconIndex : word;
begin
xcon:=TIcon.Create ; /////////////////////
IconIndex:=0; ////////////
xcon.Handle:=ExtractAssociatedIcon(HInstance,pchar('C:/01.txt'),IconIndex);
/////对handle 直接赋值可能不行。
with speedbutton1.Glyph do
begin /////////////////
width:=xcon.Width ;
height:=xcon.Height ;
canvas.Draw (0,0,xcon);
end;
Xcon.free; ///////////////////
end;
 
感谢各位帮忙呀,jsxjd最正确!!
 
有没有内存泄漏问题???????
 
没有泄漏问题,只是txt文件图标显示时是灰色的,不太好看!!
 
顶部