加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 为什么我的图标在带有TTrayIcon的托盘栏上很难看?

发布时间:2020-12-15 03:55:49 所属栏目:大数据 来源:网络整理
导读:我最近在Delphi 2007中发现了TTrayIcon组件.使用的代码非常简单. procedure TForm1.FormCreate(Sender: TObject);begin AppTrayIcon := TTrayIcon.Create(nil); AppTrayIcon.OnDblClick := OnAppTrayIconDblClick; Application.OnMinimize := OnApplicationM
我最近在Delphi 2007中发现了TTrayIcon组件.使用的代码非常简单.
procedure TForm1.FormCreate(Sender: TObject);
begin
 AppTrayIcon := TTrayIcon.Create(nil);
 AppTrayIcon.OnDblClick := OnAppTrayIconDblClick;
 Application.OnMinimize := OnApplicationMinimize;
 Application.OnRestore := OnApplicationRestore;
end;

procedure TForm1.OnApplicationRestore(Sender: TObject);
begin
 AppTrayIcon.Visible := False;
 ShowWindow(Application.Handle,SW_SHOW);
 Application.BringToFront;
end;

procedure TForm1.OnApplicationMinimize(Sender: TObject);
begin
 AppTrayIcon.Visible := True;
 ShowWindow(Application.Handle,SW_HIDE);
end;

procedure TForm1.OnAppTrayIconDblClick(Sender: TObject);
begin
 Application.Restore;
end;

由于没有分配图标,Delphi使用Application.Icon,即图标:http://artbyloveland.com/icon.ico此图标包括以下尺寸:64×64,48×48,32×32,24×24和16×16.

现在,在我的Windows Vista上,一切都很好.

在像Windows Server 2003这样的非主题Windows上,结果全部搞砸了:

编辑:
起初,我认为这是因为alpha通道.所以我尝试在不使用alpha通道的情况下制作ico文件的版本.我也按照Ken的建议尝试了GreenFish Icon Editor;我选择了每种颜色深度和每种尺寸.在这两种情况下,最终结果都更好.但是,ico文件中根本不存在黑色笔划.

解决方法

您声明您没有分配图标.在这种情况下,组件使用Application.Icon.但这通常是一个通知区域大小错误的图标.

对于通知区域,您需要使用尺寸由SM_CXSMICON系统指标确定的方形图标.获得它的最好方法是调用LoadImage,它允许您指定图标大小.将图标加载到HICON后,您可以写下:

AppTrayIcon.Icon.Handle := IconHandle;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读