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

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

?? bsskinmenus.pas

?? 一套支持Delphi的VCL庫(kù)
?? PAS
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
      end;
    VK_LEFT:
      begin
        if ParentMenu.FPopupList.Count > 1
        then
          begin
            ParentMenu.CloseMenu(ParentMenu.FPopupList.Count - 1);
            PW := TbsSkinPopupWindow(ParentMenu.FPopupList.Items[ParentMenu.FPopupList.Count - 1]);
            if PW.ActiveItem <> -1
            then
              TbsSkinMenuItem(PW.ItemList.Items[PW.ActiveItem]).Down := False;
          end
      end;
    VK_ESCAPE:
      begin
        ParentMenu.CloseMenu(ParentMenu.FPopupList.Count - 1);
        if ParentMenu.FPopupList.Count > 0
        then
          begin
            PW := TbsSkinPopupWindow(ParentMenu.FPopupList.Items[ParentMenu.FPopupList.Count - 1]);
            if PW.ActiveItem <> -1
            then
              TbsSkinMenuItem(PW.ItemList.Items[PW.ActiveItem]).Down := False;
          end;   
      end;
  end;
end;

procedure TbsSkinPopupWindow.UpDatePW;
var
  i: Integer;
  j: Integer;
begin
  j := ParentMenu.GetPWIndex(Self);
  if j + 1 < ParentMenu.FPopupList.Count
  then ParentMenu.CloseMenu(j + 1);
  for i := 0 to ItemList.Count - 1 do
    if TbsSkinMenuItem(ItemList.Items[i]).Down
    then
      with TbsSkinMenuItem(ItemList.Items[i]) do
      begin
        Down := False;
        if EnableAnimation and not MI.InActiveAnimation
        then
          begin
            CurrentFrame := 0;
            Draw(Canvas);
          end
        else
          ReDraw;
      end;
end;

procedure TbsSkinPopupWindow.SetMenuWindowRegion;
var
  TempRgn: HRgn;
begin
  if PW = nil then Exit;
  TempRgn := FRgn;
  CreateSkinRegion
    (FRgn, PW.LTPoint, PW.RTPoint, PW.LBPoint, PW.RBPoint, PW.ItemsRect,
     NewLtPoint, NewRTPoint, NewLBPoint, NewRBPoint, NewItemsRect,
     MaskPicture, Width, Height);
  SetWindowRgn(Handle, FRgn, True);
  if TempRgn <> 0 then DeleteObject(TempRgn);
end;

procedure TbsSkinPopupWindow.CreateRealImage;
var
  R: TRect;
  TextOffset: Integer;
begin
  if PW <> nil
  then
    CreateSkinImageBS(PW.LTPoint, PW.RTPoint, PW.LBPoint, PW.RBPoint,
      PW.ItemsRect, NewLTPoint, NewRTPoint, NewLBPoint, NewRBPoint,
      NewItemsRect, B, WindowPicture,
      Rect(0, 0, WindowPicture.Width, WindowPicture.Height),
      Width, Height, ADrawClient, PW.LeftStretch, PW.TopStretch,
      PW.RightStretch, PW.BottomStretch, PW.StretchEffect, PW.StretchType)
  else                         
    begin
      B.Width := Width;
      B.Height := Height;
      with B.Canvas do
      begin
        if ImgL = nil
        then TextOffset := 21
        else TextOffset := GlyphWidth + 2;
        R := Rect(0, 0, TextOffset, Height);
        Brush.Color := clBtnFace;
        FillRect(R);
        R := Rect(TextOffset, 0, Width, Height);
        Brush.Color := clWindow;
        FillRect(R);
      end;
      R := Rect(0, 0, Width, Height);
      Frame3D(B.Canvas, R, clBtnShadow, clBtnShadow, 1);
      Frame3D(B.Canvas, R, clWindow, clWindow, 1);
    end;
end;

