From Clomosy Docs

AComponent : Specifies the parent of the object to be defined.

xName : The name of the defined vertscrollbox should be written.

AddNewVertScrollBox (TClVertScrollBox) create scrolling areas within a form. Applications often need to display more information than will fit in a particular area. Some controls, such as list boxes, notes, and forms, can automatically scroll down their content.

Feature Use of Definition
TclVertScrollBox VertScrollBox1: TclVertScrollBox; A variable belonging to the TclVertScrollBox class is created.
AddNewVertScrollBox VertScrollBox1 = Form1.AddNewVertScrollBox(Form1,'VertScrollBox1'); A new TclVertScrollBox is added to the form.
ScrollBy(DeltaX,DeltaY: Integer); VertScrollBox1.ScrollBy(0,-100); To scroll the contents within the control, call ScrollBy.

The DeltaX parameter is the change in pixels along the X-axis.
A positive DeltaX value scrolls the content to the left; a negative value scrolls the content to the right.
The DeltaY parameter is the change in pixels along the Y-axis.
A positive DeltaY value scrolls the content upward; a negative value scrolls the content downward.

ScrollTo(X,Y: Integer); VertScrollBox1.ScrollTo(0,-100); To scroll the contents within the control, call ScrollTo.

The X parameter is the change in pixels along the X-axis.
A positive X value scrolls the content to the left; a negative value scrolls the content to the right.
The Y parameter is the change in pixels along the Y-axis.
A positive Y value scrolls the content upward; a negative value scrolls the content downward.

Width VertScrollBox1.Width = 150; Allows adjusting the width of the scrollBox.
Height VertScrollBox1.Height = 50; Allows adjusting the height of the scrollBox.
Align VertScrollBox1.Align = alTop; With the Align parameter, you can specify where you want our component to be aligned in the form. This parameter has multiple positioning properties. See the page to learn about these features.
Margins VertScrollBox1.Margins.Left = 50; // Right, Top, Bottom With the Margins parameter, you can give margins at any scale from the right, left, bottom, top.


Example

In the example, a menu list has been created. The menu list includes headings such as vegetables, fruits, beverages, and types of meat. To enable a scrollable structure, a TCLVertScrollBox was created, containing buttons. When clicked, the specific button that was clicked is identified.

 var
   Form1: TclStyleForm;
   btnS : TclProButton;
   vScroll:TCLVertScrollBox;
   BtnCaptionArr,BtnNameArr,btnImgArr  : array of String;
   i : Integer;
 
 void BtnOnClick; 
 var
   clickedBtn:TClProButton;
 {
   clickedBtn = TClProButton(Form1.Clsender);
   ShowMessage(clickedBtn.Caption);
   ShowMessage(clickedBtn.Hint);
 
 }
 
 {
   BtnNameArr = ['btnVegetables','btnFruits','btnBeverages','btnMeatTypes','btnCakes'];
   BtnCaptionArr = ['Vegetables','Fruits','Beverages','Meat Types','Cakes'];
   btnImgArr = ['https://clomosy.com/demos/aubergine.png',
   'https://clomosy.com/demos/watermelon.png',
   'https://clomosy.com/demos/fruitJuice.png',
   'https://clomosy.com/demos/meat.png',
   'https://clomosy.com/demos/cake.png'];
   Form1 = TclStyleForm.Create(Self);
   Form1.SetFormColor('#ffffff','', clGNone);
   Form1.clSetCaption('Menu List');
   
   vScroll = Form1.AddNewVertScrollBox(Form1,'ScrollBoxY');
   vScroll.Align = alMostTop;
   vScroll.Height = Form1.clheight-70;
   
   for (i = 0 to 4)
   {
     btnS = Form1.AddNewProButton(vScroll,BtnNameArr[i],BtnCaptionArr[i]);
     btnS.Align = AlTop;
     btnS.Height = 150;
     btnS.Margins.Bottom = 5;
     btnS.clProSettings.IsFill = True;
     btnS.clProSettings.FontSize = 14;
     btnS.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
     btnS.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic];
     btnS.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4287f5');
     btnS.clProSettings.FontVertAlign = palLeading;
     btnS.clProSettings.FontHorzAlign = palcenter;
     btnS.clProSettings.PictureSource =btnImgArr[i];
     btnS.clProSettings.PictureAutoFit = True;
     btnS.SetclProSettings(btnS.clProSettings);
     btnS.Hint = BtnNameArr[i];
     Form1.AddNewEvent(btnS,tbeOnClick,'BtnOnClick');
   }
   
   Form1.Run;
 }


Output:
MenuList.png

See Also