Sign in Join
Wiki copytemporary

Eye-Candy Controls/ru: what changed

Revision 2 to 3. 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
4141![](/wiki-images/3/3b/Ecpalette2.png)
4242
4343Новые изображения (начиная с версии 0.9.24.6). Файлы ресурсов (* .lrs) также содержат изображения _150 и _200 для настольных компьютеров с высоким разрешением.
4444
4545![](/wiki-images/7/7e/Eccpalette4.png)
4646
4747Компоненты ниже перечислены в порядке их появления на палитре компонентов. Все скриншоты взяты из KDE4 или Plasma5 (Lazarus + Qt).
4848
4949### Визуальные
5050
5151#### TECBevel
5252
5353Альтернатива [[TBevel]].
5454
5555![](/wiki-images/0/0e/Tecbevel.png)
5656
5757[[TECBevel]] может рисовать непрямоугольные формы или непрямые линии.
5858
5959#### TECLink
6060
6161[[TECLink]] предоставляет веб-ссылку. Эти же ссылки хорошо известны из веб-браузеров.
6262
6363![](/wiki-images/7/70/Teclink.png)
6464
6565Метка, которая меняет свой вид при наведении на нее курсора мыши (по умолчанию становится подчеркнутой и синей).
6666
6767Она может открывать URL-адрес в браузере по умолчанию, почтовом клиенте по умолчанию, файл в связанном приложении или просто запускать событие OnClick.
6868
6969#### TECImageMenu
7070
7171Вертикальное меню с изображениями. Подобный компонент часто используется в приложениях KDE4 и Outlook97.
7272
7373![](/wiki-images/8/87/Tecimagemenu.png)
7474
7575[[TECImageMenu]] может находиться в фокусе, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
7676
7777Мышь
7878
7979- Щелчок левой кнопкой мыши по пункту меню эквивалентен нажатию по нему.
8080- Щелчок средней или правой кнопкой мыши выбирает элемент, но не нажимает его.
8181- Колесико мыши перемещает выделение и не нажимает его.
8282
8383Клавиатура
8484
8585- Пробел и Enter: нажимает выбранный пункт меню.
8686- Arrow Up, Arrow Down, Page Up, Page Down, Home и End: перемещают выделение, но не нажимают на пункт меню.
8787- Быстрые клавиши (Alt + Key) выбирают и нажимают соответствующий пункт (нет необходимости фокусировать меню) ..
8888
8989#### TECSpinBtns
9090
9191Продвинутая альтернатива [[TUpDown]].
9292
9393![](/wiki-images/b/bb/Tecspinbtns.png)
9494
9595[[TECSpinBtns]] основан на переменных двойной точности.
9696
9797TECSpinBtns не имеет фокуса. Управляется мышью или кодом.
9898
9999Мышь
100100
101101TECSpinBtns состоит из 9 маленьких кнопок.
102102
103103- Щелчок левой кнопкой мыши(ЛКМ) на BtnMin, BtnBigDec, BtnDec, BtnMiddle, BtnMenu, BtnInc, BtnBigInc и BtnMax задает `Value` к `Min`, уменьшает `Value` на величину `PageSize`, уменьшает `Value` на величину `Increment`, задает `Value` к `Middle`, запускает событие `OnMenuClick`, увеличивает `Value` на величину `Increment`, увеличивает `Value` на величину `PageSize` и задает `Value` к `Max` соответственно.
104104- Щелчок средней кнопкой мыши(СКМ) задает `Value` к `Middle` или запускает событие `OnMenuClick` - зависит от свойства `MenuControl`. Для перетаскивания также могут быть использованы другие кнопки мыши, зависит от свойства `DragControl`. Перетаскивание в основном зависит от свойств: `DragOrientation`, `MouseIncrementX`, `MouseIncrementY`, `MouseStepPixelsX`, `MouseStepPixelsY` и `Reversed`.
105105
106106Программно
107107
108108Просто присвоив любое значение с плавающей точкой свойству `Value`:
109109
110110``` pascal
111111Value := 10.5;
112112```
113113
114114Если значение выходит за пределы диапазона (меньше `Min` или больше `Max`), тогда `Value` будет равно `Min` или `Max`.
115115
116116Приоритет отрисовки:
117117
1181181. Наивысший приоритет имеет событие `OnDrawGlyph`.
1191192. Второй - `Caption`. Он должен быть коротким (один или два символа).
1201203. Третий - изображение из `Images`. Изображения должны быть присвоены, а `ImageIndex` должен быть больше или равен нулю, и меньше, чем `Images.Count`
1211214. Если `OnDrawGlyph` не назначен, `Caption` является пустой строкой, а `ImageIndex` равен -1, тогда используется встроенный глиф. Есть пять наборов стилей, их можно выбрать с помощью свойства `GlyphStyle`.
122122
123123#### TECSpinEdit
124124
125125Продвинутая альтернатива TSpinEdit и TFloatSpinEdit. Это [[TEdit]], соединенный с TECSpinBtns.
126126
127127![](/wiki-images/c/c8/Tecspinedit.png)
128128
129129[[TECSpinEdit]] может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
130130
131131Мышь
132132
133133См. [[Eye-Candy Controls/ru|TECSpinBtns]].
134134
135135Клавиатура
136136
137137(строка редактирования должна быть в фокусе)
138138
139139Текстовое значение можно ввести непосредственно в строку редактирования. Если введенное значение меньше `TECSpinBtnsPlus.MinInEdit` или больше `TECSpinBtnsPlus.MaxInEdit`, тогда значение будет изменено, чтобы соответствовать этим границам. Изменение значения выполняется в событии `OnEditingDone`.
140140
141141- Arrow Up/Down "щелкают" по BtnInc/BtnDec*.
142142- PgUp/PgDn "щелкают" по BtnBigInc/BtnBigDec*.
143143- Ctrl + Home/End "щелкают" по BtnMax/BtnMin*.
144144- Ctrl + Space "щелкают" по BtnMiddle.
145145- Ctrl + Enter "щелкают" по BtnMenu.
146146
147147*) справедливо для `Reversed = False`. `Reversed = True` делает наоборот.
148148
149149Программно
150150
151151Простое присвоение любого значения с плавающей точкой свойству `Value`:
152152
153-`Value := 10.5;`
153+``` pascal
154+Value := 10.5;
155+```
154156
155157Если значение выходит за пределы диапазона (меньше `Min` или больше `Max`), тогда `Value` будет соответственно `Min` или `Max`.
156158
157159#### TECSwitch
158160
159161Альтернатива TCheckBox. Аналогичный компонент существует в GTk3.
160162
161163![](/wiki-images/6/64/Tecswitch.png)
162164
163165[[TECSwitch]] может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
164166
165167Мышь
166168
167169- Щелчок левой кнопкой мыши(ЛКМ) на области переключателя (вне кнопки) изменит `State`*.
168170- Щелчок левой кнопкой мыши(ЛКМ) и удержание ее нажатой на кнопке захватит курсор мыши, и кнопку можно будет перемещать, даже если курсор мыши покинет область переключателя.
169171
170172Клавиатура
171173
172174- Пробел или Enter изменяют `State`* (только если переключатель в фокусе).
173175- Быстрые клавиши (Alt + Key) изменяют `State`* (нет необходимости перемещать фокус на переключатель).
174176
175177Программно
176178
177179Простое присвоение любого значения свойствам `State`* или `Checked`:
178180
179-`Checked := True; //False`\
180-`State := cbChecked; //cbGrayed, cbUnchecked`
181+``` pascal
182+Checked := True; //False
183+State := cbChecked; //cbGrayed, cbUnchecked
184+```
181185
182186*) Свойство `State` всегда изменяет значение от `checked` к `unchecked`, от `grayed` к `unchecked` или от `unchecked` к `checked`.
183187
184188#### TECSpeedBtn
185189
186190Кнопка с некоторыми расширенными функциями и встроенными глифами. Альтернатива TSpeedButton и TToggleBox.
187191
188192![](/wiki-images/0/04/Tecspeedbtn.png)
189193
190194[[TECSpeedBtn]] не имеет фокуса.
191195
192196Особенности и отличия от [[TSpeedButton]]:
193197
194198- TSpeedButton имеет свойство `Glyph: TBitmap`. TECSpeedBtn вместо этого имеет свойства `ImageIndex: Integer` и `Images: `[[TImageList]].
195199- TECSpeedBtn имеет свойство `Delay` и встроенный таймер. Поэтому она может работать как кнопка задержки (Delay\>0) или как переключатель (Delay\<0).
196200- TECSpeedBtn имеет более 80 встроенных глифов (нарисованных с помощью помощника [[TCanvas]]). Глифы могут быть разными для состояния checked и unchecked.
197201- Подобно TSpeedButton, TECSpeedBtn имеет свойства `GroupIndex`, `Checked` и `AllowAllUp`, поэтому кнопки можно сгруппировать в радиогруппу.
198202- TECSpeedBtn не может получать фокус, но может быть нажата быстрой клавишей (Alt + \[подчеркнутая клавиша\]).
199203- TECSpeedBtn также может быть связана с [[TAction]].
200204
201205Приоритеты отрисовки:
202206
2032071. Наивысший приоритет имеет событие `OnDrawGlyph`.
2042082. Второй - `Caption` и изображение из `Images`. Изображения должны быть присвоены, и хотя бы одно из `ImageIndex` и `ImageIndexChecked` должно быть больше или равно нулю и меньше, чем `Images.Count`.
2052093. Когда событие `OnDrawGlyph` не назначено и оба свойства `ImageIndex` и `ImageIndexChecked` имеют значение -1, то используется встроенный глиф (свойства `GlyphDesign` и `GlyphDesignChecked`). Если `ImageIndex` корректен, `Image` и `ImageIndexChecked` имеет значение -1 или только `GlyphDesign` является некоторым глифом, а `GlyphDesignChecked` имеет значение `egdNone`, то `ImageIndex` или `GlyphDesign` также используются для состояния проверки (и наоборот).
206210
207211#### TECBitBtn
208212
209213То же, что и TECSpeedBtn, но производное от TCustomControl, поэтому может иметь фокус. Альтернатива TBitBtn и TToggleBox.
210214
211215![](/wiki-images/5/5c/Tecbitbtn.png)
212216
213217#### TECEditBtn
214218
215219Альтернатива [[TEditButton]]. Это [[TEdit]], объединенное с [[TECSpeedBtn]].
216220
217221![](/wiki-images/5/5d/Teceditbtn.png)
218222
219223#### TECColorBtn
220224
221225Визуальный компонент для выбора цвета. При редактировании строки отображается цветовой код в различных форматах, а соответствующая кнопка запускает диалог выбора цвета.
222226
223227![](/wiki-images/a/ab/Teccolorbtn.png)
224228
225229Цвет глифа на кнопке соответствует цвету в строке редактирования.
226230
227231Свойство `Text` не является публикуемым (прим.перев: не видно в редакторе свойств). Если текст изменен с помощью кода, необходимо вызвать `EditingDone` для подтверждения изменения.
228232
229233#### TECComboBtn
230234
231235Поле со списком совмещенный с кнопкой. Это [[TComboBox]], соединенный с [[TECSpeedBtn]].
232236
233237![](/wiki-images/9/9e/Teccombobtn.png)
234238
235239#### TECColorCombo
236240
237241Визуальный компонент для выбора цвета. Поле со списком содержит цвета в различных форматах, а соответствующая кнопка вызывает диалоговое окно цвета.
238242
239243![](/wiki-images/4/43/Teccolorcombo.png)
240244
241245Цвет глифа на кнопке соответствует цвету, выбранному в поле со списком.
242246
243247Свойство `Text` не является публикуемым (прим.перев.: не видно в редакторе свойств). Если текст изменяется с помощью кода, необходимо вызвать `Validate` для подтверждения изменения.
244248
245249#### TECHeader
246250
247251Альтернатива [[THeader]].
248252
249253![](/wiki-images/a/a1/Techeader.png)
250254
251255Основная особенность - возможность выравнивания столбцов по левому и правому краю одновременно. Этот компонент разработан для TECCheckListBox.
252256
253257#### TECCheckListBox
254258
255259Альтернатива [[TCheckListBox]].
256260
257261![](/wiki-images/0/02/Tecchecklistbox.png)
258262
259263Может иметь несколько столбцов с возможностью их пометки.
260264
261265В настоящее время свойство `Sorted` не поддерживается.
262266
263267#### TECSlider
264268
265269Продвинутая альтернатива [[TTrackBar]].
266270
267271![](/wiki-images/e/e0/Tecslider.png)
268272
269273TECSlider может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию).
270274
271275TECSlider основан на переменных с двойной точностью. TECSlider можно управлять с помощью мыши, клавиатуры или кода.
272276
273277Мышь
274278
275279- Щелчок левой кнопкой мыши (ЛКМ) на области Slider (вне ползунка) переместит ползунок на величину `PageSize` (или меньше, если курсор мыши ближе).
276280- Двойной щелчок ЛКМ или щелчок средней кнопкой (колесиком) мыши сразу переместит ползунок в позицию курсора мыши (или к Min/Max значению, если щелчок осуществляется за пределами области канавки и шкалы).
277281- Щелчок ЛКМ на ползунке и удержание ее нажатой включит режим удержания мышью, что позволит перемещать ползунок, даже если курсор мыши покинет пределы слайдера.
278282- Колесико мыши перемещает ползунок вверх/вниз независимо от свойства `Reversed`. В случае горизонтального расположения слайдера прокручивание ползунка вверх/вниз будет равносильно перемещению влево/вправо, независимо от свойства `Reversed`.
279283
280284Приращение составляет:
281285
282286- колесико мыши: `Increment`*`Mouse.WheelScrollLines`
283287- Ctrl + колесико мыши: `Increment`.
284288
285289Клавиатура
286290
287291- Пробел: перемещает ползунок в середину канавки слайдера или в `ProgressMiddlePos` в случае `ProgressFromMiddle = True`
288292- 0-9: перемещает ползунок в положение, которое является целочисленным множителем `PageSize` (т.е. 0, 10, ..., 90 для `PageSize = 10`).
289293- PgUp: уменьшает `Position` на величину `PageSize`
290294- PgUp: увеличивает `Position` на величину `PageSize`
291295- Home: перемещает ползунок к `Min`
292296- End: перемещает ползунок к `Max`
293297- +: увеличивает `Position` на величину `Increment`
294298- -: уменьшает `Position` на величину `Increment`
295299- Ctrl + ArrowUp: уменьшает* `Position` на величину `Increment`
296300- Ctrl + ArrowLeft: уменьшает* `Position` на величину `Increment`
297301- Ctrl + ArrowDown: увеличивает* `Position` на величину `Increment`
298302- Ctrl + ArrowRight: увеличивает* `Position` на величину `Increment`
299303
300304*) справедливо для `Reversed = False`. Если `Reversed = True`, работает наоборот.
301305
302306Программно
303307
304308Это можно сделать, просто присвоив свойству `Position` любое значение с плавающей точкой:
305309
306-`Position := 10.5; `
310+``` pascal
311+Position := 10.5;
312+```
307313
308314Если значение выходит за пределы допустимого диапазона (меньше `Min` или больше `Max`), тогда `Position` будет `Min` или `Max` соответственно.
309315
310316#### TECProgressBar
311317
312318Продвинутая альтернатива [[TProgressBar]].
313319
314320![](/wiki-images/6/62/Tecprogressbar.png)
315321
316322TECProgressBar основан на переменных с двойной точностью. TECProgressBar не может иметь фокус. Управлять им можно только с помощью кода.
317323
318324#### TECPositionBar
319325
320326Альтернатива [[TTrackBar]] или [[TScrollBar]]. Подобные компоненты используются в [Blender](https://www.blender.org) (программа для 3D-графики).
321327
322328![](/wiki-images/6/61/Tecpositionbar.png)
323329
324330[[TECPositionBar]] не может иметь фокус и базируется на переменных с двойной точностью. TECPositionBar можно контролировать с помощью мыши или кода.
325331
326332Мышь
327333
328334- Щелчок левой кнопкой мыши(ЛКМ) сразу же устанавливает позицию в положение курсора мыши (или в положение Min/Max, если щелчок произведен вне области канавки или шкалы).
329335- Щелчок средней кнопкой мыши(СКМ): перемещает позицию полоски прогрессбара в середину канавки или в позицию `ProgressMiddlePos` в случае `ProgressFromMiddle = True`
330336- Щелчок левой кнопкой мыши(ЛКМ) в конце шкалы и удержание ЛКМ нажатой захватывает курсор мыши, что позволяет изменять позицию шкалы даже если курсор мыши покидает область компонента.
331337- Перетаскивание позиции полоски прогрессбара мышью осуществляется на величину `MouseDragPixels` (нажатие только ЛКМ) или на величину `MouseDragPixelsFine` (Ctrl + ЛКМ). По умолчанию это значения 1 и 10, т.е. позиция полоски прогрессбара изменится на 1 пиксел, когда курсор мыши переместится на 1 пиксел (или на 10 пикселей в случае перетаскивания с нажатой клавишей Ctrl).
332338- Колесико мыши перемещает ползунок вверх/вниз независимо от свойства `Reversed`. В случае горизонтального расположения слайдера прокрутка вверх/вниз перемещает ползунок влуво/вправо, опять же, независимо от свойства `Reversed`.
333339
334340Приращение составляет:
335341
336342- Колесико мыши: `MouseDragPixels`*`Mouse.WheelScrollLines`
337343- Ctrl + колесико мыши: (`MouseDragPixels`/`MouseDragPixelsFine`)*`Mouse.WheelScrollLines`
338344
339345Программно
340346
341347Это можно сделать, просто присвоив любое значение с плавающей токой свойству `PositionSimply`:
342348
343-`Position := 10.5; `
349+``` pascal
350+Position := 10.5;
351+```
344352
345353Если значение выходит за пределы допустимого диапазона (меньше `Min` или больше `Max`), тогда `Position` будет `Min` или `Max` соответственно.
346354
347355#### TECSpinPosition
348356
349357Альтернатива [[TTrackBar]] или [[TScrollBar]]. Подобные компоненты используются в [Krita](https://krita.org/en) (программное обеспечение для 2D-графики).
350358
351359![](/wiki-images/6/67/Tecspinposition.png)
352360
353361#### TECRuler
354362
355363Продвинутая линейка.
356364
357365![](/wiki-images/d/d0/Tecruler.png)
358366
359367[[TECRuler]] не меет фокуса. Она просто отображает масштаб. По желанию может иметь фиксированный или подвижный указатель.
360368
361369#### TECRadioGroup
362370
363371Альтернатива TRadioGroup.
364372
365373![](/wiki-images/3/3a/Tecradiogroup.png)
366374
367375[[TECRadioGroup]] может иметь фокус,и к ней можно перейти с помощью клавиши Tab (когда `TabStop = True`, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
368376
369377Мышь
370378
371379- Щелчок левой кнопкой мыши(ЛКМ) по любому пункту (вне кнопки) изменяет ее свойство `Checked` на `True` (или на `False`, если этот пункт уже имеет значение `checked`*).
372380- Щелчок ЛКМ на TECRadioGroup вне пунктов приводит только к получению компонентом фокуса.
373381
374382Клавиатура
375383
376384- 0: снимает выбор всех пунктов*
377385- 1-9: выбирает (или снимает выбор*) пункты 1-9
378386- Быстрые клавиши (Alt + Key) изменяют свойство `Checked` на `True` или `False`* (radio group не может иметь фокус).
379387
380388*) Зависит от того, находится ли `egoAllowAllUp` в `Options`.
381389
382390Клавиатура
383391
384392Это можно сделать, просто определив любой `ItemIndex` или свойство `Items[].Checked` :
385393
386-`ItemIndex := 1; //отмечает второй пункт`\
387-`Items[1].Checked := False; //снимает выбор со второго пункта, независимо от ``egoAllowAllUp`` в ``Options`
394+``` pascal
395+ItemIndex := 1; //отмечает второй пункт
396+Items[1].Checked := False; //снимает выбор со второго пункта, независимо от egoAllowAllUp в Options
397+```
388398
389399#### TECCheckGroup
390400
391401Альтернатива TCheckGroup.
392402
393403![](/wiki-images/7/7b/Teccheckgroup.png)
394404
395405TECCheckGroup может находиться в фокусе, и к ней можно перейти с помощью клавиши Tab (когда `TabStop = True`, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
396406
397407Мышь
398408
399409- Щелчок левой кнопкой мыши(ЛКМ) по любому из пунктов (вне кнопки) меняет его свойство `Checked` на `True` (или на `False`, если этот пункт уже был помечен*).
400410- Щелчок ЛКМ на TECCheckGroup вне пунктов только переводит фокус на компонент.
401411
402412Клавиатура
403413
404414- 0: снять пометки со всех пунктов*
405415- 1-9: пометить (ил снять пометки*) пунктов 1-9
406416- Быстрые клавиши (Alt + Key) меняют свойство `Checked` на `True`/`False`* (check group не может иметь фокус).
407417
408418*) Зависит от того, находится ли `egoAllowAllUp` в `Options`.
409419
410420Программно
411421
412422Simply by assigning any Checked\[\] or Items\[\].Checked property: Это можно сделать, просто присвоив какое-либо значение свойству `Checked[]` или `Items[].Checked`:
413423
414-`Checked[1] := True; //пометит второй пункт`\
415-`Items[1].Checked := False; //снимет пометку со второго пункта, независимого от того, находится ли ``egoAllowAllUp`` в ``Options``.`
424+``` pascal
425+Checked[1] := True; //пометит второй пункт
426+Items[1].Checked := False; //снимет пометку со второго пункта, независимого от того, находится ли egoAllowAllUp в Options.
427+```
416428
417429#### TECTabCtrl
418430
419431См: [[TECTabCtrl]]
420432
421433#### TECAccordion
422434
423435[[TECAccordion]] это боковое меню, работает аналогично [[TPageControl]].
424436
425437![](/wiki-images/3/37/Tecaccordion.png)
426438
427439TECAccordion может иметь фокус и доступно с помощью клавиши Tab (когда `TabStop = True`, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
428440
429441Мышь
430442
431443Щелчок левой кнопкой мыши(ЛКМ) по любому из пунктов разворачивает/сворачивает его.
432444
433445Клавиатура
434446
435447Быстрые клавиши (Alt + Key) меняют пункт (пункт не может иметь фокус).
436448
437449Программно
438450
439451Можно просто менять свойство `ItemIndex`.
440452
441453#### TECTriangle
442454
443455Баланс трех значений. Это не палитра цветов!
444456
445457![](/wiki-images/a/a8/Tectriangle.png)
446458
447459[[TECTriangle]] не может находиться в фокусе и не может быть найден клавишей Tab. Управляется только мышью.
448460
449461Мышь
450462
451463- Щелчок левой кнопкой мыши(ЛКМ) на области треугольника.
452464- Щелчок ЛКМ и удержание метки позволяет перемещать ее.
453465- Щелчок ЛКМ по метке устанавливает более точное значение, например \[0,333..., 0.333..., 0.333...\].
454466- Колесико мыши позволяет катать метку вверх и вниз.
455467
456468Программно
457469
458470Это можно сделать путем вызова перегруженного метода `SetValues`. Параметры могут быть 1) координатами X и Y или 2) значениями `Top` и `Bottom` (третье значение `Side` является вычисляемой, поэтому сумма значений всегда равна 1).
459471
460472#### TECGrid
461473
462474См.: [[TECGrid]]
463475
464476#### TECLightView
465477
466478См.: [[TECLightView/ru|TECLightView]]
467479
468480#### TECConfCurve
469481
470482Компонент для настройки.
471483
472484![](/wiki-images/1/1e/Tecconfcurve.png)
473485
474486Пользователь может настроить полилинию или кривую Безье с несколькими точками.
475487
476488Можно выравнивать с помощью вертикальной и/или горизонтальной линейки (TECRuler).
477489
478490См. ECConfCurve-Demo.
479491
480492#### TECScheme
481493
482494Расширенный компонент для настройки общей схемы.
483495
484496![](/wiki-images/6/65/Tecscheme.png)
485497
486498Пользователь может добавить несколько блоков и соединить их.
487499
488500Этот компонент легко настраивается. См. SchemeDesigner и ECSchemeDesc в комплекте с EC-Controls.
489501
490502### Невизуальные компоненты
491503
492504#### TECSpinController
493505
494506Предназначен для управления свойствами нескольких TECSpinBtns и TECSpinEdit.
495507
496508![](/wiki-images/7/79/Tecspincontrollericon.png)
497509
498510[[TECSpinBtns]] и [[TECSpinEdit]] имеют свойства `Controller`. Когда этому свойству назначен какой-либо `SpinController`, этот контроллер может одновременно изменять выбранные свойства всех присвоенных TECSpinEdits и TECSpinBtns. Настраиваемые свойства - например, `TimerDelay`, `TimerRepeat`, ширина отдельных кнопок, `GlyphsStyle` и другие.
499511
500512В проекте может быть несколько SpinController.
501513
502514#### TECTimer
503515
504516Продвинутый таймер.
505517
506518![](/wiki-images/2/23/Tectimericon.png)
507519
508520Основная особенность в том, что первый интервал (свойство `Delay`) может отличаться от всех последующих интервалов (свойство `Repeat`).
509521
510522### Другие части EC-Controls
511523
512524#### Class TECScale
513525
514526Масштаб. Это не компонент, но он может рисоваться на любом холсте.
515527
516528Этот класс используется в TECRuler, TECSlider, TECProgressBar, TECPositionBar и TECSpinPosition.
517529
518530См. демку ECScale-Demo.
519531
520532#### Модуль ECTypes
521533
522534Базовые типы и классы для элементов управления Eye Candy Controls (EC-C).
523535
524536Если вы используете EC-Controls в своем проекте, вам может потребоваться добавить этот модуль в раздел **uses**.
525537
526538Этот модуль содержит множество объявлений, подпрограмм преобразования цвета и базовых классов, например TBaseScrollControl.
527539
528540#### TBaseScrollControl
529541
530542Является базовым классом для прокручиваемых компонентов (TECScheme является его потомком).
531543
532544Вы можете получить свой собственный компонент прокрутки из TBaseScrollControl. На этом же классе основаны [[TECScheme]] и [[TECGrid]].
533545
534546## Демки
535547
536548EC-Controls поставляется с несколькими демками. Если некоторые из следующих демоверсий отсутствуют в архиве, это может означать, что изменений не было и демоверсия не была включена. В этом случае используйте демки из предыдущего выпуска.
537549
538550#### ECC-Demo
539551
540552В этой демке показаны все элементы управления EC-Control в различных конфигурациях.
541553
542554#### ECScale-Demo
543555
544556Эта демка показывает, как вы можете использовать [[TECScale]] в вашем собственном визуальном компоненте.
545557
546558#### ECConfCurve-Demo
547559
548560Эта демка показывает возможности [[TECConfCurve]].
549561
550562#### ECSchemeDesc
551563
552564В этой демке показано, как создать компонент-потомок из [[TCustomECScheme]].
553565
554566#### SchemeDesigner
555567
556568SchemeDesigner - это больше, чем демо. Он показывает вам, как вы можете создать конфигуратор TECScheme в вашем собственном приложении, но его также можно использовать для создания ваших собственных конфигураций и сохранения их в формате *.xml.
557569
558570---
559571*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