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

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

?? acdbctrlgrid.pas

?? alpha db da sa pouzit na vsetky druhy coho len chcete
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{  if FCommonData.Skinned then begin
    if not FCommonData.CustomColor then Color := FCommonData.SkinManager.gd[FCommonData.SkinIndex].Color;
    if not FCommonData.CustomFont then Font.Color := FCommonData.SkinManager.gd[FCommonData.SkinIndex].FontColor[1];
  end;}
  RefreshScrolls(FCommonData, ListSW);
end;

destructor TsDBCtrlGrid.Destroy;
begin
  if ListSW <> nil then FreeAndNil(ListSW);
  if Assigned(FCommonData) then FreeAndNil(FCommonData);
  inherited;
end;

procedure TsDBCtrlGrid.DrawPanel(DC: HDC; Index: Integer);
var
  SaveActive: Integer;
  R: TRect;
begin
  R := GetPanelBounds(Index);
  if Index < PanelCount then begin
    SaveActive := DataLink.ActiveRecord;
    DataLink.ActiveRecord := Index;
    TsDBCtrlPanel(Panel).DrawIndex := Index;
    if Index <> PanelIndex then
    Panel.PaintTo(FPanelDC, 0, 0);
    DataLink.ActiveRecord := SaveActive;
  end
  else begin
    DrawPanelBackground(FPanelDC, Panel.ClientRect, True, False);
  end;
  BitBlt(DC, R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top, FPanelDC, 0, 0, SRCCOPY);
end;

procedure TsDBCtrlGrid.DrawPanelBackground(DC: HDC; const R: TRect; Erase, Selected: Boolean);
begin
  TsDBCtrlPanel(Panel).PrepareCache(Point(R.Left, R.Top));
  PaintItem(TsDBCtrlPanel(Panel).FCommonData, GetParentCache(TsDBCtrlPanel(Panel).FCommonData), False, 0, Panel.ClientRect,
                   Point(R.Left, R.Top), TsDBCtrlPanel(Panel).FCommonData.FCacheBmp, False
                 );
{  if ShowFocus and Focused and Selected then begin
    sGraphUtils.FocusRect(TsDBCtrlPanel(Panel).FCommonData.FCacheBmp.Canvas, Panel.ClientRect);
  end;}
  BitBlt(DC, R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top, TsDBCtrlPanel(Panel).FCommonData.FCacheBmp.Canvas.Handle, 0, 0, SRCCOPY);
end;

function TsDBCtrlGrid.GetPanelBounds(Index: Integer): TRect;
var
  Col, Row: Integer;
begin
  if Orientation = goVertical then begin
    Col := Index mod ColCount;
    Row := Index div ColCount;
  end
  else begin
    Col := Index div RowCount;
    Row := Index mod RowCount;
  end;
  Result.Left := PanelWidth * Col;
  Result.Top := PanelHeight * Row;
  Result.Right := Result.Left + PanelWidth;
  Result.Bottom := Result.Top + PanelHeight;
end;

procedure TsDBCtrlGrid.PaintWindow(DC: HDC);
var
  I: Integer;
  Brush: HBrush;
//  bActive : boolean;
begin
  if not ControlIsReady(Panel) or not (Panel is TsDBCtrlPanel and TsDBCtrlPanel(Panel).FCommonData.Skinned) then inherited else begin
    if csDesigning in ComponentState then begin
      Panel.Update;
      Brush := CreateHatchBrush(HS_BDIAGONAL, ColorToRGB(clBtnShadow));
      SetBkColor(DC, ColorToRGB(Color));
      FillRect(DC, ClientRect, Brush);
      DeleteObject(Brush);
//      bActive := DataLink.Active and
      for I := 1 to ColCount * RowCount - 1 do DrawPanelBackground(DC, GetPanelBounds(I), False, DataLink.Active and (I = DataLink.ActiveRecord));
    end
    else begin
      CreatePanelBitmap;
      try
        for I := 0 to ColCount * RowCount - 1 do
          if (PanelCount <> 0) and (I = PanelIndex) then begin
            TsDBCtrlPanel(Panel).DrawIndex := -1;
            RedrawWindow(Panel.Handle, nil, 0, RDW_INVALIDATE or RDW_UPDATENOW or RDW_ALLCHILDREN);
          end
          else begin
            DrawPanel(DC, I);
          end;
      finally
        TsDBCtrlPanel(Panel).DrawIndex := -1;
        DestroyPanelBitmap;
      end;
    end;
    { When width or height are not evenly divisible by panel size, fill the gaps }
    if HandleAllocated then begin
      if (Height <> Panel.Height * RowCount) then BitBlt(DC, 0, Panel.Height * RowCount, Width, Height, FCommonData.FCacheBmp.Canvas.Handle, 0, 0, SRCCOPY);
      if (Width <> Panel.Width * ColCount) then BitBlt(DC, Panel.Width * ColCount, 0, Width, Height, FCommonData.FCacheBmp.Canvas.Handle, 0, 0, SRCCOPY);
    end;
  end;
