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

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

?? sskinprovider.pas

?? AlphaControls是一個Delphi標準控件的集合
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
  end;
end;

function TsSkinProvider.ButtonWidth: integer;
begin
  if IsValidImgIndex(ButtonClose.ImageIndex) then begin
     Result := ma[ButtonClose.ImageIndex].Bmp.Width div 3;
  end
  else Result := 21;
end;

function TsSkinProvider.CaptionHeight: integer;
var
  R : TRect;
begin
  Result := 0;
  if Form.BorderStyle = bsNone then Exit;

  GetWindowRect(Form.Handle, R);

  case Form.BorderStyle of
    bsToolWindow, bsSingle, bsDialog: InflateRect(R, -GetSystemMetrics(SM_CXFIXEDFRAME), -GetSystemMetrics(SM_CYFIXEDFRAME));
    bsSizeable, bsSizeToolWin:        InflateRect(R, -GetSystemMetrics(SM_CXSIZEFRAME),  -GetSystemMetrics(SM_CYSIZEFRAME));
  end;
  if Form.BorderStyle in [bsToolWindow, bsSizeToolWin] then begin
    R.Bottom := R.Top + GetSystemMetrics(SM_CYSMCAPTION) - 1 * integer(Form.BorderStyle = bsToolWindow)
  end
  else begin
    R.Bottom := R.Top + GetSystemMetrics(SM_CYCAPTION) - 6 * integer(Form.BorderStyle = bsSizeToolWin);
  end;
  Result := HeightOf(R);//GetSystemMetrics(SM_CYCAPTION)// * integer(Form.BorderStyle = bsNone);
end;

constructor TsSkinProvider.Create(AOwner: TCOmponent);
begin
  inherited Create(AOwner);
  Activated := False;
  Ready := False;
  Form := TForm(GetOwnerForm(Self));
  Form.DoubleBuffered := False;

  OldCaption := Form.Caption;
  OldCaption1 := Form.Caption;
  FsStyle := TsPassivePaintStyle.Create(Self);
  FsStyle.SkinSection := NormalForm;
  FsStyle.COC := COC_TsSkinProvider;
  FsBorderIcons := [biSystemMenu, biMinimize, biMaximize];
  TempBmp := TBitmap.Create;
  MenuLineBmp := TBitmap.Create;
  AutoScroll := Form.AutoScroll;
  FMakeSkinMenu := True;
  MenusInitialized := False;
  if not (csDesigning in ComponentState) then begin
    Form.AutoScroll := False;
  end;
  OldInstance := nil;
  NewInstance := nil;

  FormActive := True;
  OldBorderIcons := Form.BorderIcons;

  if (SkinManager = nil) and
       (sSkinData <> nil) and
         (sSkinData.SkinManager <> nil) then begin
    SkinManager := sSkinData.SkinManager;
    if sSkinData.Active and not(csDesigning in ComponentState) then begin
      OldBorderIcons := TForm(Form).BorderIcons;
      TForm(Form).BorderIcons := [];
    end;
  end;

  SystemMenu := TsSystemMenu.Create(Self);
  SystemMenu.FForm := Form;
  SystemMenu.UpdateItems;

  SetLength(ArOR, 0);

  OldBorderStyle := Form.BorderStyle;
end;