procedure TbsSkinPopupWindow.CreateMenu2;
var
  sw, sh: Integer;
  i, j: Integer;
  Menu: TMenu;

  function CalcItemTextWidth(Item: TMenuItem): Integer;
  var
    R: TRect;
    MICaption: WideString;
  begin
   if Item.ShortCut <> 0
   then
     MICaption := Item.Caption + '  ' + ShortCutToText(Item.ShortCut)
   else
     MICaption := Item.Caption;
    R := Rect(0, 0, 0, 0);
    BSDrawSkinText(Canvas, MICaption, R, DT_CALCRECT);
    Result := R.Right + 2;
  end;

  function GetMenuWindowHeight: Integer;
  var
    i, j, k, ih: integer;
  begin
    j := 0;
    k := 0;
    for i := VisibleStartIndex to VisibleCount - 1 do
    with TbsSkinMenuItem(ItemList.Items[i]) do
     begin
      if PW <> nil
      then
        begin
          if MenuItem.Caption = '-'
          then ih := RectHeight(DSMI.DividerRect)
          else ih := RectHeight(DSMI.SkinRect);
        end
      else
        begin
          if MenuItem.Caption = '-'
          then ih := 4
          else ih := ParentMenu.DefaultMenuItemHeight;
        end;
      inc(j, ih);
      inc(k);
    end;

    if (ParentMenu.MaxMenuItemsInWindow <> 0) and (ParentMenu.MaxMenuItemsInWindow < k)
    then
      begin
        if PW <> nil
        then
          ih := RectHeight(DSMI.SkinRect)
        else
          ih := ParentMenu.DefaultMenuItemHeight;
        j := ParentMenu.MaxMenuItemsInWindow * ih;
        if PW <> nil
        then
          Result := j + PW.ItemsRect.Top + (WindowPicture.Height - PW.ItemsRect.Bottom)
        else
          Result := j + 6;
        Result := Result + MarkerItemHeight * 2;
      end
    else
      begin
        if PW <> nil
        then
          Result := j + PW.ItemsRect.Top + (WindowPicture.Height - PW.ItemsRect.Bottom)
        else
          Result := j + 6;
      end;    
  end;

  function GetMenuWindowWidth: Integer;
  var
    i, iw: Integer;
  begin
    iw := 0;
    for i := 0 to ItemList.Count - 1 do
    begin
      j := CalcItemTextWidth(TbsSkinMenuItem(ItemList.Items[i]).MenuItem);
      if j > iw then iw := j;
    end;
    inc(iw, 19);
    if ImgL <> nil
    then
      GlyphWidth := ImgL.Width + 5
    else
      GlyphWidth := 19;
    Inc(iw, GlyphWidth);
    if PW <> nil
    then
      begin
        Inc(iw, DSMI.TextRct.Left);
        Inc(iw, RectWidth(DSMI.SkinRect) - DSMI.TextRct.Right);
        Result := iw + PW.ItemsRect.Left + (WindowPicture.Width - PW.ItemsRect.Right);
      end
    else
      Result := iw + 10;
  end;


procedure CalcSizes;
var
  W, H: Integer;
begin
  //
  VisibleStartIndex := 0;
  VisibleCount := ItemList.Count;
  Scroll := False;
  Scroll2 := False;
  W := GetMenuWindowWidth;
  H := GetMenuWindowHeight;
  //
  if H > RectHeight(ParentMenu.WorkArea)
  then
    begin
      H := RectHeight(ParentMenu.WorkArea);
      Scroll := True;
    end;  
  //
  Width := W;
  Height := H;
end;

function GetMenuItemData: TbsDataSkinMenuItem;
var
  i: Integer;
begin
  Result := nil;
  if (SD <> nil) and not SD.Empty
  then 
    for i := 0 to SD.ObjectList.Count - 1 do
    if TbsDataSkinObject(SD.ObjectList.Items[i]) is TbsDataSkinMenuItem
    then
      begin
        Result := TbsDataSkinMenuItem(SD.ObjectList.Items[i]);
        Break;
      end;
end;

var
  TmpStartIndex: Integer;
