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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rxshell.pas

?? RX Library contains a large number of components, objects and routines for Borland Delphi with full
?? PAS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
  FIcon := nil;
  FIconList.Free;
  FIconList := nil;
  inherited Destroy;
end;

procedure TRxTrayIcon.Loaded;
begin
  inherited Loaded;
  if FActive and not (csDesigning in ComponentState) then Activate;
end;

procedure TRxTrayIcon.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  if (AComponent = PopupMenu) and (Operation = opRemove) then
    PopupMenu := nil;
end;

procedure TRxTrayIcon.SetPopupMenu(Value: TPopupMenu);
begin
  FPopupMenu := Value;
{$IFDEF WIN32}
  if Value <> nil then Value.FreeNotification(Self);
{$ENDIF}
end;

procedure TRxTrayIcon.SendCancelMode;
var
  F: TForm;
begin
  if not (csDestroying in ComponentState) then begin
    F := Screen.ActiveForm;
    if F = nil then F := Application.MainForm;
    if F <> nil then F.SendCancelMode(nil);
  end;
end;

function TRxTrayIcon.CheckMenuPopup(X, Y: Integer): Boolean;
begin
  Result := False;
  if not (csDesigning in ComponentState) and Active and
    (PopupMenu <> nil) and PopupMenu.AutoPopup then
  begin
    PopupMenu.PopupComponent := Self;
    SendCancelMode;
    SwitchToWindow(FHandle, False);
    Application.ProcessMessages;
    try
      PopupMenu.Popup(X, Y);
    finally
{$IFDEF WIN32}
      SwitchToWindow(FHandle, False);
{$ENDIF}
    end;
    Result := True;
  end;
end;

function TRxTrayIcon.CheckDefaultMenuItem: Boolean;
{$IFDEF WIN32}
var
  Item: TMenuItem;
  I: Integer;
{$ENDIF}
begin
  Result := False;
{$IFDEF WIN32}
  if not (csDesigning in ComponentState) and Active and
    (PopupMenu <> nil) and (PopupMenu.Items <> nil) then
  begin
    I := 0;
    while (I < PopupMenu.Items.Count) do begin
      Item := PopupMenu.Items[I];
      if Item.Default and Item.Enabled then begin
        Item.Click;
        Result := True;
        Break;
      end;
      Inc(I);
    end;
  end;
{$ENDIF}
end;

procedure TRxTrayIcon.SetIcon(Value: TIcon);
begin
  FIcon.Assign(Value);
end;

procedure TRxTrayIcon.SetIconList(Value: TIconList);
begin
  FIconList.Assign(Value);
end;

function TRxTrayIcon.GetActiveIcon: TIcon;
begin
  Result := FIcon;
  if (FIconList <> nil) and (FIconList.Count > 0) and Animated then
    Result := FIconList[Max(Min(FIconIndex, FIconList.Count - 1), 0)];
end;

function TRxTrayIcon.GetAnimated: Boolean;
begin
  Result := FAnimated;
end;

procedure TRxTrayIcon.SetAnimated(Value: Boolean);
begin
  Value := Value and Assigned(FIconList) and (FIconList.Count > 0);
  if Value <> Animated then begin
    if Value then begin
{$IFDEF USE_TIMER}
      FTimer := TTimer.Create(Self);
      FTimer.Enabled := FAdded;
      FTimer.Interval := FInterval;
      FTimer.OnTimer := Timer;
{$ELSE}
      FTimer := TTimerThread.Create(Self, not FAdded);
{$ENDIF}
      FAnimated := True;
    end
    else begin
      FAnimated := False;
{$IFDEF USE_TIMER}
      FTimer.Free;
      FTimer := nil;
{$ELSE}
      TTimerThread(FTimer).FOwnerTray := nil;
      while FTimer.Suspended do FTimer.Resume;
      FTimer.Terminate;
{$ENDIF}
    end;
    FIconIndex := 0;
    ChangeIcon;
  end;
end;

procedure TRxTrayIcon.SetActive(Value: Boolean);
begin
  if (Value <> FActive) then begin
    FActive := Value;
    if not (csDesigning in ComponentState) then
      if Value then Activate else Deactivate;
  end;
end;

procedure TRxTrayIcon.Show;
begin
  Active := True;
end;

procedure TRxTrayIcon.Hide;
begin
  Active := False;
end;

procedure TRxTrayIcon.SetShowDesign(Value: Boolean);
begin
  if (csDesigning in ComponentState) then begin
    if Value then Activate else Deactivate;
    FShowDesign := FAdded;
  end;
end;

