二级DELPHI控件:简单的系统托盘组件(delphi)计算机二级考试

文章作者 100test 发表时间 2009:04:30 03:54:34
来源 100Test.Com百考试题网


  2009年下半年全国计算机等级考试你准备好了没?考计算机等级考试的朋友,2009年下半年全国计算机等级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库
  {最简单的系统托盘组件 for D7}
  {属性: }
  {Visible - 是否显示托盘图标}
  {方法: }
  {Change - 修改托盘图标,组件使用了Application的Icon及Title,所以}
  { 当这两者之一或全部改变时,就需调用Change以更新托盘图标}
  {事件: }
  {OnClick - 左键点击托盘图标事件 }
  {OnRightClick - 右键点击托盘图标事件}
  { }
  interface
  uses
  Windows, Messages, Classes, ShellAPI.
  type
  TTrayIcon = class(TComponent)
  private
  FHandle: HWND.
  FVisible: Boolean.
  FOnClick, FOnRightClick: TNotifyEvent.
  procedure SetVisible(const Value: Boolean).
  procedure WndProc(var Message: TMessage).
  protected
  IconData: TNotifyIconData.
  procedure SetTrayIcon.
  procedure AddTrayIcon.
  procedure DelTrayIcon.
  procedure Loaded. override.
  public
  constructor Create(AOwner: TComponent). override.
  destructor Destroy. override.
  procedure Change.
  published
  property OnClick: TNotifyEvent read FOnClick write FOnClick.
  property OnRightClick: TNotifyEvent read FOnRightClick write FOnRightClick.
  property Visible: Boolean read FVisible write SetVisible default True.
  end.
  procedure Register.
  implementation
  uses
  SysUtils, Forms.
  procedure Register.
  begin
  RegisterComponents(\’My Controls\’, [TTrayIcon])
  end.
  { TTrayIcon }
  const
  WM_TRAYICONEVENT = WM_USER 1024.
  procedure TTrayIcon.AddTrayIcon.
  begin
  SetTrayIcon.
  Shell_NotifyIcon(NIM_ADD, @IconData).
  end.
  procedure TTrayIcon.Change.
  begin
  SetTrayIcon.
  if FVisible then
  Shell_NotifyIcon(NIM_MODIFY, @IconData)..
  end.
  constructor TTrayIcon.Create(AOwner: TComponent).
  begin
  inherited Create(AOwner).
  FHandle := Classes.AllocateHWnd(WndProc).
  FillChar(IconData, SizeOf(TNotifyIconData), 0).
  IconData.cbSize := SizeOf(TNotifyIconData).
  IconData.Wnd := FHandle.
  IconData.uId := UINT(Self).
  IconData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP.
  IconData.uCallbackMessage := WM_TRAYICONEVENT.
  FVisible := True.
  end.

相关文章


计算机二级DELPHI控件:Delphi特效菜单实现代码计算机二级考试
DELPHI控件:怎么样在DELPHI安装第三方控件计算机二级考试
二级DELPHI控件:简单的系统托盘组件(delphi)计算机二级考试
计算机二级DELPHI控件:ListView控件使用方法计算机二级考试
计算机二级DELPHI控件:PAS编成DCU的实现方法计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