begin
  DSMI := GetMenuItemData;
  if (PW <> nil) and (DSMI <> nil) and ParentMenu.UseSkinFont
  then
    begin
      with Canvas.Font do
      begin
        Height := DSMI.FontHeight;
        Style := DSMI.FontStyle;
        Name := DSMI.FontName;
      end;
    end
  else
    Canvas.Font.Assign(Self.ParentMenu.FDefaultMenuItemFont);

  if (ParentMenu.SkinData <> nil) and
     (ParentMenu.SkinData.ResourceStrData <> nil)
  then
    Canvas.Font.CharSet := ParentMenu.SkinData.ResourceStrData.Charset
  else
    Canvas.Font.CharSet := ParentMenu.FDefaultMenuItemFont.Charset;

  Menu := Item.GetParentMenu;

  if (Menu <> nil) and (Menu.AutoLineReduction = maAutomatic)
  then
    Item.RethinkLines;

  if Menu <> nil
  then
    ImgL := Menu.Images
  else
    ImgL := nil;

  j := Item.Count;
  if StartIndex < j then
  for i := StartIndex to  j - 1 do
   if TMenuItem(Item.Items[i]).Visible
   then
     begin
       if TMenuItem(Item.Items[i]).Action <> nil
       then
         TMenuItem(Item.Items[i]).Action.Update;
       ItemList.Add(TbsSkinMenuItem.Create(Self, TMenuItem(Item.Items[i]), DSMI));
     end;

  TmpStartIndex := StartIndex - Item.Count;
  if TmpStartIndex < 0 then TmpStartIndex := 0;
  j := Item2.Count;
  if TmpStartIndex < j then
  for i := TmpStartIndex to  j - 1 do
   if TMenuItem(Item2.Items[i]).Visible
   then
     begin
       if TMenuItem(Item2.Items[i]).Action <> nil
       then
         TMenuItem(Item2.Items[i]).Action.Update;
       ItemList.Add(TbsSkinMenuItem.Create(Self, TMenuItem(Item2.Items[i]), DSMI));
     end;
  //

  CalcSizes;

  if PW <> nil
  then
    begin
      sw := WindowPicture.Width;
      sh := WindowPicture.Height;
      NewLTPoint := PW.LTPoint;
      NewRTPoint := Point(Width - (sw - PW.RTPoint.X), PW.RTPoint.Y);
      NewLBPoint := Point(PW.LBPoint.X, Height - (sh - PW.LBPoint.Y));
      NewRBPoint := Point(Width - (sw - PW.RBPoint.X),
                          Height - (sh - PW.RBPoint.Y));

      NewItemsRect := Rect(PW.ItemsRect.Left, PW.ItemsRect.Top,
                           Width - (sw - PW.ItemsRect.Right),
                           Height - (sh - PW.ItemsRect.Bottom));

    end
  else
    NewItemsRect := Rect(2, 2, Width - 2, Height - 2);
  CalcItemRects;
  if MaskPicture <> nil then SetMenuWindowRegion;

end;

procedure TbsSkinPopupWindow.CreateMenu;
var
  sw, sh: Integer;
  i, j: Integer;
  Menu: TMenu;

  function CalcItemTextWidth(Item: TMenuItem): Integer;
  var
    R: TRect;
    MICaption: WideString;
  begin
   if Item.ShortCut <> 0
   then
     MICaption := Item.Caption + '  ' + ShortCutToText(Item.ShortCut)
   else
     MICaption := Item.Caption;
    R := Rect(0, 0, 0, 0);
    BSDrawSkinText(Canvas, MICaption, R, DT_CALCRECT);
    Result := R.Right + 2;
  end;

  function GetMenuWindowHeight: Integer;
  var
    i, j, k, ih: integer;
  begin
    j := 0;
    k := 0;
    for i := VisibleStartIndex to VisibleCount - 1 do
    with TbsSkinMenuItem(ItemList.Items[i]) do
     begin
      if PW <> nil
      then
        begin
          if MenuItem.Caption = '-'
          then ih := RectHeight(DSMI.DividerRect)
          else ih := RectHeight(DSMI.SkinRect);
        end
      else
        begin
          if MenuItem.Caption = '-'
          then ih := 4
          else ih := ParentMenu.DefaultMenuItemHeight;
        end;
      inc(j, ih);
      inc(k);
    end;

    if (ParentMenu.MaxMenuItemsInWindow <> 0) and (ParentMenu.MaxMenuItemsInWindow < k)
    then
      begin
        if PW <> nil
        then
          ih := RectHeight(DSMI.SkinRect)
        else
          ih := ParentMenu.DefaultMenuItemHeight;
        j := ParentMenu.MaxMenuItemsInWindow * ih;
        if PW <> nil
        then
          Result := j + PW.ItemsRect.Top + (WindowPicture.Height - PW.ItemsRect.Bottom)
        else
          Result := j + 4;
        Result := Result + MarkerItemHeight * 2;
        Self.Scroll := True;
        Self.Scroll2 := True;
      end
    else
      begin
        if PW <> nil
        then
          Result := j + PW.ItemsRect.Top + (WindowPicture.Height - PW.ItemsRect.Bottom)
        else
          Result := j + 4;
      end;    
  end;

  function GetMenuWindowWidth: Integer;
  var
    i, iw: Integer;
  begin
    iw := 0;
    for i := 0 to ItemList.Count - 1 do
    begin
      j := CalcItemTextWidth(TbsSkinMenuItem(ItemList.Items[i]).MenuItem);
      if j > iw then iw := j;
    end;
    inc(iw, 19);
    if ImgL <> nil
    then
      GlyphWidth := ImgL.Width + 5
    else
      GlyphWidth := 19;
    Inc(iw, GlyphWidth);
    if PW <> nil
    then
      begin
        Inc(iw, DSMI.TextRct.Left);
        Inc(iw, RectWidth(DSMI.SkinRect) - DSMI.TextRct.Right);
        Result := iw + PW.ItemsRect.Left + (WindowPicture.Width - PW.ItemsRect.Right);
      end
    else
      Result := iw + 10;
  end;


