Пример #1
0
  protected void UpdateScrollBars() {
    int old_max, old_page_size;
    if (HaveVerticalScrollbar) {
      if (ScrollbarsVisible) FVerticalScrollbar.Show();
      else FVerticalScrollbar.Hide();

      if (VScrollBarIsRight)
        FVerticalScrollbar.SetX(ClientRect.x + ClientRect.w - FVerticalScrollbar.Width());
      else FVerticalScrollbar.SetX(ClientRect.x);

      FVerticalScrollbar.SetY(ClientRect.y);
      old_max = FVerticalScrollbar.Max;
      old_page_size = FVerticalScrollbar.PageSize;
      FVerticalScrollbar.Min = 0;
      FVerticalScrollbar.Max = FullHeight;

      if (HaveHorizontalScrollbar) {
        FVerticalScrollbar.SetHeight(ClientRect.h - FHorizontalScrollbar.Height());
      } else {
        FVerticalScrollbar.SetHeight(ClientRect.h);
      }
      FVerticalScrollbar.PageSize = FVerticalScrollbar.Height();

      if (AutoScrollV)
        if (FVerticalScrollbar.Pos + old_page_size >= old_max)
          FVerticalScrollbar.SetPos(FVerticalScrollbar.Max - FVerticalScrollbar.PageSize);
    }

    if (HaveHorizontalScrollbar) {
      if (ScrollbarsVisible) FHorizontalScrollbar.Show();
      else FHorizontalScrollbar.Hide();

      FHorizontalScrollbar.SetX(ClientRect.x);
      if (HScrollBarIsBottom)
        FHorizontalScrollbar.SetY(ClientRect.y + ClientRect.h - FHorizontalScrollbar.Height());
      else FHorizontalScrollbar.SetY(ClientRect.y);

      old_max = FHorizontalScrollbar.Max;
      old_page_size = FHorizontalScrollbar.PageSize;
      FHorizontalScrollbar.Min = 0;
      FHorizontalScrollbar.Max = FullWidth;
      if (HaveVerticalScrollbar) {
        FHorizontalScrollbar.SetWidth(ClientRect.w - FVerticalScrollbar.Width());
      } else {
        FHorizontalScrollbar.SetWidth(ClientRect.w);
      }
      FHorizontalScrollbar.PageSize = FHorizontalScrollbar.Width();

      if (AutoScrollH)
        if (FHorizontalScrollbar.Pos + old_page_size >= old_max)
          FHorizontalScrollbar.SetPos(FHorizontalScrollbar.Max - FHorizontalScrollbar.PageSize);
    }
  }
Пример #2
0
  public void SetStyle(boolean v, boolean h) {
    boolean changed = false;
    // { +VERT}
    if (v && !HaveVerticalScrollbar) {
      if (FVerticalScrollbar != null) FVerticalScrollbar.Unlink();
      FVerticalScrollbar = CreateScrollbar(true);
      FVerticalScrollbar.SetVertical(true);
      FVerticalScrollbar.Min = 1;
      FVerticalScrollbar.Pos = 1;
      changed = true;
    }
    // { -VERT}
    if (!v && HaveVerticalScrollbar) {
      if (FVerticalScrollbar != null) {
        FVerticalScrollbar.Unlink();
        FVerticalScrollbar = null;
      }
      changed = true;
    }
    // { +HORIZ}
    if (h && !HaveHorizontalScrollbar) {
      if (FHorizontalScrollbar != null) FHorizontalScrollbar.Unlink();
      FHorizontalScrollbar = CreateScrollbar(false);
      FHorizontalScrollbar.SetVertical(true);
      FHorizontalScrollbar.Min = 1;
      FHorizontalScrollbar.Pos = 1;
      changed = true;
    }
    // { -HORIZ}
    if (!h && HaveHorizontalScrollbar) {
      if (FHorizontalScrollbar != null) {
        FHorizontalScrollbar.Unlink();
        FHorizontalScrollbar = null;
      }
      changed = true;
    }

    if (changed) {
      HaveHorizontalScrollbar = h;
      HaveVerticalScrollbar = v;
      UpdateScrollBars();
    }
  }