如何在SpedButton中显示一个ICON?(50分)

  • 主题发起人 主题发起人 Kim Wong
  • 开始时间 开始时间
K

Kim Wong

Unregistered / Unconfirmed
GUEST, unregistred user!
好像不行还是转成.bmp吧!
 
可以呀:-)
var
b:tbitmap;
begin
b:=tbitmap.create;
b.loadfromfile('xxx.ico');
speedbutton1.glyph.assign(b);
speedbutton1.NumGlyphs:=1;
b.free;
 
好像没有其他方法,只好转换成
位图文件了,工具不是挺多吗?
也挺简单。
 
用Toolbar+ToolButton+ImageList可以显示Ico,注意大小
 
我倒是有一个可以用icon的button控件,要的话请到
http://202.103.176.81/frun/shangrw/控件仓库第三页中下载。
 
去下载个增强的属性编辑器, 就可以直接将icon作为bmp赋给任何有
bitmap属性(如: picture, glyph...)的控件了. 我就是这么干的. 通用,
你甚至可以在image.picture中放个icon图标.
比光下载个支持icon的button可有用多了.
 
我想我可能没把问题说清楚。是这样的:

实际上,我的这个ICON文件是用ExtractIcon从.EXE文件中抓出来
的,现在的问题是,我想在SpeedButton中把这个ICON显示出来。

现在的制作进度如下:
var
AButton: TSpeedButton;
AIcon: TIcon;
begin
// Create a new SpeedButton and add it on the PalClient.
with AButton do
begin
// Create a SpeedButton
AButton := TSpeedButton.Create( Self );
// Add this button on the PalClient
Parent := PalClient;
Flat := True;
OnClick := Launch; // procedure Launch;
Tag := PalClient.ControlCount;
Top := 33 * (PalClient.ControlCount - 1);
Left := 2;
Height := 30;
Width := 127;
// Set the property of the button
Caption := 'Click here to launch an application';
// Extract Icon from an .EXE file and draw it on the button
AIcon := TIcon.Create;
AIcon.Handle := ExtractIcon( Application.Handle,
PChar( 'notepad.exe' ),
0
);
AButton.Glyph.Canvas.Draw( 0, 0, Icon );
AIcon.Free;
end; // end of with...
end;
不知道有没有不妥,反正拿出来让大家看看就知道我的用意了。
 
不妥
显示得出才怪.
别忘了: abutton.glyph = nil(或者是abutton.glyph.empty = true). 哪里有什么
canvas能给你画.
abutton.glyph.width := xxxx;
abutton.glyph.height := xxxx;
abutton.glyph.canvas.draw(0,0,icon);
这样才行.
 
因为是speedbutton 它可以引入 icon 图标。
所以直接赋值就可以了。
abutton.glyph.width := xxxx;
abutton.glyph.height := xxxx;
abutton。glyph。assign(aicon);
其实可以直接引入 icon
abutton。loadformfile(c;/hell.ico);
 
多人接受答案了。
 
后退
顶部