Difference between revisions of "TScrollBar"

From Free Pascal wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{TScrollBar}}
 
{{TScrollBar}}
  
>> [[LCL Components]] >> TScrollBar<br/>
+
A '''TScrollBar''' [[image:tscrollbar.png]] is a control that allows the user to scroll the content of an associated control by moving an slider.
  
This page explains how to use the [[doc:lcl/stdctrls/tscrollbar.html|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.
+
==Usage==
  
==Description==
+
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.
 
 
A control that allows the user to scroll the content of an associated control by moving an slider.
 
 
 
[[image:Comp_Standard_TScrollBar.png]]
 
 
 
==Usage==
 
  
To use a [[doc:lcl/stdctrls/tscrollbar.html|TScrollBar]] on a [[TForm|form]], you can simply select it on the ''Standard'' component pallet and place it by clicking on the form.<br>
+
==Small example==
  
====Small example====
 
 
Move an image on your form depending on the scrollbar positions
 
Move an image on your form depending on the scrollbar positions
  
 
* place two TScrollBars on your form
 
* place two TScrollBars on your form
* in the object Inspector change the first scrollbar properties "Name" in "sbVert", "Child" in "sbVertical" and "Align" in "alRight"
+
* 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"
 
* 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 [[TPaintBox]] (additional component palette) to the form and set its "align" on "alClient"
Line 28: Line 21:
 
** finish your selection with ''OK''
 
** 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:
 
* Choose your PaintBox, in the object inspector under events, create the event handler for the event ''OnPaint'' and write following code:
<source>
+
 
 +
<syntaxhighlight lang=pascal>
 
procedure TForm1.PaintBox1Paint(Sender: TObject);
 
procedure TForm1.PaintBox1Paint(Sender: TObject);
 
begin
 
begin
Line 44: Line 38:
 
   RePaint;
 
   RePaint;
 
end;  
 
end;  
</source>
+
</syntaxhighlight>
 +
 
 
Your little program could look like:
 
Your little program could look like:
  
Line 51: Line 46:
 
==See also==
 
==See also==
  
[[TTrackBar]]<br>
+
* [[doc:lcl/stdctrls/tscrollbar.html|TScrollBar doc]]
[[TScrollBox]]
+
* [[TTrackBar]]
 +
* [[TScrollBox]]
  
{{LCL Components Footer |TComboBox|TGroupBox}}
 
 
{{LCL Components}}
 
{{LCL Components}}
 
[[Category:LCL]]
 
[[Category:Components]]
 
--[[User:Michl|Michl]] 12:50, 12 June 2014 (CEST)
 

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