Как сделать так, чтобы полосы прокрутки отображались на TScrollBox? - PullRequest
1 голос
/ 12 сентября 2009

Элемент управления TScrollBox выглядит так, как будто он должен быть в основном TPanel с полосами прокрутки, прикрепленными вдоль нижнего и правого края. Я попытался поместить его в форму, но независимо от того, что я делаю, я не могу заставить полосы прокрутки фактически появляться ни во время разработки, ни во время выполнения. Кто-нибудь знает, как заставить их появляться?

Ответы [ 3 ]

3 голосов
/ 12 сентября 2009

Установите для свойства AutoScroll значение True.
Теперь, если вы добавите элементы управления, которые обрезают границы блока, появятся полосы.

2 голосов
/ 12 сентября 2009

Mason

Вы не можете видеть полосы прокрутки, пока на самом деле не будет чего прокрутить. Чтобы увидеть полосы прокрутки, попробуйте это

1.Установите свойство BorderStyle формы в bsSingle

2.Вставить кнопку в форму

3. Поместите полосу прокрутки в форму

4.Установите свойство Align TScrollBox в alClient

5. Запустите этот код одним нажатием кнопки

procedure TForm10.Button1Click(Sender: TObject);
Var
i : integer;
ed : TEdit;
begin
           for i:=1 to 30 do
           Begin
              ed:=TEdit.Create(self);
              ed.Parent:=ScrollBox1;
              ed.Top:=5+((i-1)*30);
              ed.Left:=10;
              ed.Width:=100;
              ed.Text:='Editext'+ IntToStr(i);
           End;
end;

Bye.

0 голосов
/ 13 сентября 2009

Если я не ошибаюсь (нет Delphi, чтобы проверить), достаточно установить HorzScrollBar.Range достаточно большим.

РЕДАКТИРОВАТЬ: IIUC этот DFM делает то, что вы хотите - полностью во время разработки:

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 206
  ClientWidth = 312
  Color = clBtnFace
  ParentFont = True
  OldCreateOrder = True
  PixelsPerInch = 96
  TextHeight = 13
  object ScrollBox1: TScrollBox
    Left = 8
    Top = 8
    Width = 150
    Height = 150
    HorzScrollBar.Range = 300
    VertScrollBar.Range = 300
    AutoScroll = False
    TabOrder = 0
  end
end
...