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

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

?? bscolorctrls.pas

?? 一套支持Delphi的VCL庫
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
     case SectionIndex of
      0:
        begin
          R := Round(L);
          G := Round(t);
          B := Round(p);
        end;
      1:
        begin
          R := Round(q);
          G := Round(L);
          B := Round(p);
        end;
      2:
        begin
          R := Round(p);
          G := Round(L);
          B := Round(t);
        end;
      3:
        begin
          R := Round(p);
          G := Round(q);
          B := Round(L);
        end;
      4:
        begin
          R := Round(t);
          G := Round(p);
          B := Round(L);
        end;
    else
      R := Round(L);
      G := Round(p);
      B := Round(q);
    end;
  end;
end;

procedure TbsEmptyControl.WMEraseBkgnd;
begin
  Msg.Result := 1;
end;

procedure TbsEmptyControl.Paint;
begin
end;

constructor TbsSkinColorGrid.Create(AOwner: TComponent);
begin
  inherited;
  ControlStyle := ControlStyle - [csAcceptsControls];
  FForceBackground := False;
  CaptionMode := True;
  Caption := BS_COLORGRID_CAP;
  BorderStyle := bvFrame;
  Width := 280;
  Height := 115;
  FColorValue := 0;
  FColCount := 12;
  FRowCount := 4;
end;

procedure TbsSkinColorGrid.WMEraseBkgnd;
begin
  if not FromWMPaint
  then
    begin
      PaintWindow(Msg.DC);
    end;
end;

procedure TbsSkinColorGrid.PaintTransparent;
begin
  PaintGrid(C);
end;


destructor TbsSkinColorGrid.Destroy;
begin
  inherited;
end;

procedure TbsSkinColorGrid.SetColCount(Value: Integer);
begin
  if Value < 1 then Exit;
  FColCount := Value;
  RePaint;
end;

procedure TbsSkinColorGrid.SetRowCount(Value: Integer);
begin
  FRowCount := Value;
  RePaint;
end;

procedure TbsSkinColorGrid.DrawCursor;
var
  Buffer: TBitMap;
  CIndex: Integer;
  ButtonData: TbsDataSkinButtonControl;
  BtnSkinPicture: TBitMap;
  BtnLtPoint, BtnRTPoint, BtnLBPoint, BtnRBPoint: TPoint;
  BtnCLRect: TRect;
  XO, YO: Integer;
  SR: TRect;
begin
  if FIndex = -1
  then
    begin
      Buffer := TBitMap.Create;
      Buffer.Width := RectWidth(R);
      Buffer.Height := RectHeight(R);
      with Buffer.Canvas do
      begin
        Brush.Color :=  BS_XP_BTNDOWNCOLOR;
        Pen.Color := BS_XP_BTNFRAMECOLOR;
        Rectangle(0, 0, Buffer.Width, Buffer.Height);
      end;
      Cnvs.Draw(R.Left, R.Top, Buffer);
      Buffer.Free;
      Exit;
    end;
  CIndex := SkinData.GetControlIndex('resizebutton');
  if CIndex = -1
  then
    Exit
  else
    ButtonData := TbsDataSkinButtonControl(SkinData.CtrlList[CIndex]);
    
  Buffer := TBitMap.Create;
  Buffer.Width := RectWidth(R);
  Buffer.Height := RectHeight(R);
  //
  with ButtonData do
  begin
    XO := RectWidth(R) - RectWidth(SkinRect);
    YO := RectHeight(R) - RectHeight(SkinRect);
    BtnLTPoint := LTPoint;
    BtnRTPoint := Point(RTPoint.X + XO, RTPoint.Y);
    BtnLBPoint := Point(LBPoint.X, LBPoint.Y + YO);
    BtnRBPoint := Point(RBPoint.X + XO, RBPoint.Y + YO);
    BtnClRect := Rect(CLRect.Left, ClRect.Top,
      CLRect.Right + XO, ClRect.Bottom + YO);
    BtnSkinPicture := TBitMap(SkinData.FActivePictures.Items[ButtonData.PictureIndex]);
    SR := DownSkinRect;
    if IsNullRect(SR) then SR := ActiveSkinRect;
    CreateSkinImage(LTPoint, RTPoint, LBPoint, RBPoint, CLRect,
        BtnLtPoint, BtnRTPoint, BtnLBPoint, BtnRBPoint, BtnCLRect,
        Buffer, BtnSkinPicture, SR, Buffer.Width, Buffer.Height, True,
        LeftStretch, TopStretch, RightStretch, BottomStretch,
        StretchEffect, StretchType);
  end;
  //
  Cnvs.Draw(R.Left, R.Top, Buffer);
  Buffer.Free;
