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

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

?? tb97.pas

?? 詳細的ERP設計資料
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
        if TaskFirstTopMost = 0 then TaskFirstTopMost := Wnd;
      end;
    end;
  Result := True;
end;

function FindTopLevelWindow (ActiveWindow: HWND): HWND;
var
  FindData: TFindWindowData;
begin
  with FindData do begin
    TaskActiveWindow := ActiveWindow;
    TaskFirstWindow := 0;
    TaskFirstTopMost := 0;
    EnumThreadWindows (GetCurrentThreadID, @DoFindWindow, Longint(@FindData));
    if TaskFirstWindow <> 0 then
      Result := TaskFirstWindow
    else
      Result := TaskFirstTopMost;
  end;
end;

procedure RecalcNCArea (const Ctl: TWinControl);
begin
  if Ctl.HandleAllocated then
    SetWindowPos (Ctl.Handle, 0, 0, 0, 0, 0, SWP_FRAMECHANGED or
      SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER);
end;


{ TDock97 - internal }

constructor TDock97.Create (AOwner: TComponent);
begin
  inherited;

  ControlStyle := ControlStyle +  [csAcceptsControls, csNoStdEvents] -
    [csClickEvents, csCaptureMouse, csOpaque];
  FAllowDrag := True;
  FBkgOnToolbars := True;
  DockList := TList.Create;
  RowSizes := TList.Create;
  FBkg := TBitmap.Create;
  FBkg.OnChange := BackgroundChanged;
  Color := clBtnFace;
  Position := dpTop;
end;

procedure TDock97.CreateParams (var Params: TCreateParams);
begin
  inherited;
  { Disable complete redraws when size changes. CS_H/VREDRAW cause flicker
    and are not necessary for this control at run time }
  if not(csDesigning in ComponentState) then
    with Params.WindowClass do
      Style := Style and not(CS_HREDRAW or CS_VREDRAW);
end;

destructor TDock97.Destroy;
begin
  FBkgCache.Free;
  FBkg.Free;
  RowSizes.Free;
  DockList.Free;
  inherited;
end;

procedure TDock97.SetParent (AParent: TWinControl);
begin
  if (AParent is TCustomToolWindow97) or (AParent is TDock97) then
    raise EInvalidOperation.Create(STB97DockParentNotAllowed);

  inherited;
end;

procedure TDock97.BeginUpdate;
begin
  Inc (FDisableArrangeToolbars);
end;

procedure TDock97.EndUpdate;
begin
  Dec (FDisableArrangeToolbars);
  if FArrangeToolbarsNeeded and (FDisableArrangeToolbars = 0) then
    ArrangeToolbars;
end;

procedure TDock97.BuildRowInfo;
var
  R, I, Size, HighestSize: Integer;
begin
  RowSizes.Clear;
  for R := 0 to GetHighestRow do begin
    HighestSize := DefaultBarWidthHeight;
    for I := 0 to DockList.Count-1 do begin
      with TCustomToolWindow97(DockList[I]) do begin
        if FDockRow <> R then Continue;
        GetBarSize (Size, GetDockTypeOf(Self));
        if Size > HighestSize then HighestSize := Size;
      end;
    end;
    RowSizes.Add (Pointer(HighestSize));
  end;
end;

function TDock97.GetRowSize (const Row: Integer;
  const DefaultToolbar: TCustomToolWindow97): Integer;
