Как сделать так, чтобы полосы прокрутки отображались на TScrollBox?
-
06-07-2019 - |
Вопрос
Элемент управления TScrollBox выглядит так, как будто он представляет собой TPanel с полосами прокрутки, прикрепленными вдоль нижнего и правого края.Я попытался разместить одну из них в форме, но что бы я ни делал, я не могу заставить полосы прокрутки появляться ни во время разработки, ни во время выполнения.Кто-нибудь знает, как заставить их появиться?
Решение
Установите для свойства AutoScroll
значение True
.
Теперь, если вы добавите элементы управления, которые обрезают границы блока, появятся полосы.
Другие советы
Мейсон
Вы не можете видеть полосы прокрутки, пока на самом деле не будет чего прокручивать.
Чтобы увидеть полосы прокрутки, попробуйте это
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;
Пока.
Если я не ошибаюсь (нет 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