end;

procedure TbsSkinColorGrid.PaintGrid(Cnvs: TCanvas);
var
  RX, RY, X, Y, CW, CH, i, j, k: Integer;
  R, R1, Rct: TRect;
begin
  R := Rect(0, 0, Width, Height);
  AdjustClientRect(R);
  CW := (RectWidth(R) - ColCount * 2) div ColCount;
  CH := (RectHeight(R) - RowCount * 2) div RowCount;
  //
  R1 := Rect(0, 0, (CW + 2) * ColCount, (CH + 2) * RowCount);
  RX := R.Left + RectWidth(R) div 2 - RectWidth(R1) div 2;
  RY := R.Top + RectHeight(R) div 2 - RectHeight(R1) div 2;
  R := Rect(RX, RY, RX + RectWidth(R1), RectHeight(R1));
  //
  Y := R.Top + 1;
  k := 0;
  for i := 1 to RowCount do
  begin
    X := R.Left + 1;
    for j := 1 to ColCount do
    begin
      Inc(k);
      with Cnvs do
      begin
        Rct := Rect(X - 1, Y - 1, X + CW + 1, Y + CH + 1);

        if FColorValue = ColorValues[k]
        then
          begin
            DrawCursor(Cnvs, Rct);
          end;

        Brush.Color := ColorValues[k];

        if FColorValue = ColorValues[k]
        then
          Rct := Rect(X + 3, Y + 3 , X + CW - 3, Y + CH - 3)
        else
          Rct := Rect(X + 2, Y + 2 , X + CW - 2, Y + CH - 2);

        InflateRect(Rct, -1, -1);
        FillRect(Rct);
        InflateRect(Rct, 1, 1);
      end;
      Inc(X, CW + 2);
    end;
    Inc(Y, CH + 2);
  end;
end;

procedure TbsSkinColorGrid.CreateControlDefaultImage;
begin
  inherited;
  PaintGrid(B.Canvas);
end;

procedure TbsSkinColorGrid.CreateControlSkinImage;
begin
  inherited;
  PaintGrid(B.Canvas);
end;

function TbsSkinColorGrid.CheckColor(Value: TColor): boolean;
var
  I: Integer;
begin
  Result := False;
  for I := 1 to 48 do
    if ColorValues[I] = Value
    then
      begin
        Result := True;
        Break;
      end;
end;

procedure TbsSkinColorGrid.SetColorValue(Value: TColor);
begin
  FColorValue := Value;
  if CheckColor(FColorValue)
  then
    begin
      if Assigned(FOnChange) then FOnChange(Self);
      RePaint;
    end;
end;

procedure TbsSkinColorGrid.MouseDown(Button: TMouseButton; Shift: TShiftState;
                                     X, Y: Integer);
var
  RX, RY, X1, Y1, CW, CH, i, j, k: Integer;
  R, R1, Rct: TRect;
begin
  inherited;
  R := Rect(0, 0, Width, Height);
  AdjustClientRect(R);
  CW := (RectWidth(R) - ColCount * 2) div ColCount;
  CH := (RectHeight(R) - RowCount * 2) div RowCount;

  R1 := Rect(0, 0, (CW + 2) * ColCount, (CH + 2) * RowCount);
  RX := R.Left + RectWidth(R) div 2 - RectWidth(R1) div 2;
  RY := R.Top + RectHeight(R) div 2 - RectHeight(R1) div 2;
  R := Rect(RX, RY, RX + RectWidth(R1), RectHeight(R1));

  Y1 := R.Top + 1;
  k := 0;
  for i := 1 to RowCount do
  begin
    X1 := R.Left + 1;
    for j := 1 to ColCount do
    begin
      Inc(k);
      Rct := Rect(X1, Y1, X1 + CW, Y1 + CH);
      if PtInRect(Rct, Point(X, Y))
      then
        begin
          ColorValue := ColorValues[k];
          Break;
        end;
      Inc(X1, CW + 2);
    end;
    Inc(Y1, CH + 2);
  end;  
