Difference between revisions of "TScrollBar"

From Free Pascal wiki
Jump to navigationJump to search
m
m (Fixed syntax highlighting)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
>> [[LCL Components]] >> TScrollBar<br/>
+
{{TScrollBar}}
  
This page explains how to use the TScrollBar component. When I mention to click on something, unless I explicitly say to right-click, you always left-click on the item in question.
+
A '''TScrollBar''' [[image:tscrollbar.png]] is a control that allows the user to scroll the content of an associated control by moving an slider.
  
 +
==Usage==
  
 +
To use a TScrollBar on a [[TForm|form]], you can simply select it on the [[Standard tab]] of the [[Component Palette]] and place it by clicking on the form.
  
 +
==Small example==
  
 +
Move an image on your form depending on the scrollbar positions
  
 +
* place two TScrollBars on your form
 +
* in the object Inspector change the first scrollbar properties "Name" in "sbVert", "Kind" in "sbVertical" and "Align" in "alRight"
 +
* in the object Inspector change the second scrollbar properties "Name" in "sbHori" and "Align" in "alBottom"
 +
* add a [[TPaintBox]] (additional component palette) to the form and set its "align" on "alClient"
 +
* add a [[TImageList]] (common controls component palette) to the form
 +
* upload an image in the ImageList:
 +
** right-click the ImageList1 and select the ''ImageList Editor...'' from the pop-up menu
 +
** Click on ''add'' and select an image (preferably a small icon 16 x 16 for example, Lazarus/images/icons/lazarus16x16)
 +
** finish your selection with ''OK''
 +
* Choose your PaintBox, in the object inspector under events, create the event handler for the event ''OnPaint'' and write following code:
  
This is a stub page until completed
+
<syntaxhighlight lang=pascal>
 +
procedure TForm1.PaintBox1Paint(Sender: TObject);
 +
begin
 +
  ImageList1.Draw(
 +
    Paintbox1.Canvas,
 +
    sbHori.Position * (PaintBox1.ClientWidth  - ImageList1.Width)  div sbHori.Max,
 +
    sbVert.Position * (Paintbox1.ClientHeight - ImageList1.Height) div sbVert.Max,
 +
    0);
 +
end;
 +
</source>
 +
* Now let any change of the scrollbar positions repaint the form: create the event handler ''OnChange'' for a scrollbar and also call this for the other scrollbar:
 +
<source>
 +
procedure TForm1.sbVertChange(Sender: TObject);
 +
begin
 +
  RePaint;
 +
end;
 +
</syntaxhighlight>
  
{{LCL Components Footer |TComboBox|TGroupBox}}
+
Your little program could look like:
{{LCL Components}}
+
 
 +
[[image:ScrollBarExample.png]]
 +
 
 +
==See also==
  
 +
* [[doc:lcl/stdctrls/tscrollbar.html|TScrollBar doc]]
 +
* [[TTrackBar]]
 +
* [[TScrollBox]]
  
[[Category:Components]]
+
{{LCL Components}}

Latest revision as of 01:14, 2 March 2020

Deutsch (de) English (en) suomi (fi) français (fr) 日本語 (ja)

A TScrollBar tscrollbar.png is a control that allows the user to scroll the content of an associated control by moving an slider.

Usage

To use a TScrollBar on a form, you can simply select it on the Standard tab of the Component Palette and place it by clicking on the form.

Small example

Move an image on your form depending on the scrollbar positions

  • place two TScrollBars on your form
  • in the object Inspector change the first scrollbar properties "Name" in "sbVert", "Kind" in "sbVertical" and "Align" in "alRight"
  • in the object Inspector change the second scrollbar properties "Name" in "sbHori" and "Align" in "alBottom"
  • add a TPaintBox (additional component palette) to the form and set its "align" on "alClient"
  • add a TImageList (common controls component palette) to the form
  • upload an image in the ImageList:
    • right-click the ImageList1 and select the ImageList Editor... from the pop-up menu
    • Click on add and select an image (preferably a small icon 16 x 16 for example, Lazarus/images/icons/lazarus16x16)
    • finish your selection with OK
  • Choose your PaintBox, in the object inspector under events, create the event handler for the event OnPaint and write following code:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
  ImageList1.Draw(
    Paintbox1.Canvas,
    sbHori.Position * (PaintBox1.ClientWidth  - ImageList1.Width)  div sbHori.Max,
    sbVert.Position * (Paintbox1.ClientHeight - ImageList1.Height) div sbVert.Max,
    0);
end; 
</source>
* Now let any change of the scrollbar positions repaint the form: create the event handler ''OnChange'' for a scrollbar and also call this for the other scrollbar:
<source>
procedure TForm1.sbVertChange(Sender: TObject);
begin
  RePaint;
end;

Your little program could look like:

ScrollBarExample.png

See also


