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

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

?? xpmenu.pas

?? 完善的學生管理系統源碼 適用于畢業設計和各種小的設計
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
 IconRect: Trect; Hot, Selected, Enabled, Checked, FTopMenu,
 IsRightToLeft: boolean);
var
  DefColor: TColor;
  X, Y: integer;
begin

  if (B <> nil) and (B.Width > 0) then
  begin
    X := IconRect.Left;
    Y := IconRect.Top + 1;

    if (Sender is TMenuItem) then
    begin
      inc(Y, 2);
      if FIconWidth > B.Width then
        X := X + ((FIconWidth - B.Width) div 2) - 1
      else
      begin
        if IsRightToLeft then
          X := IconRect.Right - b.Width - 2
        else
          X := IconRect.Left + 2;
      end;
    end;

    if FTopMenu then
    begin
      if IsRightToLeft then
        X := IconRect.Right - b.Width - 5
      else
        X := IconRect.Left + 1;
    end;


    if (Hot) and (not FTopMenu) and (Enabled) and (not Checked) then
      if not Selected then
      begin
        dec(X, 1);
        dec(Y, 1);
      end;

    if (not Hot) and (Enabled) and (not Checked) then
      if Is16Bit then
        DimBitmap(B, FDimLevel{30});


    if not Enabled then
    begin
      GrayBitmap(B, FGrayLevel );
      DimBitmap(B, 40);
    end;

    if (Hot) and (Enabled) and (not Checked) then
    begin
      if (Is16Bit) and (not UseSystemColors) and (Sender is TToolButton) then
        DefColor := NewColor(ACanvas, FSelectColor, 68)
      else
        DefColor := FFSelectColor;

      DefColor := GetShadeColor(ACanvas, DefColor, 50);
      DrawBitmapShadow(B, ACanvas, X + 2, Y + 2, DefColor);
    end;

    B.Transparent := true;
    ACanvas.Draw(X, Y, B);
  end;

end;


function TXPMenu.TopMenuFontColor(ACanvas: TCanvas; Color: TColor): TColor;
var
  r, g, b, avg: integer;
begin

  Color := ColorToRGB(Color);
  r := Color and $000000FF;
  g := (Color and $0000FF00) shr 8;
  b := (Color and $00FF0000) shr 16;

  Avg := (r + b) div 2;

  if (Avg > 150) or (g > 200) then
    Result := FFont.Color
  else
    Result := NewColor(ACanvas, Color, 90);

end;


procedure TXPMenu.SetActive(const Value: boolean);
begin
  if Value = FActive then exit;

  FActive := Value;
  if FActive then
    InitItems(FForm, true, true)
  else
    InitItems(FForm, false, true);

 // if (FForm <> nil) and (TForm(FForm).Menu <> nil) then
    Windows.DrawMenuBar(FForm.Handle);
end;

procedure TXPMenu.SetAutoDetect(const Value: boolean);
begin
  FAutoDetect := Value;
end;

procedure TXPMenu.SetForm(const Value: TScrollingWinControl);
var
  Hold: boolean;
begin
  if Value <> FForm then
  begin
    Hold := Active;
    Active := false;
    FForm := Value;
    if Hold then
      Active := True;
  end;
end;

procedure TXPMenu.SetFont(const Value: TFont);
begin
  FFont.Assign(Value);
  Windows.DrawMenuBar(FForm.Handle);

end;

procedure TXPMenu.SetColor(const Value: TColor);
begin
  FColor := Value;
end;

procedure TXPMenu.SetIconBackColor(const Value: TColor);
begin
  FIconBackColor := Value;
end;

procedure TXPMenu.SetMenuBarColor(const Value: TColor);
begin
  FMenuBarColor := Value;
  Windows.DrawMenuBar(FForm.Handle);
end;

procedure TXPMenu.SetCheckedColor(const Value: TColor);
begin
  FCheckedColor := Value;
end;

procedure TXPMenu.SetSeparatorColor(const Value: TColor);
begin
  FSeparatorColor := Value;