end;

procedure TsDBCtrlGrid.SetDisabledKind(const Value: TsDisabledKind);
begin
  with TsDBCtrlPanel(Panel) do
  if FDisabledKind <> Value then begin
    FDisabledKind := Value;
    FCommonData.Invalidate;
  end;
end;


function TsDBCtrlGrid.GetDisabledKind: TsDisabledKind;
begin
  with TsDBCtrlPanel(Panel) do
    result := FDisabledKind;
end;

{function TsDBCtrlGrid.GetSkinData: TsCommonData;
begin
  with TsDBCtrlPanel(Panel) do result := FCommonData;
end;}

procedure TsDBCtrlGrid.PrepareCache;
var
  CI : TCacheInfo;
begin
  try
    FCommonData.InitCacheBmp;
    CI := GetParentCache(FCommonData);
    PaintItem(FCommonData,
                 CI,
                 False, 0,
                 Rect(0, 0, Width, Height),
                 Point(Left, Top),
                 FCommonData.FCacheBmp, False
               );
    FCommonData.BGChanged := False;
  except
  end;
end;

procedure TsDBCtrlGrid.WndProc(var Message: TMessage);
begin
{$IFDEF LOGGED}
  AddToLog(Message);
{$ENDIF}
  if Message.Msg = SM_ALPHACMD then case Message.WParamHi of
    AC_CTRLHANDLED : begin Message.Result := 1; Exit end; // AlphaSkins supported
    AC_REMOVESKIN : if LongWord(Message.LParam) = LongWord(FCommonData.SkinManager) then begin
      if ListSW <> nil then begin
        FreeAndNil(ListSW);
      end;
      CommonWndProc(Message, FCommonData);
      AlphaBroadCast(Self,Message);
      RecreateWnd;
      Exit;
    end;
    AC_SETNEWSKIN : if (LongWord(Message.LParam) = LongWord(FCommonData.SkinManager)) then begin
      CommonWndProc(Message, FCommonData);
      AlphaBroadCast(Self,Message);
      exit;
    end;
    AC_REFRESH : if (LongWord(Message.LParam) = LongWord(FCommonData.SkinManager)) then begin
      CommonWndProc(Message, FCommonData);
      RefreshScrolls(FCommonData, ListSW);
      AlphaBroadCast(Self,Message);
      RedrawWindow(Handle, nil, 0, RDW_FRAME + RDW_INVALIDATE + RDW_UPDATENOW + RDW_ALLCHILDREN);
      Exit;
    end;
    AC_ENDPARENTUPDATE : if FCommonData.Updating then begin
      FCommonData.Updating := False;
      Perform(WM_NCPAINT, 0, 0);
    end;
  end;
  if not ControlIsReady(Self) or not FCommonData.Skinned then inherited else begin
    case Message.Msg of
      WM_PRINT : begin
        Perform(WM_PAINT, Message.WParam, Message.LParam);
        Ac_NCPaint(ListSW, Handle, Message.wParam, Message.lParam, -1, hdc(Message.WParam));
        Exit;
      end;
    end;
    CommonWndProc(Message, FCommonData);
    inherited;
    case Message.Msg of
      CM_VISIBLECHANGED, CM_ENABLEDCHANGED, WM_SETFONT : begin
        FCommonData.Invalidate;
      end;
      WM_SIZE, WM_MOVE : UpdateScrolls(ListSW, True);
      WM_PASTE, WM_CUT, WM_CLEAR, WM_UNDO, WM_SETTEXT : UpdateScrolls(ListSW, True);
      WM_HSCROLL, WM_VSCROLL : begin
        UpdateScrolls(ListSW, True);
      end;
      CM_CHANGED, CN_KEYDOWN, CN_KEYUP, CM_INVALIDATE : UpdateScrolls(ListSW, True);
      WM_PARENTNOTIFY: if (Message.WParam and $FFFF = WM_CREATE) or (Message.WParam and $FFFF = WM_DESTROY) then begin
        UpdateScrolls(ListSW, True);
      end;
      WM_MOUSEWHEEL, CM_CONTROLLISTCHANGE, CM_CONTROLCHANGE : if not SkinData.Updating then begin
        UpdateScrolls(ListSW, True);
      end;
    end;
  end;   