LCL Components
Component Tab Components
Standard TMainMenu • TPopupMenu • TButton • TLabel • TEdit • TMemo • TToggleBox • TCheckBox • TRadioButton • TListBox • TComboBox • TScrollBar • TGroupBox • TRadioGroup • TCheckGroup • TPanel • TFrame • TActionList
Additional TBitBtn • TSpeedButton • TStaticText • TImage • TShape • TBevel • TPaintBox • TNotebook • TLabeledEdit • TSplitter • TTrayIcon • TControlBar • TFlowPanel • TMaskEdit • TCheckListBox • TScrollBox • TApplicationProperties • TStringGrid • TDrawGrid • TPairSplitter • TColorBox • TColorListBox • TValueListEditor
Common Controls TTrackBar • TProgressBar • TTreeView • TListView • TStatusBar • TToolBar • TCoolBar • TUpDown • TPageControl • TTabControl • THeaderControl • TImageList • TPopupNotifier • TDateTimePicker
Dialogs TOpenDialog • TSaveDialog • TSelectDirectoryDialog • TColorDialog • TFontDialog • TFindDialog • TReplaceDialog • TTaskDialog • TOpenPictureDialog • TSavePictureDialog • TCalendarDialog • TCalculatorDialog • TPrinterSetupDialog • TPrintDialog • TPageSetupDialog
Data Controls TDBNavigator • TDBText • TDBEdit • TDBMemo • TDBImage • TDBListBox • TDBLookupListBox • TDBComboBox • TDBLookupComboBox • TDBCheckBox • TDBRadioGroup • TDBCalendar • TDBGroupBox • TDBGrid • TDBDateTimePicker
Data Access TDataSource • TCSVDataSet • TSdfDataSet • TBufDataset • TFixedFormatDataSet • TDbf • TMemDataset
System TTimer • TIdleTimer • TLazComponentQueue • THTMLHelpDatabase • THTMLBrowserHelpViewer • TAsyncProcess • TProcessUTF8 • TProcess • TSimpleIPCClient • TSimpleIPCServer • TXMLConfig • TEventLog • TServiceManager • TCHMHelpDatabase • TLHelpConnector
Misc TColorButton • TSpinEdit • TFloatSpinEdit • TArrow • TCalendar • TEditButton • TFileNameEdit • TDirectoryEdit • TDateEdit • TTimeEdit • TCalcEdit • TFileListBox • TFilterComboBox • TComboBoxEx • TCheckComboBox • TButtonPanel • TShellTreeView • TShellListView • TXMLPropStorage • TINIPropStorage • TJSONPropStorage • TIDEDialogLayoutStorage • TMRUManager • TStrHolder
LazControls TCheckBoxThemed • TDividerBevel • TExtendedNotebook • TListFilterEdit • TListViewFilterEdit • TLvlGraphControl • TShortPathEdit • TSpinEditEx • TFloatSpinEditEx • TTreeFilterEdit • TExtendedTabControl •
RTTI TTIEdit • TTIComboBox • TTIButton • TTICheckBox • TTILabel • TTIGroupBox • TTIRadioGroup • TTICheckGroup • TTICheckListBox • TTIListBox • TTIMemo • TTICalendar • TTIImage • TTIFloatSpinEdit • TTISpinEdit • TTITrackBar • TTIProgressBar • TTIMaskEdit • TTIColorButton • TMultiPropertyLink • TTIPropertyGrid • TTIGrid
SQLdb TSQLQuery • TSQLTransaction • TSQLScript • TSQLConnector • TMSSQLConnection • TSybaseConnection • TPQConnection • TPQTEventMonitor • TOracleConnection • TODBCConnection • TMySQL40Connection • TMySQL41Connection • TMySQL50Connection • TMySQL51Connection • TMySQL55Connection • TMySQL56Connection • TMySQL57Connection • TSQLite3Connection • TIBConnection • TFBAdmin • TFBEventMonitor • TSQLDBLibraryLoader
Pascal Script TPSScript • TPSScriptDebugger • TPSDllPlugin • TPSImport_Classes • TPSImport_DateUtils • TPSImport_ComObj • TPSImport_DB • TPSImport_Forms • TPSImport_Controls • TPSImport_StdCtrls • TPSCustomPlugin
SynEdit TSynEdit • TSynCompletion • TSynAutoComplete • TSynMacroRecorder • TSynExporterHTML • TSynPluginSyncroEdit • TSynPasSyn • TSynFreePascalSyn • TSynCppSyn • TSynJavaSyn • TSynPerlSyn • TSynHTMLSyn • TSynXMLSyn • TSynLFMSyn • TSynDiffSyn • TSynUNIXShellScriptSyn • TSynCssSyn • TSynPHPSyn • TSynTeXSyn • TSynSQLSyn • TSynPythonSyn • TSynVBSyn • TSynAnySyn • TSynMultiSyn • TSynBatSyn • TSynIniSyn • TSynPoSyn
Chart TChart • TListChartSource • TRandomChartSource • TUserDefinedChartSource • TCalculatedChartSource • TDbChartSource • TChartToolset • TChartAxisTransformations • TChartStyles • TChartLegendPanel • TChartNavScrollBar • TChartNavPanel • TIntervalChartSource • TDateTimeIntervalChartSource • TChartListBox • TChartExtentLink • TChartImageList
IPro TIpFileDataProvider • TIpHtmlDataProvider • TIpHttpDataProvider • TIpHtmlPanel
Virtual Controls TVirtualDrawTree • TVirtualStringTree • TVTHeaderPopupMenu