亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? trayicon.pas

?? 由于該木馬有三個服務端可以選擇生成
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{******************************************************************************
*              系統托盤圖標控件 - TTrayIcon                                   *
*                                                                             *
*      功能: 添加圖標到系統托盤(System Tray),并響應相應鼠標事件             *
*      版本: V1.01                                                           *
*      作者: 顧中軍                                                          *
*      日期:  2005.3.6                                                        *
*      用法:                                                                 *
*             很簡單,試一下就知道,這里我就不多說了                          *
*      說明:                                                                 *
*          這個東東完全是照搬BCB6所帶的TrayIcon例子中的做法,換句話說,實際上 *
*      我只是將BCB6的代碼改成Delphi而已,并未作多少改進。BCB6源碼請參看其安裝 *
*      目錄下Examples\Controls\Source子目錄中的TrayIcon.cpp/TrayIcon.h 。     *
*          總的說來,這個東東要比網上流傳甚廣的TSysTray的功能要強大一些,而且 *
*      我發現它對彈出菜單的處理要更完善一些(TSysTray這個東東對彈出菜單的處理 *
*      有一些Bug)。                                                          *
*          好了,其他也沒什么多說的了,讓我們感謝一下Borland所提供的源碼吧。  *
*          祝你愉快!!!                                                     *
*                                                                             *
*      Email:     iamdream@yeah.net                                           *
******************************************************************************}

unit TrayIcon;

interface

uses
  Windows, Messages, SysUtils, Controls, Classes, Forms, ExtCtrls, Graphics,
  Menus, ShellApi;

const
  WM_SYSTEM_TRAY_NOTIFY = WM_USER + 1;

type

  TTrayIconMessage = (imClick, imDoubleClick, imMouseDown,
                      imMouseUp, imLeftClickUp, imLeftDoubleClick,
                      imRightClickUp, imRightDoubleClick, imNone);

  TTrayIcon = class(TComponent)
  private
    { Private declarations }
    FData:            TNotifyIconData;
    FIsClicked:       Boolean;
    FIcon:            TIcon;
    FIconList:        TImageList;
    FPopupMenu:       TPopupMenu;
    FTimer:           TTimer;
    FHint:            String;
    FIconIndex:       Integer;
    FVisible:         Boolean;
    FHide:            Boolean;
    FAnimate:         Boolean;
    FAppRestore:      TTrayIconMessage;
    FPopupMenuShow:   TTrayIconMessage;
    FApplicationHook: TWindowHook;

    FOnMinimize:      TNotifyEvent;
    FOnRestore:       TNotifyEvent;
    FOnMouseMove:     TMouseMoveEvent;
    FOnMouseExit:     TMouseMoveEvent;
    FOnMouseEnter:    TMouseMoveEvent;
    FOnClick:         TNotifyEvent;
    FOnDblClick:      TNotifyEvent;
    FOnMouseDown:     TMouseEvent;
    FOnMouseUp:       TMouseEvent;
    FOnAnimate:       TNotifyEvent;
    FOnCreate:        TNotifyEvent;
    FOnDestroy:       TNotifyEvent;
    FOnActivate:      TNotifyEvent;
    FOnDeactivate:    TNotifyEvent;

    procedure SetHint(Hint: String);
    procedure SetHide(Value: Boolean);
    function GetAnimateInterval: Integer;
    procedure SetAnimateInterval(Value: Integer);
    function GetAnimate: Boolean;
    procedure SetAnimate(Value: Boolean);
    procedure EndSession;
    function ShiftState: TShiftState;
    function GetHandle: HWND;

  protected
    { Protected declarations }
    procedure SetVisible(Value: Boolean); virtual;
    procedure DoMessage(var Message: TMessage); virtual;
    procedure DoClick; virtual;
    procedure DoDblClick; virtual;
    procedure DoMouseMove(Shift: TShiftState; X, Y: Integer); virtual;
    procedure DoMouseDown(Button: TMouseButton; Shift: TShiftState;
        X, Y: Integer); virtual;
    procedure DoMouseUp(Button: TMouseButton; Shift: TShiftState;
        X, Y: Integer); virtual;
    procedure DoOnAnimate(Sender: TObject); virtual;
    procedure Notification(AComponent: TComponent;
        Operation: TOperation); override;

    function ApplicationHookProc(var Message: TMessage): Boolean;

    procedure Loaded; override;
    property Data: TNotifyIconData read FData;

  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

    procedure Minimize; virtual;
    procedure Restore; virtual;
    procedure Update; virtual;
    procedure ShowMenu; virtual;
    procedure SetIconIndex(Value: Integer); virtual;
    procedure SetDefaultIcon; virtual;

  published
    { Published declarations }
    property Visible: Boolean read FVisible write SetVisible default False;
    property Hint: String     read FHint    write SetHint;
    property PopupMenu: TPopupMenu read FPopupMenu write FPopupMenu;
    property Hide: Boolean    read FHide    write SetHide;
    property RestoreOn:   TTrayIconMessage  read FAppRestore write FAppRestore;
    property PopupMenuOn: TTrayIconMessage  read FPopupMenuShow write FPopupMenuShow;
    property Icons: TImageList  read FIconList  write FIconList;
    property IconIndex: Integer read FIconIndex write FIconIndex;
    property AnimateInterval: Integer read GetAnimateInterval write SetAnimateInterval default 1000;
    property Animate: Boolean   read GetAnimate write SetAnimate default False;
    property Handle:  HWND      read GetHandle;

    property OnMinimize:   TNotifyEvent read FOnMinimize write FOnMinimize;
    property OnRestore:    TNotifyEvent read FOnRestore  write FOnRestore;
    property OnClick:      TNotifyEvent read FOnClick    write FOnClick;
    property OnMouseEnter: TMouseMoveEvent read FOnMouseEnter write FOnMouseEnter;
    property OnMouseExit:  TMouseMoveEvent read FOnMouseExit  write FOnMouseExit;
    property OnMuuseMove:  TMouseMoveEvent read FOnMouseMove  write FOnMouseMove;
    property OnMouseUp:    TMouseEvent  read FOnMouseUp  write FOnMouseUp;
    property OnMouseDown:  TMouseEvent  read FOnMouseDown write FOnMouseDown;
    property OnAnimate:    TNotifyEvent read FOnAnimate  write FOnAnimate;
    property OnCreate:     TNotifyEvent read FOnCreate   write FOnCreate;
    property OnDestroy:    TNotifyEvent read FOnDestroy  write FOnDestroy;
    property OnActivate:   TNotifyEvent read FOnActivate write FOnActivate;
    property OnDeactivate: TNotifyEvent read FOnDeactivate write FOnDeactivate;
     
  end;

