Sign in Join
Wiki copytemporary

Eye-Candy Controls: what changed

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

OldNewLine
11**Eye Candy Controls** (shortly ECControls or EC-Controls) are set of visual controls written for Lazarus. Their design is based on Themes, therefore their look is very native everywhere, no matter what widgetset you use.
22
33Each release is announced on Lazarus Forum in section Third Party Announcements.
44
55There are always attached files `README.txt` (list of all known issues) and `CHANGELOG.txt` (list of all changes from previous release).
66
77License
88
99GNU Lesser General Public License 2.0 with linking exception (a.k.a. Modified LGPL). Each file of EC-Controls contains license header. Also, files `COPYING.modifiedLGPL.txt` and `COPYING.LGPL.txt` are bundled to each archive.
1010
1111Author
1212
1313All components are written by Blaazen. Copyright notice and real name are mentioned in the header of each unit. You can contact author on Lazarus Forum (nickname: Blaazen) in any thread about EC-Controls (email author). If you are logged in to the forum, you can get author's e-mail or send him private message.
1414
1515Credits:
1616
1717Alignment of composite components (TECSpinEdit, TECSpinPosition, TECEditBtn, TECColorBtn, TECComboBtn, TECColorCombo) is based on idea of Flávio published on mailing list [1](http://lists.lazarus.freepascal.org/pipermail/lazarus/2013-March/079971.html)
1818
1919[[TBaseScrollControl]] class is based on [TScrollingControl](https://github.com/theo222/lazarus-thumbviewer/blob/master/scrollingcontrol.pas) by Theo.
2020
2121Download
2222
2323- Latest release: 0.9.60 on 02-May 2023 (without demos); UltraShare is out of order. This release was tested with Lazarus 2.3.
2424- Latest release: 0.9.58 on 16-th April 2022 (without demos); UltraShare is out of order. This release was tested with Lazarus 2.3
2525- Previous release: 0.9.44 on 1-st June 2020 (including demos); UltraShare is out of order. This release was tested with Lazarus 2.1
2626- Previous release: 0.9.30 on 9-th March 2018 (including demos); UltraShare is out of order. This release was tested with Lazarus 1.9 and 1.8
2727- Previous release: 0.9.24.6 on 24-th October 2017 (without demos); TECGrid is *Release candidate*; UltraShare is out of order
2828- Previous release: 0.9.20 on 31-th July 2017 (without demos)
2929- Previous release: 0.9.6 on 24-th May 2016 (including demos)
3030- SourceForge: <https://sourceforge.net/projects/eccontrols/>
3131- UltraShare: <http://ultrashare.net/hosting/fl/8c275ee97f> (direct link to 0.9.6 released on 24-th May 2016; including demos)
3232- UltraShare: <http://ultrashare.net/hosting/fl/a8838060fb> (direct link to 0.9.4.16 released on 9-th April 2016; without demos)
3333- UltraShare: <http://ultrashare.net/hosting/fl/f523032cb4> (direct link to 0.9.4.14 released on 6-th April 2016; without demos)
3434
3535UltraShare is alternative because SourceForge is blocked in some countries. New releases are always announced in the Third Party section of the Lazarus Forum.
3636
3737Install to Lazarus
3838
3939Open menu `Package => Open package File (*.lpk) ...` and select file `eccontrols.lpk`. Click `Compile` (wait a while) and then `Use >> Install`. Lazarus will ask you "Do you want to rebuild Lazarus now?". Click `Yes` to install the package.
4040
4141## Components
4242
4343EC-Controls are installed to the tab EC-C on the Lazarus component palette.
4444
45-<figure>
46-<img src="ecpalette2.png" title="ecpalette2.png" />
47-<figcaption>ecpalette2.png</figcaption>
48-</figure>
45+![](/wiki-images/3/3b/Ecpalette2.png)
4946
5047New images (from version 0.9.24.6). Resource files (*.lrs) also contains _150 and _200 images for Hi-DPI desktops.
5148
52-<figure>
53-<img src="eccpalette4.png" title="eccpalette4.png" />
54-<figcaption>eccpalette4.png</figcaption>
55-</figure>
49+![](/wiki-images/7/7e/Eccpalette4.png)
5650
5751Components below are listed in order of their appearance on the component palette. All screenshots are taken from KDE4 or Plasma5 (Lazarus+Qt).
5852
5953### Visual
6054
6155#### TECBevel
6256
6357An alternative to [[TBevel]].
6458
65-<figure>
66-<img src="tecbevel.png" title="tecbevel.png" />
67-<figcaption>tecbevel.png</figcaption>
68-</figure>
59+![](/wiki-images/0/0e/Tecbevel.png)
6960
7061[[TECBevel]] can draw non-rectangular shapes or non-straight lines.
7162
7263#### TECLink
7364
7465[[TECLink]] provides a weblink. The same links are well known from web-browsers.
7566
76-<figure>
77-<img src="teclink.png" title="teclink.png" />
78-<figcaption>teclink.png</figcaption>
79-</figure>
67+![](/wiki-images/7/70/Teclink.png)
8068
8169A label which changes its look when hovered by mouse (by default becomes underlined and blue).
8270
8371It can open URL in default browser, default mail client, file in associated application or just trigger OnClick event.
8472
8573#### TECImageMenu
8674
8775A vertical menu with images. Similar component is frequently used in KDE4 applications and Outlook97
8876
89-<figure>
90-<img src="tecimagemenu.png" title="tecimagemenu.png" />
91-<figcaption>tecimagemenu.png</figcaption>
92-</figure>
77+![](/wiki-images/8/87/Tecimagemenu.png)
9378
9479[[TECImageMenu]] can have focus and can be reached by Tab key (when `TabStop = True`, which is default). Can be controlled by mouse, by keyboard or by code.
9580
9681Mouse
9782
9883- Simply left-click on menu item.
9984- Middle-click or right-click selects an item but does not click.
10085- Mouse wheel moves the selection and does not click.
10186
10287Keyboard
10388
10489- Space nad Enter: click on the selected item.
10590- Arrow Up, Arrow Down, Page Up, Page Down, Home and End: moves the selection but does not click.
10691- Acceleration key (Alt + Key) selects and clicks the relevant item (menu doesn't need to be focused)..
10792
10893#### TECSpinBtns
10994
11095An advanced alternative to [[TUpDown]].
11196
112-<figure>
113-<img src="tecspinbtns.png" title="tecspinbtns.png" />
114-<figcaption>tecspinbtns.png</figcaption>
115-</figure>
97+![](/wiki-images/b/bb/Tecspinbtns.png)
11698
11799[[TECSpinBtns]] is based on double precision variables.
118100
119101TECSpinBtns cannot have focus. Can be controlled by mouse or by code.
120102
121103Mouse
122104
123105TECSpinBtns consists from 9 small buttons.
124106
125107- Left-click on BtnMin, BtnBigDec, BtnDec, BtnMiddle, BtnMenu, BtnInc, BtnBigInc and BtnMax sets the Value to Min, decreases Value by PageSize, decreases Value by Increment, sets Value to Middle, triggers OnMenuClick event, increases Value by Increment, increases Value by PageSize and sets Value to Max respectively.
126108- Middle-click sets Value to Middle or triggers OnMenuClick - depends on MenuControl property. Other mouse buttons can be used for dragging too, depends on DragControl property. Dragging mainly depends on properties: DragOrientation, MouseIncrementX, MouseIncrementY, MouseStepPixelsX, MouseStepPixelsY and Reversed.
127109
128110Code
129111
130112Simply by assigning any floating-point value to property Value:
131113
132114`Value := 10.5;`
133115
134116If the value is out of range (lesser than Min or greater than Max) then Value will be Min or Max.
135117
136118Precendence of drawing:
137119
1381201. The highest precedence has the OnDrawGlyph event.
1391212. The second is Caption. It should be short (one or two characters).
1401223. The third is image from Images. Images must be assigned and ImageIndex must be greater or equal to zero and lesser than Images.Count
1411234. When the OnDrawGlyph is not assigned, Caption is empty string and ImageIndex is -1 then built-in glyph is used. There is five sets of styles, they can be selected with GlyphStyle property.
142124
143125#### TECSpinEdit
144126
145127An advanced alternative to TSpinEdit and TFloatSpinEdit. It is [[TEdit]] joined together with TECSpinBtns.
146128
147-<figure>
148-<img src="tecspinedit.png" title="tecspinedit.png" />
149-<figcaption>tecspinedit.png</figcaption>
150-</figure>
129+![](/wiki-images/c/c8/Tecspinedit.png)
151130
152131[[TECSpinEdit]] can have focus and can be reached by Tab key (when `TabStop = True`, which is default). Can be controlled by mouse, by keyboard or by code.
153132
154133
155134Mouse
156135
157136See [[TECSpinBtns]].
158137
159138Keyboard
160139
161140(line-edit must be focused)
162141
163142Text value can typed in to the line-edit directly. If entered value is lesser than TECSpinBtnsPlus.MinInEdit or greater than TECSpinBtnsPlus.MaxInEdit then the value will be changed to fit these bounds. Change of Value is done in OnEditingDone event.
164143
165144- Arrow Up/Down do click on BtnInc/BtnDec*.
166145- PgUp/PgDn do click on BtnBigInc/BtnBigDec*.
167146- Ctrl + Home/End do click on BtnMax/BtnMin*.
168147- Ctrl + Space do click BtnMiddle.
169148- Ctrl + Enter do click on BtnMenu.
170149
171150*) valid for Reversed = False. For Reversed = True works oppositely.
172151
173152Code
174153
175154Simply by assigning any floating-point value to property Value:
176155
177156`Value := 10.5;`
178157
179158If the value is out of range (lesser than Min or greater than Max) then Value will be Min or Max.
180159
181160#### TECSwitch
182161
183162An alternative to TCheckBox. Similar component exists in GTk3.
184163
185-<figure>
186-<img src="tecswitch.png" title="tecswitch.png" />
187-<figcaption>tecswitch.png</figcaption>
188-</figure>
164+![](/wiki-images/6/64/Tecswitch.png)
189165
190166[[TECSwitch]] can have focus and can be reached by Tab key (when `TabStop = True`, which is default). Can be controlled by mouse, by keyboard or by code.
191167
192168Mouse
193169
194170- Left-click on switch area (out of knob) will change the State*.
195171- Left-click on the knob and holding the left-mouse button down will capture mouse and knob can be moved even if the mouse-cursor leaves the area of the switch.
196172
197173Keyboard
198174
199175- Space or Enter changes the State* (only when focused).
200176- Acceleration key (Alt + Key) changes the State* (doesn't need to be focused).
201177
202178Code
203179
204180Simply by assigning any State* or Checked property:
205181
206182`Checked := True; //False`\
207183`State := cbChecked; //cbGrayed, cbUnchecked`
208184
209185*) Property State is always changed from checked to unchecked, from grayed to unchecked or from unchecked to checked.
210186
211187#### TECSpeedBtn
212188
213189A button with some advanced features and built-in glyphs. An alternative to TSpeedButton and TToggleBox.
214190
215-<figure>
216-<img src="tecspeedbtn.png" title="tecspeedbtn.png" />
217-<figcaption>tecspeedbtn.png</figcaption>
218-</figure>
191+![](/wiki-images/0/04/Tecspeedbtn.png)
219192
220193[[TECSpeedBtn]] cannot have focus.
221194
222195Features and differences from [[TSpeedButton]]:
223196
224197- TSpeedButton has property Glyph: TBitmap. TECSpeedBtn has properties ImageIndex: Integer and Images: [[TImageList]] instead.
225198- TECSpeedBtn has property Delay and built-in timer. Therefore it can work as a delay-button (Delay\>0) or toggle-box (Delay\<0).
226199- TECSpeedBtn has more than 80 built-in glyph (painted via [[TCanvas]] helper). Glyphs can be various for checked and unchecked state.
227200- Similarly to TSpeedButton, TECSpeedBtn has properties GroupIndex, Checked and AllowAllUp so buttons can be grouped to radio-group.
228201- TECSpeedBtn cannot obtain focus but can be pressed by acceleration key (Alt+ \[underlined key\]).
229202- TECSpeedBtn can be linked with [[TAction]] too.
230203
231204Precendence of drawing:
232205
2332061. The highest precedence has the OnDrawGlyph event.
2342072. The second is Caption and image from Images. Images must be assigned and at least on of ImageIndex and ImageIndexChecked must be greater or equal to zero and lesser than Images.Count.
2352083. When the OnDrawGlyph is not assigned and both ImageIndex and ImageIndexChecked are -1 then built-in glyph is used (properties GlyphDesign and GlyphDesignChecked). When ImageIndex is valid Image and ImageIndexChecked is -1 or only GlyphDesign is some glyph and GlyphDesignChecked is egdNone then ImageIndex or GlyphDesign is used for checked state too (and vice versa).
236209
237210#### TECBitBtn
238211
239212The same as TECSpeedBtn but derived from TCustomControl, therefore it can have focus. An alternative to TBitBtn and TToggleBox.
240213
241-<figure>
242-<img src="tecbitbtn.png" title="tecbitbtn.png" />
243-<figcaption>tecbitbtn.png</figcaption>
244-</figure>
214+![](/wiki-images/5/5c/Tecbitbtn.png)
245215
246216#### TECEditBtn
247217
248218An alternative to [[TEditButton]]. It is [[TEdit]] joined together with [[TECSpeedBtn]].
249219
250-<figure>
251-<img src="teceditbtn.png" title="teceditbtn.png" />
252-<figcaption>teceditbtn.png</figcaption>
253-</figure>
220+![](/wiki-images/5/5d/Teceditbtn.png)
254221
255222#### TECColorBtn
256223
257224Visual component for selecting color. Line edit displays color code in various formats and associated button triggers color dialog.
258225
259-<figure>
260-<img src="teccolorbtn.png" title="teccolorbtn.png" />
261-<figcaption>teccolorbtn.png</figcaption>
262-</figure>
226+![](/wiki-images/a/ab/Teccolorbtn.png)
263227
264228Color of the glyph on the button corresponds with the color in the line-edit.
265229
266230Property Text is not published. If Text is changed via code, EditingDone must be called to validate the change.
267231
268232#### TECComboBtn
269233
270234A combobox with associated button. It is [[TComboBox]] joined together with [[TECSpeedBtn]].
271235
272-<figure>
273-<img src="teccombobtn.png" title="teccombobtn.png" />
274-<figcaption>teccombobtn.png</figcaption>
275-</figure>
236+![](/wiki-images/9/9e/Teccombobtn.png)
276237
277238#### TECColorCombo
278239
279240Visual component for selecting color. Combobox contains colors in various formats and associated button triggers color dialog.
280241
281-<figure>
282-<img src="teccolorcombo.png" title="teccolorcombo.png" />
283-<figcaption>teccolorcombo.png</figcaption>
284-</figure>
242+![](/wiki-images/4/43/Teccolorcombo.png)
285243
286244Color of the glyph on the button corresponds with the color selected in the combobox.
287245
288246Property Text is not published. If Text is changed via code, Validate must be called to validate the change.
289247
290248#### TECHeader
291249
292250An alternative to [[THeader]].
293251
294-<figure>
295-<img src="techeader.png" title="techeader.png" />
296-<figcaption>techeader.png</figcaption>
297-</figure>
252+![](/wiki-images/a/a1/Techeader.png)
298253
299254Main feature is ability to have columns aligned to the left and to the right at a time. This components is designed for TECCheckListBox.
300255
301256#### TECCheckListBox
302257
303258An alternative to [[TCheckListBox]].
304259
305-<figure>
306-<img src="tecchecklistbox.png" title="tecchecklistbox.png" />
307-<figcaption>tecchecklistbox.png</figcaption>
308-</figure>
260+![](/wiki-images/0/02/Tecchecklistbox.png)
309261
310262Can have multiple checkable columns.
311263
312264Currently, property Sorted is not supported.
313265
314266#### TECSlider
315267
316268An advanced alternative to [[TTrackBar]].
317269
318-<figure>
319-<img src="tecslider.png" title="tecslider.png" />
320-<figcaption>tecslider.png</figcaption>
321-</figure>
270+![](/wiki-images/e/e0/Tecslider.png)
322271
323272TECSlider can have focus and can be reached by Tab key (when `TabStop = True`, which is default).
324273
325274TECSlider is based on double precision variables. TECSlider can be controlled by mouse, by keyboard or by code.
326275
327276Mouse
328277
329278- Left-click on Slider area (out of Knob) will move the knob by PageSize (or less, if mouse cursor is nearer).
330279- Double-click or Middle-click will move the knob immediately to the mouse cursor (or to the Min/Max, if click is done out of groove and scale area).
331280- Left-click on the knob and holding the left-mouse button down will capture mouse and knob can be moved even if the mouse-cursor leaves the area of the slider.
332281- Mouse wheel moves knob up/down regardless of the Reversed property. In case of horizontal slider rolling up/down moves knob to the left/right, again, regardless of the Reversed property.
333282
334283The increment is:
335284
336285- Mouse wheel: Increment*Mouse.WheelScrollLines
337286- Ctrl + mouse wheel: Increment.
338287
339288Keyboard
340289
341290- Space: moves knob to the middle of the groove or to the ProgressMiddlePos in case of ProgressFromMiddle = True
342291- 0-9: moves the knob to position which is the integer multiplier of the PageSize (i.e. 0, 10, ..., 90 for PageSize = 10).
343292- PgUp: decreases Position by PageSize
344293- PgUp: increases Position by PageSize
345294- Home: moves the Knob to Min
346295- End: moves the Knob to Max
347296- +: increases Position by Increment
348297- -: decreases Position by Increment
349298- Ctrl + ArrowUp: decreases* Position by Increment
350299- Ctrl + ArrowLeft: decreases* Position by Increment
351300- Ctrl + ArrowDown: increases* Position by Increment
352301- Ctrl + ArrowRight: increases* Position by Increment
353302
354303*) valid for `Reversed = False`. When `Reversed = True` works oppositely.
355304
356305Code
357306
358307Simply by assigning any floating-point value to property Position:
359308
360309`Position := 10.5; `
361310
362311If the value is out of range (lesser than Min or greater than Max) then Position will be Min or Max.
363312
364313#### TECProgressBar
365314
366315An advanced alternative to [[TProgressBar]].
367316
368-<figure>
369-<img src="tecprogressbar.png" title="tecprogressbar.png" />
370-<figcaption>tecprogressbar.png</figcaption>
371-</figure>
317+![](/wiki-images/6/62/Tecprogressbar.png)
372318
373319TECProgressBar is based on double precision variables. TECProgressBar cannot have focus. It can be controlled by code only.
374320
375321#### TECPositionBar
376322
377323An alternative to [[TTrackBar]] or [[TScrollBar]]. Similar components are used in [[Blender]] (3D graphics software).
378324
379-<figure>
380-<img src="tecpositionbar.png" title="tecpositionbar.png" />
381-<figcaption>tecpositionbar.png</figcaption>
382-</figure>
325+![](/wiki-images/6/61/Tecpositionbar.png)
383326
384327[[TECPositionBar]] cannot have focus and is based on double precision variables. TECPositionBar can be controlled by mouse or by code.
385328
386329Mouse
387330
388331- Left-click will set the position immediately to the mouse cursor (or to the Min/Max, if click is done out of groove and scale area).
389332- Middle-click: moves knob to the middle of the groove or to the ProgressMiddlePos in case of ProgressFromMiddle = True
390333- Left-click on the end of the progress on and holding the left-mouse button down will capture mouse and position can be moved even if the mouse cursor leaves the area of a position bar.
391334- Dragging is affected by MouseDragPixels (alone left mouse button) and MouseDragPixelsFine (Ctrl + left mouse button). Deafult values are 1 and 10, i.e. progress will change by one pixel when mouse cursor moves by one pixel (or by 10 pixels in case of dragging with Ctrl key pressed).
392335- Mouse wheel moves knob up/down regardless of the Reversed property. In case of horizontal slider rolling up/down moves knob to the left/right, again, regardless of the Reversed property.
393336
394337The increment is:
395338
396339- Mouse wheel: MouseDragPixels*Mouse.WheelScrollLines
397340- Ctrl + mouse wheel: (MouseDragPixels/MouseDragPixelsFine)*Mouse.WheelScrollLines
398341
399342Code
400343
401344Simply by assigning any floating-point value to property Position:
402345
403346`Position := 10.5; `
404347
405348If the value is out of range (lesser than Min or greater than Max) then Position will be Min or Max.
406349
407350#### TECSpinPosition
408351
409352An alternative to [[TTrackBar]] or [[TScrollBar]]. Similar components are used in Krita (2D graphics software).
410353
411-<figure>
412-<img src="tecspinposition.png" title="tecspinposition.png" />
413-<figcaption>tecspinposition.png</figcaption>
414-</figure>
354+![](/wiki-images/6/67/Tecspinposition.png)
415355
416356#### TECRuler
417357
418358An advanced ruler.
419359
420-<figure>
421-<img src="tecruler.png" title="tecruler.png" />
422-<figcaption>tecruler.png</figcaption>
423-</figure>
360+![](/wiki-images/d/d0/Tecruler.png)
424361
425362[[TECRuler]] cannot have focus. It just displays scale. Can have fixed or movable pointer optionally.
426363
427364#### TECRadioGroup
428365
429366An alternative to TRadioGroup.
430367
431-<figure>
432-<img src="tecradiogroup.png" title="tecradiogroup.png" />
433-<figcaption>tecradiogroup.png</figcaption>
434-</figure>
368+![](/wiki-images/3/3a/Tecradiogroup.png)
435369
436370[[TECRadioGroup]] can have focus and can be reached by Tab key (when `TabStop = True`, which is not default). Can be controlled by mouse, by keyboard or by code.
437371
438372Mouse
439373
440374- Left-click on any item (out of knob) changes its Checked property to True (or to False if this item is already checked*).
441375- Left-click on the TECRadioGroup out of items sets focus to component only.
442376
443377Keyboard
444378
445379- 0: deselects all*
446380- 1-9: selects (or deselects*) item 1-9
447381- Acceleration key (Alt + Key) changes the Checked property to True or False* (radio group doesn't have to be focused).
448382
449383*) Depends whether egoAllowAllUp is in Options.
450384
451385Code
452386
453387Simply by assigning any ItemIndex or Items\[\].Checked property:
454388
455389`ItemIndex := 1; //selects the second item`\
456390`Items[1].Checked := False; //deselects the second item, regardless of the egoAllowAllUp in Options`
457391
458392#### TECCheckGroup
459393
460394An alternative to TCheckGroup.
461395
462-<figure>
463-<img src="teccheckgroup.png" title="teccheckgroup.png" />
464-<figcaption>teccheckgroup.png</figcaption>
465-</figure>
396+![](/wiki-images/7/7b/Teccheckgroup.png)
466397
467398TECCheckGroup can have focus and can be reached by Tab key (when `TabStop = True`, which is not default). Can be controlled by mouse, by keyboard or by code.
468399
469400Mouse
470401
471402- Left-click on any item (out of knob) changes its Checked property to True (or to False if this item is already checked*).
472403- Left-click on the TECCheckGroup out of items sets focus to component only.
473404
474405Keyboard
475406
476407- 0: deselects all*
477408- 1-9: selects (or deselects*) item 1-9
478409- Acceleration key (Alt + Key) changes the Checked property to True/False* (check group doesn't have to be focused).
479410
480411*) Depends whether egoAllowAllUp is in Options.
481412
482413Code
483414
484415Simply by assigning any Checked\[\] or Items\[\].Checked property:
485416
486417`Checked[1] := True; //selects the second item`\
487418`Items[1].Checked := False; //deselects the second item, regardless of the egoAllowAllUp in Options.`
488419
489420#### TECTabCtrl
490421
491422See: [[TECTabCtrl]]
492423
493424#### TECAccordion
494425
495426[[TECAccordion]] is a side menu, works similarly to [[TPageControl]].
496427
497-<figure>
498-<img src="tecaccordion.png" title="tecaccordion.png" />
499-<figcaption>tecaccordion.png</figcaption>
500-</figure>
428+![](/wiki-images/3/37/Tecaccordion.png)
501429
502430TECAccordion can have focus and can be reached by Tab key (when `TabStop = True`, which is not default). Can be controlled by mouse, by keyboard or by code.
503431
504432Mouse
505433
506434Left-click on any item opens/closes it.
507435
508436Keyboard
509437
510438Acceleration key (Alt + Key) changes the item (component doesn't have to be focused).
511439
512440Code
513441
514442Simply by setting ItemIndex property.
515443
516444#### TECTriangle
517445
518446A balance of three values. This is not a color picker!
519447
520-<figure>
521-<img src="tectriangle.png" title="tectriangle.png" />
522-<figcaption>tectriangle.png</figcaption>
523-</figure>
448+![](/wiki-images/a/a8/Tectriangle.png)
524449
525450[[TECTriangle]] cannot have focus and cannot be reached by Tab key. Can be controlled by mouse only.
526451
527452Mouse
528453
529454- Left-click on triangle area.
530455- Left-click and hold the pointer can drag.
531456- Left-click on a mark sets more exact value, for example \[0,333..., 0.333..., 0.333...\].
532457- Mouse wheel can roll the pointer up and down.
533458
534459Code
535460
536461By calling overloaded SetValues method. Parameters can be 1) X and Y coordinates or 2) "Top" and "Bottom" values (the thirds value "Side" is calculated so the sum of the values is always equal to 1).
537462
538463#### TECGrid
539464
540465See: [[TECGrid]]
541466
542467#### TECLightView
543468
544469See: [[TECLightView]]
545470
546471#### TECConfCurve
547472
548473Component for Configuration.
549474
550-<figure>
551-<img src="tecconfcurve.png" title="tecconfcurve.png" />
552-<figcaption>tecconfcurve.png</figcaption>
553-</figure>
475+![](/wiki-images/1/1e/Tecconfcurve.png)
554476
555477User can configure polyline or Bezier curve with multiple points.
556478
557479Can be aligned with vertical and/or horizontal ruler (TECRuler).
558480
559481See ECConfCurve-Demo.
560482
561483#### TECScheme
562484
563485An advanced component for configuration of general scheme.
564486
565-<figure>
566-<img src="tecscheme.png" title="tecscheme.png" />
567-<figcaption>tecscheme.png</figcaption>
568-</figure>
487+![](/wiki-images/6/65/Tecscheme.png)
569488
570489User can add multiple blocks and connect them.
571490
572491This component is highly configurable. See SchemeDesigner and ECSchemeDesc bundled with EC-Controls.
573492
574493### Non-visual components
575494
576495#### TECSpinController
577496
578497Designed for controlling properties of multiple TECSpinBtns and TECSpinEdit.
579498
580-<figure>
581-<img src="tecspincontrollericon.png" title="tecspincontrollericon.png" />
582-<figcaption>tecspincontrollericon.png</figcaption>
583-</figure>
499+![](/wiki-images/7/79/Tecspincontrollericon.png)
584500
585501[[TECSpinBtns]] and [[TECSpinEdit]] have properties Controller. When some SpinController is assigned to this property then this Controller can change selected properties of all assigned TECSpinEdits and TECSpinBtns at a time. Adjustable properties are - for example - TimerDelay, TimerRepeat, widths of individual buttons, GlyphsStyle and others.
586502
587503Project can have multiple SpinControllers.
588504
589505#### TECTimer
590506
591507An advanced timer.
592508
593-<figure>
594-<img src="tectimericon.png" title="tectimericon.png" />
595-<figcaption>tectimericon.png</figcaption>
596-</figure>
509+![](/wiki-images/2/23/Tectimericon.png)
597510
598511Main feature is that the first interval (property Delay) can differ from all following intervals (property Repeat).
599512
600513### Other parts of EC-Controls
601514
602515#### Class TECScale
603516
604517A scale. It is not a component but can draw itself to any canvas.
605518
606519This class is used in TECRuler, TECSlider, TECProgressBar, TECPositionBar and TECSpinPosition.
607520
608521See demo ECScale-Demo.
609522
610523#### Unit ECTypes
611524
612525Base types and classes for Eye Candy Controls (EC-C).
613526
614527If you use EC-Controls in your project you may need to add this unit to your **uses** section.
615528
616529This unit contains many declarations, color-conversion routines and base classes, for example TBaseScrollControl.
617530
618531#### TBaseScrollControl
619532
620533is base class for scrolling components (TECScheme is its descendant).
621534
622535You can derive your own scrolling component from TBaseScrollControl. [[TECScheme]] and [[TECGrid]] are based on this class.
623536
624537## Demos
625538
626539EC-Controls come with several demos. If some of following demos is missing in archive, it may mean that there were no changes and the demo was not included. In that case use the demo from previous release.
627540
628541#### ECC-Demo
629542
630543This demo shows all EC-Controls in various configurations.
631544
632545#### ECScale-Demo
633546
634547This demo shows how you can use [[TECScale]] in our own visual component.
635548
636549#### ECConfCurve-Demo
637550
638551This demo shows capabilities of [[TECConfCurve]].
639552
640553#### ECSchemeDesc
641554
642555This demo shows how you can create descendant component from [[TCustomECScheme]].
643556
644557#### SchemeDesigner
645558
646559SchemeDesigner is more than a demo. It shows you how you can create TECScheme configurator in your own application but it can be also used to create your own configurations and store them in *.xml format.
647560
648561---
649562*From the Free Pascal wiki, page "Eye-Candy Controls", as it stood on 2023-05-02 after a change by Blaazen, 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