procedure CalcSizes;
var
  W, H: Integer;
begin
  //
  VisibleStartIndex := 0;
  VisibleCount := ItemList.Count;
  Scroll := False;
  Scroll2 := False;
  W := GetMenuWindowWidth;
  H := GetMenu

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美mv日韩mv国产网站| 麻豆一区二区在线| 中文字幕一区二区三| 国产欧美精品一区aⅴ影院| 精品国产污污免费网站入口| 欧美一区二区三区免费| 91精品国模一区二区三区| 日韩一区二区电影网| 精品久久人人做人人爽| 精品理论电影在线| 精品成人在线观看| 亚洲国产成人午夜在线一区| 中文字幕一区二区不卡| 一区二区三国产精华液| 亚洲一二三区在线观看| 五月激情综合婷婷| 久久99国产精品麻豆| 国产凹凸在线观看一区二区| 成人aaaa免费全部观看| 欧洲精品中文字幕| 欧美一区二区免费| 久久日一线二线三线suv| 日本一区二区三区四区| 亚洲精品视频在线| 秋霞电影网一区二区| 国产在线不卡一卡二卡三卡四卡| 国产成人亚洲精品狼色在线| 97精品久久久午夜一区二区三区| 日本精品免费观看高清观看| 欧美一区二区三区成人| 2014亚洲片线观看视频免费| 中文字幕日韩精品一区| 亚洲国产精品一区二区久久| 麻豆一区二区在线| 99精品热视频| 91精品国模一区二区三区| 国产欧美日韩在线看| 亚洲电影在线免费观看| 韩国女主播一区| 色偷偷一区二区三区| 日韩亚洲电影在线| 亚洲欧洲国产日本综合| 人人精品人人爱| 成人一级片在线观看| 欧美日韩精品综合在线| 久久久久亚洲综合| 亚洲国产精品久久久久婷婷884| 韩国理伦片一区二区三区在线播放| 91小宝寻花一区二区三区| 欧美成人乱码一区二区三区| 亚洲欧洲日本在线| 麻豆传媒一区二区三区| 91免费观看在线| 久久欧美中文字幕| 日韩精品一卡二卡三卡四卡无卡| 处破女av一区二区| 日韩欧美一二区| 亚洲久草在线视频| 国产精品主播直播| 欧美美女激情18p| 中文字幕视频一区| 国产麻豆精品一区二区| 在线播放日韩导航| 亚洲色图在线播放| 国产成人综合在线播放| 91精品国产综合久久精品图片| 国产精品美女久久久久久久久久久 | 99精品视频一区二区| 欧美成人国产一区二区| 亚洲国产精品一区二区久久| 成人精品一区二区三区四区| 日韩美一区二区三区| 一区二区三区久久| 97久久久精品综合88久久| 久久精品人人做人人综合| 美女脱光内衣内裤视频久久影院| 欧美影院一区二区| 亚洲免费三区一区二区| 成人网男人的天堂| 国产亚洲欧洲997久久综合| 蜜臀精品久久久久久蜜臀 | 欧美三级欧美一级| 中文字幕在线播放不卡一区| 国产成人免费av在线| 久久综合视频网| 免费在线观看一区二区三区| 欧美中文一区二区三区| 亚洲欧美日韩国产手机在线 | 日韩你懂的在线播放| 亚洲午夜精品网| 欧美色大人视频| 一区二区三区四区激情 | 国产午夜精品一区二区| 极品少妇一区二区三区精品视频 | 天天综合色天天综合色h| 91福利资源站| 一区二区三区四区蜜桃| 91国产精品成人| 亚洲与欧洲av电影| 欧美日韩一二三| 亚洲不卡在线观看| 欧美精品自拍偷拍动漫精品| 日韩精品三区四区| 欧美一区二区三区电影| 久久国产人妖系列| 久久―日本道色综合久久| 国产精品一区免费视频| 国产欧美精品在线观看| 高清不卡在线观看av| 欧美激情一区二区三区在线| 成人激情av网| 亚洲另类色综合网站| 在线观看日韩高清av| 午夜精品一区二区三区免费视频 | 久久在线观看免费| 国产福利一区二区三区视频在线| 亚洲国产精品精华液2区45| 97成人超碰视| 一区二区在线观看视频在线观看| 欧美在线不卡一区| 日本sm残虐另类| 久久久天堂av| 99视频一区二区| 亚洲一区二区视频在线观看| 制服丝袜中文字幕一区| 国产自产视频一区二区三区| 欧美激情一区二区三区全黄| 日本久久一区二区| 蜜臀av一区二区在线观看| 国产亚洲精品aa| 在线观看精品一区| 久久精品国产亚洲高清剧情介绍 | av电影天堂一区二区在线| 依依成人综合视频| 日韩欧美成人午夜| 成人理论电影网| 亚洲成av人综合在线观看| 欧美精品一区二区三区高清aⅴ | 久久免费国产精品| 一本大道久久a久久精二百| 天天综合日日夜夜精品| 久久久久久影视| 91九色最新地址| 韩国女主播一区| 一区二区三区四区五区视频在线观看| 8x8x8国产精品| zzijzzij亚洲日本少妇熟睡| 一区二区三区国产精品| 精品国产91乱码一区二区三区| 成人sese在线| 日本不卡一区二区三区高清视频| 欧美国产精品专区| 欧美高清激情brazzers| 成人免费福利片| 日本视频免费一区| 亚洲三级久久久| 亚洲精品一区二区三区在线观看| 91美女片黄在线观看91美女| 久久精品国产成人一区二区三区 | 国产精品原创巨作av| 一区二区三区在线看| 久久精品免视看| 69久久夜色精品国产69蝌蚪网| 大陆成人av片| 麻豆一区二区三| 亚洲国产你懂的| 国产精品色一区二区三区| 欧美狂野另类xxxxoooo| 成人av第一页| 激情文学综合插| 香蕉加勒比综合久久| 一色屋精品亚洲香蕉网站| 精品国产乱子伦一区| 欧美久久久久久蜜桃| 色屁屁一区二区| 国产91富婆露脸刺激对白| 免费成人深夜小野草| 亚洲激情自拍视频| 国产精品久久久久国产精品日日 | 另类小说一区二区三区| 亚洲一区二区欧美日韩| 国产精品久99| 国产欧美日韩精品一区| 日韩一区二区电影| 欧美人牲a欧美精品| 欧美中文字幕一区二区三区亚洲| 成人a区在线观看| 国产精品一区在线观看你懂的| 蜜臀久久99精品久久久久宅男| 亚洲二区视频在线| 一区二区三区高清| 国产精品久久夜| 日本一区二区综合亚洲| 国产日产精品1区| www久久久久| 久久夜色精品一区| 精品sm捆绑视频| 久久亚洲综合色| 久久久久久黄色| 久久色视频免费观看|