procedure TRxTrayIcon.SetInterval(Value: Word);
begin
  if FInterval <> Value then begin
    FInterval := Value;
{$IFDEF USE_TIMER}
    if Animated then FTimer.Interval := FInterval;
{$ENDIF}
  end;
end;

{$IFDEF USE_TIMER}
procedure TRxTrayIcon.Timer(Sender: TObject);
{$ELSE}
procedure TRxTrayIcon.Timer;
{$ENDIF}
begin
  if not (csDestroying in ComponentState) and Animated then begin
    Inc(FIconIndex);
    if (FIconList = nil) or (FIconIndex >= FIconList.Count) then
      FIconIndex := 0;
    ChangeIcon;
  end;
end;

procedure TRxTrayIcon.IconChanged(Sender: TObject);
begin
  ChangeIcon;
end;

procedure TRxTrayIcon.SetHint(const Value: string);
begin
  if FHint <> Value then begin
    FHint := Value;
    ChangeIcon;
  end;
end;

procedure TRxTrayIcon.UpdateNotifyData;
var
  Ico: TIcon;
begin
  with FIconData do begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd := FHandle;
    uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
    Ico := GetActiveIcon;
    if Ico <> nil then hIcon := Ico.Handle
{$IFDEF WIN32}
    else hIcon := INVALID_HANDLE_VALUE;
{$ELSE}
    else hIcon := 0;
{$ENDIF}
    StrPLCopy(szTip, GetShortHint(FHint), SizeOf(szTip) - 1);
    uCallbackMessage := CM_TRAYICON;
    uID := 0;
  end;
end;

procedure TRxTrayIcon.Activate;
var
  Ico: TIcon;
begin
  Deactivate;
  Ico := GetActiveIcon;
  if (Ico <> nil) and not Ico.Empty then begin
    FClicked := [];
    UpdateNotifyData;
    FAdded := Shell_NotifyIcon(NIM_ADD, @FIconData);
    if (GetShortHint(FHint) = '') and FAdded then
      Shell_NotifyIcon(NIM_MODIFY, @FIconData);
{$IFDEF USE_TIMER}
    if Animated then FTimer.Enabled := True;
{$ELSE}
    if Animated then
      while FTimer.Suspended do FTimer.Resume;
{$ENDIF}
  end;
end;

procedure TRxTrayIcon.Deactivate;
begin
  Shell_NotifyIcon(NIM_DELETE, @FIconData);
  FAdded := False;
  FClicked := [];
{$IFDEF USE_TIMER}
  if Animated then FTimer.Enabled := False;
{$ELSE}
  if Animated and not FTimer.Suspended then FTimer.Suspend;
{$ENDIF}
end;

procedure TRxTrayIcon.ChangeIcon;
var
  Ico: TIcon;
begin
  if (FIconList = nil) or (FIconList.Count = 0) then SetAnimated(False);
  if FAdded then begin
    Ico := GetActiveIcon;
    if (Ico <> nil) and not Ico.Empty then begin
      UpdateNotifyData;
      Shell_NotifyIcon(NIM_MODIFY, @FIconData);
    end
    else Deactivate;
  end
  else begin
    if ((csDesigning in ComponentState) and FShowDesign) or
      (not (csDesigning in ComponentState) and FActive) then Activate;
  end;
end;

procedure TRxTrayIcon.MouseMove(Shift: TShiftState; X, Y: Integer);
begin
  if Assigned(FOnMouseMove) then FOnMouseMove(Self, Shift, X, Y);
end;

procedure TRxTrayIcon.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Assigned(FOnMouseDown) then FOnMouseDown(Self, Button, Shift, X, Y);
end;

procedure TRxTrayIcon.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Assigned(FOnMouseUp) then FOnMouseUp(Self, Button, Shift, X, Y);
end;

procedure TRxTrayIcon.DblClick;
begin
  if not CheckDefaultMenuItem and Assigned(FOnDblClick) then
    FOnDblClick(Self);
end;