procedure Register;

resourcestring
  sCannotCreate = 'Cannot Create System Shell Notification Icon';
  sCannotRemove = 'Cannot Remove System Shell Notification Icon';

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TTrayIcon]);
end;

constructor TTrayIcon.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  FIcon  := TIcon.Create();
  FTimer := TTimer.Create(Self);

  FIconIndex      := 0;
  FIcon.Assign(Application.Icon);
  FAppRestore     := imDoubleClick;
  FOnAnimate      := DoOnAnimate;
  FPopupMenuShow  := imNone;
  FVisible        := False;
  FHide           := True;
  FTimer.Enabled  := False;
  FTimer.OnTimer  := OnAnimate;
  FTimer.Interval := 1000;

  if not (csDesigning in ComponentState) then
  begin
    FillChar(FData, SizeOf(TNotifyIconData), 0);
    with FData do
    begin
      cbSize := SizeOf(TNotifyIconData);
      Wnd    := Classes.AllocateHWnd(DoMessage);
      uID    := UINT(Self);
      hIcon  := FIcon.Handle;
      uFlags := NIF_ICON or NIF_MESSAGE;
      uCallbackMessage := WM_SYSTEM_TRAY_NOTIFY;
    end;
    FApplicationHook   := ApplicationHookProc;
    Update();
  end;
end;

destructor TTrayIcon.Destroy;
begin
  if not (csDesigning in ComponentState) then
  begin
    Shell_NotifyIcon(NIM_DELETE, @FData);
    Classes.DeallocateHWnd(FData.Wnd);
  end;

  if FIcon <> nil then
    FIcon.Free;
  if FTimer <> nil then
    FTimer.Free;

  inherited Destroy;
end;

procedure TTrayIcon.Notification(AComponent: TComponent; Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);

  if Operation = opRemove then
  begin
    if AComponent = FIconList then
      FIconList := nil
    else if AComponent = FPopupMenu then
      FPopupMenu := nil;
  end;
end;