end;


constructor TbsColorViewer.Create(AOwner: TComponent);
begin
  inherited;
  ControlStyle := ControlStyle + [csOpaque];
  FColorValue := 0;
end;

procedure TbsColorViewer.Paint;
var
  B: TBitMap;
begin
  B := TBitMap.Create;
  B.Width := Width;
  B.Height := Height;
  with B.Canvas do
  begin
    Pen.Color := clBlack;
    Brush.Color := FColorValue;
    Rectangle(0, 0, Width, Height);
  end;
  Canvas.Draw(0, 0, B);
  B.Free;
end;

procedure TbsColorViewer.SetColorValue;
begin
  if FColorValue = Value then Exit;
  FColorValue := Value;
  RePaint;
end;

function TPSPColor.RGBToHSL(Value: TRGB): THSL;
var
  R,
  G,
  B,
  D,
  Cmax,
  Cmin: double;

begin
  R := Value.R / 255;
  G := Value.G / 255;
  B := Value.B / 255;
  Cmax := Max (R, Max (G, B));
  Cmin := Min (R, Min (G, B));

// calculate luminosity
  Result.L := (Cmax + Cmin) / 2;

  if Cmax = Cmin then
  begin
    Result.H := 0; 
    Result.S := 0
  end else begin
    D := Cmax - Cmin;

// calculate Saturation
    if Result.L < 0.5 then
      Result.S := D / (Cmax + Cmin)
    else
      Result.S := D / (2 - Cmax - Cmin);

// calculate Hue
    if R = Cmax then
      Result.H := (G - B) / D
    else
      if G = Cmax then
        Result.H  := 2 + (B - R) /D
      else
        Result.H := 4 + (R - G) / D;

    Result.H := Result.H / 6;
    if Result.H < 0 then
      Result.H := Result.H + 1
  end
end;

function TPSPColor.HSLToRGB(Value: THSL): TRGB;
var
  M1,
  M2: double;

  function HueToColourValue (Hue: double) : byte;
  var
    V : double;
  begin
    if Hue < 0 then
      Hue := Hue + 1
    else
      if Hue > 1 then
        Hue := Hue - 1;

    if 6 * Hue < 1 then
      V := M1 + (M2 - M1) * Hue * 6
    else
    if 2 * Hue < 1 then
      V := M2
    else
    if 3 * Hue < 2 then
      V := M1 + (M2 - M1) * (2/3 - Hue) * 6
    else
      V := M1;
    Result := round (255 * V)
  end;

begin
  if Value.S = 0 then
  begin
    Result.R := round (255 * Value.L);
    Result.G := Result.R;
    Result.B := Result.R
  end else begin
    if Value.L <= 0.5 then
      M2 := Value.L * (1 + Value.S)
    else
      M2 := Value.L + Value.S - Value.L * Value.S;
    M1 := 2 * Value.L - M2;
    Result.R := HueToColourValue (Value.H + 1/3);
    Result.G := HueToColourValue (Value.H);
    Result.B := HueToColourValue (Value.H - 1/3)
  end;
end;

function TPSPColor.HSLToHSLPSP: THSLPSP;
begin
  Result.H := round(FHSL.H*255);
  Result.S := round(FHSL.S*255);
  Result.L := round(FHSL.L*255);
end;

function TPSPColor.HSLPSPToHSL: THSL;
begin
  Result.H := FHSLPSP.H/255;
  Result.S := FHSLPSP.S/255;
  Result.L := FHSLPSP.L/255;
end;

constructor TPSPColor.Create;
begin
  inherited;