destructor TsSkinProvider.Destroy;
begin
  if (Form.FormStyle = fsMDIChild) and Assigned(Form.Menu) then begin
    if Assigned(MDISkinProvider) and
         not (csDestroying in TsSkinProvider(MDISkinProvider).ComponentState) and
         not (csDestroying in TsSkinProvider(MDISkinProvider).Form.ComponentState)
           then begin
      TsSkinProvider(MDISkinProvider).BGChanged := True;
      SendMessage(TsSkinProvider(MDISkinProvider).Form.Handle, WM_NCPAINT, 0, 0);
    end;
  end;

  if MDISkinProvider = Self then begin
    MDISkinProvider := nil;
    if Assigned(MDIForm) then FreeAndNil(MDIForm);
  end;

  if Assigned(Form) then begin if Assigned(Form) and Form.HandleAllocated and
    (Pointer(GetWindowLong(Form.Handle, GWL_WNDPROC)) = NewInstance) then
      SetWindowLong(Form.Handle, GWL_WNDPROC, longint(OldInstance));
  end;

  if Assigned(SystemMenu) then FreeAndNil(SystemMenu);

  OldInstance := nil;
  FreeObjectInstance(pointer(NewInstance));
  NewInstance := nil;
  FreeAndnil(FsStyle);
  if Assigned(TempBmp) then FreeAndnil(TempBmp);
  if Assigned(MenuLineBmp) then FreeAndNil(MenuLineBmp);

//  if Assigned(VSBar) then FreeAndNil(VSBar);
//  if Assigned(HSBar) then FreeAndNil(HSBar);

  inherited Destroy;
end;

procedure TsSkinProvider.RepaintButton(i: integer);
var
  DC, SavedDC : hdc;
  CurButton : TsCaptionButton;
  cx, ind : integer;
begin
  CurButton.State := -1;
  case i of
    HTCLOSE      : begin CurButton := ButtonClose; end;
    HTMAXBUTTON  : begin CurButton := ButtonMax; end;
    HTMINBUTTON  : begin CurButton := ButtonMin; end;
    HTHELP       : begin CurButton := ButtonHelp; end;
    HTCHILDCLOSE : begin CurButton := MDIClose; end;
    HTCHILDMAX   : begin CurButton := MDIMax; end;
    HTCHILDMIN   : begin CurButton := MDIMin; end;
  end;
  if CurButton.State <> -1 then begin
    DC := GetWindowDC(Form.Handle);
    SavedDC := SaveDC(DC);
    cx := sStyle.FCacheBmp.Width - CurButton.Rect.Left;
    try
      BitBlt(sStyle.FCacheBmp.Canvas.Handle,
             CurButton.Rect.Left, CurButton.Rect.Top, Buttonwidth, ButtonHeight,
             TempBmp.Canvas.Handle, TempBmp.Width - cx,
             CurButton.Rect.Top, SRCCOPY);

      if (CurButton.Rect.Left <> ButtonMax.Rect.Left) or (Form.WindowState = wsNormal) then begin
        if IsValidImgIndex(CurButton.ImageIndex) then
          PaintBlendGlyph(sStyle.FCacheBmp, ma[CurButton.ImageIndex].Bmp,
                Point(CurButton.Rect.Left, CurButton.Rect.Top),
                CurButton.State, ma[CurButton.ImageIndex].TransparentColor, 1 + integer(not FormActive) * integer(not (CurButton.State > 0)));
      end
      else begin
        ind := sStyle.GetMaskIndex(BorderIconNormalize);
        if ind > -1 then
          PaintBlendGlyph(sStyle.FCacheBmp, ma[ind].Bmp,
                Point(CurButton.Rect.Left, CurButton.Rect.Top),
                CurButton.State, ma[ind].TransparentColor, 1 + integer(not FormActive) * integer(not (CurButton.State > 0)));
      end;

      BitBlt(DC,
             CurButton.Rect.Left, CurButton.Rect.Top, ButtonWidth, ButtonHeight,
             sStyle.FCacheBmp.Canvas.Handle, CurButton.Rect.Left,
             CurButton.Rect.Top, SRCCOPY);
    finally
      RestoreDC(DC, SavedDC);
      ReleaseDC(Form.Handle, DC);
    end;
  end;
end;

function TsSkinProvider.HTProcess(Message : TWMNCHitTest): integer;
var
  p : TPoint;
  cy1, cy2 : integer;
  i : integer;