begin
  if Row < RowSizes.Count then
    Result := Longint(RowSizes[Row])
  else begin
    { If it's out of bounds }
    if DefaultToolbar = nil then
      Result := 0
    else
      DefaultToolbar.GetBarSize (Result, GetDockTypeOf(Self));
  end;
end;

function TDock97.GetRowOf (const XY: Integer; var Before: Boolean): Integer;
{ Returns row number of the specified coordinate. Before is set to True if it
  was close to being in between two rows. }
var
  HighestRow, R, CurY, NextY: Integer;
begin
  Result := 0;  Before := False;
  HighestRow := GetHighestRow;
  CurY := 0;
  for R := 0 to HighestRow+1 do begin
    if R <= HighestRow then
      NextY := CurY + GetRowSize(R, nil) + DockedBorderSize2
    else
      NextY := High(NextY);
    if XY <= CurY+5 then begin
      Result := R;
      Before := True;
      Break;
    end;
    if (XY >= CurY+5) and (XY <= NextY-5) then begin
      Result := R;
      Break;
    end;
    CurY := NextY;
  end;
end;

function TDock97.GetDesignModeRowOf (const XY: Integer): Integer;
{ Similar to GetRowOf, but is a little different to accomidate design mode
  better }
var
  HighestRowPlus1, R, CurY, NextY: Integer;
begin
  Result := 0;
  HighestRowPlus1 := GetHighestRow+1;
  CurY := 0;
  for R := 0 to HighestRowPlus1 do begin
    Result := R;
    if R = HighestRowPlus1 then Break;
    NextY := CurY + GetRowSize(R, nil) + DockedBorderSize2;
    if XY < NextY then
      Break;
    CurY := NextY;
  end;
end;

function TDock97.GetHighestRow: Integer;
{ Returns highest used row number, or -1 if no rows are used }
var
  I: Integer;
begin
  Result := -1;
  for I := 0 to DockList.Count-1 do
    with TCustomToolWindow97(DockList[I]) do
      if FDockRow > Result then
        Result := FDockRow;
end;

function TDock97.GetNumberOfToolbarsOnRow (const Row: Integer;
  const NotIncluding: TCustomToolWindow97): Integer;
{ Returns number of toolbars on the specified row. The toolbar specified by
  "NotIncluding" is not included in the count. }
var
  I: Integer;
begin
  Result := 0;
  for I := 0 to DockList.Count-1 do
    if (TCustomToolWindow97(DockList[I]).FDockRow = Row) and
       (DockList[I] <> NotIncluding) then
      Inc (Result);
end;

procedure TDock97.RemoveBlankRows;
{ Deletes any blank row numbers, adjusting the docked toolbars' FDockRow as
  needed }
var
  HighestRow, R, I: Integer;
  RowIsEmpty: Boolean;
begin
  HighestRow := GetHighestRow;
  R := 0;
  while R <= HighestRow do begin
    RowIsEmpty := True;
    for I := 0 to DockList.Count-1 do
      if TCustomToolWindow97(DockList[I]).FDockRow = R then begin
        RowIsEmpty := False;
        Break;
      end;
    if RowIsEmpty then begin
      { Shift all ones higher than R back one }
      for I := 0 to DockList.Count-1 do
        with TCustomToolWindow97(DockList[I]) do
          if FDockRow > R then
            Dec (FDockRow);
      Dec (HighestRow);
    end;
    Inc (R);
  end;
end;

procedure TDock97.InsertRowBefore (const BeforeRow: Integer);
{ Inserts a blank row before BeforeRow, adjusting all the docked toolbars'
  FDockRow as needed }
var
  I: Integer;
begin
  for I := 0 to DockList.Count-1 do
    with TCustomToolWindow97(DockList[I]) do
      if FDockRow >= BeforeRow then
        Inc (FDockRow);
end;

procedure TDock97.ChangeWidthHeight (const IsClientWidthAndHeight: Boolean;
  NewWidth, NewHeight: Integer);
{ Same as setting Width/Height or ClientWidth/ClientHeight directly, but does
  not lose Align position. }
begin
  if IsClientWidthAndHeight then begin
    Inc (NewWidth, Width-ClientWidth);
    Inc (NewHeight, Height-ClientHeight);
  end;
  case Align of
    alTop, alLeft:
      SetBounds (Left, Top, NewWidth, NewHeight);
    alBottom:
      SetBounds (Left, Top-NewHeight+Height, NewWidth, NewHeight);
    alRight:
      SetBounds (Left-NewWidth+Width, Top, NewWidth, NewHeight);
  end;
end;

procedure TDock97.AlignControls (AControl: TControl; var Rect: TRect);
begin
  ArrangeToolbars;
end;

function CompareDockRowPos (const Item1, Item2, ExtraData: Pointer): Integer; far;
begin
  if TCustomToolWindow97(Item1).FDockRow <> TCustomToolWindow97(Item2).FDockRow then
    Result := TCustomToolWindow97(Item1).FDockRow - TCustomToolWindow97(Item2).FDockRow
  else
    Result := TCustomToolWindow97(Item1).FDockPos - TCustomToolWindow97(Item2).FDockPos;
end;

procedure TDock97.ArrangeToolbars;
{ The main procedure to arrange all the toolbars docked to it }
var
  LeftRight: Boolean;
  EmptySize: Integer;
  HighestRow, R, CurDockPos, CurRowPixel, I, J, K: Integer;
  CurRowSize: Integer;
begin
  if (FDisableArrangeToolbars > 0) or (csLoading in ComponentState) then begin
    FArrangeToolbarsNeeded := True;
    Exit;
  end;

  Inc (FDisableArrangeToolbars);
  try
    { Work around VCL alignment bug when docking toolbars taller or wider than
      the client height or width of the form. }
    if not(csDesigning in ComponentState) and HandleAllocated then
      SetWindowPos (Handle, HWND_TOP, 0, 0, 0, 0,
        SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);

    LeftRight := Position in PositionLeftOrRight;

    if DockList.Count = 0 then begin
      EmptySize := Ord(FFixAlign);
      if csDesigning in ComponentState then
        EmptySize := 9;
      if not LeftRight then
        ChangeWidthHeight (False, Width, EmptySize)
      else
        ChangeWidthHeight (False, EmptySize, Height);
      Exit;
    end;

    { Ensure list is in correct ordering according to DockRow/DockPos }
    ListSortEx (DockList, CompareDockRowPos, nil);

    { If LimitToOneRow is True, only use the first row }
    if FLimitToOneRow then
      for I := 0 to DockList.Count-1 do
        with TCustomToolWindow97(DockList[I]) do
          FDockRow := 0;
    { Remove any blank rows }
    RemoveBlankRows;

    { Find highest row number }
    HighestRow := GetHighestRow;
    { Arrange, first without actually moving the toolbars onscreen }
    R := 0;
    while R <= HighestRow do begin
      CurDockPos := 0;
      for I := 0 to DockList.Count-1 do begin
        with TCustomToolWindow97(DockList[I]) do begin
          if FDockRow <> R then Continue;
          if FullSize then
            { If FullSize, make sure there aren't any other toolbars on the same
              row. If there are, shift them down a row. }
            for J := 0 to DockList.Count-1 do
              if (J <> I) and (TCustomToolWindow97(DockList[J]).FDockRow = R) then begin
                for K := 0 to DockList.Count-1 do
                  with TCustomToolWindow97(DockList[K]) do
                    if (K <> I) and (FDockRow >= R) then begin
                      Inc (FDockRow);
                      if FDockRow > HighestRow then
                        HighestRow := FDockRow;
                    end;
                Break;
              end;
          if FDockPos <= CurDockPos then
            FDockPos := CurDockPos
          else
            CurDockPos := FDockPos;
          if not LeftRight then
            Inc (CurDockPos, Width)
          else
            Inc (CurDockPos, Height);
        end;
      end;
      Inc (R);
    end;
    { Rebuild the RowInfo, since rows numbers may have shifted }
    BuildRowInfo;
    HighestRow := RowSizes.Count-1;
    { Try to move all the toolbars that are offscreen to a fully visible position }
    for R := 0 to HighestRow do
      for I := 0 to DockList.Count-1 do
        with TCustomToolWindow97(DockList[I]) do begin
          if FDockRow <> R then Continue;
          if FullSize then
            FDockPos := 0
          else
            for J := DockList.Count-1 downto I do
              with TCustomToolWindow97(DockList[J]) do begin
                if FDockRow <> R then Continue;
                if not LeftRight then begin
                  if FDockPos+Width > Self.ClientWidth then begin
                    Dec (TCustomToolWindow97(DockList[I]).FDockPos,
                      ((FDockPos+Width) - Self.ClientWidth));
                    Break;
                  end;
                end
                else begin
                  if FDockPos+Height > Self.ClientHeight then begin
                    Dec (TCustomToolWindow97(DockList[I]).FDockPos,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕的久久| 在线播放91灌醉迷j高跟美女 | 26uuu国产电影一区二区| 久久婷婷国产综合精品青草| 国产精品成人免费精品自在线观看| 亚洲精品乱码久久久久久日本蜜臀| 五月婷婷久久综合| 国产精品乡下勾搭老头1| 91免费观看在线| 91精品国产乱| 亚洲国产精品精华液ab| 亚洲成年人影院| 国产精品一区二区无线| 在线看一区二区| 26uuu精品一区二区在线观看| 亚洲视频1区2区| 美国欧美日韩国产在线播放| 99国产精品久久久久| 日韩免费视频一区二区| 中文字幕一区二区日韩精品绯色| 日韩精品1区2区3区| 成人av影院在线| 91精品国产麻豆国产自产在线| 亚洲欧洲性图库| 麻豆视频一区二区| 在线观看亚洲一区| 久久精品亚洲国产奇米99| 亚洲大片精品永久免费| 国产不卡一区视频| 日韩免费看的电影| 亚洲尤物在线视频观看| jlzzjlzz亚洲日本少妇| 欧美成人性战久久| 亚洲第一搞黄网站| 91亚洲精品乱码久久久久久蜜桃| 精品sm捆绑视频| 亚洲va韩国va欧美va精品| 不卡一区在线观看| 精品国产99国产精品| 亚洲成人动漫精品| 91免费在线视频观看| 久久久国产一区二区三区四区小说 | 免费在线观看成人| 欧美优质美女网站| 一区二区中文字幕在线| 国产主播一区二区三区| 欧美日韩国产小视频| 亚洲人午夜精品天堂一二香蕉| 国产在线视频不卡二| 欧美肥大bbwbbw高潮| 亚洲综合色丁香婷婷六月图片| av午夜一区麻豆| 久久精品一区二区| 国产一二精品视频| 日韩天堂在线观看| 午夜精品久久久久久久99水蜜桃| 色综合久久久网| 中文字幕一区在线| 丁香婷婷综合五月| 国产午夜精品久久久久久久| 狠狠色丁香久久婷婷综| 精品国产sm最大网站免费看| 蜜臀久久99精品久久久久宅男| 欧美日韩国产高清一区二区 | 欧美日韩和欧美的一区二区| 亚洲制服丝袜av| 在线一区二区三区四区五区| 亚洲视频你懂的| 一本久道中文字幕精品亚洲嫩| 国产精品久久久久久久岛一牛影视| 国产河南妇女毛片精品久久久 | 国产精品色噜噜| 日本aⅴ免费视频一区二区三区| 欧美日韩视频在线观看一区二区三区 | 麻豆成人91精品二区三区| 欧美剧情片在线观看| 日韩—二三区免费观看av| 在线不卡的av| 青青青伊人色综合久久| 日韩三级av在线播放| 另类专区欧美蜜桃臀第一页| 精品久久一二三区| 国产高清亚洲一区| 日韩一区在线免费观看| 91视频国产观看| 亚洲国产综合人成综合网站| 欧美精品99久久久**| 蜜桃一区二区三区在线| 久久亚洲一区二区三区四区| 懂色av一区二区在线播放| 国产精品久久久久一区二区三区| 91天堂素人约啪| 亚洲国产欧美一区二区三区丁香婷| 欧美男人的天堂一二区| 免费成人av资源网| 国产欧美日韩卡一| 91理论电影在线观看| 亚洲午夜三级在线| 日韩欧美国产三级电影视频| 国产精品亚洲人在线观看| 日韩伦理免费电影| 在线亚洲高清视频| 久久国产精品无码网站| 久久精品视频免费| 在线视频中文字幕一区二区| 免费在线观看成人| 中文字幕 久热精品 视频在线| 色天天综合久久久久综合片| 日本不卡一二三| 国产欧美一区二区在线| 在线免费亚洲电影| 国产在线一区观看| 亚洲男女毛片无遮挡| 91精品黄色片免费大全| 国产成人在线视频网址| 亚洲国产精品久久人人爱蜜臀| 日韩视频在线观看一区二区| 成人午夜碰碰视频| 天天av天天翘天天综合网色鬼国产| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 99久久久无码国产精品| 午夜视频在线观看一区二区三区| 精品福利在线导航| 色中色一区二区| 国产在线乱码一区二区三区| 亚洲一区免费观看| 国产欧美日韩在线视频| 7777精品伊人久久久大香线蕉的 | 综合分类小说区另类春色亚洲小说欧美| 欧美性大战久久久久久久蜜臀| 国产一区二区0| 亚洲成人免费观看| 国产精品乱码一区二区三区软件 | 精品一区二区三区影院在线午夜| 中文字幕一区二区三区在线观看| 成人av在线资源| 九九**精品视频免费播放| 国产精品美女久久福利网站| 欧美视频一区二| av成人老司机| 久久福利资源站| 一区二区三区不卡在线观看| 日韩一区二区三区电影在线观看 | 91麻豆swag| 青青草视频一区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产精品一区二区x88av| 亚洲成人精品一区二区| 欧美激情一区二区三区四区| 精品视频资源站| 成人久久久精品乱码一区二区三区| 亚洲欧洲综合另类| 国产午夜精品理论片a级大结局| 欧美日韩中文国产| www.亚洲在线| 国产做a爰片久久毛片| 日本aⅴ免费视频一区二区三区| 亚洲特黄一级片| 久久久精品黄色| 91麻豆精品国产91久久久资源速度 | 538在线一区二区精品国产| 国产一区二区在线电影| 老色鬼精品视频在线观看播放| 亚洲综合自拍偷拍| 久久久另类综合| 日韩精品一区二区三区在线观看| 666欧美在线视频| 欧洲av一区二区嗯嗯嗯啊| 成人精品视频一区| 久久精品国产99| 夜夜爽夜夜爽精品视频| 亚洲精品成人在线| 中文文精品字幕一区二区| 日韩一二三四区| 制服丝袜中文字幕亚洲| 制服丝袜中文字幕一区| 精品视频免费在线| av一区二区不卡| 六月婷婷色综合| 亚洲成av人片一区二区三区| 亚洲欧美日韩一区二区三区在线观看 | 国产欧美日韩在线视频| 精品电影一区二区| 日韩视频免费观看高清在线视频| 色婷婷精品久久二区二区蜜臀av | 久久久99免费| 欧美一区二区三区婷婷月色| 欧美日韩黄色影视| 欧美体内she精视频| 欧美美女黄视频| 欧美日韩中文一区| 欧美性感一区二区三区| 欧美亚洲综合在线| 色成人在线视频| 97国产一区二区| 91在线一区二区| 99re热这里只有精品视频| 国产乱码精品1区2区3区| 国产伦理精品不卡| 韩国视频一区二区|