end;

procedure TXPMenu.SetSelectBorderColor(const Value: TColor);
begin
  FSelectBorderColor := Value;
end;

procedure TXPMenu.SetSelectColor(const Value: TColor);
begin
  FSelectColor := Value;
end;

procedure TXPMenu.SetDisabledColor(const Value: TColor);
begin
  FDisabledColor := Value;
end;

procedure TXPMenu.SetSelectFontColor(const Value: TColor);
begin
  FSelectFontColor := Value;
end;

procedure TXPMenu.SetIconWidth(const Value: integer);
begin
  FIconWidth := Value;
end;

procedure TXPMenu.SetDrawSelect(const Value: boolean);
begin
  FDrawSelect := Value;
end;



procedure TXPMenu.SetOverrideOwnerDraw(const Value: boolean);
begin
  FOverrideOwnerDraw := Value;
  if FActive then
    Active := True;
end;


procedure TXPMenu.SetUseSystemColors(const Value: boolean);
begin
  FUseSystemColors := Value;
  Windows.DrawMenuBar(FForm.Handle);
end;

procedure TXPMenu.SetGradient(const Value: boolean);
begin
  FGradient := Value;
end;

procedure TXPMenu.SetFlatMenu(const Value: boolean);
begin
  FFlatMenu := Value;
end;

procedure TXPMenu.SetXPContainers(const Value: TXPContainers);
begin
  if Value <> FXPContainers then
  begin
    if FActive then
    begin
      FActive := false;
      InitItems(FForm, false, true);
      FActive := true;
      FXPContainers := Value;
      InitItems(FForm, true, true);
    end;
  end;
  FXPContainers := Value;

end;

procedure TXPMenu.SetXPControls(const Value: TXPControls);
begin
  if Value <> FXPControls then
  begin
    if FActive then
    begin
      FActive := false;
      InitItems(FForm, false, true);
      FActive := true;
      FXPControls := Value;
      InitItems(FForm, true, true);
    end;
  end;
  FXPControls := Value;

end;


procedure GetSystemMenuFont(Font: TFont);
var
  FNonCLientMetrics: TNonCLientMetrics;
begin
  FNonCLientMetrics.cbSize := Sizeof(TNonCLientMetrics);
  if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, @FNonCLientMetrics,0) then
  begin
    Font.Handle := CreateFontIndirect(FNonCLientMetrics.lfMenuFont);
    Font.Color := clMenuText;

    //if Font.Name = 'MS Sans Serif' then
    //begin
    //  Font.Name := 'Tahoma';
    //  Font.Charset := DEFAULT_CHARSET;
    //end;

  end;
end;


procedure TXPMenu.DrawGradient(ACanvas: TCanvas; ARect: TRect;
 IsRightToLeft: boolean);
var
  i: integer;
  v: integer;
  FRect: TRect;
begin

  fRect := ARect;
  V := 0;
  if IsRightToLeft then
  begin
    fRect.Left := fRect.Right - 1;
    for i := ARect.Right Downto ARect.Left do
    begin
      if (fRect.Left < ARect.Right)
        and (fRect.Left > ARect.Right - FIconWidth + 5) then
        inc(v, 3)
      else
        inc(v, 1);

      if v > 96 then v := 96;
      ACanvas.Brush.Color := NewColor(ACanvas, FFIconBackColor, v);
      ACanvas.FillRect(fRect);

      fRect.Left := fRect.Left - 1;
      fRect.Right := fRect.Left - 1;
    end;
  end
  else
  begin
    fRect.Right := fRect.Left + 1;
    for i := ARect.Left to ARect.Right do
    begin
      if (fRect.Left > ARect.Left)
        and (fRect.Left < ARect.Left + FIconWidth + 5) then
        inc(v, 3)
      else
        inc(v, 1);

      if v > 96 then v := 96;
      ACanvas.Brush.Color := NewColor(ACanvas, FFIconBackColor, v);
      ACanvas.FillRect(fRect);

      fRect.Left := fRect.Left + 1;
      fRect.Right := fRect.Left + 1;
    end;
  end;