begin
  Result := HTNOWHERE;
  p := CursorToPoint(Message.XPos, Message.YPos);
  i := BorderHeight;
  cy1 := (CaptionHeight - ButtonHeight + i) div 2;
  cy2 := cy1 + ButtonHeight;
  // If in buttons
  if Between(p.y, cy1, cy2) then begin
    if Between(p.x, Form.Width - BorderWidth - 1 * (ButtonWidth + 1), Form.Width - BorderWidth - 0 * (ButtonWidth + 1)) then begin
      SetHotHT(HTCLOSE); Result := HTCLOSE; Exit;
    end else
    if Between(p.x, Form.Width - BorderWidth - 2 * (ButtonWidth + 1), Form.Width - BorderWidth - 1 * (ButtonWidth + 1)) and
      (SystemMenu.EnabledMax or SystemMenu.EnabledRestore) and SystemMenu.VisibleMax
      then begin
      SetHotHT(HTMAXBUTTON); Result := HTMAXBUTTON; Exit;
    end else
    if SystemMenu.EnabledMin and Between(p.x, Form.Width - BorderWidth - 3 * (ButtonWidth + 1), Form.Width - BorderWidth - 2 * (ButtonWidth + 1)) and
         SystemMenu.VisibleMin
    then begin
      SetHotHT(HTMINBUTTON); Result := HTMINBUTTON; Exit;
    end else
    if Between(p.x, BorderWidth, BorderWidth + WidthOf(IconRect)) then begin
      SetHotHT(HTSYSMENU); Result := HTSYSMENU; Exit;
    end else
    if (biHelp in FsBorderIcons) and SystemMenu.VisibleMax then begin
      if Between(p.x, Form.Width - BorderWidth - 4 * (ButtonWidth + 1), Form.Width - BorderWidth - 3 * (ButtonWidth + 1)) then begin
        SetHotHT(HTHELP); Result := HTHELP; EXIT;
      end;
    end
    else if p.y < cy2 then begin
      Result := HTCAPTION;
    end;
  end
  else begin
    // MDI child buttons
    if MDIButtonsNeeded then begin
      if PtInRect(MDICLose.Rect, p) then begin
        SetHotHT(HTCHILDCLOSE); Result := HTCHILDCLOSE; Exit;
      end else
      if PtInRect(MDIMax.Rect, p) then begin
        SetHotHT(HTCHILDMAX); Result := HTCHILDMAX; Exit;
      end else
      if PtInRect(MDIMin.Rect, p) then begin
        SetHotHT(HTCHILDMIN); Result := HTCHILDMIN; Exit;
      end
    end else SetHotHT(0);
  end;
  if (Form.WindowState = wsMaximized) and AboveBorder(Message) then Result := HTTRANSPARENT;
end;

procedure TsSkinProvider.InitFormSizes;
begin
  RegionChanged := True;
  CaptChanged := True;
  CaptRgnChanged :=True;
end;

procedure TsSkinProvider.NewWndProc(var Message: TMessage);
var
  MMI: PMinMaxInfo;
  DC, SavedDC : hdc;
  mi :  TMenuItem;
  i : integer;
  p : TPoint;
  m : TMessage;
  R : TRect;
  UpdateClient : boolean;
  cm : TWMCommand;
begin
  if
    (csDestroying in Form.ComponentState) or
      (csDesigning in ComponentState) or
        (SkinManager = nil) or
          (sSkinData.SkinManager = nil) or
            not (sSkinData.Active) or (sStyle.SkinIndex < 0) or Frozen
                then begin
    Message.Result := CallWindowProc(pointer(OldInstance), Form.Handle, Message.Msg, Message.wParam, Message.lParam);
  end
  else begin
    Message.Result := 0;
    case Message.Msg of
      WM_SYSCOLORCHANGE : begin
        Message.Result := CallWindowProc(pointer(OldInstance), Form.Handle, Message.Msg, Message.wParam, Message.lParam);
        UpdateMenu;
      end;
      WM_MOVE : begin
        Message.Result := CallWindowProc(pointer(OldInstance), Form.Handle, Message.Msg, Message.wParam, Message.lParam);
        if (Form.FormStyle = fsMDIChild) and (Form.WindowState <> wsMaximized) then begin
          TsMDIForm(TsSkinProvider(MDISkinProvider).MDIForm).RefreshScrolls;
        end;
      end;
      WM_SIZE : begin
        Message.Result := CallWindowProc(pointer(OldInstance), Form.Handle, Message.Msg, Message.wParam, Message.lParam);
        if (Form.FormStyle = fsMDIForm) and Assigned(Form.ActiveMDIChild) then begin