procedure TTrayIcon.Loaded;
begin
  inherited Loaded;

  if FIconList = nil then
  begin
    FAnimate := False;
    FIcon.Assign(Application.Icon);
  end
  else
  begin
    FTimer.Enabled := FAnimate;
    FIconList.GetIcon(FIconIndex, FIcon);
  end;

  Update();
end;

procedure TTrayIcon.SetVisible(Value: Boolean);
begin
  FVisible := Value;

  if not (csDesigning in ComponentState) then
  begin
    if FVisible then
    begin
      if not Shell_NotifyIcon(NIM_ADD, @FData) then
        raise EOutOfResources.Create(sCannotCreate);
      Hide := True;
      Application.HookMainWindow(FApplicationHook);
    end
    else
    begin
      if not Shell_NotifyIcon(NIM_DELETE, @FData) then
        raise EOutOfResources.Create(sCannotRemove);
      Hide := False;
      Application.UnhookMainWindow(FApplicationHook);
    end;
  end;
end;

procedure TTrayIcon.SetHint(Hint: String);
begin
  // The new hint must be different than the previous hint and less than
  // 64 characters to be modified. 64 is an operating system limit.
  if (FHint <> Hint) and (Length(Hint) < 64) then
  begin
    FHint := Hint;
    StrPLCopy(FData.szTip, Hint, SizeOf(FData.szTip) - 1);

    // If there is no hint then there is no tool tip.
    if Length(Hint) > 0 then
      FData.uFlags := FData.uFlags or NIF_TIP
    else
      FData.uFlags := FData.uFlags and not NIF_TIP;

    Update();
  end;
end;

