Sign in Join
Wiki copytemporary

Eye-Candy Controls/ru: what changed

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

Title: Eye-Candy Controls/ru

OldNewLine
1+**Eye Candy Controls** (сокращенно ECControls или EC-Controls) - набор визуальных элементов управления, написанных для Lazarus. Их дизайн основан на Themes, поэтому они выглядят очень нативными везде, независимо от того, какой виджет вы используете.
2+
3+Каждый релиз аннонсируется на форуме Lazarus в разделе Third Party Announcements(Сторонние объявления).
4+
5+Всегда есть прикрепленные файлы `README.txt` (список всех известных проблем) и `CHANGELOG.txt` (список всех изменений из предыдущего выпуска).
6+
7+Лицензия
8+
9+GNU Lesser General Public License 2.0 с исключением ссылок (a.k.a. Модифицированный LGPL). Каждый файл EC-Controls содержит заголовок лицензии. Кроме того, файлы `COPYING.modifiedLGPL.txt` и `COPYING.LGPL.txt` связаны с каждым архивом.
10+
11+Авторство
12+
13+Все компоненты написаны [Blaazen](https://forum.lazarus.freepascal.org/index.php?action=profile;u=39483). Уведомление об авторском праве и настоящее имя упоминаются в заголовке каждого блока. Вы можете связаться с автором на форуме Lazarus (псевдоним: Blaazen) в любой теме о EC-Controls (email author). Если вы авторизованы на форуме, вы можете получить адрес автора электронной почты или отправить ему личное сообщение.
14+
15+Credits: Выравнивание составных компонентов (TECSpinEdit, TECSpinPosition, TECEditBtn, TECColorBtn, TECComboBtn, TECColorCombo) основано на идее Flávio, опубликованной в списке рассылки [1](http://lists.lazarus.freepascal.org/pipermail/lazarus/2013-March/079971.html)
16+
17+Класс [[TBaseScrollControl]] основан на [TScrollingControl](https://github.com/theo222/lazarus-thumbviewer/blob/master/scrollingcontrol.pas) от Theo.
18+
19+Загрузка
20+
21+- Последний релиз: 0.9.44 на 1 июня 2020 (включая demo); UltraShare не работает. Этот выпуск был протестирован с Lazarus 2.1
22+- Предыдущий релиз: 0.9.30 на 1 марта 2018 (включая demo); UltraShare не работает. Этот выпуск был протестирован с Lazarus 1.9 и 1.8
23+- Предыдущий релиз: 0.9.24.6 на 24 октября 2017 (без demo); TECGrid - *Release candidate*; UltraShare не работает.
24+- Предыдущий релиз: 0.9.20 на 31 июля 2017 (без demo)
25+- Предыдущий релиз: 0.9.6 на 24 мая 2016 (включая demo)
26+- SourceForge: <https://sourceforge.net/projects/eccontrols/>
27+- UltraShare: <http://ultrashare.net/hosting/fl/8c275ee97f> (прямая ссылка на 0.9.6, выпущенный 24.05.2016; включая demo)
28+- UltraShare: <http://ultrashare.net/hosting/fl/a8838060fb> (прямая ссылка на 0.9.4.16, выпущенный 9.04.2016; без demos)
29+- UltraShare: <http://ultrashare.net/hosting/fl/f523032cb4> (прямая ссылка на 0.9.4.14, выпущенный 6.04.2016; без demo)
30+
31+UltraShare - альтернатива, потому что SourceForge заблокирован в некоторых странах. О новых выпусках всегда объявляется в разделе Third Party на форуме Lazarus.
32+
33+Установка в Lazarus
34+
35+Открываем меню `Package => Open package File (*.lpk) ...` и выбираем файл `eccontrols.lpk`. Щелкаем `Compile` (ждем, пока закончится компиляция), затем выбираем `Use >> Install`. Lazarus спросит "Do you want to rebuild Lazarus now?"(Хотите пересобрать Lazarus сейчас?). Жмем `Yes`, чтобы установить пакет.
36+
37+## Компоненты
38+
39+EC-Controls устанавливаются на вкладку EC-C палитры компонентов Lazarus.
40+
41+<figure>
42+<img src="ecpalette2.png" title="ecpalette2.png" />
43+<figcaption>ecpalette2.png</figcaption>
44+</figure>
45+
46+Новые изображения (начиная с версии 0.9.24.6). Файлы ресурсов (* .lrs) также содержат изображения _150 и _200 для настольных компьютеров с высоким разрешением.
47+
48+<figure>
49+<img src="eccpalette4.png" title="eccpalette4.png" />
50+<figcaption>eccpalette4.png</figcaption>
51+</figure>
52+
53+Компоненты ниже перечислены в порядке их появления на палитре компонентов. Все скриншоты взяты из KDE4 или Plasma5 (Lazarus + Qt).
54+
55+### Визуальные
56+
57+#### TECBevel
58+
59+Альтернатива [[TBevel]].
60+
61+<figure>
62+<img src="tecbevel.png" title="tecbevel.png" />
63+<figcaption>tecbevel.png</figcaption>
64+</figure>
65+
66+[[TECBevel]] может рисовать непрямоугольные формы или непрямые линии.
67+
68+#### TECLink
69+
70+[[TECLink]] предоставляет веб-ссылку. Эти же ссылки хорошо известны из веб-браузеров.
71+
72+<figure>
73+<img src="teclink.png" title="teclink.png" />
74+<figcaption>teclink.png</figcaption>
75+</figure>
76+
77+Метка, которая меняет свой вид при наведении на нее курсора мыши (по умолчанию становится подчеркнутой и синей).
78+
79+Она может открывать URL-адрес в браузере по умолчанию, почтовом клиенте по умолчанию, файл в связанном приложении или просто запускать событие OnClick.
80+
81+#### TECImageMenu
82+
83+Вертикальное меню с изображениями. Подобный компонент часто используется в приложениях KDE4 и Outlook97.
84+
85+<figure>
86+<img src="tecimagemenu.png" title="tecimagemenu.png" />
87+<figcaption>tecimagemenu.png</figcaption>
88+</figure>
89+
90+[[TECImageMenu]] может находиться в фокусе, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
91+
92+Мышь
93+
94+- Щелчок левой кнопкой мыши по пункту меню эквивалентен нажатию по нему.
95+- Щелчок средней или правой кнопкой мыши выбирает элемент, но не нажимает его.
96+- Колесико мыши перемещает выделение и не нажимает его.
97+
98+Клавиатура
99+
100+- Пробел и Enter: нажимает выбранный пункт меню.
101+- Arrow Up, Arrow Down, Page Up, Page Down, Home и End: перемещают выделение, но не нажимают на пункт меню.
102+- Быстрые клавиши (Alt + Key) выбирают и нажимают соответствующий пункт (нет необходимости фокусировать меню) ..
103+
104+#### TECSpinBtns
105+
106+Продвинутая альтернатива [[TUpDown]].
107+
108+<figure>
109+<img src="tecspinbtns.png" title="tecspinbtns.png" />
110+<figcaption>tecspinbtns.png</figcaption>
111+</figure>
112+
113+[[TECSpinBtns]] основан на переменных двойной точности.
114+
115+TECSpinBtns не имеет фокуса. Управляется мышью или кодом.
116+
117+Мышь
118+
119+TECSpinBtns состоит из 9 маленьких кнопок.
120+
121+- Щелчок левой кнопкой мыши(ЛКМ) на BtnMin, BtnBigDec, BtnDec, BtnMiddle, BtnMenu, BtnInc, BtnBigInc и BtnMax задает `Value` к `Min`, уменьшает `Value` на величину `PageSize`, уменьшает `Value` на величину `Increment`, задает `Value` к `Middle`, запускает событие `OnMenuClick`, увеличивает `Value` на величину `Increment`, увеличивает `Value` на величину `PageSize` и задает `Value` к `Max` соответственно.
122+- Щелчок средней кнопкой мыши(СКМ) задает `Value` к `Middle` или запускает событие `OnMenuClick` - зависит от свойства `MenuControl`. Для перетаскивания также могут быть использованы другие кнопки мыши, зависит от свойства `DragControl`. Перетаскивание в основном зависит от свойств: `DragOrientation`, `MouseIncrementX`, `MouseIncrementY`, `MouseStepPixelsX`, `MouseStepPixelsY` и `Reversed`.
123+
124+Программно
125+
126+Просто присвоив любое значение с плавающей точкой свойству `Value`:
127+
128+``` pascal
129+Value := 10.5;
130+```
131+
132+Если значение выходит за пределы диапазона (меньше `Min` или больше `Max`), тогда `Value` будет равно `Min` или `Max`.
133+
134+Приоритет отрисовки:
135+
136+1. Наивысший приоритет имеет событие `OnDrawGlyph`.
137+2. Второй - `Caption`. Он должен быть коротким (один или два символа).
138+3. Третий - изображение из `Images`. Изображения должны быть присвоены, а `ImageIndex` должен быть больше или равен нулю, и меньше, чем `Images.Count`
139+4. Если `OnDrawGlyph` не назначен, `Caption` является пустой строкой, а `ImageIndex` равен -1, тогда используется встроенный глиф. Есть пять наборов стилей, их можно выбрать с помощью свойства `GlyphStyle`.
140+
141+#### TECSpinEdit
142+
143+Продвинутая альтернатива TSpinEdit и TFloatSpinEdit. Это [[TEdit]], соединенный с TECSpinBtns.
144+
145+<figure>
146+<img src="tecspinedit.png" title="tecspinedit.png" />
147+<figcaption>tecspinedit.png</figcaption>
148+</figure>
149+
150+[[TECSpinEdit]] может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
151+
152+Мышь
153+
154+См. [[Eye-Candy Controls/ru|TECSpinBtns]].
155+
156+Клавиатура
157+
158+(строка редактирования должна быть в фокусе)
159+
160+Текстовое значение можно ввести непосредственно в строку редактирования. Если введенное значение меньше `TECSpinBtnsPlus.MinInEdit` или больше `TECSpinBtnsPlus.MaxInEdit`, тогда значение будет изменено, чтобы соответствовать этим границам. Изменение значения выполняется в событии `OnEditingDone`.
161+
162+- Arrow Up/Down "щелкают" по BtnInc/BtnDec*.
163+- PgUp/PgDn "щелкают" по BtnBigInc/BtnBigDec*.
164+- Ctrl + Home/End "щелкают" по BtnMax/BtnMin*.
165+- Ctrl + Space "щелкают" по BtnMiddle.
166+- Ctrl + Enter "щелкают" по BtnMenu.
167+
168+*) справедливо для `Reversed = False`. `Reversed = True` делает наоборот.
169+
170+Программно
171+
172+Простое присвоение любого значения с плавающей точкой свойству `Value`:
173+
174+`Value := 10.5;`
175+
176+Если значение выходит за пределы диапазона (меньше `Min` или больше `Max`), тогда `Value` будет соответственно `Min` или `Max`.
177+
178+#### TECSwitch
179+
180+Альтернатива TCheckBox. Аналогичный компонент существует в GTk3.
181+
182+<figure>
183+<img src="tecswitch.png" title="tecswitch.png" />
184+<figcaption>tecswitch.png</figcaption>
185+</figure>
186+
187+[[TECSwitch]] может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
188+
189+Мышь
190+
191+- Щелчок левой кнопкой мыши(ЛКМ) на области переключателя (вне кнопки) изменит `State`*.
192+- Щелчок левой кнопкой мыши(ЛКМ) и удержание ее нажатой на кнопке захватит курсор мыши, и кнопку можно будет перемещать, даже если курсор мыши покинет область переключателя.
193+
194+Клавиатура
195+
196+- Пробел или Enter изменяют `State`* (только если переключатель в фокусе).
197+- Быстрые клавиши (Alt + Key) изменяют `State`* (нет необходимости перемещать фокус на переключатель).
198+
199+Программно
200+
201+Простое присвоение любого значения свойствам `State`* или `Checked`:
202+
203+`Checked := True; //False`\
204+`State := cbChecked; //cbGrayed, cbUnchecked`
205+
206+*) Свойство `State` всегда изменяет значение от `checked` к `unchecked`, от `grayed` к `unchecked` или от `unchecked` к `checked`.
207+
208+#### TECSpeedBtn
209+
210+Кнопка с некоторыми расширенными функциями и встроенными глифами. Альтернатива TSpeedButton и TToggleBox.
211+
212+<figure>
213+<img src="tecspeedbtn.png" title="tecspeedbtn.png" />
214+<figcaption>tecspeedbtn.png</figcaption>
215+</figure>
216+
217+[[TECSpeedBtn]] не имеет фокуса.
218+
219+Особенности и отличия от [[TSpeedButton]]:
220+
221+- TSpeedButton имеет свойство `Glyph: TBitmap`. TECSpeedBtn вместо этого имеет свойства `ImageIndex: Integer` и `Images: `[[TImageList]].
222+- TECSpeedBtn имеет свойство `Delay` и встроенный таймер. Поэтому она может работать как кнопка задержки (Delay\>0) или как переключатель (Delay\<0).
223+- TECSpeedBtn имеет более 80 встроенных глифов (нарисованных с помощью помощника [[TCanvas]]). Глифы могут быть разными для состояния checked и unchecked.
224+- Подобно TSpeedButton, TECSpeedBtn имеет свойства `GroupIndex`, `Checked` и `AllowAllUp`, поэтому кнопки можно сгруппировать в радиогруппу.
225+- TECSpeedBtn не может получать фокус, но может быть нажата быстрой клавишей (Alt + \[подчеркнутая клавиша\]).
226+- TECSpeedBtn также может быть связана с [[TAction]].
227+
228+Приоритеты отрисовки:
229+
230+1. Наивысший приоритет имеет событие `OnDrawGlyph`.
231+2. Второй - `Caption` и изображение из `Images`. Изображения должны быть присвоены, и хотя бы одно из `ImageIndex` и `ImageIndexChecked` должно быть больше или равно нулю и меньше, чем `Images.Count`.
232+3. Когда событие `OnDrawGlyph` не назначено и оба свойства `ImageIndex` и `ImageIndexChecked` имеют значение -1, то используется встроенный глиф (свойства `GlyphDesign` и `GlyphDesignChecked`). Если `ImageIndex` корректен, `Image` и `ImageIndexChecked` имеет значение -1 или только `GlyphDesign` является некоторым глифом, а `GlyphDesignChecked` имеет значение `egdNone`, то `ImageIndex` или `GlyphDesign` также используются для состояния проверки (и наоборот).
233+
234+#### TECBitBtn
235+
236+То же, что и TECSpeedBtn, но производное от TCustomControl, поэтому может иметь фокус. Альтернатива TBitBtn и TToggleBox.
237+
238+<figure>
239+<img src="tecbitbtn.png" title="tecbitbtn.png" />
240+<figcaption>tecbitbtn.png</figcaption>
241+</figure>
242+
243+#### TECEditBtn
244+
245+Альтернатива [[TEditButton]]. Это [[TEdit]], объединенное с [[TECSpeedBtn]].
246+
247+<figure>
248+<img src="teceditbtn.png" title="teceditbtn.png" />
249+<figcaption>teceditbtn.png</figcaption>
250+</figure>
251+
252+#### TECColorBtn
253+
254+Визуальный компонент для выбора цвета. При редактировании строки отображается цветовой код в различных форматах, а соответствующая кнопка запускает диалог выбора цвета.
255+
256+<figure>
257+<img src="teccolorbtn.png" title="teccolorbtn.png" />
258+<figcaption>teccolorbtn.png</figcaption>
259+</figure>
260+
261+Цвет глифа на кнопке соответствует цвету в строке редактирования.
262+
263+Свойство `Text` не является публикуемым (прим.перев: не видно в редакторе свойств). Если текст изменен с помощью кода, необходимо вызвать `EditingDone` для подтверждения изменения.
264+
265+#### TECComboBtn
266+
267+Поле со списком совмещенный с кнопкой. Это [[TComboBox]], соединенный с [[TECSpeedBtn]].
268+
269+<figure>
270+<img src="teccombobtn.png" title="teccombobtn.png" />
271+<figcaption>teccombobtn.png</figcaption>
272+</figure>
273+
274+#### TECColorCombo
275+
276+Визуальный компонент для выбора цвета. Поле со списком содержит цвета в различных форматах, а соответствующая кнопка вызывает диалоговое окно цвета.
277+
278+<figure>
279+<img src="teccolorcombo.png" title="teccolorcombo.png" />
280+<figcaption>teccolorcombo.png</figcaption>
281+</figure>
282+
283+Цвет глифа на кнопке соответствует цвету, выбранному в поле со списком.
284+
285+Свойство `Text` не является публикуемым (прим.перев.: не видно в редакторе свойств). Если текст изменяется с помощью кода, необходимо вызвать `Validate` для подтверждения изменения.
286+
287+#### TECHeader
288+
289+Альтернатива [[THeader]].
290+
291+<figure>
292+<img src="techeader.png" title="techeader.png" />
293+<figcaption>techeader.png</figcaption>
294+</figure>
295+
296+Основная особенность - возможность выравнивания столбцов по левому и правому краю одновременно. Этот компонент разработан для TECCheckListBox.
297+
298+#### TECCheckListBox
299+
300+Альтернатива [[TCheckListBox]].
301+
302+<figure>
303+<img src="tecchecklistbox.png" title="tecchecklistbox.png" />
304+<figcaption>tecchecklistbox.png</figcaption>
305+</figure>
306+
307+Может иметь несколько столбцов с возможностью их пометки.
308+
309+В настоящее время свойство `Sorted` не поддерживается.
310+
311+#### TECSlider
312+
313+Продвинутая альтернатива [[TTrackBar]].
314+
315+<figure>
316+<img src="tecslider.png" title="tecslider.png" />
317+<figcaption>tecslider.png</figcaption>
318+</figure>
319+
320+TECSlider может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда `TabStop = True`, что по умолчанию).
321+
322+TECSlider основан на переменных с двойной точностью. TECSlider можно управлять с помощью мыши, клавиатуры или кода.
323+
324+Мышь
325+
326+- Щелчок левой кнопкой мыши (ЛКМ) на области Slider (вне ползунка) переместит ползунок на величину `PageSize` (или меньше, если курсор мыши ближе).
327+- Двойной щелчок ЛКМ или щелчок средней кнопкой (колесиком) мыши сразу переместит ползунок в позицию курсора мыши (или к Min/Max значению, если щелчок осуществляется за пределами области канавки и шкалы).
328+- Щелчок ЛКМ на ползунке и удержание ее нажатой включит режим удержания мышью, что позволит перемещать ползунок, даже если курсор мыши покинет пределы слайдера.
329+- Колесико мыши перемещает ползунок вверх/вниз независимо от свойства `Reversed`. В случае горизонтального расположения слайдера прокручивание ползунка вверх/вниз будет равносильно перемещению влево/вправо, независимо от свойства `Reversed`.
330+
331+Приращение составляет:
332+
333+- колесико мыши: `Increment`*`Mouse.WheelScrollLines`
334+- Ctrl + колесико мыши: `Increment`.
335+
336+Клавиатура
337+
338+- Пробел: перемещает ползунок в середину канавки слайдера или в `ProgressMiddlePos` в случае `ProgressFromMiddle = True`
339+- 0-9: перемещает ползунок в положение, которое является целочисленным множителем `PageSize` (т.е. 0, 10, ..., 90 для `PageSize = 10`).
340+- PgUp: уменьшает `Position` на величину `PageSize`
341+- PgUp: увеличивает `Position` на величину `PageSize`
342+- Home: перемещает ползунок к `Min`
343+- End: перемещает ползунок к `Max`
344+- +: увеличивает `Position` на величину `Increment`
345+- -: уменьшает `Position` на величину `Increment`
346+- Ctrl + ArrowUp: уменьшает* `Position` на величину `Increment`
347+- Ctrl + ArrowLeft: уменьшает* `Position` на величину `Increment`
348+- Ctrl + ArrowDown: увеличивает* `Position` на величину `Increment`
349+- Ctrl + ArrowRight: увеличивает* `Position` на величину `Increment`
350+
351+*) справедливо для `Reversed = False`. Если `Reversed = True`, работает наоборот.
352+
353+Программно
354+
355+Это можно сделать, просто присвоив свойству `Position` любое значение с плавающей точкой:
356+
357+`Position := 10.5; `
358+
359+Если значение выходит за пределы допустимого диапазона (меньше `Min` или больше `Max`), тогда `Position` будет `Min` или `Max` соответственно.
360+
361+#### TECProgressBar
362+
363+Продвинутая альтернатива [[TProgressBar]].
364+
365+<figure>
366+<img src="tecprogressbar.png" title="tecprogressbar.png" />
367+<figcaption>tecprogressbar.png</figcaption>
368+</figure>
369+
370+TECProgressBar основан на переменных с двойной точностью. TECProgressBar не может иметь фокус. Управлять им можно только с помощью кода.
371+
372+#### TECPositionBar
373+
374+Альтернатива [[TTrackBar]] или [[TScrollBar]]. Подобные компоненты используются в [Blender](https://www.blender.org) (программа для 3D-графики).
375+
376+<figure>
377+<img src="tecpositionbar.png" title="tecpositionbar.png" />
378+<figcaption>tecpositionbar.png</figcaption>
379+</figure>
380+
381+[[TECPositionBar]] не может иметь фокус и базируется на переменных с двойной точностью. TECPositionBar можно контролировать с помощью мыши или кода.
382+
383+Мышь
384+
385+- Щелчок левой кнопкой мыши(ЛКМ) сразу же устанавливает позицию в положение курсора мыши (или в положение Min/Max, если щелчок произведен вне области канавки или шкалы).
386+- Щелчок средней кнопкой мыши(СКМ): перемещает позицию полоски прогрессбара в середину канавки или в позицию `ProgressMiddlePos` в случае `ProgressFromMiddle = True`
387+- Щелчок левой кнопкой мыши(ЛКМ) в конце шкалы и удержание ЛКМ нажатой захватывает курсор мыши, что позволяет изменять позицию шкалы даже если курсор мыши покидает область компонента.
388+- Перетаскивание позиции полоски прогрессбара мышью осуществляется на величину `MouseDragPixels` (нажатие только ЛКМ) или на величину `MouseDragPixelsFine` (Ctrl + ЛКМ). По умолчанию это значения 1 и 10, т.е. позиция полоски прогрессбара изменится на 1 пиксел, когда курсор мыши переместится на 1 пиксел (или на 10 пикселей в случае перетаскивания с нажатой клавишей Ctrl).
389+- Колесико мыши перемещает ползунок вверх/вниз независимо от свойства `Reversed`. В случае горизонтального расположения слайдера прокрутка вверх/вниз перемещает ползунок влуво/вправо, опять же, независимо от свойства `Reversed`.
390+
391+Приращение составляет:
392+
393+- Колесико мыши: `MouseDragPixels`*`Mouse.WheelScrollLines`
394+- Ctrl + колесико мыши: (`MouseDragPixels`/`MouseDragPixelsFine`)*`Mouse.WheelScrollLines`
395+
396+Программно
397+
398+Это можно сделать, просто присвоив любое значение с плавающей токой свойству `PositionSimply`:
399+
400+`Position := 10.5; `
401+
402+Если значение выходит за пределы допустимого диапазона (меньше `Min` или больше `Max`), тогда `Position` будет `Min` или `Max` соответственно.
403+
404+#### TECSpinPosition
405+
406+Альтернатива [[TTrackBar]] или [[TScrollBar]]. Подобные компоненты используются в [Krita](https://krita.org/en) (программное обеспечение для 2D-графики).
407+
408+<figure>
409+<img src="tecspinposition.png" title="tecspinposition.png" />
410+<figcaption>tecspinposition.png</figcaption>
411+</figure>
412+
413+#### TECRuler
414+
415+Продвинутая линейка.
416+
417+<figure>
418+<img src="tecruler.png" title="tecruler.png" />
419+<figcaption>tecruler.png</figcaption>
420+</figure>
421+
422+[[TECRuler]] не меет фокуса. Она просто отображает масштаб. По желанию может иметь фиксированный или подвижный указатель.
423+
424+#### TECRadioGroup
425+
426+Альтернатива TRadioGroup.
427+
428+<figure>
429+<img src="tecradiogroup.png" title="tecradiogroup.png" />
430+<figcaption>tecradiogroup.png</figcaption>
431+</figure>
432+
433+[[TECRadioGroup]] может иметь фокус,и к ней можно перейти с помощью клавиши Tab (когда `TabStop = True`, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
434+
435+Мышь
436+
437+- Щелчок левой кнопкой мыши(ЛКМ) по любому пункту (вне кнопки) изменяет ее свойство `Checked` на `True` (или на `False`, если этот пункт уже имеет значение `checked`*).
438+- Щелчок ЛКМ на TECRadioGroup вне пунктов приводит только к получению компонентом фокуса.
439+
440+Клавиатура
441+
442+- 0: снимает выбор всех пунктов*
443+- 1-9: выбирает (или снимает выбор*) пункты 1-9
444+- Быстрые клавиши (Alt + Key) изменяют свойство `Checked` на `True` или `False`* (radio group не может иметь фокус).
445+
446+*) Зависит от того, находится ли `egoAllowAllUp` в `Options`.
447+
448+Клавиатура
449+
450+Это можно сделать, просто определив любой `ItemIndex` или свойство `Items[].Checked` :
451+
452+`ItemIndex := 1; //отмечает второй пункт`\
453+`Items[1].Checked := False; //снимает выбор со второго пункта, независимо от ``egoAllowAllUp`` в ``Options`
454+
455+#### TECCheckGroup
456+
457+Альтернатива TCheckGroup.
458+
459+<figure>
460+<img src="teccheckgroup.png" title="teccheckgroup.png" />
461+<figcaption>teccheckgroup.png</figcaption>
462+</figure>
463+
464+TECCheckGroup может находиться в фокусе, и к ней можно перейти с помощью клавиши Tab (когда `TabStop = True`, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
465+
466+Мышь
467+
468+- Щелчок левой кнопкой мыши(ЛКМ) по любому из пунктов (вне кнопки) меняет его свойство `Checked` на `True` (или на `False`, если этот пункт уже был помечен*).
469+- Щелчок ЛКМ на TECCheckGroup вне пунктов только переводит фокус на компонент.
470+
471+Клавиатура
472+
473+- 0: снять пометки со всех пунктов*
474+- 1-9: пометить (ил снять пометки*) пунктов 1-9
475+- Быстрые клавиши (Alt + Key) меняют свойство `Checked` на `True`/`False`* (check group не может иметь фокус).
476+
477+*) Зависит от того, находится ли `egoAllowAllUp` в `Options`.
478+
479+Программно
480+
481+Simply by assigning any Checked\[\] or Items\[\].Checked property: Это можно сделать, просто присвоив какое-либо значение свойству `Checked[]` или `Items[].Checked`:
482+
483+`Checked[1] := True; //пометит второй пункт`\
484+`Items[1].Checked := False; //снимет пометку со второго пункта, независимого от того, находится ли ``egoAllowAllUp`` в ``Options``.`
485+
486+#### TECTabCtrl
487+
488+См: [[TECTabCtrl]]
489+
490+#### TECAccordion
491+
492+[[TECAccordion]] это боковое меню, работает аналогично [[TPageControl]].
493+
494+<figure>
495+<img src="tecaccordion.png" title="tecaccordion.png" />
496+<figcaption>tecaccordion.png</figcaption>
497+</figure>
498+
499+TECAccordion может иметь фокус и доступно с помощью клавиши Tab (когда `TabStop = True`, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
500+
501+Мышь
502+
503+Щелчок левой кнопкой мыши(ЛКМ) по любому из пунктов разворачивает/сворачивает его.
504+
505+Клавиатура
506+
507+Быстрые клавиши (Alt + Key) меняют пункт (пункт не может иметь фокус).
508+
509+Программно
510+
511+Можно просто менять свойство `ItemIndex`.
512+
513+#### TECTriangle
514+
515+Баланс трех значений. Это не палитра цветов!
516+
517+<figure>
518+<img src="tectriangle.png" title="tectriangle.png" />
519+<figcaption>tectriangle.png</figcaption>
520+</figure>
521+
522+[[TECTriangle]] не может находиться в фокусе и не может быть найден клавишей Tab. Управляется только мышью.
523+
524+Мышь
525+
526+- Щелчок левой кнопкой мыши(ЛКМ) на области треугольника.
527+- Щелчок ЛКМ и удержание метки позволяет перемещать ее.
528+- Щелчок ЛКМ по метке устанавливает более точное значение, например \[0,333..., 0.333..., 0.333...\].
529+- Колесико мыши позволяет катать метку вверх и вниз.
530+
531+Программно
532+
533+Это можно сделать путем вызова перегруженного метода `SetValues`. Параметры могут быть 1) координатами X и Y или 2) значениями `Top` и `Bottom` (третье значение `Side` является вычисляемой, поэтому сумма значений всегда равна 1).
534+
535+#### TECGrid
536+
537+См.: [[TECGrid]]
538+
539+#### TECLightView
540+
541+См.: [[TECLightView/ru|TECLightView]]
542+
543+#### TECConfCurve
544+
545+Компонент для настройки.
546+
547+<figure>
548+<img src="tecconfcurve.png" title="tecconfcurve.png" />
549+<figcaption>tecconfcurve.png</figcaption>
550+</figure>
551+
552+Пользователь может настроить полилинию или кривую Безье с несколькими точками.
553+
554+Можно выравнивать с помощью вертикальной и/или горизонтальной линейки (TECRuler).
555+
556+См. ECConfCurve-Demo.
557+
558+#### TECScheme
559+
560+Расширенный компонент для настройки общей схемы.
561+
562+<figure>
563+<img src="tecscheme.png" title="tecscheme.png" />
564+<figcaption>tecscheme.png</figcaption>
565+</figure>
566+
567+Пользователь может добавить несколько блоков и соединить их.
568+
569+Этот компонент легко настраивается. См. SchemeDesigner и ECSchemeDesc в комплекте с EC-Controls.
570+
571+### Невизуальные компоненты
572+
573+#### TECSpinController
574+
575+Предназначен для управления свойствами нескольких TECSpinBtns и TECSpinEdit.
576+
577+<figure>
578+<img src="tecspincontrollericon.png" title="tecspincontrollericon.png" />
579+<figcaption>tecspincontrollericon.png</figcaption>
580+</figure>
581+
582+[[TECSpinBtns]] и [[TECSpinEdit]] имеют свойства `Controller`. Когда этому свойству назначен какой-либо `SpinController`, этот контроллер может одновременно изменять выбранные свойства всех присвоенных TECSpinEdits и TECSpinBtns. Настраиваемые свойства - например, `TimerDelay`, `TimerRepeat`, ширина отдельных кнопок, `GlyphsStyle` и другие.
583+
584+В проекте может быть несколько SpinController.
585+
586+#### TECTimer
587+
588+Продвинутый таймер.
589+
590+<figure>
591+<img src="tectimericon.png" title="tectimericon.png" />
592+<figcaption>tectimericon.png</figcaption>
593+</figure>
594+
595+Основная особенность в том, что первый интервал (свойство `Delay`) может отличаться от всех последующих интервалов (свойство `Repeat`).
596+
597+### Другие части EC-Controls
598+
599+#### Class TECScale
600+
601+Масштаб. Это не компонент, но он может рисоваться на любом холсте.
602+
603+Этот класс используется в TECRuler, TECSlider, TECProgressBar, TECPositionBar и TECSpinPosition.
604+
605+См. демку ECScale-Demo.
606+
607+#### Модуль ECTypes
608+
609+Базовые типы и классы для элементов управления Eye Candy Controls (EC-C).
610+
611+Если вы используете EC-Controls в своем проекте, вам может потребоваться добавить этот модуль в раздел **uses**.
612+
613+Этот модуль содержит множество объявлений, подпрограмм преобразования цвета и базовых классов, например TBaseScrollControl.
614+
615+#### TBaseScrollControl
616+
617+Является базовым классом для прокручиваемых компонентов (TECScheme является его потомком).
618+
619+Вы можете получить свой собственный компонент прокрутки из TBaseScrollControl. На этом же классе основаны [[TECScheme]] и [[TECGrid]].
620+
621+## Демки
622+
623+EC-Controls поставляется с несколькими демками. Если некоторые из следующих демоверсий отсутствуют в архиве, это может означать, что изменений не было и демоверсия не была включена. В этом случае используйте демки из предыдущего выпуска.
624+
625+#### ECC-Demo
626+
627+В этой демке показаны все элементы управления EC-Control в различных конфигурациях.
628+
629+#### ECScale-Demo
630+
631+Эта демка показывает, как вы можете использовать [[TECScale]] в вашем собственном визуальном компоненте.
632+
633+#### ECConfCurve-Demo
634+
635+Эта демка показывает возможности [[TECConfCurve]].
636+
637+#### ECSchemeDesc
638+
639+В этой демке показано, как создать компонент-потомок из [[TCustomECScheme]].
640+
641+#### SchemeDesigner
642+
643+SchemeDesigner - это больше, чем демо. Он показывает вам, как вы можете создать конфигуратор TECScheme в вашем собственном приложении, но его также можно использовать для создания ваших собственных конфигураций и сохранения их в формате *.xml.
644+
645+---
646+*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