首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于托盘图标显示的有关问题

2012-02-19 
关于托盘图标显示的问题我写了一个托盘图标的控件。其中有个控制图标的属性,问题属性声明如下:privateFIcon

关于托盘图标显示的问题
我写了一个托盘图标的控件。其中有个控制图标的属性,问题属性声明如下:
private  
    FIcon:   TIcon;
protected
    procedure   SetIcon(Value:   TIcon);
published
    property   Icon:   TIcon   read   FIcon   write   SetIcon;
public
    constructor   Create(AOwner:   TComponent);   override;
 procedure   UpDateTray(dwMessage:   TOpType);

constructor   TTray.Create(AOwner:   TComponent);
begin
    inherited;
    FIcon   :=   TIcon.Create;
    FIcon.Assign(Application.Icon);
  。。。。
end;

procedure   TTray.SetIcon(Value:   TIcon);
begin
    if   not   Value.Empty   then  //若赋值了就使用新图标
    begin
        FIcon.Assign(Value);
    end
    else
    begin
        FIcon.Assign(Application.Icon); //否则使用程序的图标
    end;
    if   Enabled   then
    begin
        UpDateTray(NIM_MODIFY);
    end;
end;

procedure   TTray.UpDateTray(dwMessage:   TOpType);
begin
    if   not   (csDesigning   in   ComponentState)   then
    begin
        if   FEnabled   then
        begin
            FTrayIconData.cbSize   :=   SizeOf(TNotifyIconData);
            FTrayIconData.Wnd   :=   FWnd;
            FTrayIconData.uID   :=   1;
            FTrayIconData.uFlags   :=   NIF_ICON   or   NIF_MESSAGE   or   NIF_TIP;
            FTrayIconData.uCallbackMessage   :=   WM_TRAYMSG;
            FTrayIconData.hIcon   :=   FIcon.Handle;
            StrLCopy(FTrayIconData.szTip,   PChar(FHint),   63);
            Shell_NotifyIcon(dwMessage,   @FTrayIconData);
        end;
    end;
end;

运行结果是能正常显示程序的图标。但是用编辑器选择另一个图标后,程序运行时还是原来的图标。搞了半天没有搞通,现在请教一下大家是怎么回事

[解决办法]
关了编辑器在重新打开,重新加载一次图标,可能是你编辑器的问题!·

热点排行