Difference between revisions of "LCL Components"

From Free Pascal wiki
Jump to navigationJump to search
(→‎Data Controls tab: More compact view of the components on the Data Controls palette)
(25 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{LCL Components Langs}}
 
{{LCL Components Langs}}
 
Please choose the component about which you would like to know more:
 
Please choose the component about which you would like to know more:
 +
 +
==[[Forms]]==
 +
(See also the [https://lazarus-ccr.sourceforge.io/docs/lcl/forms/tform.html StdCtrls unit Online Docs])
 +
<center>[[Image:l-ide-1.png]]</center>
 +
 +
By default Form1 is added to the project when a new graphical application is created. Additional forms may be added to the project by clicking on the 'New Form' button on tool bar or selecting 'New Form' from the file menu.
 +
 +
* [[TForm]]
  
 
==[[Standard tab]]==
 
==[[Standard tab]]==
 
(See also the [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/index-4.html StdCtrls unit Online Docs])
 
(See also the [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/index-4.html StdCtrls unit Online Docs])
<center>[[Image:Component_Palette_Standard.png|size="100%"]]</center>
+
<center>[[Image:Component_Palette_Standard.png]]</center>
  
 
* Pointer (used to indicate you are not selecting a component)
 
* Pointer (used to indicate you are not selecting a component)
Line 22: Line 30:
 
<center>[[Image:Component_Palette_Common_Controls.png]]</center>
 
<center>[[Image:Component_Palette_Common_Controls.png]]</center>
 
*Components installed by default as part of the LCL:
 
*Components installed by default as part of the LCL:
**[[TTrackBar]], [[TProgressBar]], [[TTreeView]], [[TListView]], [[TStatusBar]], [[TToolBar]], [[TUpDown]], [[TPageControl]], [[TTabControl]], [[THeaderControl]], [[TImageList]], [[TPopupNotifier|wiki]]
+
**[[TTrackBar]], [[TProgressBar]], [[TTreeView]], [[TListView]], [[TStatusBar]], [[TToolBar]], [[TUpDown]], [[TPageControl]], [[TTabControl]], [[THeaderControl]], [[TImageList]], [[TPopupNotifier]]
  
 
*Controls which are not part of the LCL, but install in this tab:
 
*Controls which are not part of the LCL, but install in this tab:
Line 33: Line 41:
 
==[[Dialogs tab]]==
 
==[[Dialogs tab]]==
 
(See also the [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/index-4.html Dialogs unit Online Docs])
 
(See also the [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/index-4.html Dialogs unit Online Docs])
<center>[[Image:Component_Palette_Dialogs.png|size="100%"]]</center>
+
<center>[[Image:Component_Palette_Dialogs.png]]</center>
  
 
* Components installed by default as part of the LCL:
 
* Components installed by default as part of the LCL:
** [[TOpenDialog]], [[TSaveDialog]], [[TSelectDirectoryDialog]],[[TColorDialog]], [[TFontDialog]], [[TFindDialog]], [[TReplaceDialog]], [[TOpenPictureDialog]], [[TSavePictureDialog]], [[TCalendarDialog]], [[TCalculatorDialog]], [[TPrinterSetupDialog]], [[TPrintDialog]], [[TPageSetupDialog]], [[TTaskDialog]]
+
** [[TOpenDialog]], [[TSaveDialog]], [[TSelectDirectoryDialog]],[[TColorDialog]], [[TFontDialog]], [[TFindDialog]], [[TReplaceDialog]], [[TTaskDialog]], [[TOpenPictureDialog]], [[TSavePictureDialog]], [[TCalendarDialog]], [[TCalculatorDialog]], [[TPrinterSetupDialog]], [[TPrintDialog]], [[TPageSetupDialog]]
  
 
*Several useful '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples Dialog]'''  procedures or functions don't appear on the palette, but are easily used as direct calls from your source program.
 
*Several useful '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples Dialog]'''  procedures or functions don't appear on the palette, but are easily used as direct calls from your source program.
  
==[[Misc tab]]==  
+
==[[Data Controls tab]]==  
<center>[[Image:Component_Palette_Misc.png|size="100%"]]</center>
+
Data-aware components, which largely replicate the Standard and Additional groups but are applicable to databases:
* Components installed by default as part of the LCL:
 
** [[TColorButton]], [[TSpinEdit]], [[TFloatSpinEdit]], [[TArrow]], [[TCalendar]], [[TEditButton]], [[TFileNameEdit]], [[TDirectoryEdit]], [[TDateEdit]], [[TCalcEdit]], [[TFileListBox]], [[TButtonPanel]], [[TShellTreeView]], [[TShellListView]], [[TXMLPropStorate]], [[TIniPropStorage]], [[TJsonPropStorage]], TIDEDialogLayoutStorage
 
  
==[[Data Controls tab]]==
 
 
(See also the [http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/index-4.html DBCtrls unit Online Docs])
 
(See also the [http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/index-4.html DBCtrls unit Online Docs])
 
<center>[[Image:Component_Palette_Data Controls.png]]</center>
 
<center>[[Image:Component_Palette_Data Controls.png]]</center>
Data-aware components, which largely replicate the Standard and Additional groups but are applicable to Databases:
 
 
* Components installed by default as part of the LCL:
 
* Components installed by default as part of the LCL:
** [[TDBNavigator]], [[TDBText]], [[TDBEdit]], [[TDBMemo]], [[TDBImage]], [[TDBListBox]], [[TDBComboBox]], [[TDBLookupCombobox]], [[TDBCheckBox]], [[TDBRadiogroup]], [[TDBCalendar]], [[TDBGroupBox]], [[TDBGrid]]
+
** [[TDBNavigator]], [[TDBText]], [[TDBEdit]], [[TDBMemo]], [[TDBImage]], [[TDBListBox]], [[TDBLookupListBox]], [[TDBComboBox]], [[TDBLookupComboBox]], [[TDBCheckBox]], [[TDBRadioGroup]], [[TDBCalendar]], [[TDBGroupBox]], [[TDBGrid]]
  
 
* Also on this tab:
 
* Also on this tab:
Line 56: Line 60:
  
 
==[[Data Access tab]]==
 
==[[Data Access tab]]==
 +
Tha palette '''Data Access''' contains components for access to local and in-memory database tables.
 
<center>[[Image:Component_Palette_Data Access.png]]</center>
 
<center>[[Image:Component_Palette_Data Access.png]]</center>
{| class="wikitable" cell-padding="10"
+
* Components installed by default
! style="width:150px"|Component || style="width:100px"|Usage            || style="width:100px"|Online Docs
+
** [[TDataSource]], [[TBufDataset]], [[TCSVDataSet]], [[TSdfDataSet]], [[TFixedFormatDataSet]], [[TDbf]], [[TParadox]], [[TMemDataset]]
|-
+
* Also on this page:
|| TDataSource || [[TDataSource|wiki]] ||
+
** TSqliteDataset, TSqliteDataset
|-
 
|| TBufDataset || [[TBufDataset|wiki]] ||
 
|-
 
|| TSdfDataset || [[TSdfDataSet|wiki]] ||
 
|-
 
|| TCSVDataset || [[TCSVDataset|wiki]] ||
 
|-
 
|| TFixedFormatDataset || [[TFixedFormatDataSet|wiki]] ||
 
|-
 
|| TDbf || [[TDbf|wiki]] ||
 
|-
 
|| TParadox || [[TParadox|wiki]] ||
 
|-
 
|| TMemDataset || [[TMemDataset|wiki]] ||
 
|-
 
|}
 
  
 
==[[System tab]]==
 
==[[System tab]]==
 
<center>[[Image:Component_Palette_System.png]]</center>
 
<center>[[Image:Component_Palette_System.png]]</center>
{| class="wikitable" cell-padding="10"
 
! style="width:150px"|Component || style="width:100px"|Usage            || style="width:100px"|Online Docs
 
|-
 
|| TTimer || [[TTimer|wiki]] || [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/ttimer.html Link]
 
|-
 
|| TIdleTimer || [[TIdleTimer|wiki]] || [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tidletimer.html Link]
 
|-
 
|| TLazComponentQueue || [[TLazComponentQueue|wiki]] || [http://lazarus-ccr.sourceforge.net/docs/lcl/lresources/tlazcomponentqueue.html Link]
 
|-
 
|| THtmlHelpDatabase || [[THtmlHelpDatabase|wiki]] || [http://lazarus-ccr.sourceforge.net/docs/lcl/lazhelphtml/thtmlhelpdatabase.html Link]
 
|-
 
|| THtmlBrowerHelpViewer || [[THtmlHelpBrowserHelpViewer|wiki]] || [http://lazarus-ccr.sourceforge.net/docs/lcl/lazhelphtml/thtmlbrowserhelpviewer.html Link]
 
|-
 
|| TProcessUTF8 || [[TProcessUTF8|wiki]] || [http://lazarus-ccr.sourceforge.net/docs/lcl/asyncprocess/tprocessutf8.html Link]
 
|-
 
|| TAsyncProcess || [[TAsyncProcess|wiki]] || [http://lazarus-ccr.sourceforge.net/docs/lcl/asyncprocess/tasyncprocess.html Link]
 
|-
 
|| TProcess || [[TProcess|wiki]] || [[doc:fcl/process/tprocess.html|Link]]
 
|-
 
|| TSimpleIPCClient || [[TSimpleIPCClient|wiki]] ||
 
|-
 
|| TSimpleICCServer || [[TSimpleIPCServer|wiki]] ||
 
|-
 
|| TXMLConfig || [[TXMLConfig|wiki]] ||
 
|-
 
|| TEventLog || [[TEventLog|wiki]] ||
 
|}
 
Also on this tab:
 
* [[TCHMHelpDatabase]] and [[TLHelpConnector]], included in Lazarus and installed automatically with make bigide
 
  
== [[SynEdit]] ==
+
* Components installed by default:
 +
** [[TTimer]], [[TIdleTimer]], [[TLazComponentQueue]], [[THTMLHelpDatabase]], [[THTMLBrowserHelpViewer]], [[TAsyncProcess]], [[TProcessUTF8]], [[TProcess|wiki]], [[TSimpleIPCClient]], [[TSimpleIPCServer]], [[TXMLConfig]], [[TEventLog]]
 +
* Also on this tab:
 +
** [[TCHMHelpDatabase]] and [[TLHelpConnector]], included in Lazarus and installed automatically with make bigide
 +
 
 +
==[[SQLdb_tab|SQLdb tab]]==
 +
Non-visible components for access to "large" database systems.
 +
 
 +
<center>[[Image:Component_Palette_SQLdb.png]]</center>
 +
 
 +
* Installed components:
 +
** [[TSQLQuery]], [[TSQLTransaction]], [[TSQLScript]], [[TSQLConnector]], [[TMSSQLConnection]], [[TSybaseConnection]], [[TPQConnection]], [[TPQTEventMonitor]], [[TOracleConnection]], [[TODBCConnection]],  [[TMySQL50Connection]], [[TMySQL51Connection]], [[TMySQL55Connection]], [[TMySQL56Connection]], [[TMySQL57Connection]], [[TSQLite3Connection]], [[TIBConnection]], [[TFBAdmin]], [[TFBEventMonitor]], [[TSQLDBLibraryLoader]]
 +
* No longer installed by default in 1.8.4.
 +
** [[TMySQL40Connection]], [[TMySQL41Connection]]
 +
 
 +
==[[Misc tab]]==
 +
<center>[[Image:Component_Palette_Misc.png]]</center>
 +
* Components installed by default:
 +
** [[TColorButton]], [[TSpinEdit]], [[TFloatSpinEdit]], [[TArrow]], [[TCalendar]], [[TEditButton]], [[TFileNameEdit]], [[TDirectoryEdit]], [[TDateEdit]], [[TCalcEdit]], [[TFileListBox]], [[TButtonPanel]], [[TShellTreeView]], [[TShellListView]], [[TXMLPropStorate]], [[TIniPropStorage]], [[TJsonPropStorage]], TIDEDialogLayoutStorage
 +
 
 +
==[[LazControls tab]]==
 +
The '''LazControls tab''' lists various (non related) Lazarus-specific components. They are needed by the IDE but can be used also by other projects.
 +
 
 +
<center>[[Image:Component_Palette_LazControls.png]]</center>
 +
 
 +
* Components installed:
 +
** [[TCheckBoxThemed]], [[TDividerBevel]], [[TExtendedNotebook]], [[LazControls#TListFilterEdit|TListFilterEdit]], [[LazControls#TListViewFilterEdit|TListViewFilterEdit]], [http://www.pp4s.co.uk/main/tu-form-level-graph.html TLvlGraphControl], [[TShortPathEdit]], [[TSpinEditEx]], [[TFloatSpinEditEx]], [[LazControls#TTreeFilterEdit|TTreeFilterEdit]], [[TExtendedTabControl]]
 +
 
 +
==[[RTTI tab]]==
 +
Specialized components for use with [[RTTI controls|runtime type information]].
 +
 
 +
<center>[[Image:Component Palette RTTI.png]]</center>
 +
 
 +
* Installed components:
 +
** [[TTIEdit]], [[TTIComboBox]], [[TTIButton]],[[TTICheckBox]], [[TTILabel]], [[TTIGroupBox]], [[TTIRadioGroup]], [[TTICheckGroup]], [[TTICheckListBox]], [[TTIListBox]], [[TTIMemo]], [[TTICalendar]], [[TTIImage]],[[TTIFloatSpinEdit]], [[TTISpinEdit]], [[TTITrackBar]], [[TTIProgressBar]], [[TTIMaskEdit]], [[TTIColorButton]], [[TMultiPropertyLink]], [[TTIPropertyGrid]], [[TTIGrid]]
 +
 
 +
== [[SynEdit_tab|SynEdit tab]] ==
 +
SynEdit is an advanced multi-line edit control, which is integrated into the Lazarus. It is the code editor of the Lazarus IDE and is available in the directory "lazarus/components/synedit". It supports Syntax Highlighting, code completion, code folding and includes exporters for html, tex and rtf. It is a fully custom drawn component, meaning that it doesn't wrap native controls of each platform and that no external library is required; this make SynEdit a crossplatform component. Note that the SynEdit available with Lazarus is a fork of the original SynEdit for Borland Delphi, Kylix  and C++Builder which can be found in [http://synedit.sourceforge.net synedit at sourceforge]
 +
 
 
<center>[[Image:Component_Palette_SynEdit.png]]</center>
 
<center>[[Image:Component_Palette_SynEdit.png]]</center>
SynEdit is an advanced multi-line edit control, which is integrated into the Lazarus. It is the code editor of the Lazarus IDE and is available in the directory "lazarus/components/synedit". It supports Syntax Highlighting, code completion, code folding and includes exporters for html, tex and rtf. It is a fully custom drawn component, meaning that it doesn't wrap native controls of each platform and that no external library is required; this make SynEdit a crossplatform component. Note that the SynEdit available with Lazarus is a fork of the original SynEdit for Borland Delphi, Kylix  and C++Builder which can be found in [http://synedit.sourceforge.net synedit at sourceforge]
 
  
{| class="wikitable" cell-padding="10"
+
* Components installed by default:
! style="width:180px"|Component || style="width:100px"|Usage            || style="width:100px"|Online Docs
+
** [[TSynEdit]], [[TSynCompletion]], [[TSynAutoComplete]], [[TSynMacroRecorder]], [[TSynExporterHTML]], [[TSynPluginSyncroEdit]], [[TSynPasSyn]], [[TSynFreePascalSyn]], [[TSynCppSyn]], [[TSynJavaSyn]], [[TSynJSSyn]], [[TSynPerlSyn]], [[TSynHTMLSyn]], [[TSynXMLSyn]], [[TSynLFMSyn]], [[TSSynDiffSyn]], [[TSynUNIXShellScriptSyn]], [[TSynCssSyn]], [[TSynPHPSyn]], [[TSynTeXSyn]], [[TSynSQLSyn]], [[TSynPythonSyn]], [[TSynVBSyn]], [[TSynAnySyn]], [[TSynMultiSyn]], [[TSynBatSyn]], [[TSynIniSyn]], [[TSynPoSyn]]
|-
+
** Additional highlighters are available on https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/extrasyn/. This package can also be installed via [[Online_Package_Manager|Online package manager]]. They are collected in a separate palette '''SynEdit Highlighters'''.
|| TSynEdit || [[TSynEdit|wiki]] ||
+
 
|-
+
== [[Chart_tab|Chart tab]] ==
|| TSynAutoComplete || [[TSynAutoComplete|wiki]] ||
+
The '''Chart tab''' lists components for use with graphs and charts from the [[TAChart]] package. They are not part of the LCL, but most of them are installed by default.
|-
+
 
|| TSynExporterHTML || [[TSynExporterHTML|wiki]] ||
+
<center>[[Image:Component_Palette_Chart.png]]</center>
|-
+
 
|| TSynMacroRecorder || [[TSynMacroRecorder|wiki]] ||
+
* Components installed by default
|-
+
** [[TChart]], [[TAChart_documentation#List_source|TListChartSource]], [[TAChart_documentation#Random_source|TRandomChartSource]], ,[[TAChart_documentation#User-defined_source|TUserDefinedChartSource]], [[TAChart_documentation#Calculated_source|TCalculatedChartSource]], [[TAChart_documentation#Database_source|TDbChartSource]], [[TAChart_documentation#Tools|TChartToolset]], [[TAChart_documentation#Axis_transformations|TChartAxisTransformations]], [[TAChart_documentation#ChartStyles|TChartStyles]], [[TAChart_documentation#Legend_panel|TChartLegendPanel]], [[TAChart_documentation#Scroll_bars|TChartNavScrollBar]], [[TAChart_documentation#Navigation_panel|TChartNavPanel]], [[TAChart_documentation#Interval_source|TIntervalChartSource]], [[TAChart_documentation#Date-time_interval_source|TDateTimeIntervalChartSource]], [[TAChart_documentation#Chart_listbox|TChartListBox]], [[TAChart_documentation#Linked_extents|TChartExtentLink]], [[TAChart_documentation#Chart_image_list|TChartImageList]], [[TAChart_documentation#Chart_image_list|TChartCombobox]],
|| TSynMemo || [[TSynMemo|wiki]] ||
+
* Components installed only if other packages are available:
|-
+
**[[TAChart_documentation#AggPas_drawer|TChartGUIConnectorAggPas]], [[TAChart_documentation#BGRABitmap_drawer|TChartGUIConnectorBGRA]]
|| TSynPasSyn || [[TSynPasSyn|wiki]] ||
+
 
|-
+
== [[IPro_tab|iPro tab]] ==
|| TSynFreePascalSyn || [[TSynFreePascalSyn|wiki]] ||
+
The '''IPro''' palette lists components related to display of html pages. They do not belong to the IDE but are needed by the IDE to show the html-formatted popup coding hints and the chm help files.
|-
+
 
|| TSynCppSyn || [[TSynCppSyn|wiki]] ||
+
<center>[[Image:Component_Palette_IPro.png]]</center>
|-
 
|| TSynJavaSyn || [[TSynJavaSyn|wiki]] ||
 
|-
 
|| TSynPerlSyn || [[TSynPerlSyn|wiki]] ||
 
|-
 
|| TSynHTMLSyn || [[TSynHTMLSyn|wiki]] ||
 
|-
 
|| TSynXMLSyn || [[TSynXMLSyn|wiki]] ||
 
|-
 
|| TSynLFMSyn || [[TSynLFMSyn|wiki]] ||
 
|-
 
|| TSynUNIXShellScriptSyn || [[TSynUNIXShellScriptSyn|wiki]] ||
 
|-
 
|| TSynCssSyn || [[TSynCssSyn|wiki]] ||
 
|-
 
|| TSynPHPSyn || [[TSynPHPSyn|wiki]] ||
 
|-
 
|| TSynTeXSyn || [[TSynTeXSyn|wiki]] ||
 
|-
 
|| TSynSSQLSyn || [[TSynSQLSyn|wiki]] ||
 
|-
 
|| TSynPythonSyn || [[TSynPythonSyn|wiki]] ||
 
|-
 
|| TSynVBSyn || [[TSynVBSyn|wiki]] ||
 
|-
 
|| TSynAnySyn || [[TSynAnySyn|wiki]] ||
 
|-
 
|| TSynMultiSyn || [[TSynMultiSyn|wiki]] ||
 
|}
 
  
[[Category:Components]]
+
* Components installed:
[[Category:Lazarus]]
+
** [[TIpFileDataProvider]], [[TIpHtmlDataProvider]], [[TIpHttpDataProvider]], [[TIpHtmlPanel]]
[[Category:LCL]]
 

Revision as of 14:04, 8 October 2020

English (en) 日本語 (ja) русский (ru) 中文(中国大陆)‎ (zh_CN)
Please choose the component about which you would like to know more:

Forms

(See also the StdCtrls unit Online Docs)

l-ide-1.png

By default Form1 is added to the project when a new graphical application is created. Additional forms may be added to the project by clicking on the 'New Form' button on tool bar or selecting 'New Form' from the file menu.

Standard tab

(See also the StdCtrls unit Online Docs)

Component Palette Standard.png
  • Pointer (used to indicate you are not selecting a component)

Additional tab

(See also the ExtCtrls unit Online Docs)

Component Palette Additional.png

Common Controls tab

(See also the ComCtrls unit Online Docs)

Component Palette Common Controls.png
  • Controls which are not part of the LCL, but install in this tab:
    • TRichMemo
    • TDateTimePicker (included in Lazarus and installed automatically with make bigide, but not officially part of LCL)

Dialogs tab

(See also the Dialogs unit Online Docs)

Component Palette Dialogs.png
  • Several useful Dialog procedures or functions don't appear on the palette, but are easily used as direct calls from your source program.

Data Controls tab

Data-aware components, which largely replicate the Standard and Additional groups but are applicable to databases:

(See also the DBCtrls unit Online Docs)

Component Palette Data Controls.png
  • Also on this tab:
    • TDBDateTimePicker, which is included in Lazarus and installed automatically with make bigide, but not officially part of LCL.

Data Access tab

Tha palette Data Access contains components for access to local and in-memory database tables.

Component Palette Data Access.png

System tab

Component Palette System.png

SQLdb tab

Non-visible components for access to "large" database systems.

Component Palette SQLdb.png

Misc tab

Component Palette Misc.png

LazControls tab

The LazControls tab lists various (non related) Lazarus-specific components. They are needed by the IDE but can be used also by other projects.

Component Palette LazControls.png

RTTI tab

Specialized components for use with runtime type information.

Component Palette RTTI.png

SynEdit tab

SynEdit is an advanced multi-line edit control, which is integrated into the Lazarus. It is the code editor of the Lazarus IDE and is available in the directory "lazarus/components/synedit". It supports Syntax Highlighting, code completion, code folding and includes exporters for html, tex and rtf. It is a fully custom drawn component, meaning that it doesn't wrap native controls of each platform and that no external library is required; this make SynEdit a crossplatform component. Note that the SynEdit available with Lazarus is a fork of the original SynEdit for Borland Delphi, Kylix and C++Builder which can be found in synedit at sourceforge

Component Palette SynEdit.png

Chart tab

The Chart tab lists components for use with graphs and charts from the TAChart package. They are not part of the LCL, but most of them are installed by default.

Component Palette Chart.png

iPro tab

The IPro palette lists components related to display of html pages. They do not belong to the IDE but are needed by the IDE to show the html-formatted popup coding hints and the chm help files.

Component Palette IPro.png