end;

destructor TPSPColor.Destroy;
begin

  inherited;
end;

procedure TPSPColor.SetRGB(const Value: TRGB);
begin
  FRGB := Value;
  FHSL := RGBToHSL(FRGB);
  FHSLPSP := HSLToHSLPSP();
end;

procedure TPSPColor.SeTHSL(const Value: THSL);
begin
  FHSL := Value;
  FRGB := HSLToRGB(FHSL);
  FHSLPSP := HSLToHSLPSP;
end;

procedure TPSPColor.SeTHSLPSP(const Value: THSLPSP);
begin
  FHSLPSP := Value;
  FHSL := HSLPSPToHSL;
  FRGB := HSLToRGB(FHSL);
end;

procedure TPSPColor.Assign(const Value: TPSPColor);
begin
  FRGB := Value.FRGB;
  FHSL := Value.FHSL;
  FHSLPSP := Value.FHSLPSP;
end;

constructor TbsSkinColorDialog.Create;
var
  I: Integer;
begin
  inherited Create(AOwner);

  FGroupBoxTransparentMode := False;

  RGBStopCheck := False;
  HSLStopCheck := False;
  FromPSP := False;

  FColor := 0;
  PSPColor := TPSPColor.Create;

  FAlphaBlend := False;
  FAlphaBlendAnimation := False;
  FAlphaBlendValue := 200;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品久久久久久国产越南 | 日韩欧美国产系列| 色www精品视频在线观看| 成人夜色视频网站在线观看| 久久精品99久久久| 韩国av一区二区| 国产一区高清在线| 成人一区二区三区在线观看| 国产成人av一区二区三区在线观看| 日本在线不卡视频| 亚洲久本草在线中文字幕| 亚洲欧美激情小说另类| 国产高清不卡二三区| 精品一区二区三区免费| 亚洲成在线观看| 91精品中文字幕一区二区三区| 欧美一区三区四区| 亚洲国产日韩精品| 日本韩国视频一区二区| 国产精品网站导航| 极品少妇一区二区三区精品视频| 欧美午夜寂寞影院| 亚洲一区二区在线观看视频| 91香蕉视频在线| 国产精品久久久久一区二区三区 | 亚洲免费三区一区二区| 成人av网站在线| 国产亚洲欧美一区在线观看| 韩国v欧美v日本v亚洲v| 2024国产精品| 国产精品77777| 国产无人区一区二区三区| 国产另类ts人妖一区二区| 精品第一国产综合精品aⅴ| 蜜臀av性久久久久蜜臀aⅴ| 91精品国产91久久久久久一区二区| 亚洲小少妇裸体bbw| 欧美色窝79yyyycom| 三级一区在线视频先锋| 欧美一级在线免费| 精品中文字幕一区二区小辣椒| 精品国产伦理网| 国产成a人亚洲| 国产精品国产三级国产aⅴ中文| 波多野结衣精品在线| 亚洲欧美日韩国产另类专区| 欧美视频一区二区三区四区| 石原莉奈在线亚洲三区| 欧美刺激午夜性久久久久久久| 狠狠色丁香婷婷综合| 国产免费成人在线视频| 色一区在线观看| 首页欧美精品中文字幕| 精品国产三级a在线观看| 成人性生交大合| 亚洲丰满少妇videoshd| 日韩欧美你懂的| www.欧美.com| 午夜精品aaa| 久久久久久久久伊人| 色悠久久久久综合欧美99| 全国精品久久少妇| 国产精品污网站| 欧美精品电影在线播放| 国产iv一区二区三区| 亚洲永久精品国产| 久久综合999| 色8久久人人97超碰香蕉987| 美女精品自拍一二三四| 亚洲欧美综合色| 欧美精品精品一区| 99久久精品免费精品国产| 午夜久久久久久久久| 国产日本欧洲亚洲| 欧美久久一二区| 9l国产精品久久久久麻豆| 日韩电影在线看| 亚洲人成7777| 国产日产欧美精品一区二区三区| 欧美午夜片在线观看| 国产mv日韩mv欧美| 另类欧美日韩国产在线| 亚洲免费观看高清完整版在线观看熊| 欧美人体做爰大胆视频| 99久久久国产精品| 国产伦精品一区二区三区在线观看| 洋洋成人永久网站入口| 国产日韩一级二级三级| 欧美一级日韩一级| 欧美午夜精品一区二区蜜桃| 成人丝袜高跟foot| 国产真实精品久久二三区| 丝袜美腿成人在线| 亚洲不卡一区二区三区| 亚洲色欲色欲www在线观看| 久久久久国产精品厨房| 日韩欧美亚洲一区二区| 欧美一级淫片007| 欧美日本乱大交xxxxx| 欧美在线高清视频| 色婷婷综合五月| 91蜜桃传媒精品久久久一区二区| 国产精品88av| 国产东北露脸精品视频| 国产一区福利在线| 国产专区欧美精品| 国产九九视频一区二区三区| 美女看a上一区| 国产原创一区二区| 国产一区二区三区综合| 韩国在线一区二区| 国产在线播精品第三| 国产一区二区三区不卡在线观看| 美女视频一区二区| 国产美女在线观看一区| 国产一区欧美二区| 成人av在线资源| 色综合久久88色综合天天 | 高清日韩电视剧大全免费| 国产又黄又大久久| 国产成人在线网站| 成人永久免费视频| 色综合天天做天天爱| 在线观看av不卡| 欧美美女一区二区在线观看| 欧美日韩第一区日日骚| 欧美一区三区四区| 2021国产精品久久精品| 国产亚洲制服色| 亚洲精品日韩一| 午夜国产精品一区| 蜜臀国产一区二区三区在线播放| 狠狠色丁香婷综合久久| 99视频精品在线| 欧美日韩免费电影| 久久精品欧美一区二区三区麻豆| 国产精品欧美经典| 亚洲黄色在线视频| 秋霞成人午夜伦在线观看| 久久99精品久久久久婷婷| 波多野结衣中文一区| 欧美亚洲尤物久久| 2020国产精品| 亚洲免费观看在线观看| 美脚の诱脚舐め脚责91 | 国产精品自拍三区| 91国产免费观看| 久久综合狠狠综合久久综合88| 中文字幕一区二区三区四区 | 樱桃视频在线观看一区| 男人操女人的视频在线观看欧美| 国产一区二三区| 欧美综合一区二区三区| 26uuu亚洲| 亚洲精品免费看| 国产老女人精品毛片久久| 色综合天天综合给合国产| 欧美一级专区免费大片| 日韩理论片网站| 久久精品国产免费看久久精品| 91丝袜美腿高跟国产极品老师 | 欧美日韩精品是欧美日韩精品| 亚洲精品在线观看网站| 一区二区三区四区不卡在线 | 中文成人av在线| 日本亚洲一区二区| 一本大道久久a久久综合| 久久亚洲欧美国产精品乐播| 一区二区三区久久| 国产99久久久久久免费看农村| 欧美日韩电影在线| 亚洲欧美另类在线| 高清国产一区二区| 久久综合网色—综合色88| 亚洲午夜视频在线观看| 成人一区二区三区中文字幕| 精品噜噜噜噜久久久久久久久试看 | 成人国产一区二区三区精品| 日韩亚洲欧美在线| 玉足女爽爽91| 91在线精品秘密一区二区| 久久精品人人做人人爽97| 精品在线播放免费| 91精品国产色综合久久不卡蜜臀| 亚洲欧美经典视频| 91蜜桃免费观看视频| 国产精品毛片a∨一区二区三区| 精品综合久久久久久8888| 日韩一卡二卡三卡四卡| 婷婷综合五月天| 欧美日本一道本在线视频| 亚洲自拍偷拍麻豆| 欧美午夜片在线观看| 亚洲国产日日夜夜| 精品视频一区三区九区| 亚洲一级二级在线| 欧美日韩成人综合在线一区二区| 夜夜嗨av一区二区三区网页| 欧洲生活片亚洲生活在线观看| 亚洲卡通动漫在线|