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

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

?? xpmenu.pas

?? 一個(gè)學(xué)生管理系統(tǒng) 主要演示了一些查詢技巧
?? 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;


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美一区二区三区乱码| 国产一区福利在线| 久久久久久久久久久99999| 91伊人久久大香线蕉| 另类欧美日韩国产在线| 亚洲男人的天堂在线aⅴ视频| 日韩欧美一二三区| 91国偷自产一区二区三区成为亚洲经典 | 91亚洲精品久久久蜜桃网站| 免费视频最近日韩| 亚洲综合一区二区| 亚洲欧洲日产国码二区| 精品久久一区二区| 欧美性三三影院| 99视频在线精品| 国产激情一区二区三区| 美腿丝袜亚洲一区| 亚洲1区2区3区视频| 亚洲色图都市小说| 欧美国产日本韩| 精品久久人人做人人爱| 91精品欧美久久久久久动漫| 不卡av免费在线观看| 国产精品一区二区三区99| 日本中文字幕一区| 亚洲国产色一区| 怡红院av一区二区三区| 国产精品卡一卡二| 国产免费成人在线视频| 国产午夜精品理论片a级大结局| 91精品国产入口在线| 欧美日韩免费观看一区三区| 日本精品一区二区三区高清| 99精品久久免费看蜜臀剧情介绍| 风间由美性色一区二区三区| 国产丶欧美丶日本不卡视频| 黑人精品欧美一区二区蜜桃| 久久99精品久久只有精品| 久久激情五月激情| 久久精品72免费观看| 久久精品国产成人一区二区三区| 蜜桃一区二区三区在线| 毛片一区二区三区| 日韩二区三区在线观看| 蜜桃视频在线观看一区二区| 日本麻豆一区二区三区视频| 日韩高清一区在线| 日韩精品欧美成人高清一区二区| 午夜精品福利久久久| 国产亚洲欧洲997久久综合| 国产亚洲婷婷免费| 国产精品欧美久久久久一区二区| 国产精品久久久久永久免费观看| 国产精品久久久久婷婷| 综合久久久久久久| 亚洲午夜在线视频| 热久久一区二区| 国产精品影音先锋| 91免费版pro下载短视频| 色香蕉成人二区免费| 欧美日韩一本到| 日韩欧美另类在线| 国产日韩精品久久久| 国产精品久久久久久久浪潮网站| 亚洲免费观看高清完整| 亚洲成人激情自拍| 久久 天天综合| 成人小视频免费观看| 91麻豆福利精品推荐| 欧美日韩黄视频| 精品国产免费久久 | 日本一区二区三区久久久久久久久不 | 99免费精品在线观看| 欧洲精品一区二区| 日韩欧美国产三级| 综合分类小说区另类春色亚洲小说欧美| 一区二区在线观看不卡| 热久久国产精品| 北条麻妃国产九九精品视频| 在线观看国产91| 欧美成人aa大片| 亚洲色图一区二区三区| 免费在线观看成人| 色综合婷婷久久| 日韩精品一区国产麻豆| 国产精品二区一区二区aⅴ污介绍| 亚洲国产精品一区二区久久恐怖片| 日韩成人av影视| 成人h版在线观看| 欧美高清激情brazzers| 国产精品理论在线观看| 青青草97国产精品免费观看 | 欧美一区二区久久久| 国产女同性恋一区二区| 午夜精品爽啪视频| 成人性生交大片免费看视频在线| 欧美日韩高清在线| 亚洲国产精品精华液2区45| 亚洲不卡一区二区三区| 国产在线不卡一卡二卡三卡四卡| 色欧美片视频在线观看在线视频| 久久亚洲精精品中文字幕早川悠里| 一区二区三区在线视频免费| 国产乱码一区二区三区| 678五月天丁香亚洲综合网| 亚洲免费资源在线播放| 韩日欧美一区二区三区| 欧美日韩高清一区二区三区| 国产精品毛片久久久久久| 日韩不卡免费视频| 91国偷自产一区二区开放时间 | 亚洲色图丝袜美腿| 粉嫩av一区二区三区在线播放| 4438x成人网最大色成网站| 一区二区三区在线影院| jiyouzz国产精品久久| www亚洲一区| 欧美a一区二区| 91精品欧美综合在线观看最新| 亚洲激情av在线| 成人高清在线视频| 日本一区二区免费在线观看视频| 麻豆一区二区99久久久久| 欧美日韩不卡视频| 亚洲成人一区在线| 91福利在线播放| 又紧又大又爽精品一区二区| 97精品久久久午夜一区二区三区| 久久久777精品电影网影网 | 午夜av区久久| 欧美日韩综合一区| 亚洲综合免费观看高清完整版在线| 97成人超碰视| 亚洲欧美另类小说视频| 91性感美女视频| 亚洲人吸女人奶水| 91丝袜美腿高跟国产极品老师 | 国产精品美女久久久久高潮| 高清在线成人网| 中文字幕av不卡| 成人性生交大片免费看中文| 国产精品进线69影院| 色综合久久综合中文综合网| 亚洲日本免费电影| 日本精品裸体写真集在线观看| 亚洲三级在线免费观看| 色悠悠亚洲一区二区| 亚洲18女电影在线观看| 91精品国产色综合久久ai换脸 | 韩国v欧美v亚洲v日本v| 欧美精品一区二| 高清视频一区二区| 亚洲视频在线观看一区| 色狠狠av一区二区三区| 亚洲成人福利片| 日韩免费高清电影| 国产精品123| 亚洲激情av在线| 91精品欧美福利在线观看| 国产一区在线观看麻豆| 国产精品嫩草99a| 欧美在线不卡视频| 久草中文综合在线| 国产精品日韩成人| 欧美亚洲愉拍一区二区| 日韩国产一区二| 久久久久国产免费免费| 99精品久久只有精品| 天天综合色天天综合色h| 精品成人私密视频| 91在线观看免费视频| 蜜臀av在线播放一区二区三区| 国产午夜精品福利| 欧美性色综合网| 国产一区二区不卡| 亚洲黄色小视频| 欧美sm美女调教| 懂色av噜噜一区二区三区av| 一区二区三区日韩欧美精品| 日韩美女一区二区三区| 99视频精品全部免费在线| 日本强好片久久久久久aaa| 国产精品污网站| 欧美一级二级三级蜜桃| www.亚洲国产| 欧美aaaaaa午夜精品| 中文字幕一区二区三区av| 在线观看91av| 91免费视频观看| 国产精品亚洲视频| 亚洲成av人片在www色猫咪| 洋洋av久久久久久久一区| 亚洲精品一区二区三区在线观看| 91网站在线播放| 国产精品一区二区不卡| 无码av中文一区二区三区桃花岛| 国产精品毛片无遮挡高清| 精品久久久久久久久久久久包黑料 | 免费看日韩精品| 亚洲精品欧美在线|