end;


procedure TXPMenu.DrawWindowBorder(hWnd: HWND; IsRightToLeft: boolean);
var
  WRect: TRect;
  dCanvas: TCanvas;
begin

  if hWnd <= 0 then
  begin
   exit;
  end;
  dCanvas := nil;
  try
    dCanvas := TCanvas.Create;
    dCanvas.Handle := GetWindowDC(GetDesktopWindow);

    GetWindowRect(hWnd, WRect);

    dCanvas.Brush.Style := bsClear;


    Dec(WRect.Right, 2);
    Dec(WRect.Bottom, 2);

    dCanvas.Pen.Color := FMenuBorderColor;
    dCanvas.Rectangle(WRect.Left, WRect.Top, WRect.Right, WRect.Bottom);

    if IsRightToLeft then
    begin
      dCanvas.Pen.Color := FFColor;
      dCanvas.Rectangle(WRect.Left + 1, WRect.Top + 1, WRect.Right - 2,
                        WRect.Top + 3);

      dCanvas.MoveTo(WRect.Left + 2, WRect.Top + 2);
      dCanvas.LineTo(WRect.Left + 2, WRect.Bottom - 2);


      dCanvas.Pen.Color := FFIconBackColor;
      dCanvas.MoveTo(WRect.Right - 2, WRect.Top + 2);
      dCanvas.LineTo(WRect.Right - 2, WRect.Bottom - 2);

      dCanvas.MoveTo(WRect.Right - 2, WRect.Top + 2);
      dCanvas.LineTo(WRect.Right - 1 - FIconWidth, WRect.Top + 2);
    end
    else
    begin
      if not FGradient then
      begin
        dCanvas.Pen.Color := FFColor;
        dCanvas.Rectangle(WRect.Left + 1, WRect.Top + 1, WRect.Right - 1,
                          WRect.Top + 3);

        dCanvas.Pen.Color := FFIconBackColor;
        dCanvas.MoveTo(WRect.Left + 1, WRect.Top + 2);
        dCanvas.LineTo(WRect.Left + 3 + FIconWidth, WRect.Top + 2);
      end
      else
        DrawGradient(dCanvas, Rect(WRect.Left + 1, WRect.Top + 1,
                                   WRect.Right - 3, WRect.Top + 3), IsRightToLeft);

      dCanvas.Pen.Color := FFIconBackColor;
      dCanvas.Rectangle(WRect.Left + 1, WRect.Top + 2,
                        WRect.Left + 3, WRect.Bottom - 1)

    end;

    Inc(WRect.Right, 2);
    Inc(WRect.Bottom, 2);

    dCanvas.Pen.Color := FMenuShadowColor;
    dCanvas.Rectangle(WRect.Left + 2, WRect.Bottom, WRect.Right, WRect.Bottom - 2);
    dCanvas.Rectangle(WRect.Right - 2, WRect.Bottom, WRect.Right, WRect.Top + 2);


    dCanvas.Pen.Color := clBtnFace ;
    dCanvas.Rectangle(WRect.Left, WRect.Bottom - 2, WRect.Left + 2, WRect.Bottom);
    dCanvas.Rectangle(WRect.Right - 2, WRect.Top, WRect.Right, WRect.Top + 2);
  finally
    ReleaseDC(GetDesktopWindow, dCanvas.Handle);
    dCanvas.Free;
  end;


end;


procedure TXPMenu.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  if not FActive then exit;
  if not FAutoDetect then exit;
  if (Operation = opInsert) and
     ((AComponent is TMenuItem) or (AComponent is TToolButton) or
      (AComponent is TControlBar)) then
  begin
    if not (csDesigning in ComponentState) then Active := true;
     //else
     //if ComponentState = [] then
     //   Active := true ;
  end;
end;


