Main.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:3k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit Main;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls, ExtCtrls, ImgList, CoolTrayIcon, Menus;
  6. type
  7.   TForm1 = class(TForm)
  8.     CoolTrayIcon1: TCoolTrayIcon;
  9.     PopupMenu1: TPopupMenu;
  10.     Exit1: TMenuItem;
  11.     Label1: TLabel;
  12.     Button1: TButton;
  13.     Label2: TLabel;
  14.     procedure FormCreate(Sender: TObject);
  15.     procedure FormDestroy(Sender: TObject);
  16.     procedure Loaded; override;
  17.     procedure CoolTrayIcon1MouseEnter(Sender: TObject);
  18.     procedure CoolTrayIcon1MouseExit(Sender: TObject);
  19.     procedure Exit1Click(Sender: TObject);
  20.     procedure Button1Click(Sender: TObject);
  21.   private
  22.     HTooltip: HWND;
  23.     CustomFont: TFont;
  24.     BackColor, TextColor: COLORREF;
  25.   end;
  26. var
  27.   Form1: TForm1;
  28. implementation
  29. {$R *.DFM}
  30. const
  31.   // Tooltip constants
  32.   TTM_SETMAXTIPWIDTH = (WM_USER + 24);
  33.   TTM_SETTIPBKCOLOR = (WM_USER + 19);
  34.   TTM_SETTIPTEXTCOLOR = (WM_USER + 20);
  35.   TTM_SETTITLEA = (WM_USER + 32);
  36. procedure TForm1.FormCreate(Sender: TObject);
  37. begin
  38.   CustomFont := TFont.Create;
  39.   CustomFont.Size := 14;
  40.   CustomFont.Name := 'Verdana';
  41.   BackColor := RGB(0, 0, 255);
  42.   TextColor := RGB(255, 255, 0);
  43. end;
  44. procedure TForm1.FormDestroy(Sender: TObject);
  45. begin
  46.   CustomFont.Free;
  47. end;
  48. procedure TForm1.Loaded;
  49. begin
  50.   inherited;
  51.   HTooltip := CoolTrayIcon1.GetTooltipHandle;
  52. end;
  53. procedure TForm1.CoolTrayIcon1MouseEnter(Sender: TObject);
  54. begin
  55.   if HTooltip = 0 then
  56.     Exit;
  57.   // Set colors
  58.   SendMessage(HTooltip, TTM_SETTIPBKCOLOR, BackColor, 0);
  59.   SendMessage(HTooltip, TTM_SETTIPTEXTCOLOR, TextColor, 0);
  60.   // Set max width
  61. //  SendMessage(HTooltip, TTM_SETMAXTIPWIDTH, 0, 999);       //???
  62.   // Set font
  63.   SendMessage(HTooltip, WM_SETFONT, CustomFont.Handle, 0);
  64. end;
  65. procedure TForm1.CoolTrayIcon1MouseExit(Sender: TObject);
  66. begin
  67.   if HTooltip = 0 then
  68.     Exit;
  69.   // Close tooltip immediately (by moving it off-screen)
  70.   SetWindowPos(HTooltip, 0, -500, -500, 0, 0, SWP_NOZORDER or SWP_NOACTIVATE or SWP_NOSIZE);
  71.   // Reset tooltip properties to defaults
  72.   SendMessage(HTooltip, TTM_SETMAXTIPWIDTH, 0, -1);
  73.   SendMessage(HTooltip, WM_SETFONT, 0, 0);
  74.   SendMessage(HTooltip, TTM_SETTIPBKCOLOR, GetSysColor(COLOR_INFOBK), 0);
  75.   SendMessage(HTooltip, TTM_SETTIPTEXTCOLOR, GetSysColor(COLOR_INFOTEXT), 0);
  76. end;
  77. procedure TForm1.Exit1Click(Sender: TObject);
  78. begin
  79.   Close;
  80. end;
  81. procedure TForm1.Button1Click(Sender: TObject);
  82. begin
  83.   Exit1Click(Self);
  84. end;
  85. end.