简单实现系统托盘 - 回复 "闪" 的问题


问题来源: http://www.cnblogs.com/del/archive/2008/01/17/1043226.html#1548952

使用 Delphi 提供的 TTrayIcon 类, 两三行程序甚至不写程序(设计时选择几下)即可实现.

设计时的准备工作:
1、添加 TTrayIcon、TPopupMenu 控件, TPopupMenu 用于托盘的右键菜单.
2、随意给 TPopupMenu 添加些菜单项.

代码文件:


unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, Menus, ExtCtrls;



type

  TForm1 = class(TForm)

    TrayIcon1: TTrayIcon;

    PopupMenu1: TPopupMenu;

    aaa1: TMenuItem;

    bbb1: TMenuItem;

    ccc1: TMenuItem;

    procedure FormCreate(Sender: TObject);

    procedure TrayIcon1DblClick(Sender: TObject);

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



procedure TForm1.FormCreate(Sender: TObject);

begin

  {指定图标, 这里是用程序相同的图标; 也可在设计时选择, 还可以指定一个图标组, 再用 IconIndex 切换}

  TrayIcon1.Icon := Application.Icon;

  {指定右键菜单}

  TrayIcon1.PopupMenu := PopupMenu1;

  {使之可见}

  TrayIcon1.Visible := True;

end;



{给图标添加到双击事件}

procedure TForm1.TrayIcon1DblClick(Sender: TObject);

begin

  ShowMessage('OnDblClick');

end;



end.


 
   

窗体文件:


object Form1: TForm1

  Left = 0

  Top = 0

  Caption = 'Form1'

  ClientHeight = 206

  ClientWidth = 339

  Color = clBtnFace

  Font.Charset = DEFAULT_CHARSET

  Font.Color = clWindowText

  Font.Height = -11

  Font.Name = 'Tahoma'

  Font.Style = []

  OldCreateOrder = False

  OnCreate = FormCreate

  PixelsPerInch = 96

  TextHeight = 13

  object TrayIcon1: TTrayIcon

    OnDblClick = TrayIcon1DblClick

    Left = 152

    Top = 88

  end

  object PopupMenu1: TPopupMenu

    Left = 216

    Top = 88

    object aaa1: TMenuItem

      Caption = 'aaa'

    end

    object bbb1: TMenuItem

      Caption = 'bbb'

    end

    object ccc1: TMenuItem

      Caption = 'ccc'

    end

  end

end


 
   

你可能感兴趣的:(问题)