end;            

function TsDBCtrlGrid.GetDataLink: TDataLink;
begin
  Result := TDBCtrlGrid_(Self).FDataLink;
end;

procedure TsDBCtrlGrid.CreatePanelBitmap;
var
  DC: HDC;
begin
  if FBitmapCount = 0 then
  begin
    DC := GetDC(0);
    FPanelBitmap := CreateCompatibleBitmap(DC, Panel.Width, Panel.Height);
    ReleaseDC(0, DC);
    FPanelDC := CreateCompatibleDC(0);
    FSaveBitmap := SelectObject(FPanelDC, FPanelBitmap);
  end;
  Inc(FBitmapCount);
end;

procedure TsDBCtrlGrid.DestroyPanelBitmap;
begin
  Dec(FBitmapCount);
  if FBitmapCount = 0 then
  begin
    SelectObject(FPanelDC, FSaveBitmap);
    DeleteDC(FPanelDC);
    DeleteObject(FPanelBitmap);
  end;
end;

procedure TsDBCtrlGrid.AfterConstruction;
begin
  inherited AfterConstruction;
  FCommonData.Loaded;
end;

procedure TsDBCtrlGrid.SetPanelSkin(const Value: TsSkinSection);
begin
  if FPanelSkin <> Value then begin
    FPanelSkin := Value;
    TsDBCtrlPanel(TDBCtrlGrid_(Self).FPanel).FCommonData.SkinSection := Value;
    FCommonData.BGChanged := True;
    RedrawWindow(Handle, nil, 0, RDW_FRAME + RDW_INVALIDATE + RDW_UPDATENOW + RDW_ALLCHILDREN);
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
1000精品久久久久久久久| 波多野结衣亚洲| 亚洲欧洲av色图| 日韩一区二区三| 欧美三级在线视频| 99国产精品久| 99视频一区二区三区| 久久99国产精品久久| 视频一区二区中文字幕| 悠悠色在线精品| 1024精品合集| 欧美国产禁国产网站cc| 久久综合久久综合九色| 欧美日本在线一区| 欧美高清视频不卡网| 在线免费不卡视频| 91福利精品视频| 色婷婷久久久亚洲一区二区三区 | 国产黄人亚洲片| 国产自产v一区二区三区c| 麻豆91免费看| 久久精品999| 国产精品一卡二卡| 成人av影院在线| 99国产精品视频免费观看| 日本精品一级二级| 在线观看日韩精品| 欧美美女一区二区在线观看| 欧美日韩精品欧美日韩精品一 | 99re视频精品| 91老司机福利 在线| 色哟哟欧美精品| 欧美午夜电影一区| 欧美日韩精品一区二区天天拍小说 | 成人h动漫精品一区二区| 91福利视频网站| 久久久久久久综合狠狠综合| 一区二区三区中文字幕| 国产综合色精品一区二区三区| 色综合天天综合狠狠| 久久嫩草精品久久久精品一| 亚洲国产精品天堂| 99精品国产视频| 久久影院午夜片一区| 婷婷夜色潮精品综合在线| 从欧美一区二区三区| 日韩三级电影网址| 亚洲一区二区不卡免费| 成人性视频网站| 久久久久久久综合日本| 免费一级欧美片在线观看| 色综合久久天天综合网| 欧美国产日本视频| 国产经典欧美精品| 日韩精品专区在线| 免费观看久久久4p| 91精品中文字幕一区二区三区| 亚洲摸摸操操av| 99久久精品情趣| 国产免费观看久久| 夫妻av一区二区| 国产亚洲欧美日韩日本| 国产又粗又猛又爽又黄91精品| 欧美精品 日韩| 性欧美疯狂xxxxbbbb| 91国偷自产一区二区使用方法| 国产精品美女一区二区三区| 国产麻豆精品久久一二三| 日韩精品一区二区三区swag| 麻豆精品国产传媒mv男同| 欧美日韩一区成人| 亚洲第一福利一区| 欧美日韩专区在线| 日本vs亚洲vs韩国一区三区二区 | 高清av一区二区| 久久久久久久久久久久电影| 狠狠色2019综合网| 国产日韩欧美制服另类| 成人免费视频网站在线观看| 国产精品乱码一区二三区小蝌蚪| 极品少妇xxxx偷拍精品少妇| 2017欧美狠狠色| 国产福利一区二区| 亚洲男帅同性gay1069| 欧美日韩久久久久久| 日本成人在线不卡视频| 日韩美女天天操| 高清国产一区二区| 亚洲免费观看在线视频| 在线这里只有精品| 日本最新不卡在线| 久久久www免费人成精品| 成人动漫视频在线| 亚洲国产色一区| 久久亚洲一级片| 日本韩国一区二区| 日本欧美一区二区三区乱码| 精品国产凹凸成av人网站| 波多野结衣的一区二区三区| 亚洲国产另类精品专区| 日韩欧美一卡二卡| www.欧美精品一二区| 亚洲国产精品一区二区www在线| 日韩欧美一级精品久久| 99久久伊人久久99| 日韩专区中文字幕一区二区| 国产亚洲精品aa午夜观看| 欧美三级在线视频| 国产成人精品三级麻豆| 午夜免费久久看| 国产精品高潮呻吟| 欧美一级片在线看| 9色porny自拍视频一区二区| 青青草伊人久久| 亚洲人吸女人奶水| 久久日一线二线三线suv| 欧美三区在线观看| proumb性欧美在线观看| 久久成人久久鬼色| 亚洲国产精品自拍| 中文字幕制服丝袜一区二区三区| 欧美一区二区三区日韩| 91麻豆文化传媒在线观看| 精彩视频一区二区三区| 午夜视频在线观看一区二区| 亚洲欧美综合网| 久久免费视频色| 日韩午夜激情视频| 欧美日韩一级片网站| 91在线视频观看| 高清国产一区二区| 精品中文字幕一区二区小辣椒| 亚洲一区二区三区视频在线| 亚洲欧洲99久久| 国产精品视频免费| 国产女主播一区| 久久蜜臀中文字幕| 日韩视频免费观看高清完整版| 欧美性xxxxx极品少妇| 91啪亚洲精品| 91啪九色porn原创视频在线观看| 久久97超碰国产精品超碰| 午夜久久久久久久久| 亚洲三级久久久| 亚洲麻豆国产自偷在线| 亚洲国产精品成人综合| 久久精品日产第一区二区三区高清版 | 国产最新精品免费| 久久精品国产久精国产爱| 青青草97国产精品免费观看无弹窗版| 一区二区成人在线| 亚洲高清免费观看| 日韩va欧美va亚洲va久久| 午夜精品久久久久久久久| 亚洲成a人片综合在线| 首页综合国产亚洲丝袜| 香蕉成人伊视频在线观看| 亚州成人在线电影| 日韩av在线免费观看不卡| 激情深爱一区二区| 国产精品1区二区.| 成人黄动漫网站免费app| 粉嫩av亚洲一区二区图片| 欧美日韩二区三区| 欧美性感一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 中文字幕欧美国产| 亚洲欧洲成人精品av97| 亚洲一区二区三区四区中文字幕| 午夜免费久久看| 国产精品综合一区二区三区| 91一区一区三区| 538在线一区二区精品国产| 欧美videos中文字幕| 久久久久久久久久电影| 亚洲女人的天堂| 日本aⅴ免费视频一区二区三区| 国产一区二区三区在线观看精品 | 一区二区三区日韩精品| 五月天一区二区三区| 国产精品一级黄| 色婷婷国产精品综合在线观看| 日韩一区二区三区av| 国产精品久久久久久久久免费丝袜| 亚洲黄色免费网站| 九九久久精品视频| 91网站在线观看视频| 日韩一区二区免费在线电影| 国产精品美女久久福利网站| 日韩综合在线视频| 99久久99久久综合| 欧美一级免费大片| 国产精品婷婷午夜在线观看| 天天av天天翘天天综合网| 国产精品中文欧美| 8x福利精品第一导航| **欧美大码日韩| 国产精品69毛片高清亚洲| 欧美一区二区三区日韩视频| 欧美国产激情二区三区|