function GetShadeColor(ACanvas: TCanvas; clr: TColor; Value: integer): TColor;
var
  r, g, b: integer;

begin
  clr := ColorToRGB(clr);
  r := Clr and $000000FF;
  g := (Clr and $0000FF00) shr 8;
  b := (Clr and $00FF0000) shr 16;

  r := (r - value);
  if r < 0 then r := 0;
  if r > 255 then r := 255;

  g := (g - value) + 2;
  if g < 0 then g := 0;
  if g > 255 then g := 255;

  b := (b - value);
  if b < 0 then b := 0;
  if b > 255 then b := 255;

  //Result := Windows.GetNearestColor(ACanvas.Handle, RGB(r, g, b));
  Result := RGB(r, g, b);
end;

function NewColor(ACanvas: TCanvas; clr: TColor; Value: integer): TColor;
var
  r, g, b: integer;

begin
  if Value > 100 then Value := 100;
  clr := ColorToRGB(clr);
  r := Clr and $000000FF;
  g := (Clr and $0000FF00) shr 8;
  b := (Clr and $00FF0000) shr 16;


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区影视| 国产美女精品一区二区三区| 久久精品无码一区二区三区| 26uuu亚洲综合色| 日韩欧美亚洲一区二区| 日韩免费观看2025年上映的电影| 日韩一二三区不卡| 欧美日韩一级黄| 91精品蜜臀在线一区尤物| 91精品国产入口在线| 日韩欧美国产精品一区| 久久久久国产精品麻豆| 欧美国产视频在线| 亚洲精品写真福利| 日韩av高清在线观看| 裸体健美xxxx欧美裸体表演| 六月丁香婷婷色狠狠久久| 国产一区二区三区观看| 成人美女视频在线观看| 7777精品久久久大香线蕉| 欧美欧美午夜aⅴ在线观看| 日韩三级精品电影久久久| 久久久91精品国产一区二区三区| 国产色爱av资源综合区| 亚洲一区二区不卡免费| 另类小说色综合网站| www.成人网.com| 91精品国产综合久久国产大片| 久久综合av免费| 亚洲色图在线播放| 久久国产精品99久久久久久老狼 | 亚洲精品免费一二三区| 丝袜美腿成人在线| 国产99久久久国产精品潘金| 色先锋资源久久综合| 日韩欧美在线123| 亚洲欧美成aⅴ人在线观看| 久久精品国产亚洲5555| 色综合久久久久| 欧美精品一区二区三区很污很色的 | 奇米影视7777精品一区二区| 国产精品一区二区在线看| 在线精品视频小说1| 国产婷婷精品av在线| 亚洲国产精品久久久久秋霞影院| 激情丁香综合五月| 欧美日韩黄视频| 亚洲激情自拍偷拍| 不卡高清视频专区| 久久青草国产手机看片福利盒子| 亚洲国产成人av| 91一区在线观看| 国产日韩在线不卡| 国产精品一二三区在线| 91精品国产一区二区三区蜜臀 | 国产精品久久影院| 国产一区二区三区美女| 69久久夜色精品国产69蝌蚪网| 中文字幕一区二区三中文字幕| 老司机精品视频在线| 欧美日韩不卡一区二区| 一区二区三区免费网站| aaa欧美日韩| 国产精品白丝在线| 91美女在线观看| 国产精品美女久久久久久久久久久| 美美哒免费高清在线观看视频一区二区 | 91小视频在线免费看| 国产精品久久国产精麻豆99网站 | 亚洲一区二区综合| 国产一区二三区好的| 精品美女一区二区| 国产又黄又大久久| 久久久99精品久久| 懂色一区二区三区免费观看| 欧美日韩精品是欧美日韩精品| 亚洲精品自拍动漫在线| 91丝袜高跟美女视频| 亚洲女与黑人做爰| 欧美亚洲禁片免费| 亚洲国产aⅴ成人精品无吗| 欧美日韩一区三区四区| 亚洲国产精品麻豆| 7777女厕盗摄久久久| 美女精品一区二区| 久久久精品免费免费| 国产suv精品一区二区三区| 中文字幕国产一区二区| 色综合中文字幕国产 | 日韩午夜激情av| 国产呦精品一区二区三区网站| 精品国产91亚洲一区二区三区婷婷| 精品一区二区三区蜜桃| 国产欧美日韩不卡| 色屁屁一区二区| 日产国产欧美视频一区精品 | 91在线视频18| 亚洲无人区一区| 日韩视频免费观看高清完整版在线观看 | 亚洲一区在线观看网站| 在线播放日韩导航| 国产一区二区调教| 亚洲欧美一区二区三区极速播放 | 国产人久久人人人人爽| 色婷婷精品久久二区二区蜜臂av| 天天亚洲美女在线视频| 久久免费国产精品| 欧美精品成人一区二区三区四区| 免费不卡在线视频| 亚洲视频综合在线| 日韩美女一区二区三区四区| 国产成人精品www牛牛影视| 亚洲bt欧美bt精品| 中文字幕二三区不卡| 欧美日韩成人综合| www.欧美色图| 韩国中文字幕2020精品| 亚洲狠狠爱一区二区三区| 国产女主播视频一区二区| 在线不卡免费欧美| 成人动漫av在线| 精久久久久久久久久久| 亚洲国产综合人成综合网站| 国产精品久久毛片| 日韩一区二区在线观看视频播放| 成人免费av资源| 国产一区二区主播在线| 亚洲国产精品久久久男人的天堂| 中文字幕免费一区| 26uuu另类欧美亚洲曰本| 欧美日韩精品一区二区三区蜜桃| 国产91精品露脸国语对白| 久久丁香综合五月国产三级网站 | 国产精品天干天干在线综合| 日韩一区二区三区高清免费看看| 91色porny蝌蚪| 成人免费观看视频| 国产成人免费视频网站 | 国产综合色精品一区二区三区| 亚洲黄色av一区| 亚洲人成精品久久久久| 欧美韩国一区二区| 欧美国产精品一区| 久久久久成人黄色影片| 久久午夜国产精品| 久久伊人中文字幕| 久久久精品黄色| 欧美激情中文字幕| 国产亚洲精品aa| 国产日韩精品一区二区浪潮av| 精品国产乱码久久久久久闺蜜| 亚洲精品一区二区精华| 久久影音资源网| 日本一区二区三区高清不卡| 久久久久久久av麻豆果冻| 国产视频一区二区在线| 国产欧美日韩激情| 日韩一区欧美小说| 亚洲一区影音先锋| 午夜av一区二区三区| 亚洲高清中文字幕| 久99久精品视频免费观看| 激情六月婷婷久久| 成人动漫在线一区| 色94色欧美sute亚洲线路一ni| 91极品视觉盛宴| 欧美美女喷水视频| 26uuu色噜噜精品一区二区| 一区二区三区蜜桃网| 亚洲成av人片一区二区梦乃| 日韩在线观看一区二区| 久久国产精品色婷婷| 成人性生交大片| 欧美日精品一区视频| 日韩视频永久免费| 国产精品水嫩水嫩| 亚洲国产一区二区三区| 日本不卡的三区四区五区| 国产电影精品久久禁18| 91麻豆蜜桃一区二区三区| 69堂成人精品免费视频| 中文字幕巨乱亚洲| 亚洲不卡在线观看| 国产精品18久久久久久久久久久久| 99热国产精品| 日韩欧美国产精品| 亚洲欧美日韩中文播放 | 天天影视色香欲综合网老头| 国内一区二区在线| 在线观看视频一区二区欧美日韩| 欧美一级一级性生活免费录像| 国产欧美一区二区精品性色超碰| 一区二区三区四区中文字幕| 激情综合网激情| 欧美色电影在线| 中文字幕在线不卡一区二区三区| 免费高清成人在线| 欧美三级日韩三级| 日韩一区有码在线| 国产东北露脸精品视频|