Sign in Join
Wiki copytemporary

Eye-Candy Controls/ru: what changed

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

OldNewLine
11**Eye Candy Controls** (сокращенно ECControls или EC-Controls) - набор визуальных элементов управления, написанных для Lazarus. Их дизайн основан на Themes, поэтому они выглядят очень нативными везде, независимо от того, какой виджет вы используете.
22
33Каждый релиз аннонсируется на форуме Lazarus в разделе Third Party Announcements(Сторонние объявления).
44
55Всегда есть прикрепленные файлы `README.txt` (список всех известных проблем) и `CHANGELOG.txt` (список всех изменений из предыдущего выпуска).
66
77Лицензия
88
99GNU Lesser General Public License 2.0 с исключением ссылок (a.k.a. Модифицированный LGPL). Каждый файл EC-Controls содержит заголовок лицензии. Кроме того, файлы `COPYING.modifiedLGPL.txt` и `COPYING.LGPL.txt` связаны с каждым архивом.
1010
1111Авторство
1212
1313Все компоненты написаны [Blaazen](https://forum.lazarus.freepascal.org/index.php?action=profile;u=39483). Уведомление об авторском праве и настоящее имя упоминаются в заголовке каждого блока. Вы можете связаться с автором на форуме Lazarus (псевдоним: Blaazen) в любой теме о EC-Controls (email author). Если вы авторизованы на форуме, вы можете получить адрес автора электронной почты или отправить ему личное сообщение.
1414
1515Credits: Выравнивание составных компонентов (TECSpinEdit, TECSpinPosition, TECEditBtn, TECColorBtn, TECComboBtn, TECColorCombo) основано на идее Flávio, опубликованной в списке рассылки [1](http://lists.lazarus.freepascal.org/pipermail/lazarus/2013-March/079971.html)
1616
1717Класс [[TBaseScrollControl]] основан на [TScrollingControl](https://github.com/theo222/lazarus-thumbviewer/blob/master/scrollingcontrol.pas) от Theo.
1818
1919Загрузка
2020
2121- Последний релиз: 0.9.44 на 1 июня 2020 (включая demo); UltraShare не работает. Этот выпуск был протестирован с Lazarus 2.1
2222- Предыдущий релиз: 0.9.30 на 1 марта 2018 (включая demo); UltraShare не работает. Этот выпуск был протестирован с Lazarus 1.9 и 1.8
2323- Предыдущий релиз: 0.9.24.6 на 24 октября 2017 (без demo); TECGrid - *Release candidate*; UltraShare не работает.
2424- Предыдущий релиз: 0.9.20 на 31 июля 2017 (без demo)
2525- Предыдущий релиз: 0.9.6 на 24 мая 2016 (включая demo)
2626- SourceForge: <https://sourceforge.net/projects/eccontrols/>
2727- UltraShare: <http://ultrashare.net/hosting/fl/8c275ee97f> (прямая ссылка на 0.9.6, выпущенный 24.05.2016; включая demo)
2828- UltraShare: <http://ultrashare.net/hosting/fl/a8838060fb> (прямая ссылка на 0.9.4.16, выпущенный 9.04.2016; без demos)
2929- UltraShare: <http://ultrashare.net/hosting/fl/f523032cb4> (прямая ссылка на 0.9.4.14, выпущенный 6.04.2016; без demo)
3030
3131UltraShare - альтернатива, потому что SourceForge заблокирован в некоторых странах. О новых выпусках всегда объявляется в разделе Third Party на форуме Lazarus.
3232
3333Установка в Lazarus
3434
3535Открываем меню `Package => Open package File (*.lpk) ...` и выбираем файл `eccontrols.lpk`. Щелкаем `Compile` (ждем, пока закончится компиляция), затем выбираем `Use >> Install`. Lazarus спросит "Do you want to rebuild Lazarus now?"(Хотите пересобрать Lazarus сейчас?). Жмем `Yes`, чтобы установить пакет.
3636
3737## Компоненты
3838
3939EC-Controls устанавливаются на вкладку EC-C палитры компонентов Lazarus.
4040
41-<figure>
42-<img src="ecpalette2.png" title="ecpalette2.png" />
43-<figcaption>ecpalette2.png</figcaption>
44-</figure>
41+![](/wiki-images/3/3b/Ecpalette2.png)
4542
4643Новые изображения (начиная с версии 0.9.24.6). Файлы ресурсов (* .lrs) также содержат изображения _150 и _200 для настольных компьютеров с высоким разрешением.
4744
48-<figure>
49-<img src="eccpalette4.png" title="eccpalette4.png" />
50-<figcaption>eccpalette4.png</figcaption>
51-</figure>
45+![](/wiki-images/7/7e/Eccpalette4.png)
5246
5347Компоненты ниже перечислены в порядке их появления на палитре компонентов. Все скриншоты взяты из KDE4 или Plasma5 (Lazarus + Qt).
5448
5549### Визуальные
5650
5751#### TECBevel
5852
5953Альтернатива [[TBevel]].
6054
61-<figure>
62-<img src="tecbevel.png" title="tecbevel.png" />
63-<figcaption>tecbevel.png</figcaption>
64-</figure>
55+![](/wiki-images/0/0e/Tecbevel.png)
6556
6657[[TECBevel]] может рисовать непрямоугольные формы или непрямые линии.
6758
6859#### TECLink
6960
7061[[TECLink]] предоставляет веб-ссылку. Эти же ссылки хорошо известны из веб-браузеров.
7162
72-<figure>
73-<img src="teclink.png" title="teclink.png" />
74-<figcaption>teclink.png</figcaption>
75-</figure>
63+![](/wiki-images/7/70/Teclink.png)
7664
7765Метка, которая меняет свой вид при наведении на нее курсора мыши (по умолчанию становится подчеркнутой и синей).
7866
7967Она может открывать URL-адрес в браузере по умолчанию, почтовом клиенте по умолчанию, файл в связанном приложении или просто запускать событие OnClick.
8068
8169#### TECImageMenu
8270
8371Вертикальное меню с изображениями. Подобный компонент часто используется в приложениях KDE4 и Outlook97.
8472
85-<figure>
86-<img src="tecimagemenu.png" title="tecimagemenu.png" />
87-<figcaption>tecimagemenu.png</figcaption>
88-</figure>
73+![](/wiki-images/8/87/Tecimagemenu.png)
8974
9075[[TECImageMenu]] может находиться в фокусе, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
9176
9277Мышь
9378
9479- Щелчок левой кнопкой мыши по пункту меню эквивалентен нажатию по нему.
9580- Щелчок средней или правой кнопкой мыши выбирает элемент, но не нажимает его.
9681- Колесико мыши перемещает выделение и не нажимает его.
9782
9883Клавиатура
9984
10085- Пробел и Enter: нажимает выбранный пункт меню.
10186- Arrow Up, Arrow Down, Page Up, Page Down, Home и End: перемещают выделение, но не нажимают на пункт меню.
10287- Быстрые клавиши (Alt + Key) выбирают и нажимают соответствующий пункт (нет необходимости фокусировать меню) ..
10388
10489#### TECSpinBtns
10590
10691Продвинутая альтернатива [[TUpDown]].
10792
108-<figure>
109-<img src="tecspinbtns.png" title="tecspinbtns.png" />
110-<figcaption>tecspinbtns.png</figcaption>
111-</figure>
93+![](/wiki-images/b/bb/Tecspinbtns.png)
11294
11395[[TECSpinBtns]] основан на переменных двойной точности.
11496
11597TECSpinBtns не имеет фокуса. Управляется мышью или кодом.
11698
11799Мышь
118100
119101TECSpinBtns состоит из 9 маленьких кнопок.
120102
121103- Щелчок левой кнопкой мыши(ЛКМ) на BtnMin, BtnBigDec, BtnDec, BtnMiddle, BtnMenu, BtnInc, BtnBigInc и BtnMax задает `Value` к `Min`, уменьшает `Value` на величину `PageSize`, уменьшает `Value` на величину `Increment`, задает `Value` к `Middle`, запускает событие `OnMenuClick`, увеличивает `Value` на величину `Increment`, увеличивает `Value` на величину `PageSize` и задает `Value` к `Max` соответственно.
122104- Щелчок средней кнопкой мыши(СКМ) задает `Value` к `Middle` или запускает событие `OnMenuClick` - зависит от свойства `MenuControl`. Для перетаскивания также могут быть использованы другие кнопки мыши, зависит от свойства `DragControl`. Перетаскивание в основном зависит от свойств: `DragOrientation`, `MouseIncrementX`, `MouseIncrementY`, `MouseStepPixelsX`, `MouseStepPixelsY` и `Reversed`.
123105
124106Программно
125107
126108Просто присвоив любое значение с плавающей точкой свойству `Value`:
127109
128110``` pascal
129111Value := 10.5;
130112```
131113
132114Если значение выходит за пределы диапазона (меньше `Min` или больше `Max`), тогда `Value` будет равно `Min` или `Max`.
133115
134116Приоритет отрисовки:
135117
1361181. Наивысший приоритет имеет событие `OnDrawGlyph`.
1371192. Второй - `Caption`. Он должен быть коротким (один или два символа).
1381203. Третий - изображение из `Images`. Изображения должны быть присвоены, а `ImageIndex` должен быть больше или равен нулю, и меньше, чем `Images.Count`
1391214. Если `OnDrawGlyph` не назначен, `Caption` является пустой строкой, а `ImageIndex` равен -1, тогда используется встроенный глиф. Есть пять наборов стилей, их можно выбрать с помощью свойства `GlyphStyle`.
140122
141123#### TECSpinEdit
142124
143125Продвинутая альтернатива TSpinEdit и TFloatSpinEdit. Это [[TEdit]], соединенный с TECSpinBtns.
144126
145-<figure>
146-<img src="tecspinedit.png" title="tecspinedit.png" />
147-<figcaption>tecspinedit.png</figcaption>
148-</figure>
127+![](/wiki-images/c/c8/Tecspinedit.png)
149128
150129[[TECSpinEdit]] может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
151130
152131Мышь
153132
154133См. [[Eye-Candy Controls/ru|TECSpinBtns]].
155134
156135Клавиатура
157136
158137(строка редактирования должна быть в фокусе)
159138
160139Текстовое значение можно ввести непосредственно в строку редактирования. Если введенное значение меньше `TECSpinBtnsPlus.MinInEdit` или больше `TECSpinBtnsPlus.MaxInEdit`, тогда значение будет изменено, чтобы соответствовать этим границам. Изменение значения выполняется в событии `OnEditingDone`.
161140
162141- Arrow Up/Down "щелкают" по BtnInc/BtnDec*.
163142- PgUp/PgDn "щелкают" по BtnBigInc/BtnBigDec*.
164143- Ctrl + Home/End "щелкают" по BtnMax/BtnMin*.
165144- Ctrl + Space "щелкают" по BtnMiddle.
166145- Ctrl + Enter "щелкают" по BtnMenu.
167146
168147*) справедливо для `Reversed = False`. `Reversed = True` делает наоборот.
169148
170149Программно
171150
172151Простое присвоение любого значения с плавающей точкой свойству `Value`:
173152
174153`Value := 10.5;`
175154
176155Если значение выходит за пределы диапазона (меньше `Min` или больше `Max`), тогда `Value` будет соответственно `Min` или `Max`.
177156
178157#### TECSwitch
179158
180159Альтернатива TCheckBox. Аналогичный компонент существует в GTk3.
181160
182-<figure>
183-<img src="tecswitch.png" title="tecswitch.png" />
184-<figcaption>tecswitch.png</figcaption>
185-</figure>
161+![](/wiki-images/6/64/Tecswitch.png)
186162
187163[[TECSwitch]] может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
188164
189165Мышь
190166
191167- Щелчок левой кнопкой мыши(ЛКМ) на области переключателя (вне кнопки) изменит `State`*.
192168- Щелчок левой кнопкой мыши(ЛКМ) и удержание ее нажатой на кнопке захватит курсор мыши, и кнопку можно будет перемещать, даже если курсор мыши покинет область переключателя.
193169
194170Клавиатура
195171
196172- Пробел или Enter изменяют `State`* (только если переключатель в фокусе).
197173- Быстрые клавиши (Alt + Key) изменяют `State`* (нет необходимости перемещать фокус на переключатель).
198174
199175Программно
200176
201177Простое присвоение любого значения свойствам `State`* или `Checked`:
202178
203179`Checked := True; //False`\
204180`State := cbChecked; //cbGrayed, cbUnchecked`
205181
206182*) Свойство `State` всегда изменяет значение от `checked` к `unchecked`, от `grayed` к `unchecked` или от `unchecked` к `checked`.
207183
208184#### TECSpeedBtn
209185
210186Кнопка с некоторыми расширенными функциями и встроенными глифами. Альтернатива TSpeedButton и TToggleBox.
211187
212-<figure>
213-<img src="tecspeedbtn.png" title="tecspeedbtn.png" />
214-<figcaption>tecspeedbtn.png</figcaption>
215-</figure>
188+![](/wiki-images/0/04/Tecspeedbtn.png)
216189
217190[[TECSpeedBtn]] не имеет фокуса.
218191
219192Особенности и отличия от [[TSpeedButton]]:
220193
221194- TSpeedButton имеет свойство `Glyph: TBitmap`. TECSpeedBtn вместо этого имеет свойства `ImageIndex: Integer` и `Images: `[[TImageList]].
222195- TECSpeedBtn имеет свойство `Delay` и встроенный таймер. Поэтому она может работать как кнопка задержки (Delay\>0) или как переключатель (Delay\<0).
223196- TECSpeedBtn имеет более 80 встроенных глифов (нарисованных с помощью помощника [[TCanvas]]). Глифы могут быть разными для состояния checked и unchecked.
224197- Подобно TSpeedButton, TECSpeedBtn имеет свойства `GroupIndex`, `Checked` и `AllowAllUp`, поэтому кнопки можно сгруппировать в радиогруппу.
225198- TECSpeedBtn не может получать фокус, но может быть нажата быстрой клавишей (Alt + \[подчеркнутая клавиша\]).
226199- TECSpeedBtn также может быть связана с [[TAction]].
227200
228201Приоритеты отрисовки:
229202
2302031. Наивысший приоритет имеет событие `OnDrawGlyph`.
2312042. Второй - `Caption` и изображение из `Images`. Изображения должны быть присвоены, и хотя бы одно из `ImageIndex` и `ImageIndexChecked` должно быть больше или равно нулю и меньше, чем `Images.Count`.
2322053. Когда событие `OnDrawGlyph` не назначено и оба свойства `ImageIndex` и `ImageIndexChecked` имеют значение -1, то используется встроенный глиф (свойства `GlyphDesign` и `GlyphDesignChecked`). Если `ImageIndex` корректен, `Image` и `ImageIndexChecked` имеет значение -1 или только `GlyphDesign` является некоторым глифом, а `GlyphDesignChecked` имеет значение `egdNone`, то `ImageIndex` или `GlyphDesign` также используются для состояния проверки (и наоборот).
233206
234207#### TECBitBtn
235208
236209То же, что и TECSpeedBtn, но производное от TCustomControl, поэтому может иметь фокус. Альтернатива TBitBtn и TToggleBox.
237210
238-<figure>
239-<img src="tecbitbtn.png" title="tecbitbtn.png" />
240-<figcaption>tecbitbtn.png</figcaption>
241-</figure>
211+![](/wiki-images/5/5c/Tecbitbtn.png)
242212
243213#### TECEditBtn
244214
245215Альтернатива [[TEditButton]]. Это [[TEdit]], объединенное с [[TECSpeedBtn]].
246216
247-<figure>
248-<img src="teceditbtn.png" title="teceditbtn.png" />
249-<figcaption>teceditbtn.png</figcaption>
250-</figure>
217+![](/wiki-images/5/5d/Teceditbtn.png)
251218
252219#### TECColorBtn
253220
254221Визуальный компонент для выбора цвета. При редактировании строки отображается цветовой код в различных форматах, а соответствующая кнопка запускает диалог выбора цвета.
255222
256-<figure>
257-<img src="teccolorbtn.png" title="teccolorbtn.png" />
258-<figcaption>teccolorbtn.png</figcaption>
259-</figure>
223+![](/wiki-images/a/ab/Teccolorbtn.png)
260224
261225Цвет глифа на кнопке соответствует цвету в строке редактирования.
262226
263227Свойство `Text` не является публикуемым (прим.перев: не видно в редакторе свойств). Если текст изменен с помощью кода, необходимо вызвать `EditingDone` для подтверждения изменения.
264228
265229#### TECComboBtn
266230
267231Поле со списком совмещенный с кнопкой. Это [[TComboBox]], соединенный с [[TECSpeedBtn]].
268232
269-<figure>
270-<img src="teccombobtn.png" title="teccombobtn.png" />
271-<figcaption>teccombobtn.png</figcaption>
272-</figure>
233+![](/wiki-images/9/9e/Teccombobtn.png)
273234
274235#### TECColorCombo
275236
276237Визуальный компонент для выбора цвета. Поле со списком содержит цвета в различных форматах, а соответствующая кнопка вызывает диалоговое окно цвета.
277238
278-<figure>
279-<img src="teccolorcombo.png" title="teccolorcombo.png" />
280-<figcaption>teccolorcombo.png</figcaption>
281-</figure>
239+![](/wiki-images/4/43/Teccolorcombo.png)
282240
283241Цвет глифа на кнопке соответствует цвету, выбранному в поле со списком.
284242
285243Свойство `Text` не является публикуемым (прим.перев.: не видно в редакторе свойств). Если текст изменяется с помощью кода, необходимо вызвать `Validate` для подтверждения изменения.
286244
287245#### TECHeader
288246
289247Альтернатива [[THeader]].
290248
291-<figure>
292-<img src="techeader.png" title="techeader.png" />
293-<figcaption>techeader.png</figcaption>
294-</figure>
249+![](/wiki-images/a/a1/Techeader.png)
295250
296251Основная особенность - возможность выравнивания столбцов по левому и правому краю одновременно. Этот компонент разработан для TECCheckListBox.
297252
298253#### TECCheckListBox
299254
300255Альтернатива [[TCheckListBox]].
301256
302-<figure>
303-<img src="tecchecklistbox.png" title="tecchecklistbox.png" />
304-<figcaption>tecchecklistbox.png</figcaption>
305-</figure>
257+![](/wiki-images/0/02/Tecchecklistbox.png)
306258
307259Может иметь несколько столбцов с возможностью их пометки.
308260
309261В настоящее время свойство `Sorted` не поддерживается.
310262
311263#### TECSlider
312264
313265Продвинутая альтернатива [[TTrackBar]].
314266
315-<figure>
316-<img src="tecslider.png" title="tecslider.png" />
317-<figcaption>tecslider.png</figcaption>
318-</figure>
267+![](/wiki-images/e/e0/Tecslider.png)
319268
320269TECSlider может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию).
321270
322271TECSlider основан на переменных с двойной точностью. TECSlider можно управлять с помощью мыши, клавиатуры или кода.
323272
324273Мышь
325274
326275- Щелчок левой кнопкой мыши (ЛКМ) на области Slider (вне ползунка) переместит ползунок на величину `PageSize` (или меньше, если курсор мыши ближе).
327276- Двойной щелчок ЛКМ или щелчок средней кнопкой (колесиком) мыши сразу переместит ползунок в позицию курсора мыши (или к Min/Max значению, если щелчок осуществляется за пределами области канавки и шкалы).
328277- Щелчок ЛКМ на ползунке и удержание ее нажатой включит режим удержания мышью, что позволит перемещать ползунок, даже если курсор мыши покинет пределы слайдера.
329278- Колесико мыши перемещает ползунок вверх/вниз независимо от свойства `Reversed`. В случае горизонтального расположения слайдера прокручивание ползунка вверх/вниз будет равносильно перемещению влево/вправо, независимо от свойства `Reversed`.
330279
331280Приращение составляет:
332281
333282- колесико мыши: `Increment`*`Mouse.WheelScrollLines`
334283- Ctrl + колесико мыши: `Increment`.
335284
336285Клавиатура
337286
338287- Пробел: перемещает ползунок в середину канавки слайдера или в `ProgressMiddlePos` в случае `ProgressFromMiddle = True`
339288- 0-9: перемещает ползунок в положение, которое является целочисленным множителем `PageSize` (т.е. 0, 10, ..., 90 для `PageSize = 10`).
340289- PgUp: уменьшает `Position` на величину `PageSize`
341290- PgUp: увеличивает `Position` на величину `PageSize`
342291- Home: перемещает ползунок к `Min`
343292- End: перемещает ползунок к `Max`
344293- +: увеличивает `Position` на величину `Increment`
345294- -: уменьшает `Position` на величину `Increment`
346295- Ctrl + ArrowUp: уменьшает* `Position` на величину `Increment`
347296- Ctrl + ArrowLeft: уменьшает* `Position` на величину `Increment`
348297- Ctrl + ArrowDown: увеличивает* `Position` на величину `Increment`
349298- Ctrl + ArrowRight: увеличивает* `Position` на величину `Increment`
350299
351300*) справедливо для `Reversed = False`. Если `Reversed = True`, работает наоборот.
352301
353302Программно
354303
355304Это можно сделать, просто присвоив свойству `Position` любое значение с плавающей точкой:
356305
357306`Position := 10.5; `
358307
359308Если значение выходит за пределы допустимого диапазона (меньше `Min` или больше `Max`), тогда `Position` будет `Min` или `Max` соответственно.
360309
361310#### TECProgressBar
362311
363312Продвинутая альтернатива [[TProgressBar]].
364313
365-<figure>
366-<img src="tecprogressbar.png" title="tecprogressbar.png" />
367-<figcaption>tecprogressbar.png</figcaption>
368-</figure>
314+![](/wiki-images/6/62/Tecprogressbar.png)
369315
370316TECProgressBar основан на переменных с двойной точностью. TECProgressBar не может иметь фокус. Управлять им можно только с помощью кода.
371317
372318#### TECPositionBar
373319
374320Альтернатива [[TTrackBar]] или [[TScrollBar]]. Подобные компоненты используются в [Blender](https://www.blender.org) (программа для 3D-графики).
375321
376-<figure>
377-<img src="tecpositionbar.png" title="tecpositionbar.png" />
378-<figcaption>tecpositionbar.png</figcaption>
379-</figure>
322+![](/wiki-images/6/61/Tecpositionbar.png)
380323
381324[[TECPositionBar]] не может иметь фокус и базируется на переменных с двойной точностью. TECPositionBar можно контролировать с помощью мыши или кода.
382325
383326Мышь
384327
385328- Щелчок левой кнопкой мыши(ЛКМ) сразу же устанавливает позицию в положение курсора мыши (или в положение Min/Max, если щелчок произведен вне области канавки или шкалы).
386329- Щелчок средней кнопкой мыши(СКМ): перемещает позицию полоски прогрессбара в середину канавки или в позицию `ProgressMiddlePos` в случае `ProgressFromMiddle = True`
387330- Щелчок левой кнопкой мыши(ЛКМ) в конце шкалы и удержание ЛКМ нажатой захватывает курсор мыши, что позволяет изменять позицию шкалы даже если курсор мыши покидает область компонента.
388331- Перетаскивание позиции полоски прогрессбара мышью осуществляется на величину `MouseDragPixels` (нажатие только ЛКМ) или на величину `MouseDragPixelsFine` (Ctrl + ЛКМ). По умолчанию это значения 1 и 10, т.е. позиция полоски прогрессбара изменится на 1 пиксел, когда курсор мыши переместится на 1 пиксел (или на 10 пикселей в случае перетаскивания с нажатой клавишей Ctrl).
389332- Колесико мыши перемещает ползунок вверх/вниз независимо от свойства `Reversed`. В случае горизонтального расположения слайдера прокрутка вверх/вниз перемещает ползунок влуво/вправо, опять же, независимо от свойства `Reversed`.
390333
391334Приращение составляет:
392335
393336- Колесико мыши: `MouseDragPixels`*`Mouse.WheelScrollLines`
394337- Ctrl + колесико мыши: (`MouseDragPixels`/`MouseDragPixelsFine`)*`Mouse.WheelScrollLines`
395338
396339Программно
397340
398341Это можно сделать, просто присвоив любое значение с плавающей токой свойству `PositionSimply`:
399342
400343`Position := 10.5; `
401344
402345Если значение выходит за пределы допустимого диапазона (меньше `Min` или больше `Max`), тогда `Position` будет `Min` или `Max` соответственно.
403346
404347#### TECSpinPosition
405348
406349Альтернатива [[TTrackBar]] или [[TScrollBar]]. Подобные компоненты используются в [Krita](https://krita.org/en) (программное обеспечение для 2D-графики).
407350
408-<figure>
409-<img src="tecspinposition.png" title="tecspinposition.png" />
410-<figcaption>tecspinposition.png</figcaption>
411-</figure>
351+![](/wiki-images/6/67/Tecspinposition.png)
412352
413353#### TECRuler
414354
415355Продвинутая линейка.
416356
417-<figure>
418-<img src="tecruler.png" title="tecruler.png" />
419-<figcaption>tecruler.png</figcaption>
420-</figure>
357+![](/wiki-images/d/d0/Tecruler.png)
421358
422359[[TECRuler]] не меет фокуса. Она просто отображает масштаб. По желанию может иметь фиксированный или подвижный указатель.
423360
424361#### TECRadioGroup
425362
426363Альтернатива TRadioGroup.
427364
428-<figure>
429-<img src="tecradiogroup.png" title="tecradiogroup.png" />
430-<figcaption>tecradiogroup.png</figcaption>
431-</figure>
365+![](/wiki-images/3/3a/Tecradiogroup.png)
432366
433367[[TECRadioGroup]] может иметь фокус,и к ней можно перейти с помощью клавиши Tab (когда `TabStop = True`, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
434368
435369Мышь
436370
437371- Щелчок левой кнопкой мыши(ЛКМ) по любому пункту (вне кнопки) изменяет ее свойство `Checked` на `True` (или на `False`, если этот пункт уже имеет значение `checked`*).
438372- Щелчок ЛКМ на TECRadioGroup вне пунктов приводит только к получению компонентом фокуса.
439373
440374Клавиатура
441375
442376- 0: снимает выбор всех пунктов*
443377- 1-9: выбирает (или снимает выбор*) пункты 1-9
444378- Быстрые клавиши (Alt + Key) изменяют свойство `Checked` на `True` или `False`* (radio group не может иметь фокус).
445379
446380*) Зависит от того, находится ли `egoAllowAllUp` в `Options`.
447381
448382Клавиатура
449383
450384Это можно сделать, просто определив любой `ItemIndex` или свойство `Items[].Checked` :
451385
452386`ItemIndex := 1; //отмечает второй пункт`\
453387`Items[1].Checked := False; //снимает выбор со второго пункта, независимо от ``egoAllowAllUp`` в ``Options`
454388
455389#### TECCheckGroup
456390
457391Альтернатива TCheckGroup.
458392
459-<figure>
460-<img src="teccheckgroup.png" title="teccheckgroup.png" />
461-<figcaption>teccheckgroup.png</figcaption>
462-</figure>
393+![](/wiki-images/7/7b/Teccheckgroup.png)
463394
464395TECCheckGroup может находиться в фокусе, и к ней можно перейти с помощью клавиши Tab (когда `TabStop = True`, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
465396
466397Мышь
467398
468399- Щелчок левой кнопкой мыши(ЛКМ) по любому из пунктов (вне кнопки) меняет его свойство `Checked` на `True` (или на `False`, если этот пункт уже был помечен*).
469400- Щелчок ЛКМ на TECCheckGroup вне пунктов только переводит фокус на компонент.
470401
471402Клавиатура
472403
473404- 0: снять пометки со всех пунктов*
474405- 1-9: пометить (ил снять пометки*) пунктов 1-9
475406- Быстрые клавиши (Alt + Key) меняют свойство `Checked` на `True`/`False`* (check group не может иметь фокус).
476407
477408*) Зависит от того, находится ли `egoAllowAllUp` в `Options`.
478409
479410Программно
480411
481412Simply by assigning any Checked\[\] or Items\[\].Checked property: Это можно сделать, просто присвоив какое-либо значение свойству `Checked[]` или `Items[].Checked`:
482413
483414`Checked[1] := True; //пометит второй пункт`\
484415`Items[1].Checked := False; //снимет пометку со второго пункта, независимого от того, находится ли ``egoAllowAllUp`` в ``Options``.`
485416
486417#### TECTabCtrl
487418
488419См: [[TECTabCtrl]]
489420
490421#### TECAccordion
491422
492423[[TECAccordion]] это боковое меню, работает аналогично [[TPageControl]].
493424
494-<figure>
495-<img src="tecaccordion.png" title="tecaccordion.png" />
496-<figcaption>tecaccordion.png</figcaption>
497-</figure>
425+![](/wiki-images/3/37/Tecaccordion.png)
498426
499427TECAccordion может иметь фокус и доступно с помощью клавиши Tab (когда `TabStop = True`, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
500428
501429Мышь
502430
503431Щелчок левой кнопкой мыши(ЛКМ) по любому из пунктов разворачивает/сворачивает его.
504432
505433Клавиатура
506434
507435Быстрые клавиши (Alt + Key) меняют пункт (пункт не может иметь фокус).
508436
509437Программно
510438
511439Можно просто менять свойство `ItemIndex`.
512440
513441#### TECTriangle
514442
515443Баланс трех значений. Это не палитра цветов!
516444
517-<figure>
518-<img src="tectriangle.png" title="tectriangle.png" />
519-<figcaption>tectriangle.png</figcaption>
520-</figure>
445+![](/wiki-images/a/a8/Tectriangle.png)
521446
522447[[TECTriangle]] не может находиться в фокусе и не может быть найден клавишей Tab. Управляется только мышью.
523448
524449Мышь
525450
526451- Щелчок левой кнопкой мыши(ЛКМ) на области треугольника.
527452- Щелчок ЛКМ и удержание метки позволяет перемещать ее.
528453- Щелчок ЛКМ по метке устанавливает более точное значение, например \[0,333..., 0.333..., 0.333...\].
529454- Колесико мыши позволяет катать метку вверх и вниз.
530455
531456Программно
532457
533458Это можно сделать путем вызова перегруженного метода `SetValues`. Параметры могут быть 1) координатами X и Y или 2) значениями `Top` и `Bottom` (третье значение `Side` является вычисляемой, поэтому сумма значений всегда равна 1).
534459
535460#### TECGrid
536461
537462См.: [[TECGrid]]
538463
539464#### TECLightView
540465
541466См.: [[TECLightView/ru|TECLightView]]
542467
543468#### TECConfCurve
544469
545470Компонент для настройки.
546471
547-<figure>
548-<img src="tecconfcurve.png" title="tecconfcurve.png" />
549-<figcaption>tecconfcurve.png</figcaption>
550-</figure>
472+![](/wiki-images/1/1e/Tecconfcurve.png)
551473
552474Пользователь может настроить полилинию или кривую Безье с несколькими точками.
553475
554476Можно выравнивать с помощью вертикальной и/или горизонтальной линейки (TECRuler).
555477
556478См. ECConfCurve-Demo.
557479
558480#### TECScheme
559481
560482Расширенный компонент для настройки общей схемы.
561483
562-<figure>
563-<img src="tecscheme.png" title="tecscheme.png" />
564-<figcaption>tecscheme.png</figcaption>
565-</figure>
484+![](/wiki-images/6/65/Tecscheme.png)
566485
567486Пользователь может добавить несколько блоков и соединить их.
568487
569488Этот компонент легко настраивается. См. SchemeDesigner и ECSchemeDesc в комплекте с EC-Controls.
570489
571490### Невизуальные компоненты
572491
573492#### TECSpinController
574493
575494Предназначен для управления свойствами нескольких TECSpinBtns и TECSpinEdit.
576495
577-<figure>
578-<img src="tecspincontrollericon.png" title="tecspincontrollericon.png" />
579-<figcaption>tecspincontrollericon.png</figcaption>
580-</figure>
496+![](/wiki-images/7/79/Tecspincontrollericon.png)
581497
582498[[TECSpinBtns]] и [[TECSpinEdit]] имеют свойства `Controller`. Когда этому свойству назначен какой-либо `SpinController`, этот контроллер может одновременно изменять выбранные свойства всех присвоенных TECSpinEdits и TECSpinBtns. Настраиваемые свойства - например, `TimerDelay`, `TimerRepeat`, ширина отдельных кнопок, `GlyphsStyle` и другие.
583499
584500В проекте может быть несколько SpinController.
585501
586502#### TECTimer
587503
588504Продвинутый таймер.
589505
590-<figure>
591-<img src="tectimericon.png" title="tectimericon.png" />
592-<figcaption>tectimericon.png</figcaption>
593-</figure>
506+![](/wiki-images/2/23/Tectimericon.png)
594507
595508Основная особенность в том, что первый интервал (свойство `Delay`) может отличаться от всех последующих интервалов (свойство `Repeat`).
596509
597510### Другие части EC-Controls
598511
599512#### Class TECScale
600513
601514Масштаб. Это не компонент, но он может рисоваться на любом холсте.
602515
603516Этот класс используется в TECRuler, TECSlider, TECProgressBar, TECPositionBar и TECSpinPosition.
604517
605518См. демку ECScale-Demo.
606519
607520#### Модуль ECTypes
608521
609522Базовые типы и классы для элементов управления Eye Candy Controls (EC-C).
610523
611524Если вы используете EC-Controls в своем проекте, вам может потребоваться добавить этот модуль в раздел **uses**.
612525
613526Этот модуль содержит множество объявлений, подпрограмм преобразования цвета и базовых классов, например TBaseScrollControl.
614527
615528#### TBaseScrollControl
616529
617530Является базовым классом для прокручиваемых компонентов (TECScheme является его потомком).
618531
619532Вы можете получить свой собственный компонент прокрутки из TBaseScrollControl. На этом же классе основаны [[TECScheme]] и [[TECGrid]].
620533
621534## Демки
622535
623536EC-Controls поставляется с несколькими демками. Если некоторые из следующих демоверсий отсутствуют в архиве, это может означать, что изменений не было и демоверсия не была включена. В этом случае используйте демки из предыдущего выпуска.
624537
625538#### ECC-Demo
626539
627540В этой демке показаны все элементы управления EC-Control в различных конфигурациях.
628541
629542#### ECScale-Demo
630543
631544Эта демка показывает, как вы можете использовать [[TECScale]] в вашем собственном визуальном компоненте.
632545
633546#### ECConfCurve-Demo
634547
635548Эта демка показывает возможности [[TECConfCurve]].
636549
637550#### ECSchemeDesc
638551
639552В этой демке показано, как создать компонент-потомок из [[TCustomECScheme]].
640553
641554#### SchemeDesigner
642555
643556SchemeDesigner - это больше, чем демо. Он показывает вам, как вы можете создать конфигуратор TECScheme в вашем собственном приложении, но его также можно использовать для создания ваших собственных конфигураций и сохранения их в формате *.xml.
644557
645558---
646559*From the Free Pascal wiki, page "Eye-Candy Controls/ru", as it stood on 2022-10-09 after a change by Zoltanleo, 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