Come faccio a mostrare le barre di scorrimento su un TScrollBox?
-
06-07-2019 - |
Domanda
Il controllo TScrollBox sembra fondamentalmente essere un TPanel con barre di scorrimento attaccate lungo il bordo inferiore e destro. Ho provato a posizionarne uno su un modulo, ma non importa cosa faccio, non riesco a far apparire effettivamente le barre di scorrimento, in fase di progettazione o in fase di esecuzione. Qualcuno sa come farli apparire?
Soluzione
Imposta la proprietà AutoScroll
su True
.
Ora se aggiungi controlli che taglia i bordi della casella, appariranno le barre.
Altri suggerimenti
Mason
Non puoi vedere le barre di scorrimento finché non c'è effettivamente qualcosa su cui scorrere.
Per vedere le barre di scorrimento, prova questo
1.Impostare la proprietà BorderStyle del modulo su bsSingle
2.Inserire un pulsante in un modulo
3.Metti una barra di scorrimento in un modulo
4.Impostare la proprietà Align di TScrollBox su alClient
5. Esegui questo codice con un clic sul pulsante
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;
Ciao.
Se non sbaglio (non c'è Delphi in giro per verificare), è sufficiente impostare HorzScrollBar.Range abbastanza grande.
MODIFICA: IIUC questo DFM fa quello che vuoi - interamente in fase di progettazione:
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