//???          SendMessage(TsMDIForm(MDIForm).FForm.ClientHandle, WM_SIZE, 0, 0);
//???          Application.ProcessMessages;
          TsMDIForm(MDIForm).RefreshScrolls;
          if (Form.ActiveMDIChild.WindowState = wsMaximized) then begin
            SendMessage(Form.ActiveMDIChild.Handle, WM_SIZE, 0, 0);
          end
        end
        else begin
          RefreshScrolls;
          // Repaint MDI child buttons
          if (Form.FormStyle = fsMDIChild) then begin
            if (Form.WindowState = wsMaximized) then begin
              TsSkinProvider(MDISkinProvider).BGChanged := (sStyle.FCacheBmp.Width = Form.Width) or (sStyle.FCacheBmp.Height = Form.Height);
              SendMessage(TsSkinProvider(MDISkinProvider).Form.Handle, WM_NCPAINT, 0, 0);
            end
          end;
        end;
      end;
      WM_GETMINMAXINFO : begin
        MMI := PMinMaxInfo(Message.LParam);
        MMI^.ptMaxTrackSize.x := MaxWidth + 6;
        MMI^.ptMaxTrackSize.y := MaxHeight + 6;
        Message.Result := CallWindowProc(pointer(OldInstance), Form.Handle, Message.Msg, Message.wParam, Message.lParam);
      end;
      WM_NCHITTEST : begin
        if (Form.BorderStyle = bsNone) {or AboveBorder(TWMNCHitTest(Message))} then begin
          Message.Result := CallWindowProc(pointer(OldInstance), Form.Handle, Message.Msg, Message.wParam, Message.lParam);
        end
        else begin
          Message.Result := HTProcess(TWMNCHitTest(Message));
          case Message.Result of
            HTCaption : begin
              if Form.WindowState <> WSMAXIMIZED then
                Message.Result := CallWindowProc(pointer(OldInstance), Form.Handle, Message.Msg, Message.wParam, Message.lParam);
              SetHotHT(0);
            end;
            HTNOWHERE : begin
              Message.Result := CallWindowProc(pointer(OldInstance), Form.Handle, Message.Msg, Message.wParam, Message.lParam);
              SetHotHT(0);
            end;
          end;
        end;
      end;
      WM_SIZING : begin
        Message.Result := CallWindowProc(pointer(OldInstance), Form.Handle, Message.Msg, Message.wParam, Message.lParam);
        if FormChanged then begin
          if not (csCreating in Form.ControlState) then BGChanged := True;
          if Form.FormStyle = fsMDIForm then begin
            TsMDIForm(MDIForm).RefreshScrolls;
          end;
        end;
      end;
      WM_MOUSELEAVE, CM_MOUSELEAVE : begin
        SetHotHT(0);
        Message.Result := CallWindowProc(pointer(OldInstance), Form.Handle, Message.Msg, Message.wParam, Message.lParam);
      end;

      WM_NCLBUTTONDOWN : begin
        Message.Result := 1;
        case TWMNCLButtonDown(Message).HitTest of
          HTCLOSE, HTMAXBUTTON, HTMINBUTTON, HTHELP, HTCHILDCLOSE..HTCHILDMIN : begin
            SetPressedHT(TWMNCLButtonDown(Message).HitTest);
          end;
          HTSYSMENU : begin
            SetHotHT(0);
            if Form.FormStyle = fsMDIChild then begin
              if Assigned(MDISkinProvider) then begin
                p := Point(Form.Left, Form.Top);
                ClientToScreen(Form.Handle, p);
                DropSysMenu(TsSkinProvider(MDISkinProvider).Form.Left + Form.Left + (BorderWidth + Form.BorderWidth) * 2,
                            TsSkinProvider(MDISkinProvider).Form.Top + Form.Top +
                            TsSkinProvider(MDISkinProvider).BorderHeight +
                               TsSkinProvider(MDISkinProvider).CaptionHeight +
                               TsSkinProvider(MDISkinProvider).LinesCount * TsSkinProvider(MDISkinProvider).MenuHeight * integer(TsSkinProvider(MDISkinProvider).MenuPresent) +
                               TsSkinProvider(MDISkinProvider).Form.BorderWidth + 1 +
                            BorderHeight +

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看成人av| 亚洲国产精品久久久久婷婷884| 成人高清视频在线| 午夜日韩在线观看| 久久久久国产一区二区三区四区| 91亚洲精品久久久蜜桃网站 | 暴力调教一区二区三区| 午夜精品一区在线观看| 中文字幕中文乱码欧美一区二区| 欧美一二三在线| 91丝袜美女网| 国产麻豆视频一区| 免费观看一级特黄欧美大片| 一区二区不卡在线播放 | 欧美中文字幕一区| www.亚洲在线| 国产一区二区三区香蕉| 日韩黄色在线观看| 一区二区三区在线观看欧美| 国产精品视频yy9299一区| 精品少妇一区二区三区视频免付费| 91成人看片片| 在线观看av一区二区| 美女网站一区二区| 久久综合中文字幕| 欧美人妖巨大在线| 欧洲精品一区二区三区在线观看| 成人一区在线看| 国产一区二区三区电影在线观看| 日韩成人午夜电影| 一区二区三区波多野结衣在线观看| 国产亚洲精品7777| 久久麻豆一区二区| 久久嫩草精品久久久精品| 欧美大尺度电影在线| 制服丝袜在线91| 欧美电影在哪看比较好| 欧美色大人视频| 欧美亚洲综合网| 欧美视频第二页| 欧美性受极品xxxx喷水| 欧美亚洲动漫精品| 欧美日韩一级黄| 在线成人免费视频| 在线综合视频播放| 欧美一区二区三区影视| 91麻豆精品国产自产在线| 亚洲国产成人一区二区三区| 欧美日本免费一区二区三区| 色欧美乱欧美15图片| 色综合久久综合中文综合网| av在线播放不卡| 91官网在线观看| 在线播放国产精品二区一二区四区 | 色狠狠综合天天综合综合| 国产精品女主播在线观看| 国产女主播一区| 国产日韩欧美一区二区三区乱码| 欧美高清在线精品一区| 亚洲国产成人一区二区三区| 国产精品毛片久久久久久久| 综合久久久久久| 夜夜操天天操亚洲| www.亚洲免费av| 成人免费看黄yyy456| 成人激情视频网站| 一本久久综合亚洲鲁鲁五月天 | 亚洲综合男人的天堂| 亚洲在线中文字幕| 美腿丝袜在线亚洲一区| 国产精品综合久久| 91视频观看免费| 欧美精品乱码久久久久久按摩| 欧美一级一级性生活免费录像| 精品欧美乱码久久久久久1区2区| 欧美国产欧美综合| 亚洲在线视频网站| 精品一区中文字幕| 91浏览器在线视频| 欧美一级高清片| 亚洲三级在线观看| 美国av一区二区| 99久久国产综合精品麻豆 | 国产精品伦理在线| 亚洲一区二区黄色| 国产剧情一区二区| 欧美亚洲一区三区| 久久综合精品国产一区二区三区 | 精品国内二区三区| 亚洲欧美另类综合偷拍| 麻豆成人久久精品二区三区红| 成年人国产精品| 欧美性生活久久| 国产蜜臀97一区二区三区| 亚洲图片欧美一区| 粉嫩欧美一区二区三区高清影视| 精品视频在线免费观看| 久久久久国产精品人| 三级不卡在线观看| 91网上在线视频| 日韩欧美激情四射| 一区二区三区丝袜| 国产电影一区二区三区| 欧美日韩一区二区在线视频| 久久久综合九色合综国产精品| 午夜在线成人av| 99久久免费精品高清特色大片| 日韩欧美一区在线| 亚洲成年人网站在线观看| 成年人国产精品| 国产亚洲欧美一区在线观看| 蜜臀va亚洲va欧美va天堂| 成人h精品动漫一区二区三区| 日韩女优电影在线观看| 亚洲福中文字幕伊人影院| 99久久精品免费精品国产| 精品国产乱子伦一区| 亚洲免费大片在线观看| 日韩美女天天操| 久久av老司机精品网站导航| 91精品国产欧美日韩| 欧美影院午夜播放| 国产精品福利一区二区三区| 国产麻豆精品久久一二三| 欧美一区二区日韩| 香蕉乱码成人久久天堂爱免费| av中文字幕亚洲| 亚洲国产激情av| 懂色中文一区二区在线播放| 精品美女一区二区| 久久精品免费观看| 日韩欧美激情在线| 老汉av免费一区二区三区| 91麻豆精品91久久久久同性| 视频在线观看91| 欧美性猛片xxxx免费看久爱| 亚洲一级二级在线| 欧美影视一区在线| 午夜精品影院在线观看| 欧美日韩精品一区二区在线播放| 亚洲成在人线免费| 制服丝袜国产精品| 美女脱光内衣内裤视频久久网站| 欧美群妇大交群的观看方式| 五月天中文字幕一区二区| 欧美日韩视频在线第一区| 无吗不卡中文字幕| 欧美一级午夜免费电影| 国产乱妇无码大片在线观看| 精品久久久久久久久久久院品网| 加勒比av一区二区| 久久先锋资源网| 国产99精品在线观看| 国产精品乱码久久久久久| 99久久婷婷国产综合精品 | 亚洲精品高清在线观看| 色视频成人在线观看免| 亚洲午夜久久久久| 欧美一区二区观看视频| 狠狠色伊人亚洲综合成人| 国产亚洲一本大道中文在线| av电影在线观看完整版一区二区| 亚洲欧美激情视频在线观看一区二区三区 | 91精品免费在线观看| 精品中文av资源站在线观看| 日本一区二区三区国色天香| 91在线视频播放地址| 视频一区欧美日韩| 久久久久久久久久久电影| av电影在线观看完整版一区二区| 亚洲成a人片综合在线| 日韩一区国产二区欧美三区| 国产精品91xxx| 夜夜精品浪潮av一区二区三区| 亚洲一区二区精品久久av| 视频一区在线视频| 国产精品一二三区在线| 久久久精品2019中文字幕之3| 成人黄色一级视频| 五月天亚洲婷婷| 欧美激情一区二区三区四区 | 日韩欧美国产一二三区| 国产福利视频一区二区三区| 亚洲专区一二三| 久久精品亚洲国产奇米99| 一本色道久久综合精品竹菊| 久久超级碰视频| 亚洲精品亚洲人成人网| 欧美大胆人体bbbb| 国产日韩影视精品| 欧美体内she精视频| 国产精品综合av一区二区国产馆| 亚洲午夜精品久久久久久久久| 久久久综合视频| 宅男噜噜噜66一区二区66| 99久久精品免费精品国产| 久久精工是国产品牌吗| 亚洲精品日韩专区silk| 久久久久久久性| 91精品国产全国免费观看|