procedure TRxTrayIcon.DoClick(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
begin
  if (Button = mbRight) and CheckMenuPopup(X, Y) then Exit;
  if Assigned(FOnClick) then FOnClick(Self, Button, Shift, X, Y);
end;

procedure TRxTrayIcon.WndProc(var Message: TMessage);

  function GetShiftState: TShiftState;
  begin
    Result := [];
    if GetKeyState(VK_SHIFT) < 0 then Include(Result, ssShift);
    if GetKeyState(VK_CONTROL) < 0 then Include(Result, ssCtrl);
    if GetKeyState(VK_MENU) < 0 then Include(Result, ssAlt);
  end;

var
  P: TPoint;
  Shift: TShiftState;
begin
  try
    with Message do
      if (Msg = CM_TRAYICON) and Self.FEnabled then begin
        case lParam of
          WM_LBUTTONDBLCLK:
            begin
              DblClick;
              GetCursorPos(P);
              MouseDown(mbLeft, GetShiftState + [ssDouble], P.X, P.Y);
            end;
          WM_RBUTTONDBLCLK:
            begin
              GetCursorPos(P);
              MouseDown(mbRight, GetShiftState + [ssDouble], P.X, P.Y);
            end;
          WM_MBUTTONDBLCLK:
            begin
              GetCursorPos(P);
              MouseDown(mbMiddle, GetShiftState + [ssDouble], P.X, P.Y);
            end;
          WM_MOUSEMOVE:
            begin
              GetCursorPos(P);
              MouseMove(GetShiftState, P.X, P.Y);
            end;
          WM_LBUTTONDOWN:
            begin
              GetCursorPos(P);
              MouseDown(mbLeft, GetShiftState + [ssLeft], P.X, P.Y);
              Include(FClicked, mbLeft);
            end;
          WM_LBUTTONUP:
            begin
              Shift := GetShiftState + [ssLeft];
              GetCursorPos(P);
              if mbLeft in FClicked then begin
                Exclude(FClicked, mbLeft);
                DoClick(mbLeft, Shift, P.X, P.Y);
              end;
              MouseUp(mbLeft, Shift, P.X, P.Y);
            end;
          WM_RBUTTONDOWN:
            begin
              GetCursorPos(P);
              MouseDown(mbRight, GetShiftState + [ssRight], P.X, P.Y);
              Include(FClicked, mbRight);
            end;
          WM_RBUTTONUP:
            begin
              Shift := GetShiftState + [ssRight];
              GetCursorPos(P);
              if mbRight in FClicked then begin
                Exclude(FClicked, mbRight);
                DoClick(mbRight, Shift, P.X, P.Y);
              end;
              MouseUp(mbRight, Shift, P.X, P.Y);
            end;
          WM_MBUTTONDOWN:
            begin
              GetCursorPos(P);
              MouseDown(mbMiddle, GetShiftState + [ssMiddle], P.X, P.Y);
            end;
          WM_MBUTTONUP:
            begin
              GetCursorPos(P);
              MouseUp(mbMiddle, GetShiftState + [ssMiddle], P.X, P.Y);
            end;
        end;
      end
      else Result := DefWindowProc(FHandle, Msg, wParam, lParam);
  except
    Application.HandleException(Self);
  end;
end;

end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品国产一区二区三区| 91在线视频18| 亚洲欧美激情视频在线观看一区二区三区 | 色美美综合视频| 免费观看一级欧美片| 亚洲美女视频在线观看| 精品国产乱码久久久久久1区2区| 日本高清免费不卡视频| 国产美女久久久久| 日本中文字幕不卡| 亚洲精品久久嫩草网站秘色| 久久久久99精品一区| 91麻豆精品久久久久蜜臀| 91麻豆精品视频| 国产成人精品影视| 久久超级碰视频| 亚洲h在线观看| 亚洲欧美色一区| 国产精品乱码一区二区三区软件| 欧美va亚洲va香蕉在线| 欧美日韩国产小视频在线观看| 成人av在线资源网站| 国产一本一道久久香蕉| 麻豆中文一区二区| 舔着乳尖日韩一区| 天天影视网天天综合色在线播放 | 亚洲韩国一区二区三区| 国产精品欧美一区喷水| 国产日产欧美精品一区二区三区| 久久一夜天堂av一区二区三区| 欧美一区二区视频观看视频 | 欧美成人性福生活免费看| 91精品国产高清一区二区三区蜜臀| 色哟哟一区二区| 91丨九色丨黑人外教| 99久久国产综合色|国产精品| 福利一区福利二区| 国产大陆a不卡| 波多野结衣在线一区| 国产精品一级二级三级| 国产美女精品一区二区三区| 国产精品18久久久久久久久| 国产精品影视在线| 国产高清亚洲一区| 成人一级黄色片| www.成人在线| 色综合久久久久久久| 日本高清不卡一区| 777午夜精品视频在线播放| 欧美久久久影院| 日韩一二三区视频| 久久久久国产精品麻豆ai换脸 | 国内久久婷婷综合| 国产一区二区三区四区五区美女| 国产一区二区毛片| 成人小视频免费在线观看| 99视频精品在线| 欧美中文字幕亚洲一区二区va在线| 欧美日韩亚洲综合在线| 日韩三级中文字幕| 国产亚洲精品aa午夜观看| 1024精品合集| 视频一区二区不卡| 国内成人精品2018免费看| 国产福利一区二区三区视频在线| 成a人片亚洲日本久久| 91福利社在线观看| 日韩欧美国产三级电影视频| 中文字幕免费观看一区| 亚洲国产欧美另类丝袜| 国产一区二区主播在线| 91性感美女视频| 欧美精品免费视频| 国产婷婷色一区二区三区四区 | 精品一区二区三区在线观看国产| 国产福利一区二区三区视频| 色综合欧美在线视频区| 欧美一区二区三区成人| 国产日产亚洲精品系列| 亚洲成人在线免费| 国产乱一区二区| 在线观看一区二区视频| 欧美mv日韩mv国产| 亚洲三级视频在线观看| 久久97超碰色| 色狠狠一区二区| 国产亚洲精品aa| 天堂一区二区在线| 91小视频免费观看| 2023国产精品视频| 亚洲成人精品在线观看| 成人av资源网站| 精品国产sm最大网站| 一区二区三区精品| 丰满少妇在线播放bd日韩电影| 91精品午夜视频| 亚洲精品国久久99热| 国产精品一区二区黑丝 | 中文字幕高清一区| 青青草97国产精品免费观看无弹窗版| 成人动漫精品一区二区| 亚洲精品一区二区三区精华液| 亚洲在线成人精品| 成人av网站在线| 欧美精品一区二区三区视频| 亚洲国产一区二区三区| 99精品1区2区| 欧美韩国日本一区| 精品一区二区三区日韩| 欧美日本一区二区三区| 中文字幕日韩一区二区| 国产精品99久久久久久有的能看| 在线电影欧美成精品| 伊人色综合久久天天人手人婷| 丁香网亚洲国际| 久久亚洲一区二区三区明星换脸| 免费在线观看日韩欧美| 欧美精品乱码久久久久久| 一区二区三区国产| 色av一区二区| 亚洲欧美国产高清| 91网站在线播放| 中文字幕一区二区三区视频| 国产成人夜色高潮福利影视| 精品国产乱码久久久久久影片| 男女男精品网站| 日韩一区二区高清| 青青草97国产精品免费观看无弹窗版| 3d动漫精品啪啪1区2区免费| 无码av免费一区二区三区试看| 欧美在线观看一二区| 一区二区免费在线播放| 日本韩国一区二区三区视频| 亚洲欧美激情在线| 91麻豆精品在线观看| 亚洲精品大片www| 在线一区二区视频| 亚洲一区二区3| 欧美三级电影精品| 日韩av网站在线观看| 日韩欧美一区在线观看| 久久99精品久久久| 久久久一区二区| 成人av资源在线| 亚洲精品精品亚洲| 欧美亚洲日本一区| 日本特黄久久久高潮| 精品日韩欧美在线| 国产suv精品一区二区6| 亚洲天堂网中文字| 欧美偷拍一区二区| 免费在线看一区| 久久精品水蜜桃av综合天堂| 成人免费毛片片v| 一区二区三区久久久| 91精品国产色综合久久| 国内精品国产三级国产a久久| 国产欧美精品一区| 日本韩国一区二区三区视频| 日韩精品一二三| 国产亚洲欧美日韩在线一区| 91视频com| 日本中文字幕一区二区视频 | 亚洲成在线观看| 欧美v日韩v国产v| jlzzjlzz欧美大全| 亚洲国产精品久久一线不卡| 精品三级av在线| 91麻豆蜜桃一区二区三区| 强制捆绑调教一区二区| 中文字幕成人网| 欧美日韩国产精品成人| 国产伦精品一区二区三区免费迷| ...中文天堂在线一区| 欧美日韩综合不卡| 国产麻豆精品在线| 亚洲国产综合人成综合网站| 久久综合久久鬼色中文字| 色婷婷久久一区二区三区麻豆| 日本va欧美va精品| 亚洲日本护士毛茸茸| 日韩精品一区二区三区视频播放 | 欧美日韩国产一级二级| 国产精品自拍一区| 亚洲高清视频的网址| 国产欧美视频在线观看| 在线观看欧美日本| 国产成人精品免费网站| 天天影视网天天综合色在线播放 | 2欧美一区二区三区在线观看视频| 91麻豆视频网站| 久久99国产精品免费| 亚洲激情自拍偷拍| 国产欧美精品一区二区色综合朱莉| 欧美日韩成人综合在线一区二区| 成人午夜电影小说| 蜜臂av日日欢夜夜爽一区| 有坂深雪av一区二区精品| 国产欧美一区二区精品性色| 日韩三区在线观看|