Sign in Join
Wiki copytemporary

NiceSideBar: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-<figure>
2-<img src="nicesidebar.png" title="nicesidebar.png" />
3-<figcaption>nicesidebar.png</figcaption>
4-</figure>
1+![](/wiki-images/7/75/Nicesidebar.png)
52
63The following text is based on the *readme.html* file which is included in the *NiceSideBar* installation directory. It is written by the original author of the component, Priyatna. The text was also published on the author's web site which, however, is not available any more.
74
85## Introduction
96
107**NiceSideBar** is a visual component for Delphi and for Lazarus which can be used as a menu. It mimics a side menu usually used in web sites. It has a flat design and is highly customizable. It supports two menu levels (menu and sub menu). Each menu can have a glyph that is supplied by an image list. It has hover state effect too.
118
129## Version History
1310
1411### Version 2.0
1512
1613Released: June 2023
1714
1815- Lazarus support
1916- Cross-platform: Win32/64, Linux (gtk2, gtk3, qt, qt5, qt6), macOS (cocoa)
2017- High-dpi support in the Lazarus version
2118
2219### Version 1.2
2320
2421Released: January 12, 2008
2522
2623- Added properties to items and subitems: Enabled, Visible, ItemEnabled, ItemVisible
2724- Added properties: disabled colors, disabled images
2825- Keyboard control: PgUp, PgDown, Up and Down arrows
2926- Reported bugs fixed
3027
3128### Version 1.1
3229
3330Released: June 28, 2007
3431
3532- Reported bugs fixed
3633
3734### Version 1.0
3835
3936Released: May 26th, 2007
4037
4138- Initial Release
4239
4340## License
4441
4542This library is released under **Mozilla Public License**. You can use it in your freeware, shareware or commercial softwares. You can send your modification to me, and if I decide to include it in the main distribution, I will add your name as a contributor. You can read full licensing information in the file *License.txt* in the *NiceSideBar* installation folder.
4643
4744## Download and installation
4845
4946The easiest way for Lazarus users is to get the package from the [[Online Package Manager]] (OPM) which is installed with newer Lazarus versions. Simply open its menu item, check "NiceSideBar" in the tree list, and click "Install". Then OPM will take care of the download and the installation.
5047
5148Since the OPM version may not always be up-to-date, you can also download the development version from the "Lazarus Component and Code Repository" (CCR) where a zipped snapshot is provided (https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/nicegrid/). Alternatively, if you use SVN you can use the following SVN command in a console window:
5249
5350`svn checkout `[`svn://svn.code.sf.net/p/lazarus-ccr/svn/components/nicesidebar`](svn://svn.code.sf.net/p/lazarus-ccr/svn/components/nicesidebar)` nicesidebar`
5451
5552This applies also for Delphi users.
5653
5754In **Lazarus**, open the *nicesidebarlaz.lpk* file in the package editor ("Package" \> "Open Package File (.lpk)"), click "Use" \> "Install", and let the IDE recompile itself.
5855
5956In **Delphi**, open *NiceSideBarD7.dpk* in the IDE and press the *Install* button. Another package is provided in the download for newer Delphi versions, named *NiceSideBarXE11*; although tested under Delphi XE11 (Alexandria) it should work in other Delphi versions as well.
6057
6158The component will appear on the **priyatna.org** component palette tab.
6259
6360## Documentation
6461
6562### Methods
6663
6764Here are some main methods of the component:
6865
69-- <b>`procedure`</b>` BeginUpdate;`
66+- `procedure`` BeginUpdate;`
7067
7168
7269Call this method to temporarily prevent the control from updating its content. This is useful when you want to add bulky items to the control.
7370
74-- <b>`procedure`</b>` EndUpdate;`
71+- `procedure`` EndUpdate;`
7572
7673
7774This method is used to re-enable update after calling BeginUpdate. You must call BeginUpdate prior to call this method.
7875
7976### Properties
8077
8178These are some main properties of the component:
8279
83-- <b>`property`</b>` Items: TSideBarItems;`
80+- `property`` Items: TSideBarItems;`
8481
8582
8683A collection of items. Each item usually has sub-items. You can associate item with a menu group. Each item can have a glyph supplied from an image list, while sub-items use bullets.
8784
88-- <b>`property`</b>` ItemIndex`</b>`: Integer;`
85+- `property`` ItemIndex``: Integer;`
8986
9087
9188Specifies which item currently is selected.
9289
93-- <b>`property`</b>` SubItemIndex: Integer;`
90+- `property`` SubItemIndex: Integer;`
9491
9592
9693Specifies which sub-item currently is selected.
9794
98-- <b>`property`</b>` ItemStyle: TSideBarItemStyle;`
95+- `property`` ItemStyle: TSideBarItemStyle;`
9996
10097
10198This is where you can customize an item: normal state font and color, selected state font and color, hover state font and color, and also line color.
10299
103-- <b>`property`</b>` SubItemStyle: TSideBarItemStyle;`
100+- `property`` SubItemStyle: TSideBarItemStyle;`
104101
105102
106103This is where you can customize sub-items: normal state font and color, selected state font and color, hover state font and color, and also line color.
107104
108-- <b>`property`</b>` Bullets: TSideBarBulletStyle;`
105+- `property`` Bullets: TSideBarBulletStyle;`
109106
110107
111108This is where you can customize bullets: visibility, normal hover and selected state colors, outline colors and size. Currently it has three bullet style: round, rectangle and diamond.
112109
113-- <b>`property`</b>` Scrollers: TSideBarScrollerStyle;`
110+- `property`` Scrollers: TSideBarScrollerStyle;`
114111
115112
116113This is where you can customize the scroller arrow: normal, hover and selected colors and outline colors.
117114
118-- <b>`property`</b>` ItemHeight: Integer;`
115+- `property`` ItemHeight: Integer;`
119116
120117
121118Specifies the item height in pixels.
122119
123-- <b>`property`</b>` SubItemHeight: Integer;`
120+- `property`` SubItemHeight: Integer;`
124121
125122
126123Specifies the height of sub-items in pixels.
127124
128-- <b>`property`</b>` Alignment: TSideBarAlign;`
125+- `property`` Alignment: TSideBarAlign;`
129126
130127
131128Specifies alignment of the item caption: left, right or centered.
132129
133-- <b>`property`</b>` Margin: Integer;`
130+- `property`` Margin: Integer;`
134131
135132
136133Specifies the margin, in pixels.
137134
138-- <b>`property`</b>` GroupSeparator: Integer;`
135+- `property`` GroupSeparator: Integer;`
139136
140137
141138Specifies the vertical margin between groups (items), in pixels.
142139
143-- <b>`property`</b>` Indent: Integer;`
140+- `property`` Indent: Integer;`
144141
145142
146143Specifies the amount of indentation of sub-items, in pixels.
147144
148-- <b>`property`</b>` AlwaysExpand: Boolean;`
145+- `property`` AlwaysExpand: Boolean;`
149146
150147
151148Set to `true` if you want the control to always expands its sub-items.
152149
153-- <b>`property`</b>` Images: TImageList;`
150+- `property`` Images: TImageList;`
154151
155152
156153Specifies the image list to use for items.
157154
158-- <b>`property`</b>` HoverImages: TImageList;`
155+- `property`` HoverImages: TImageList;`
159156
160157
161158Specifies an image list to use for items when in hover mode.
162159
163-- <b>`property`</b>` SelectedImages: TImageList;`
160+- `property`` SelectedImages: TImageList;`
164161
165162
166163Specifies an image list to use for items when in selected mode.
167164
168-- <b>`property`</b>` HandPointCursor: Boolean;`
165+- `property`` HandPointCursor: Boolean;`
169166
170167
171168Set to `true` to use a handpoint cursor instead the default one.
172169
173-- <b>`property`</b>` OnHover: TSideBarEvent;`
170+- `property`` OnHover: TSideBarEvent;`
174171
175172
176173An event that is fired everytime the mouse hovers over an item or sub-item.
177174
178-- <b>`property`</b>` OnSelect: TSideBarEvent;`
175+- `property`` OnSelect: TSideBarEvent;`
179176
180177
181178An event that is fired everytime the user selects an item or sub-item.
182179
183-- <b>`property`</b>` OnCustomDrawItem: TSideBarCustomDrawItem;`
180+- `property`` OnCustomDrawItem: TSideBarCustomDrawItem;`
184181
185182
186183You can customize item drawing by handling this event.
187184
188-- <b>`property`</b>` OnCustomDrawSubItem: TSideBarCustomDrawSubItem;`
185+- `property`` OnCustomDrawSubItem: TSideBarCustomDrawSubItem;`
189186
190187
191188You can customize sub-item drawing by handling this event.
192189
193-- <b>`property`</b>` OnCustomDrawNonItem: TSideBarCustomDrawNonItem;`
190+- `property`` OnCustomDrawNonItem: TSideBarCustomDrawNonItem;`
194191
195192
196193You can customize background drawing by handling this event.
197194
198-- <b>`property`</b>` OnCustomDrawScroller: TSideBarCustomDrawScroller;`
195+- `property`` OnCustomDrawScroller: TSideBarCustomDrawScroller;`
199196
200197
201198You can customize scroller drawing by handling this event.
202199
203200## Contact
204201
205202Don't hesitate to report any bug or whish to me:
206203
207204Priyatna Bandung - Indonesia
208205
209206<http://www.priyatna.org/>
210207
211208[mailto:me@priyatna.org](mailto:me@priyatna.org)
212209
213210> **Note:** The http address is no longer available. You may report bugs also in the Lazarus bug tracker for the CCR project,
214211
215212---
216213*From the Free Pascal wiki, page "NiceSideBar", as it stood on 2023-06-26 after a change by Wp, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history