procedure TTrayIcon.SetHide(Value: Boolean);
begin
  FHide := Value;
  if FVisible then
  begin
    if IsIconic(Application.Handle) then
    begin
      if Value then
        ShowWindow(Application.Handle, SW_HIDE);
    end
    else if not Value then
      ShowWindow(Application.Handle, SW_RESTORE);
  end;
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av一级做a爰片久久| 久草热8精品视频在线观看| 日韩一区二区免费高清| 丁香婷婷综合五月| 日韩成人精品在线| 亚洲欧美日韩电影| 久久精品视频在线看| 欧美精品日韩一区| 欧美在线观看视频在线| 成人毛片在线观看| 国内精品伊人久久久久av影院| 亚洲第一激情av| 亚洲精品视频免费观看| 中文字幕精品一区| 欧美精品一区二区在线观看| 欧美精品日韩综合在线| 在线观看av一区| 99久久精品免费| 国产99精品视频| 国内精品伊人久久久久av影院| 亚洲成人7777| 亚洲在线一区二区三区| 亚欧色一区w666天堂| av电影天堂一区二区在线| 美女免费视频一区二区| 亚洲va欧美va国产va天堂影院| 亚洲自拍都市欧美小说| 一个色妞综合视频在线观看| 亚洲人成伊人成综合网小说| 国产精品久久久久久久久久久免费看 | 韩国一区二区在线观看| 日一区二区三区| 日日夜夜精品免费视频| 亚洲va国产天堂va久久en| 亚洲午夜在线视频| 亚洲精品视频一区二区| 一区二区免费在线播放| 韩国欧美国产1区| 久久综合色天天久久综合图片| 日韩女优电影在线观看| 国产精品国产三级国产普通话99| 丁香网亚洲国际| 国产福利精品导航| 国产99久久久国产精品免费看 | 亚洲免费av在线| 6080午夜不卡| av亚洲精华国产精华精华| 日日夜夜免费精品| 中文字幕一区二区在线观看| 精品1区2区3区| 91性感美女视频| 国产成人啪免费观看软件| 轻轻草成人在线| 亚洲免费电影在线| 久久影院视频免费| 99久久久免费精品国产一区二区| 亚洲综合免费观看高清完整版在线 | 欧美日韩三级视频| 色狠狠色噜噜噜综合网| 成人中文字幕在线| 91麻豆国产在线观看| 日韩avvvv在线播放| 老司机精品视频在线| 9人人澡人人爽人人精品| 国产不卡在线一区| 国产一区在线看| 99久久精品免费看国产免费软件| 久久毛片高清国产| 91天堂素人约啪| 精品国产乱码久久久久久闺蜜| 亚洲精品一区二区在线观看| 天天综合天天做天天综合| 蜜桃视频一区二区三区在线观看| 狠狠久久亚洲欧美| 99r国产精品| 91精品福利在线一区二区三区| 久久人人超碰精品| 亚洲精品中文在线观看| 日本美女一区二区三区| 成人av免费在线播放| 欧美精品久久久久久久多人混战| 欧美成人一级视频| 亚洲精品日产精品乱码不卡| 国产婷婷一区二区| 国产精品全国免费观看高清| 一区二区免费看| 成人免费高清在线| 亚洲天堂成人在线观看| 91麻豆精东视频| 欧美性猛交xxxx乱大交退制版| 精品少妇一区二区三区在线播放| 中文字幕一区二区三区四区不卡| 午夜激情久久久| 成人福利视频网站| 国产精品一色哟哟哟| 欧美视频一区二区三区在线观看| 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲综合一区二区精品导航| 国产一区二区三区蝌蚪| 欧美网站一区二区| 一区二区中文字幕在线| 精品夜夜嗨av一区二区三区| 欧美曰成人黄网| 日韩一区中文字幕| 韩国v欧美v亚洲v日本v| 91精品在线观看入口| 中文字幕一区二区在线观看| 国产一区二区三区黄视频 | yourporn久久国产精品| 欧美一区二区国产| 亚洲精品高清在线观看| 国产精品综合一区二区| 欧美成人高清电影在线| 五月天一区二区| 色欧美日韩亚洲| 国产精品久久久久久久久免费相片| 国内精品免费在线观看| 日韩免费看的电影| 视频一区二区三区中文字幕| 91国偷自产一区二区三区成为亚洲经典| 日本一区二区三区国色天香| 国产一区福利在线| 亚洲精品一区二区三区蜜桃下载| 免费成人深夜小野草| 欧美日韩精品一区二区三区四区 | va亚洲va日韩不卡在线观看| 久久婷婷综合激情| 激情综合网天天干| 日韩精品在线看片z| 久久国产尿小便嘘嘘尿| 日韩午夜激情电影| 久国产精品韩国三级视频| 日韩精品一区二区在线| 精品一区二区在线看| 日韩一区二区三免费高清| 久久精品久久99精品久久| 欧美成人video| 极品美女销魂一区二区三区免费| 五月天中文字幕一区二区| 欧美男男青年gay1069videost| 亚洲成人精品一区二区| 欧美乱熟臀69xxxxxx| 天天影视网天天综合色在线播放| 欧美日韩一级大片网址| 亚洲伦理在线免费看| 欧美一级xxx| 偷窥国产亚洲免费视频| 欧美三级视频在线| 亚洲在线中文字幕| 欧美精品免费视频| 久久精工是国产品牌吗| 久久精品亚洲精品国产欧美kt∨ | 在线中文字幕一区| 亚洲综合成人网| 欧美麻豆精品久久久久久| 日韩va亚洲va欧美va久久| 日韩美一区二区三区| 国产乱子伦视频一区二区三区| 欧美国产禁国产网站cc| 91网址在线看| 日韩av中文字幕一区二区| 欧美成人bangbros| 成人av在线播放网址| 亚洲国产精品一区二区久久 | 日韩和欧美一区二区三区| 日韩欧美一级精品久久| 国产麻豆成人精品| 亚洲特黄一级片| 在线播放国产精品二区一二区四区| 国模少妇一区二区三区| 中文字幕五月欧美| 亚洲精品视频在线| 精品写真视频在线观看| 国产精品成人一区二区三区夜夜夜| 91社区在线播放| 蜜桃视频一区二区三区| 国产精品情趣视频| 久久久久久久久久久久电影| 精品一区二区三区不卡| 国产成人免费在线观看不卡| 中文字幕一区二区不卡| 欧美日韩精品免费| 国产福利91精品| 亚洲va国产va欧美va观看| 蜜臀91精品一区二区三区| 国产精品久久久久影视| 7777精品伊人久久久大香线蕉| 国产精品一卡二卡| 天堂蜜桃91精品| 国产精品久久久久久亚洲毛片 | jizzjizzjizz欧美| 蜜桃视频第一区免费观看| 伊人性伊人情综合网| 久久众筹精品私拍模特| 欧美男男青年gay1069videost | 国产精一区二区三区| 一区二区三区日韩欧美| 久久久一区二区三区捆绑**| 欧美日韩黄视频| 95精品视频在线|