Difference between revisions of "Eye-Candy Controls/ru"

From Lazarus wiki
(Created page with "{{LanguageBar}} '''Eye Candy Controls''' (сокращенно ECControls или EC-Controls) - набор визуальных элементов управления, на...")
 
(Demos)
 
(61 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{LanguageBar}}
+
{{Eye-Candy Controls}}
  
 
'''Eye Candy Controls''' (сокращенно ECControls или EC-Controls) - набор визуальных элементов управления, написанных для Lazarus. Их дизайн основан на Themes, поэтому они выглядят очень нативными везде, независимо от того, какой виджет вы используете.
 
'''Eye Candy Controls''' (сокращенно ECControls или EC-Controls) - набор визуальных элементов управления, написанных для Lazarus. Их дизайн основан на Themes, поэтому они выглядят очень нативными везде, независимо от того, какой виджет вы используете.
  
Each release is announced on Lazarus Forum in section Third Party Announcements.
+
Каждый релиз аннонсируется на форуме Lazarus в разделе Third Party Announcements(Сторонние объявления).  
  
There are always attached files <tt>README.txt</tt> (list of all known issues) and <tt>CHANGELOG.txt</tt> (list of all changes from previous release).
+
Всегда есть прикрепленные файлы <tt>README.txt</tt> (список всех известных проблем) и <tt>CHANGELOG.txt</tt> (список всех изменений из предыдущего выпуска).
  
;License
+
;Лицензия
GNU Lesser General Public License 2.0 with linking exception (a.k.a. Modified LGPL). Each file of EC-Controls contains license header. Also, files <tt>COPYING.modifiedLGPL.txt</tt> and <tt>COPYING.LGPL.txt</tt> are bundled to each archive.
+
GNU Lesser General Public License 2.0 с исключением ссылок (a.k.a. Модифицированный LGPL). Каждый файл EC-Controls содержит заголовок лицензии. Кроме того, файлы <tt>COPYING.modifiedLGPL.txt</tt> и <tt>COPYING.LGPL.txt</tt> связаны с каждым архивом.
  
;Author
+
;Авторство
All components are written by [[User:Blaazen|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 [[Special:EmailUser/Blaazen|(email author)]]. If you are logged in to the forum, you can get author's e-mail or send him private message.
+
Все компоненты написаны [https://forum.lazarus.freepascal.org/index.php?action=profile;u=39483 Blaazen]. Уведомление об авторском праве и настоящее имя упоминаются в заголовке каждого блока. Вы можете связаться с автором на форуме Lazarus (псевдоним: Blaazen) в любой теме о EC-Controls [[Special:EmailUser/Blaazen|(email author)]]. Если вы авторизованы на форуме, вы можете получить адрес автора электронной почты или отправить ему личное сообщение.
  
 
Credits:
 
Credits:
 +
Выравнивание составных компонентов (TECSpinEdit, TECSpinPosition, TECEditBtn, TECColorBtn, TECComboBtn, TECColorCombo) основано на идее Flávio, опубликованной в списке рассылки [http://lists.lazarus.freepascal.org/pipermail/lazarus/2013-March/079971.html]
  
Alignment of composite components (TECSpinEdit, TECSpinPosition, TECEditBtn, TECColorBtn, TECComboBtn, TECColorCombo) is based on idea of Flávio published on mailing list [http://lists.lazarus.freepascal.org/pipermail/lazarus/2013-March/079971.html]
+
Класс [[TBaseScrollControl]] основан на [https://github.com/theo222/lazarus-thumbviewer/blob/master/scrollingcontrol.pas TScrollingControl] от Theo.
  
[[TBaseScrollControl]] class is based on [https://github.com/theo222/lazarus-thumbviewer/blob/master/scrollingcontrol.pas TScrollingControl] by Theo.
+
;Загрузка
 
+
* Последний релиз: 0.9.44 на 1 июня 2020 (включая demo); UltraShare не работает. Этот выпуск был протестирован с Lazarus 2.1
;Download
+
* Предыдущий релиз: 0.9.30 на 1 марта 2018 (включая demo); UltraShare не работает. Этот выпуск был протестирован с Lazarus 1.9 и 1.8
* Latest release: 0.9.44 on 1-st June 2020 (including demos); UltraShare is out of order. This release was tested with Lazarus 2.1
+
* Предыдущий релиз: 0.9.24.6 на 24 октября 2017 (без demo); TECGrid - ''Release candidate''; UltraShare не работает.
* 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
+
* Предыдущий релиз: 0.9.20 на 31 июля 2017 (без demo)
* Previous release: 0.9.24.6 on 24-th October 2017 (without demos); TECGrid is ''Release candidate''; UltraShare is out of order
+
* Предыдущий релиз: 0.9.6 на 24 мая 2016 (включая demo)
* Previous release: 0.9.20 on 31-th July 2017 (without demos)
 
* Previous release: 0.9.6 on 24-th May 2016 (including demos)
 
 
* SourceForge: https://sourceforge.net/projects/eccontrols/
 
* SourceForge: https://sourceforge.net/projects/eccontrols/
* UltraShare: http://ultrashare.net/hosting/fl/8c275ee97f (direct link to 0.9.6 released on 24-th May 2016; including demos)
+
* UltraShare: http://ultrashare.net/hosting/fl/8c275ee97f (прямая ссылка на 0.9.6, выпущенный  24.05.2016; включая demo)
* UltraShare: http://ultrashare.net/hosting/fl/a8838060fb (direct link to 0.9.4.16 released on 9-th April 2016; without demos)
+
* UltraShare: http://ultrashare.net/hosting/fl/a8838060fb (прямая ссылка на 0.9.4.16, выпущенный 9.04.2016; без demos)
* UltraShare: http://ultrashare.net/hosting/fl/f523032cb4 (direct link to 0.9.4.14 released on 6-th April 2016; without demos)
+
* UltraShare: http://ultrashare.net/hosting/fl/f523032cb4 (прямая ссылка на 0.9.4.14, выпущенный 6.04.2016; без demo)
UltraShare is alternative because SourceForge is blocked in some countries. New releases are always announced in the Third Party section of the Lazarus Forum.
+
UltraShare - альтернатива, потому что SourceForge заблокирован в некоторых странах. О новых выпусках всегда объявляется в разделе Third Party на форуме Lazarus.
  
;Install to Lazarus
+
;Установка в Lazarus
Open menu <tt>Package => Open package File (*.lpk) ...</tt> and select file <tt>eccontrols.lpk</tt>. Click <tt>Compile</tt> (wait a while) and then <tt>Use >> Install</tt>. Lazarus will ask you "Do you want to rebuild Lazarus now?". Click <tt>Yes</tt> to install the package.
+
Открываем меню <tt>Package => Open package File (*.lpk) ...</tt> и выбираем файл <tt>eccontrols.lpk</tt>. Щелкаем <tt>Compile</tt> (ждем, пока закончится компиляция), затем выбираем <tt>Use >> Install</tt>. Lazarus спросит "Do you want to rebuild Lazarus now?"(Хотите пересобрать Lazarus сейчас?). Жмем <tt>Yes</tt>, чтобы установить пакет.
  
== Components ==
+
== Компоненты ==
EC-Controls are installed to the tab EC-C on the Lazarus component palette.
+
EC-Controls устанавливаются на вкладку EC-C палитры компонентов Lazarus.
  
 
[[File:ecpalette2.png]]
 
[[File:ecpalette2.png]]
  
 
+
Новые изображения (начиная с версии 0.9.24.6). Файлы ресурсов (* .lrs) также содержат изображения _150 и _200 для настольных компьютеров с высоким разрешением.
New images (from version 0.9.24.6). Resource files (*.lrs) also contains _150 and _200 images for Hi-DPI desktops.
 
  
 
[[File:eccpalette4.png]]
 
[[File:eccpalette4.png]]
  
Components below are listed in order of their appearance on the component palette. All screenshots are taken from KDE4 or Plasma5 (Lazarus+Qt).
+
Компоненты ниже перечислены в порядке их появления на палитре компонентов. Все скриншоты взяты из KDE4 или Plasma5 (Lazarus + Qt).
  
=== Visual ===
+
=== Визуальные ===
  
 
==== TECBevel ====
 
==== TECBevel ====
An alternative to [[TBevel]].
+
Альтернатива [[TBevel]].
  
 
[[File:tecbevel.png]]
 
[[File:tecbevel.png]]
  
[[TECBevel]] can draw non-rectangular shapes or non-straight lines.
+
[[TECBevel]] может рисовать непрямоугольные формы или непрямые линии.
  
 
==== TECLink ====
 
==== TECLink ====
[[TECLink]] provides a weblink. The same links are well known from web-browsers.
+
[[TECLink]] предоставляет веб-ссылку. Эти же ссылки хорошо известны из веб-браузеров.
  
 
[[File:teclink.png]]
 
[[File:teclink.png]]
  
A label which changes its look when hovered by mouse (by default becomes underlined and blue).
+
Метка, которая меняет свой вид при наведении на нее курсора мыши (по умолчанию становится подчеркнутой и синей).  
  
It can open URL in default browser, default mail client, file in associated application or just trigger OnClick event.
+
Она может открывать URL-адрес в браузере по умолчанию, почтовом клиенте по умолчанию, файл в связанном приложении или просто запускать событие OnClick.
  
 
==== TECImageMenu ====
 
==== TECImageMenu ====
A vertical menu with images. Similar component is frequently used in KDE4 applications and Outlook97
+
Вертикальное меню с изображениями. Подобный компонент часто используется в приложениях KDE4 и Outlook97.
  
 
[[File:tecimagemenu.png]]
 
[[File:tecimagemenu.png]]
  
[[TECImageMenu]] can have focus and can be reached by Tab key (when <code>TabStop = True</code>, which is default). Can be controlled by mouse, by keyboard or by code.
+
[[TECImageMenu]] может находиться в фокусе, и к нему можно перейти с помощью клавиши Tab (когда <code>TabStop = True</code>, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
  
;Mouse
+
;Мышь
* Simply left-click on menu item.
+
* Щелчок левой кнопкой мыши по пункту меню эквивалентен нажатию по нему.
* Middle-click or right-click selects an item but does not click.
+
* Щелчок средней или правой кнопкой мыши выбирает элемент, но не нажимает его.  
* Mouse wheel moves the selection and does not click.
+
* Колесико мыши перемещает выделение и не нажимает его.
  
Keyboard
+
Клавиатура
* Space nad Enter: click on the selected item.
+
* Пробел и Enter: нажимает выбранный пункт меню.
* Arrow Up, Arrow Down, Page Up, Page Down, Home and End: moves the selection but does not click.
+
* Arrow Up, Arrow Down, Page Up, Page Down, Home и End: перемещают выделение, но не нажимают на пункт меню.
* Acceleration key (Alt + Key) selects and clicks the relevant item (menu doesn't need to be focused)..
+
* Быстрые клавиши (Alt + Key) выбирают и нажимают соответствующий пункт (нет необходимости фокусировать меню) ..
  
 
==== TECSpinBtns ====
 
==== TECSpinBtns ====
An advanced alternative to [[TUpDown]].
+
Продвинутая альтернатива [[TUpDown]].
  
 
[[File:tecspinbtns.png]]
 
[[File:tecspinbtns.png]]
  
[[TECSpinBtns]] is based on double precision variables.
+
[[TECSpinBtns]] основан на переменных двойной точности.
  
TECSpinBtns cannot have focus. Can be controlled by mouse or by code.
+
TECSpinBtns не имеет фокуса. Управляется мышью или кодом.
  
;Mouse
+
;Мышь
TECSpinBtns consists from 9 small buttons.  
+
TECSpinBtns состоит из 9 маленьких кнопок.  
* 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.
+
* Щелчок левой кнопкой мыши(ЛКМ) на BtnMin, BtnBigDec, BtnDec, BtnMiddle, BtnMenu, BtnInc, BtnBigInc и BtnMax задает <code>Value</code> к <code>Min</code>, уменьшает <code>Value</code> на величину <code>PageSize</code>, уменьшает <code>Value</code> на величину <code>Increment</code>, задает <code>Value</code> к <code>Middle</code>, запускает событие <code>OnMenuClick</code>, увеличивает <code>Value</code> на величину <code>Increment</code>, увеличивает <code>Value</code> на величину <code>PageSize</code> и задает <code>Value</code> к <code>Max</code> соответственно.
* 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.  
+
* Щелчок средней кнопкой мыши(СКМ) задает <code>Value</code> к <code>Middle</code> или запускает событие <code>OnMenuClick</code> - зависит от свойства <code>MenuControl</code>. Для перетаскивания также могут быть использованы другие кнопки мыши, зависит от свойства <code>DragControl</code>. Перетаскивание в основном зависит от свойств: <code>DragOrientation</code>, <code>MouseIncrementX</code>, <code>MouseIncrementY</code>, <code>MouseStepPixelsX</code>, <code>MouseStepPixelsY</code> и <code>Reversed</code>.  
  
;Code
+
;Программно
Simply by assigning any floating-point value to property Value:  
+
Просто присвоив любое значение с плавающей запятой свойству <code>Value</code>:  
Value := 10.5;
+
<syntaxhighlight lang=pascal>Value := 10.5;</syntaxhighlight>
 
If the value is out of range (lesser than Min or greater than Max) then Value will be Min or Max.
 
If the value is out of range (lesser than Min or greater than Max) then Value will be Min or Max.
 +
Если значение выходит за пределы диапазона (меньше <code>Min</code> или больше <code>Max</code>), тогда <code>Value</code> будет равно <code>Min</code> или <code>Max</code>.
  
Precendence of drawing:
+
Приоритет отрисовки:
# The highest precedence has the OnDrawGlyph event.
+
# Наивысший приоритет имеет событие <code>OnDrawGlyph</code>.  
# The second is Caption. It should be short (one or two characters).
+
# Второй - <code>Caption</code>. Он должен быть коротким (один или два символа).  
# The third is image from Images. Images must be assigned and ImageIndex must be greater or equal to zero and lesser than Images.Count  
+
# Третий - изображение из <code>Images</code>. Изображения должны быть присвоены, а <code>ImageIndex</code> должен быть больше или равен нулю, и меньше, чем <code>Images.Count</code>
# 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.
+
# Если <code>OnDrawGlyph</code> не назначен, <code>Caption</code> является пустой строкой, а <code>ImageIndex</code> равен -1, тогда используется встроенный глиф. Есть пять наборов стилей, их можно выбрать с помощью свойства <code>GlyphStyle</code>.
  
 
==== TECSpinEdit ====
 
==== TECSpinEdit ====
An advanced alternative to TSpinEdit and TFloatSpinEdit. It is [[TEdit]] joined together with TECSpinBtns.
+
Продвинутая альтернатива TSpinEdit и TFloatSpinEdit. Это [[TEdit]], соединенный с TECSpinBtns.
  
 
[[File:tecspinedit.png]]
 
[[File:tecspinedit.png]]
  
[[TECSpinEdit]] can have focus and can be reached by Tab key (when <code>TabStop = True</code>, which is default). Can be controlled by mouse, by keyboard or by code.
+
[[TECSpinEdit]] может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда <code>TabStop = True</code>, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
  
:Mouse
+
;Мышь
See [[TECSpinBtns]].
+
См. [[Eye-Candy_Controls/ru#TECSpinBtns|TECSpinBtns]].
  
;Keyboard
+
;Клавиатура
  
(line-edit must be focused)
+
(строка редактирования должна быть в фокусе)
  
Text 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.
+
Текстовое значение можно ввести непосредственно в строку редактирования. Если введенное значение меньше <code>TECSpinBtnsPlus.MinInEdit</code> или больше <code>TECSpinBtnsPlus.MaxInEdit</code>, тогда значение будет изменено, чтобы соответствовать этим границам. Изменение значения выполняется в событии <code>OnEditingDone</code>.
  
* Arrow Up/Down do click on BtnInc/BtnDec*.
+
* Arrow Up/Down "щелкают" по BtnInc/BtnDec*.
* PgUp/PgDn do click on BtnBigInc/BtnBigDec*.
+
* PgUp/PgDn "щелкают" по BtnBigInc/BtnBigDec*.
* Ctrl + Home/End do click on BtnMax/BtnMin*.
+
* Ctrl + Home/End "щелкают" по BtnMax/BtnMin*.
* Ctrl + Space do click BtnMiddle.
+
* Ctrl + Space "щелкают" по BtnMiddle.
* Ctrl + Enter do click on BtnMenu.
+
* Ctrl + Enter "щелкают" по BtnMenu.
<nowiki>*)</nowiki> valid for Reversed = False. For Reversed = True works oppositely.
+
<nowiki>*)</nowiki> справедливо для <code>Reversed = False</code>. <code>Reversed = True</code> делает наоборот.
  
;Code
+
;Программно
Simply by assigning any floating-point value to property Value:  
+
Простое присвоение любого значения с плавающей точкой свойству <code>Value</code>:  
 
  Value := 10.5;
 
  Value := 10.5;
If the value is out of range (lesser than Min or greater than Max) then Value will be Min or Max.
+
Если значение выходит за пределы диапазона (меньше <code>Min</code> или больше <code>Max</code>), тогда <code>Value</code> будет соответственно <code>Min</code> или <code>Max</code>.
  
 
==== TECSwitch ====
 
==== TECSwitch ====
An alternative to TCheckBox. Similar component exists in GTk3.
+
Альтернатива TCheckBox. Аналогичный компонент существует в GTk3.
  
 
[[File:tecswitch.png]]
 
[[File:tecswitch.png]]
  
[[TECSwitch]] can have focus and can be reached by Tab key (when <code>TabStop = True</code>, which is default). Can be controlled by mouse, by keyboard or by code.
+
[[TECSwitch]] может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда <code>TabStop = True</code>, что по умолчанию). Может управляться мышью, клавиатурой или кодом.
  
;Mouse
+
;Мышь
* Left-click on switch area (out of knob) will change the State*.
+
* Щелчок левой кнопкой мыши(ЛКМ) на области переключателя (вне кнопки) изменит <code>State</code>*.
* 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.
+
* Щелчок левой кнопкой мыши(ЛКМ) и удержание ее нажатой на кнопке захватит курсор мыши, и кнопку можно будет перемещать, даже если курсор мыши покинет область переключателя.
  
;Keyboard
+
;Клавиатура
* Space or Enter changes the State* (only when focused).
+
* Пробел или Enter изменяют <code>State</code>* (только если переключатель в фокусе).
* Acceleration key (Alt + Key) changes the State* (doesn't need to be focused).
+
* Быстрые клавиши (Alt + Key) изменяют <code>State</code>* (нет необходимости перемещать фокус на переключатель).
  
;Code
+
;Программно
Simply by assigning any State* or Checked property:
+
Простое присвоение любого значения свойствам <code>State</code>* или <code>Checked</code>:
 
  Checked := True; //False
 
  Checked := True; //False
 
  State := cbChecked; //cbGrayed, cbUnchecked
 
  State := cbChecked; //cbGrayed, cbUnchecked
  
<nowiki>*)</nowiki> Property State is always changed from checked to unchecked, from grayed to unchecked or from unchecked to checked.
+
<nowiki>*)</nowiki> Свойство <code>State</code> всегда изменяет значение от <code>checked</code> к <code>unchecked</code>, от <code>grayed</code> к <code>unchecked</code> или от <code>unchecked</code> к <code>checked</code>.
  
 
==== TECSpeedBtn ====
 
==== TECSpeedBtn ====
A button with some advanced features and built-in glyphs. An alternative to TSpeedButton and TToggleBox.
+
Кнопка с некоторыми расширенными функциями и встроенными глифами. Альтернатива TSpeedButton и TToggleBox.
  
 
[[File:tecspeedbtn.png]]
 
[[File:tecspeedbtn.png]]
  
[[TECSpeedBtn]] cannot have focus.
+
[[TECSpeedBtn]] не имеет фокуса.
  
Features and differences from [[TSpeedButton]]:
+
Особенности и отличия от [[TSpeedButton]]:  
* TSpeedButton has property Glyph: TBitmap. TECSpeedBtn has properties ImageIndex: Integer and Images: [[TImageList]] instead.
+
* TSpeedButton имеет свойство <code>Glyph: TBitmap</code>. TECSpeedBtn вместо этого имеет свойства <code>ImageIndex: Integer</code> и <code>Images: [[TImageList]]</code>.  
* TECSpeedBtn has property Delay and built-in timer. Therefore it can work as a delay-button (Delay>0) or toggle-box (Delay<0).
+
* TECSpeedBtn имеет свойство <code>Delay</code> и встроенный таймер. Поэтому она может работать как кнопка задержки (Delay>0) или как переключатель (Delay<0).  
* TECSpeedBtn has more than 80 built-in glyph (painted via [[TCanvas]] helper). Glyphs can be various for checked and unchecked state.
+
* TECSpeedBtn имеет более 80 встроенных глифов (нарисованных с помощью помощника [[TCanvas]]). Глифы могут быть разными для состояния checked и unchecked.  
* Similarly to TSpeedButton, TECSpeedBtn has properties GroupIndex, Checked and AllowAllUp so buttons can be grouped to radio-group.
+
* Подобно TSpeedButton, TECSpeedBtn имеет свойства <code>GroupIndex</code>, <code>Checked</code> и <code>AllowAllUp</code>, поэтому кнопки можно сгруппировать в радиогруппу.  
* TECSpeedBtn cannot obtain focus but can be pressed by acceleration key (Alt+ [underlined key]).
+
* TECSpeedBtn не может получать фокус, но может быть нажата быстрой клавишей (Alt + [подчеркнутая клавиша]).  
* TECSpeedBtn can be linked with [[TAction]] too.
+
* TECSpeedBtn также может быть связана с [[TAction]].
  
Precendence of drawing:
+
Приоритеты отрисовки:  
# The highest precedence has the OnDrawGlyph event.
+
# Наивысший приоритет имеет событие <code>OnDrawGlyph</code>.  
# 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.
+
# Второй - <code>Caption</code> и изображение из <code>Images</code>. Изображения должны быть присвоены, и хотя бы одно из <code>ImageIndex</code> и <code>ImageIndexChecked</code> должно быть больше или равно нулю и меньше, чем <code>Images.Count</code>.  
# 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).
+
# Когда событие <code>OnDrawGlyph</code> не назначено и оба свойства <code>ImageIndex</code> и <code>ImageIndexChecked</code> имеют значение -1, то используется встроенный глиф (свойства <code>GlyphDesign</code> и <code>GlyphDesignChecked</code>). Если <code>ImageIndex</code> корректен, <code>Image</code> и <code>ImageIndexChecked</code> имеет значение -1 или только <code>GlyphDesign</code> является некоторым глифом, а <code>GlyphDesignChecked</code> имеет значение <code>egdNone</code>, то <code>ImageIndex</code> или <code>GlyphDesign</code> также используются для состояния проверки (и наоборот).
  
 
==== TECBitBtn ====
 
==== TECBitBtn ====
The same as TECSpeedBtn but derived from TCustomControl, therefore it can have focus. An alternative to TBitBtn and TToggleBox.
+
То же, что и TECSpeedBtn, но производное от TCustomControl, поэтому может иметь фокус. Альтернатива TBitBtn и TToggleBox.
  
 
[[File:tecbitbtn.png]]
 
[[File:tecbitbtn.png]]
  
 
==== TECEditBtn ====
 
==== TECEditBtn ====
An alternative to [[TEditButton]]. It is [[TEdit]] joined together with [[TECSpeedBtn]].
+
Альтернатива [[TEditButton]]. Это [[TEdit]], объединенное с [[TECSpeedBtn]].
  
 
[[File:teceditbtn.png]]
 
[[File:teceditbtn.png]]
  
 
==== TECColorBtn ====
 
==== TECColorBtn ====
Visual component for selecting color. Line edit displays color code in various formats and associated button triggers color dialog.
+
Визуальный компонент для выбора цвета. При редактировании строки отображается цветовой код в различных форматах, а соответствующая кнопка запускает диалог выбора цвета.
  
 
[[File:teccolorbtn.png]]
 
[[File:teccolorbtn.png]]
  
Color of the glyph on the button corresponds with the color in the line-edit.
+
Цвет глифа на кнопке соответствует цвету в строке редактирования.  
  
Property Text is not published. If Text is changed via code, EditingDone must be called to validate the change.
+
Свойство <code>Text</code> не является публикуемым ([[user:Zoltanleo|прим.перев]]: не видно в редакторе свойств). Если текст изменен с помощью кода, необходимо вызвать <code>EditingDone</code> для подтверждения изменения.
  
 
==== TECComboBtn ====
 
==== TECComboBtn ====
A combobox with associated button. It is [[TComboBox]] joined together with [[TECSpeedBtn]].
+
Поле со списком совмещенный с кнопкой. Это [[TComboBox]], соединенный с [[TECSpeedBtn]].
  
 
[[File:teccombobtn.png]]
 
[[File:teccombobtn.png]]
  
 
==== TECColorCombo ====
 
==== TECColorCombo ====
Visual component for selecting color. Combobox contains colors in various formats and associated button triggers color dialog.
+
Визуальный компонент для выбора цвета. Поле со списком содержит цвета в различных форматах, а соответствующая кнопка вызывает диалоговое окно цвета.
  
 
[[File:teccolorcombo.png]]
 
[[File:teccolorcombo.png]]
  
Color of the glyph on the button corresponds with the color selected in the combobox.
+
Цвет глифа на кнопке соответствует цвету, выбранному в поле со списком.  
  
Property Text is not published. If Text is changed via code, Validate must be called to validate the change.
+
Свойство <code>Text</code> не является публикуемым ([[user:zoltanleo|прим.перев.]]: не видно в редакторе свойств). Если текст изменяется с помощью кода, необходимо вызвать <code>Validate</code> для подтверждения изменения.
  
 
==== TECHeader ====
 
==== TECHeader ====
An alternative to [[THeader]].
+
Альтернатива [[THeader]].
  
 
[[File:techeader.png]]
 
[[File:techeader.png]]
  
Main feature is ability to have columns aligned to the left and to the right at a time. This components is designed for TECCheckListBox.
+
Основная особенность - возможность выравнивания столбцов по левому и правому краю одновременно. Этот компонент разработан для TECCheckListBox.
  
 
==== TECCheckListBox ====
 
==== TECCheckListBox ====
An alternative to [[TCheckListBox]].
+
Альтернатива [[TCheckListBox]].
  
 
[[File:tecchecklistbox.png]]
 
[[File:tecchecklistbox.png]]
  
Can have multiple checkable columns.
+
Может иметь несколько столбцов с возможностью их пометки.  
  
Currently, property Sorted is not supported.
+
В настоящее время свойство <code>Sorted</code> не поддерживается.
  
 
==== TECSlider ====
 
==== TECSlider ====
An advanced alternative to [[TTrackBar]].
+
Продвинутая альтернатива [[TTrackBar]].
  
 
[[File:tecslider.png]]
 
[[File:tecslider.png]]
  
TECSlider can have focus and can be reached by Tab key (when <code>TabStop = True</code>, which is default).
+
TECSlider может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда <code>TabStop = True</code>, что по умолчанию).  
  
TECSlider is based on double precision variables. TECSlider can be controlled by mouse, by keyboard or by code.
+
TECSlider основан на переменных с двойной точностью. TECSlider можно управлять с помощью мыши, клавиатуры или кода.
  
;Mouse
+
;Мышь
* Left-click on Slider area (out of Knob) will move the knob by PageSize (or less, if mouse cursor is nearer).
+
* Щелчок левой кнопкой мыши (ЛКМ) на области Slider (вне ползунка) переместит ползунок на величину <code>PageSize</code> (или меньше, если курсор мыши ближе).
* 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).
+
* Двойной щелчок ЛКМ или щелчок средней кнопкой (колесиком) мыши сразу переместит ползунок в позицию курсора мыши (или к Min/Max значению, если щелчок осуществляется за пределами области канавки и шкалы).
* 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.
+
* Щелчок ЛКМ на ползунке и удержание ее нажатой включит режим удержания мышью, что позволит перемещать ползунок, даже если курсор мыши покинет пределы слайдера.
* 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.
+
* Колесико мыши перемещает ползунок вверх/вниз независимо от свойства <code>Reversed</code>. В случае горизонтального расположения слайдера прокручивание ползунка вверх/вниз будет равносильно перемещению влево/вправо, независимо от свойства <code>Reversed</code>.
  
The increment is:
+
Приращение составляет:
* Mouse wheel: Increment*Mouse.WheelScrollLines
+
* колесико мыши: <code>Increment</code>*<code>Mouse.WheelScrollLines</code>
* Ctrl + mouse wheel: Increment.
+
* Ctrl + колесико мыши: <code>Increment</code>.
  
;Keyboard
+
;Клавиатура
* Space: moves knob to the middle of the groove or to the ProgressMiddlePos in case of ProgressFromMiddle = True
+
* Пробел: перемещает ползунок в середину канавки слайдера или в <code>ProgressMiddlePos</code> в случае <code>ProgressFromMiddle = True</code>
* 0-9: moves the knob to position which is the integer multiplier of the PageSize (i.e. 0, 10, ..., 90 for PageSize = 10).
+
* 0-9: перемещает ползунок в положение, которое является целочисленным множителем <code>PageSize</code> (т.е. 0, 10, ..., 90 для <code>PageSize = 10</code>).
* PgUp: decreases Position by PageSize
+
* PgUp: уменьшает <code>Position</code> на величину <code>PageSize</code>
* PgUp: increases Position by PageSize
+
* PgUp: увеличивает <code>Position</code> на величину <code>PageSize</code>
* Home: moves the Knob to Min
+
* Home: перемещает ползунок к <code>Min</code>
* End: moves the Knob to Max
+
* End: перемещает ползунок к <code>Max</code>
* +: increases Position by Increment
+
* +: увеличивает <code>Position</code> на величину <code>Increment</code>
* -: decreases Position by Increment
+
* -: уменьшает <code>Position</code> на величину <code>Increment</code>
* Ctrl + ArrowUp: decreases* Position by Increment
+
* Ctrl + ArrowUp: уменьшает* <code>Position</code> на величину <code>Increment</code>
* Ctrl + ArrowLeft: decreases* Position by Increment
+
* Ctrl + ArrowLeft: уменьшает* <code>Position</code> на величину <code>Increment</code>
* Ctrl + ArrowDown: increases* Position by Increment
+
* Ctrl + ArrowDown: увеличивает* <code>Position</code> на величину <code>Increment</code>
* Ctrl + ArrowRight: increases* Position by Increment
+
* Ctrl + ArrowRight: увеличивает* <code>Position</code> на величину <code>Increment</code>
<nowiki>*)</nowiki> valid for <code>Reversed = False</code>. When <code>Reversed = True</code> works oppositely.  
+
<nowiki>*)</nowiki> справедливо для <code>Reversed = False</code>. Если <code>Reversed = True</code>, работает наоборот.  
  
;Code
+
;Программно
Simply by assigning any floating-point value to property Position:  
+
Это можно сделать, просто присвоив свойству <code>Position</code> любое значение с плавающей точкой:  
 
  Position := 10.5;  
 
  Position := 10.5;  
If the value is out of range (lesser than Min or greater than Max) then Position will be Min or Max.
+
Если значение выходит за пределы допустимого диапазона (меньше <code>Min</code> или больше <code>Max</code>), тогда <code>Position</code> будет <code>Min</code> или <code>Max</code> соответственно.
  
 
==== TECProgressBar ====
 
==== TECProgressBar ====
An advanced alternative to [[TProgressBar]].
+
Продвинутая альтернатива [[TProgressBar]].
  
 
[[File:tecprogressbar.png]]
 
[[File:tecprogressbar.png]]
  
TECProgressBar is based on double precision variables. TECProgressBar cannot have focus. It can be controlled by code only.
+
TECProgressBar основан на переменных с двойной точностью. TECProgressBar не может иметь фокус. Управлять им можно только с помощью кода.
  
 
==== TECPositionBar ====
 
==== TECPositionBar ====
An alternative to [[TTrackBar]] or [[TScrollBar]]. Similar components are used in [[Blender]] (3D graphics software).
+
Альтернатива [[TTrackBar]] или [[TScrollBar]]. Подобные компоненты используются в [https://www.blender.org Blender] (программа для 3D-графики).
  
 
[[File:tecpositionbar.png]]
 
[[File:tecpositionbar.png]]
  
[[TECPositionBar]] cannot have focus and is based on double precision variables. TECPositionBar can be controlled by mouse or by code.
+
[[TECPositionBar]] не может иметь фокус и базируется на переменных с двойной точностью. TECPositionBar можно контролировать с помощью мыши или кода.
  
;Mouse
+
;Мышь
* 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).
+
* Щелчок левой кнопкой мыши(ЛКМ) сразу же устанавливает позицию в положение курсора мыши (или в положение Min/Max, если щелчок произведен вне области канавки или шкалы).
* Middle-click: moves knob to the middle of the groove or to the ProgressMiddlePos in case of ProgressFromMiddle = True
+
* Щелчок средней кнопкой мыши(СКМ): перемещает позицию полоски прогрессбара в середину канавки или в позицию <code>ProgressMiddlePos</code> в случае <code>ProgressFromMiddle = True</code>
* 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.
+
* Щелчок левой кнопкой мыши(ЛКМ) в конце шкалы и удержание ЛКМ нажатой захватывает курсор мыши, что позволяет изменять позицию шкалы даже если курсор мыши покидает область компонента.
* 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).
+
* Перетаскивание позиции полоски прогрессбара мышью осуществляется на величину <code>MouseDragPixels</code> (нажатие только ЛКМ) или на величину <code>MouseDragPixelsFine</code> (Ctrl + ЛКМ). По умолчанию это значения 1 и 10, т.е. позиция полоски прогрессбара изменится на 1 пиксел, когда курсор мыши переместится на 1 пиксел (или на 10 пикселей в случае перетаскивания с нажатой клавишей Ctrl).
* 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.
+
* Колесико мыши перемещает ползунок вверх/вниз независимо от свойства <code>Reversed</code>. В случае горизонтального расположения слайдера прокрутка вверх/вниз перемещает ползунок влуво/вправо, опять же, независимо от свойства <code>Reversed</code>.
  
The increment is:
+
Приращение составляет:
* Mouse wheel: MouseDragPixels*Mouse.WheelScrollLines
+
* Колесико мыши: <code>MouseDragPixels</code>*<code>Mouse.WheelScrollLines</code>
* Ctrl + mouse wheel: (MouseDragPixels/MouseDragPixelsFine)*Mouse.WheelScrollLines
+
* Ctrl + колесико мыши: (<code>MouseDragPixels</code>/<code>MouseDragPixelsFine</code>)*<code>Mouse.WheelScrollLines</code>
  
;Code
+
;Программно
Simply by assigning any floating-point value to property Position:  
+
Это можно сделать, просто присвоив любое значение с плавающей токой свойству <code>PositionSimply</code>:  
 
  Position := 10.5;  
 
  Position := 10.5;  
If the value is out of range (lesser than Min or greater than Max) then Position will be Min or Max.
+
Если значение выходит за пределы допустимого диапазона (меньше <code>Min</code> или больше <code>Max</code>), тогда <code>Position</code> будет <code>Min</code> или <code>Max</code> соответственно.
  
 
==== TECSpinPosition ====
 
==== TECSpinPosition ====
An alternative to [[TTrackBar]] or [[TScrollBar]]. Similar components are used in Krita (2D graphics software).
+
Альтернатива [[TTrackBar]] или [[TScrollBar]]. Подобные компоненты используются в [https://krita.org/en Krita] (программное обеспечение для 2D-графики).
  
 
[[File:tecspinposition.png]]
 
[[File:tecspinposition.png]]
  
 
==== TECRuler ====
 
==== TECRuler ====
An advanced ruler.
+
Продвинутая линейка.
  
 
[[File:tecruler.png]]
 
[[File:tecruler.png]]
  
[[TECRuler]] cannot have focus. It just displays scale. Can have fixed or movable pointer optionally.
+
[[TECRuler]] не меет фокуса. Она просто отображает масштаб. По желанию может иметь фиксированный или подвижный указатель.
  
 
==== TECRadioGroup ====
 
==== TECRadioGroup ====
An alternative to TRadioGroup.
+
Альтернатива TRadioGroup.
  
 
[[File:tecradiogroup.png]]
 
[[File:tecradiogroup.png]]
  
[[TECRadioGroup]] can have focus and can be reached by Tab key (when <code>TabStop = True</code>, which is not default). Can be controlled by mouse, by keyboard or by code.
+
[[TECRadioGroup]] может иметь фокус,и к ней можно перейти с помощью клавиши Tab (когда <code>TabStop = True</code>, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
  
;Mouse
+
;Мышь
* Left-click on any item (out of knob) changes its Checked property to True (or to False if this item is already checked*).
+
* Щелчок левой кнопкой мыши(ЛКМ) по любому пункту (вне кнопки) изменяет ее свойство <code>Checked</code> на <code>True</code> (или на <code>False</code>, если этот пункт уже имеет значение <code>checked</code>*).
* Left-click on the TECRadioGroup out of items sets focus to component only.
+
* Щелчок ЛКМ на TECRadioGroup вне пунктов приводит только к получению компонентом фокуса.
  
;Keyboard
+
;Клавиатура
* 0: deselects all*
+
* 0: снимает выбор всех пунктов*
* 1-9: selects (or deselects*) item 1-9
+
* 1-9: выбирает (или снимает выбор*) пункты 1-9
* Acceleration key (Alt + Key) changes the Checked property to True or False* (radio group doesn't have to be focused).
+
* Быстрые клавиши (Alt + Key) изменяют свойство <code>Checked</code> на <code>True</code> или <code>False</code>* (radio group не может иметь фокус).
<nowiki>*)</nowiki> Depends whether egoAllowAllUp is in Options.
+
<nowiki>*)</nowiki> Зависит от того, находится ли <code>egoAllowAllUp</code> в <code>Options</code>.
  
;Code
+
;Клавиатура
Simply by assigning any ItemIndex or Items[].Checked property:
+
Это можно сделать, просто определив любой <code>ItemIndex</code> или свойство <code>Items[].Checked</code> :
  ItemIndex := 1; //selects the second item
+
  ItemIndex := 1; //отмечает второй пункт
  Items[1].Checked := False; //deselects the second item, regardless of the egoAllowAllUp in Options
+
  Items[1].Checked := False; //снимает выбор со второго пункта, независимо от <code>egoAllowAllUp</code> в <code>Options</code>
  
 
==== TECCheckGroup ====
 
==== TECCheckGroup ====
  
An alternative to TCheckGroup.
+
Альтернатива TCheckGroup.
  
 
[[File:teccheckgroup.png]]
 
[[File:teccheckgroup.png]]
  
TECCheckGroup can have focus and can be reached by Tab key (when <code>TabStop = True</code>, which is not default). Can be controlled by mouse, by keyboard or by code.
+
TECCheckGroup может находиться в фокусе, и к ней можно перейти с помощью клавиши Tab (когда <code>TabStop = True</code>, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
  
;Mouse
+
;Мышь
* Left-click on any item (out of knob) changes its Checked property to True (or to False if this item is already checked*).
+
* Щелчок левой кнопкой мыши(ЛКМ) по любому из пунктов (вне кнопки) меняет его свойство <code>Checked</code> на <code>True</code> (или на <code>False</code>, если этот пункт уже был помечен*).
* Left-click on the TECCheckGroup out of items sets focus to component only.
+
* Щелчок ЛКМ на TECCheckGroup вне пунктов только переводит фокус на компонент.
  
;Keyboard
+
;Клавиатура
* 0: deselects all*
+
* 0: снять пометки со всех пунктов*
* 1-9: selects (or deselects*) item 1-9
+
* 1-9: пометить (ил снять пометки*) пунктов 1-9
* Acceleration key (Alt + Key) changes the Checked property to True/False* (check group doesn't have to be focused).
+
* Быстрые клавиши (Alt + Key) меняют свойство <code>Checked</code> на <code>True</code>/<code>False</code>* (check group не может иметь фокус).
<nowiki>*)</nowiki> Depends whether egoAllowAllUp is in Options.
+
<nowiki>*)</nowiki> Зависит от того, находится ли <code>egoAllowAllUp</code> в <code>Options</code>.
  
;Code
+
;Программно
 
Simply by assigning any Checked[] or Items[].Checked property:
 
Simply by assigning any Checked[] or Items[].Checked property:
  Checked[1] := True; //selects the second item
+
Это можно сделать, просто присвоив какое-либо значение свойству <code>Checked[]</code> или <code>Items[].Checked</code>:
  Items[1].Checked := False; //deselects the second item, regardless of the egoAllowAllUp in Options.
+
  Checked[1] := True; //пометит второй пункт
 +
  Items[1].Checked := False; //снимет пометку со второго пункта, независимого от того, находится ли <code>egoAllowAllUp</code> в <code>Options</code>.
  
 
==== TECTabCtrl ====
 
==== TECTabCtrl ====
See: [[TECTabCtrl]]
+
См: [[TECTabCtrl]]
  
 
==== TECAccordion ====
 
==== TECAccordion ====
[[TECAccordion]] is a side menu, works similarly to [[TPageControl]].
+
[[TECAccordion]] это боковое меню, работает аналогично [[TPageControl]].
  
 
[[File:tecaccordion.png]]
 
[[File:tecaccordion.png]]
  
TECAccordion can have focus and can be reached by Tab key (when <code>TabStop = True</code>, which is not default). Can be controlled by mouse, by keyboard or by code.
+
TECAccordion может иметь фокус и доступно с помощью клавиши Tab (когда <code>TabStop = True</code>, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.
;Mouse
+
;Мышь
Left-click on any item opens/closes it.
+
Щелчок левой кнопкой мыши(ЛКМ) по любому из пунктов разворачивает/сворачивает его.
;Keyboard
+
;Клавиатура
Acceleration key (Alt + Key) changes the item (component doesn't have to be focused).
+
Быстрые клавиши (Alt + Key) меняют пункт (пункт не может иметь фокус).
;Code
+
;Программно
Simply by setting ItemIndex property.
+
Можно просто менять свойство <code>ItemIndex</code>.
  
 
==== TECTriangle ====
 
==== TECTriangle ====
A balance of three values. This is not a color picker!
+
Баланс трех значений. Это не палитра цветов!
  
 
[[File:tectriangle.png]]
 
[[File:tectriangle.png]]
  
[[TECTriangle]] cannot have focus and cannot be reached by Tab key. Can be controlled by mouse only.
+
[[TECTriangle]] не может находиться в фокусе и не может быть найден клавишей Tab. Управляется только мышью.
  
;Mouse
+
;Мышь
*Left-click on triangle area.
+
*Щелчок левой кнопкой мыши(ЛКМ) на области треугольника.
*Left-click and hold the pointer can drag.
+
*Щелчок ЛКМ и удержание метки позволяет перемещать ее.
*Left-click on a mark sets more exact value, for example [0,333..., 0.333..., 0.333...].
+
*Щелчок ЛКМ по метке устанавливает более точное значение, например [0,333..., 0.333..., 0.333...].
* Mouse wheel can roll the pointer up and down.
+
*Колесико мыши позволяет катать метку вверх и вниз.
  
;Code
+
;Программно
By 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).
+
Это можно сделать путем вызова перегруженного метода <code>SetValues</code>. Параметры могут быть 1) координатами X и Y или 2) значениями <code>Top</code> и <code>Bottom</code> (третье значение <code>Side</code> является вычисляемой, поэтому сумма значений всегда равна 1).
  
 
==== TECGrid ====
 
==== TECGrid ====
See: [[TECGrid]]
+
См.: [[TECGrid]]
  
 
==== TECLightView ====
 
==== TECLightView ====
See: [[TECLightView]]
+
См.: [[TECLightView/ru|TECLightView]]
  
 
==== TECConfCurve ====
 
==== TECConfCurve ====
Component for Configuration.
+
Компонент для настройки.
  
 
[[File:tecconfcurve.png]]
 
[[File:tecconfcurve.png]]
  
User can configure polyline or Bezier curve with multiple points.
+
Пользователь может настроить полилинию или кривую Безье с несколькими точками.  
  
Can be aligned with vertical and/or horizontal ruler (TECRuler).
+
Можно выравнивать с помощью вертикальной и/или горизонтальной линейки (TECRuler).
  
See ECConfCurve-Demo.
+
См. ECConfCurve-Demo.
  
 
==== TECScheme ====
 
==== TECScheme ====
An advanced component for configuration of general scheme.
+
Расширенный компонент для настройки общей схемы.
  
 
[[File:tecscheme.png]]
 
[[File:tecscheme.png]]
  
User can add multiple blocks and connect them.
+
Пользователь может добавить несколько блоков и соединить их.  
  
This component is highly configurable. See SchemeDesigner and ECSchemeDesc bundled with EC-Controls.
+
Этот компонент легко настраивается. См. SchemeDesigner и ECSchemeDesc в комплекте с EC-Controls.
  
=== Non-visual components ===
+
=== Невизуальные компоненты ===
  
 
==== TECSpinController ====
 
==== TECSpinController ====
Designed for controlling properties of multiple TECSpinBtns and TECSpinEdit.
+
Предназначен для управления свойствами нескольких TECSpinBtns и TECSpinEdit.
  
 
[[File:tecspincontrollericon.png]]
 
[[File:tecspincontrollericon.png]]
  
[[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.
+
[[TECSpinBtns]] и [[TECSpinEdit]] имеют свойства <code>Controller</code>. Когда этому свойству назначен какой-либо <code>SpinController</code>, этот контроллер может одновременно изменять выбранные свойства всех присвоенных TECSpinEdits и TECSpinBtns. Настраиваемые свойства - например, <code>TimerDelay</code>, <code>TimerRepeat</code>, ширина отдельных кнопок, <code>GlyphsStyle</code> и другие.
  
Project can have multiple SpinControllers.
+
В проекте может быть несколько SpinController.
  
 
==== TECTimer ====
 
==== TECTimer ====
An advanced timer.
+
Продвинутый таймер.
  
 
[[File:tectimericon.png]]
 
[[File:tectimericon.png]]
  
Main feature is that the first interval (property Delay) can differ from all following intervals (property Repeat).
+
Основная особенность в том, что первый интервал (свойство <code>Delay</code>) может отличаться от всех последующих интервалов (свойство <code>Repeat</code>).
  
=== Other parts of EC-Controls ===
+
=== Другие части EC-Controls ===
  
 
==== Class TECScale ====
 
==== Class TECScale ====
A scale. It is not a component but can draw itself to any canvas.
+
Масштаб. Это не компонент, но он может рисоваться на любом холсте.
  
This class is used in TECRuler, TECSlider, TECProgressBar, TECPositionBar and TECSpinPosition.
+
Этот класс используется в TECRuler, TECSlider, TECProgressBar, TECPositionBar и TECSpinPosition.
  
See demo ECScale-Demo.
+
См. демку ECScale-Demo.
  
==== Unit ECTypes ====
+
==== Модуль ECTypes ====
Base types and classes for Eye Candy Controls (EC-C).
+
Базовые типы и классы для элементов управления Eye Candy Controls (EC-C).  
  
If you use EC-Controls in your project you may need to add this unit to your '''uses''' section.
+
Если вы используете EC-Controls в своем проекте, вам может потребоваться добавить этот модуль в раздел '''uses'''.  
  
This unit contains many declarations, color-conversion routines and base classes, for example TBaseScrollControl.
+
Этот модуль содержит множество объявлений, подпрограмм преобразования цвета и базовых классов, например TBaseScrollControl.
  
 
==== TBaseScrollControl ====
 
==== TBaseScrollControl ====
is base class for scrolling components (TECScheme is its descendant).
+
Является базовым классом для прокручиваемых компонентов (TECScheme является его потомком).  
  
You can derive your own scrolling component from TBaseScrollControl. [[TECScheme]] and [[TECGrid]] are based on this class.
+
Вы можете получить свой собственный компонент прокрутки из TBaseScrollControl. На этом же классе основаны [[TECScheme]] и [[TECGrid]].
  
== Demos ==
+
== Демки ==
EC-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.
+
EC-Controls поставляется с несколькими демками. Если некоторые из следующих демоверсий отсутствуют в архиве, это может означать, что изменений не было и демоверсия не была включена. В этом случае используйте демки из предыдущего выпуска.
  
 
==== ECC-Demo ====
 
==== ECC-Demo ====
This demo shows all EC-Controls in various configurations.
+
В этой демке показаны все элементы управления EC-Control в различных конфигурациях.
  
 
==== ECScale-Demo ====
 
==== ECScale-Demo ====
This demo shows how you can use [[TECScale]] in our own visual component.
+
Эта демка показывает, как вы можете использовать [[TECScale]] в вашем собственном визуальном компоненте.
  
 
==== ECConfCurve-Demo ====
 
==== ECConfCurve-Demo ====
This demo shows capabilities of [[TECConfCurve]].
+
Эта демка показывает возможности [[TECConfCurve]].
  
 
==== ECSchemeDesc ====
 
==== ECSchemeDesc ====
This demo shows how you can create descendant component from [[TCustomECScheme]].
+
В этой демке показано, как создать компонент-потомок из [[TCustomECScheme]].
  
 
==== SchemeDesigner ====
 
==== SchemeDesigner ====
SchemeDesigner 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.
+
SchemeDesigner - это больше, чем демо. Он показывает вам, как вы можете создать конфигуратор TECScheme в вашем собственном приложении, но его также можно использовать для создания ваших собственных конфигураций и сохранения их в формате *.xml.
 
 
[[Category:Components]]
 

Latest revision as of 15:20, 17 August 2020

English (en) español (es) русский (ru)

Eye Candy Controls (сокращенно ECControls или EC-Controls) - набор визуальных элементов управления, написанных для Lazarus. Их дизайн основан на Themes, поэтому они выглядят очень нативными везде, независимо от того, какой виджет вы используете.

Каждый релиз аннонсируется на форуме Lazarus в разделе Third Party Announcements(Сторонние объявления).

Всегда есть прикрепленные файлы README.txt (список всех известных проблем) и CHANGELOG.txt (список всех изменений из предыдущего выпуска).

Лицензия

GNU Lesser General Public License 2.0 с исключением ссылок (a.k.a. Модифицированный LGPL). Каждый файл EC-Controls содержит заголовок лицензии. Кроме того, файлы COPYING.modifiedLGPL.txt и COPYING.LGPL.txt связаны с каждым архивом.

Авторство

Все компоненты написаны Blaazen. Уведомление об авторском праве и настоящее имя упоминаются в заголовке каждого блока. Вы можете связаться с автором на форуме Lazarus (псевдоним: Blaazen) в любой теме о EC-Controls (email author). Если вы авторизованы на форуме, вы можете получить адрес автора электронной почты или отправить ему личное сообщение.

Credits: Выравнивание составных компонентов (TECSpinEdit, TECSpinPosition, TECEditBtn, TECColorBtn, TECComboBtn, TECColorCombo) основано на идее Flávio, опубликованной в списке рассылки [1]

Класс TBaseScrollControl основан на TScrollingControl от Theo.

Загрузка
  • Последний релиз: 0.9.44 на 1 июня 2020 (включая demo); UltraShare не работает. Этот выпуск был протестирован с Lazarus 2.1
  • Предыдущий релиз: 0.9.30 на 1 марта 2018 (включая demo); UltraShare не работает. Этот выпуск был протестирован с Lazarus 1.9 и 1.8
  • Предыдущий релиз: 0.9.24.6 на 24 октября 2017 (без demo); TECGrid - Release candidate; UltraShare не работает.
  • Предыдущий релиз: 0.9.20 на 31 июля 2017 (без demo)
  • Предыдущий релиз: 0.9.6 на 24 мая 2016 (включая demo)
  • SourceForge: https://sourceforge.net/projects/eccontrols/
  • UltraShare: http://ultrashare.net/hosting/fl/8c275ee97f (прямая ссылка на 0.9.6, выпущенный 24.05.2016; включая demo)
  • UltraShare: http://ultrashare.net/hosting/fl/a8838060fb (прямая ссылка на 0.9.4.16, выпущенный 9.04.2016; без demos)
  • UltraShare: http://ultrashare.net/hosting/fl/f523032cb4 (прямая ссылка на 0.9.4.14, выпущенный 6.04.2016; без demo)

UltraShare - альтернатива, потому что SourceForge заблокирован в некоторых странах. О новых выпусках всегда объявляется в разделе Third Party на форуме Lazarus.

Установка в Lazarus

Открываем меню Package => Open package File (*.lpk) ... и выбираем файл eccontrols.lpk. Щелкаем Compile (ждем, пока закончится компиляция), затем выбираем Use >> Install. Lazarus спросит "Do you want to rebuild Lazarus now?"(Хотите пересобрать Lazarus сейчас?). Жмем Yes, чтобы установить пакет.

Компоненты

EC-Controls устанавливаются на вкладку EC-C палитры компонентов Lazarus.

ecpalette2.png

Новые изображения (начиная с версии 0.9.24.6). Файлы ресурсов (* .lrs) также содержат изображения _150 и _200 для настольных компьютеров с высоким разрешением.

eccpalette4.png

Компоненты ниже перечислены в порядке их появления на палитре компонентов. Все скриншоты взяты из KDE4 или Plasma5 (Lazarus + Qt).

Визуальные

TECBevel

Альтернатива TBevel.

tecbevel.png

TECBevel может рисовать непрямоугольные формы или непрямые линии.

TECLink

TECLink предоставляет веб-ссылку. Эти же ссылки хорошо известны из веб-браузеров.

teclink.png

Метка, которая меняет свой вид при наведении на нее курсора мыши (по умолчанию становится подчеркнутой и синей).

Она может открывать URL-адрес в браузере по умолчанию, почтовом клиенте по умолчанию, файл в связанном приложении или просто запускать событие OnClick.

TECImageMenu

Вертикальное меню с изображениями. Подобный компонент часто используется в приложениях KDE4 и Outlook97.

tecimagemenu.png

TECImageMenu может находиться в фокусе, и к нему можно перейти с помощью клавиши Tab (когда TabStop = True, что по умолчанию). Может управляться мышью, клавиатурой или кодом.

Мышь
  • Щелчок левой кнопкой мыши по пункту меню эквивалентен нажатию по нему.
  • Щелчок средней или правой кнопкой мыши выбирает элемент, но не нажимает его.
  • Колесико мыши перемещает выделение и не нажимает его.

Клавиатура

  • Пробел и Enter: нажимает выбранный пункт меню.
  • Arrow Up, Arrow Down, Page Up, Page Down, Home и End: перемещают выделение, но не нажимают на пункт меню.
  • Быстрые клавиши (Alt + Key) выбирают и нажимают соответствующий пункт (нет необходимости фокусировать меню) ..

TECSpinBtns

Продвинутая альтернатива TUpDown.

tecspinbtns.png

TECSpinBtns основан на переменных двойной точности.

TECSpinBtns не имеет фокуса. Управляется мышью или кодом.

Мышь

TECSpinBtns состоит из 9 маленьких кнопок.

  • Щелчок левой кнопкой мыши(ЛКМ) на BtnMin, BtnBigDec, BtnDec, BtnMiddle, BtnMenu, BtnInc, BtnBigInc и BtnMax задает Value к Min, уменьшает Value на величину PageSize, уменьшает Value на величину Increment, задает Value к Middle, запускает событие OnMenuClick, увеличивает Value на величину Increment, увеличивает Value на величину PageSize и задает Value к Max соответственно.
  • Щелчок средней кнопкой мыши(СКМ) задает Value к Middle или запускает событие OnMenuClick - зависит от свойства MenuControl. Для перетаскивания также могут быть использованы другие кнопки мыши, зависит от свойства DragControl. Перетаскивание в основном зависит от свойств: DragOrientation, MouseIncrementX, MouseIncrementY, MouseStepPixelsX, MouseStepPixelsY и Reversed.
Программно

Просто присвоив любое значение с плавающей запятой свойству Value:

Value := 10.5;

If the value is out of range (lesser than Min or greater than Max) then Value will be Min or Max. Если значение выходит за пределы диапазона (меньше Min или больше Max), тогда Value будет равно Min или Max.

Приоритет отрисовки:

  1. Наивысший приоритет имеет событие OnDrawGlyph.
  2. Второй - Caption. Он должен быть коротким (один или два символа).
  3. Третий - изображение из Images. Изображения должны быть присвоены, а ImageIndex должен быть больше или равен нулю, и меньше, чем Images.Count
  4. Если OnDrawGlyph не назначен, Caption является пустой строкой, а ImageIndex равен -1, тогда используется встроенный глиф. Есть пять наборов стилей, их можно выбрать с помощью свойства GlyphStyle.

TECSpinEdit

Продвинутая альтернатива TSpinEdit и TFloatSpinEdit. Это TEdit, соединенный с TECSpinBtns.

tecspinedit.png

TECSpinEdit может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда TabStop = True, что по умолчанию). Может управляться мышью, клавиатурой или кодом.

Мышь

См. TECSpinBtns.

Клавиатура

(строка редактирования должна быть в фокусе)

Текстовое значение можно ввести непосредственно в строку редактирования. Если введенное значение меньше TECSpinBtnsPlus.MinInEdit или больше TECSpinBtnsPlus.MaxInEdit, тогда значение будет изменено, чтобы соответствовать этим границам. Изменение значения выполняется в событии OnEditingDone.

  • Arrow Up/Down "щелкают" по BtnInc/BtnDec*.
  • PgUp/PgDn "щелкают" по BtnBigInc/BtnBigDec*.
  • Ctrl + Home/End "щелкают" по BtnMax/BtnMin*.
  • Ctrl + Space "щелкают" по BtnMiddle.
  • Ctrl + Enter "щелкают" по BtnMenu.

*) справедливо для Reversed = False. Reversed = True делает наоборот.

Программно

Простое присвоение любого значения с плавающей точкой свойству Value:

Value := 10.5;

Если значение выходит за пределы диапазона (меньше Min или больше Max), тогда Value будет соответственно Min или Max.

TECSwitch

Альтернатива TCheckBox. Аналогичный компонент существует в GTk3.

tecswitch.png

TECSwitch может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда TabStop = True, что по умолчанию). Может управляться мышью, клавиатурой или кодом.

Мышь
  • Щелчок левой кнопкой мыши(ЛКМ) на области переключателя (вне кнопки) изменит State*.
  • Щелчок левой кнопкой мыши(ЛКМ) и удержание ее нажатой на кнопке захватит курсор мыши, и кнопку можно будет перемещать, даже если курсор мыши покинет область переключателя.
Клавиатура
  • Пробел или Enter изменяют State* (только если переключатель в фокусе).
  • Быстрые клавиши (Alt + Key) изменяют State* (нет необходимости перемещать фокус на переключатель).
Программно

Простое присвоение любого значения свойствам State* или Checked:

Checked := True; //False
State := cbChecked; //cbGrayed, cbUnchecked

*) Свойство State всегда изменяет значение от checked к unchecked, от grayed к unchecked или от unchecked к checked.

TECSpeedBtn

Кнопка с некоторыми расширенными функциями и встроенными глифами. Альтернатива TSpeedButton и TToggleBox.

tecspeedbtn.png

TECSpeedBtn не имеет фокуса.

Особенности и отличия от TSpeedButton:

  • TSpeedButton имеет свойство Glyph: TBitmap. TECSpeedBtn вместо этого имеет свойства ImageIndex: Integer и Images: TImageList.
  • TECSpeedBtn имеет свойство Delay и встроенный таймер. Поэтому она может работать как кнопка задержки (Delay>0) или как переключатель (Delay<0).
  • TECSpeedBtn имеет более 80 встроенных глифов (нарисованных с помощью помощника TCanvas). Глифы могут быть разными для состояния checked и unchecked.
  • Подобно TSpeedButton, TECSpeedBtn имеет свойства GroupIndex, Checked и AllowAllUp, поэтому кнопки можно сгруппировать в радиогруппу.
  • TECSpeedBtn не может получать фокус, но может быть нажата быстрой клавишей (Alt + [подчеркнутая клавиша]).
  • TECSpeedBtn также может быть связана с TAction.

Приоритеты отрисовки:

  1. Наивысший приоритет имеет событие OnDrawGlyph.
  2. Второй - Caption и изображение из Images. Изображения должны быть присвоены, и хотя бы одно из ImageIndex и ImageIndexChecked должно быть больше или равно нулю и меньше, чем Images.Count.
  3. Когда событие OnDrawGlyph не назначено и оба свойства ImageIndex и ImageIndexChecked имеют значение -1, то используется встроенный глиф (свойства GlyphDesign и GlyphDesignChecked). Если ImageIndex корректен, Image и ImageIndexChecked имеет значение -1 или только GlyphDesign является некоторым глифом, а GlyphDesignChecked имеет значение egdNone, то ImageIndex или GlyphDesign также используются для состояния проверки (и наоборот).

TECBitBtn

То же, что и TECSpeedBtn, но производное от TCustomControl, поэтому может иметь фокус. Альтернатива TBitBtn и TToggleBox.

tecbitbtn.png

TECEditBtn

Альтернатива TEditButton. Это TEdit, объединенное с TECSpeedBtn.

teceditbtn.png

TECColorBtn

Визуальный компонент для выбора цвета. При редактировании строки отображается цветовой код в различных форматах, а соответствующая кнопка запускает диалог выбора цвета.

teccolorbtn.png

Цвет глифа на кнопке соответствует цвету в строке редактирования.

Свойство Text не является публикуемым (прим.перев: не видно в редакторе свойств). Если текст изменен с помощью кода, необходимо вызвать EditingDone для подтверждения изменения.

TECComboBtn

Поле со списком совмещенный с кнопкой. Это TComboBox, соединенный с TECSpeedBtn.

teccombobtn.png

TECColorCombo

Визуальный компонент для выбора цвета. Поле со списком содержит цвета в различных форматах, а соответствующая кнопка вызывает диалоговое окно цвета.

teccolorcombo.png

Цвет глифа на кнопке соответствует цвету, выбранному в поле со списком.

Свойство Text не является публикуемым (прим.перев.: не видно в редакторе свойств). Если текст изменяется с помощью кода, необходимо вызвать Validate для подтверждения изменения.

TECHeader

Альтернатива THeader.

techeader.png

Основная особенность - возможность выравнивания столбцов по левому и правому краю одновременно. Этот компонент разработан для TECCheckListBox.

TECCheckListBox

Альтернатива TCheckListBox.

tecchecklistbox.png

Может иметь несколько столбцов с возможностью их пометки.

В настоящее время свойство Sorted не поддерживается.

TECSlider

Продвинутая альтернатива TTrackBar.

tecslider.png

TECSlider может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда TabStop = True, что по умолчанию).

TECSlider основан на переменных с двойной точностью. TECSlider можно управлять с помощью мыши, клавиатуры или кода.

Мышь
  • Щелчок левой кнопкой мыши (ЛКМ) на области Slider (вне ползунка) переместит ползунок на величину PageSize (или меньше, если курсор мыши ближе).
  • Двойной щелчок ЛКМ или щелчок средней кнопкой (колесиком) мыши сразу переместит ползунок в позицию курсора мыши (или к Min/Max значению, если щелчок осуществляется за пределами области канавки и шкалы).
  • Щелчок ЛКМ на ползунке и удержание ее нажатой включит режим удержания мышью, что позволит перемещать ползунок, даже если курсор мыши покинет пределы слайдера.
  • Колесико мыши перемещает ползунок вверх/вниз независимо от свойства Reversed. В случае горизонтального расположения слайдера прокручивание ползунка вверх/вниз будет равносильно перемещению влево/вправо, независимо от свойства Reversed.

Приращение составляет:

  • колесико мыши: Increment*Mouse.WheelScrollLines
  • Ctrl + колесико мыши: Increment.
Клавиатура
  • Пробел: перемещает ползунок в середину канавки слайдера или в ProgressMiddlePos в случае ProgressFromMiddle = True
  • 0-9: перемещает ползунок в положение, которое является целочисленным множителем PageSize (т.е. 0, 10, ..., 90 для PageSize = 10).
  • PgUp: уменьшает Position на величину PageSize
  • PgUp: увеличивает Position на величину PageSize
  • Home: перемещает ползунок к Min
  • End: перемещает ползунок к Max
  • +: увеличивает Position на величину Increment
  • -: уменьшает Position на величину Increment
  • Ctrl + ArrowUp: уменьшает* Position на величину Increment
  • Ctrl + ArrowLeft: уменьшает* Position на величину Increment
  • Ctrl + ArrowDown: увеличивает* Position на величину Increment
  • Ctrl + ArrowRight: увеличивает* Position на величину Increment

*) справедливо для Reversed = False. Если Reversed = True, работает наоборот.

Программно

Это можно сделать, просто присвоив свойству Position любое значение с плавающей точкой:

Position := 10.5; 

Если значение выходит за пределы допустимого диапазона (меньше Min или больше Max), тогда Position будет Min или Max соответственно.

TECProgressBar

Продвинутая альтернатива TProgressBar.

tecprogressbar.png

TECProgressBar основан на переменных с двойной точностью. TECProgressBar не может иметь фокус. Управлять им можно только с помощью кода.

TECPositionBar

Альтернатива TTrackBar или TScrollBar. Подобные компоненты используются в Blender (программа для 3D-графики).

tecpositionbar.png

TECPositionBar не может иметь фокус и базируется на переменных с двойной точностью. TECPositionBar можно контролировать с помощью мыши или кода.

Мышь
  • Щелчок левой кнопкой мыши(ЛКМ) сразу же устанавливает позицию в положение курсора мыши (или в положение Min/Max, если щелчок произведен вне области канавки или шкалы).
  • Щелчок средней кнопкой мыши(СКМ): перемещает позицию полоски прогрессбара в середину канавки или в позицию ProgressMiddlePos в случае ProgressFromMiddle = True
  • Щелчок левой кнопкой мыши(ЛКМ) в конце шкалы и удержание ЛКМ нажатой захватывает курсор мыши, что позволяет изменять позицию шкалы даже если курсор мыши покидает область компонента.
  • Перетаскивание позиции полоски прогрессбара мышью осуществляется на величину MouseDragPixels (нажатие только ЛКМ) или на величину MouseDragPixelsFine (Ctrl + ЛКМ). По умолчанию это значения 1 и 10, т.е. позиция полоски прогрессбара изменится на 1 пиксел, когда курсор мыши переместится на 1 пиксел (или на 10 пикселей в случае перетаскивания с нажатой клавишей Ctrl).
  • Колесико мыши перемещает ползунок вверх/вниз независимо от свойства Reversed. В случае горизонтального расположения слайдера прокрутка вверх/вниз перемещает ползунок влуво/вправо, опять же, независимо от свойства Reversed.

Приращение составляет:

  • Колесико мыши: MouseDragPixels*Mouse.WheelScrollLines
  • Ctrl + колесико мыши: (MouseDragPixels/MouseDragPixelsFine)*Mouse.WheelScrollLines
Программно

Это можно сделать, просто присвоив любое значение с плавающей токой свойству PositionSimply:

Position := 10.5; 

Если значение выходит за пределы допустимого диапазона (меньше Min или больше Max), тогда Position будет Min или Max соответственно.

TECSpinPosition

Альтернатива TTrackBar или TScrollBar. Подобные компоненты используются в Krita (программное обеспечение для 2D-графики).

tecspinposition.png

TECRuler

Продвинутая линейка.

tecruler.png

TECRuler не меет фокуса. Она просто отображает масштаб. По желанию может иметь фиксированный или подвижный указатель.

TECRadioGroup

Альтернатива TRadioGroup.

tecradiogroup.png

TECRadioGroup может иметь фокус,и к ней можно перейти с помощью клавиши Tab (когда TabStop = True, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.

Мышь
  • Щелчок левой кнопкой мыши(ЛКМ) по любому пункту (вне кнопки) изменяет ее свойство Checked на True (или на False, если этот пункт уже имеет значение checked*).
  • Щелчок ЛКМ на TECRadioGroup вне пунктов приводит только к получению компонентом фокуса.
Клавиатура
  • 0: снимает выбор всех пунктов*
  • 1-9: выбирает (или снимает выбор*) пункты 1-9
  • Быстрые клавиши (Alt + Key) изменяют свойство Checked на True или False* (radio group не может иметь фокус).

*) Зависит от того, находится ли egoAllowAllUp в Options.

Клавиатура

Это можно сделать, просто определив любой ItemIndex или свойство Items[].Checked :

ItemIndex := 1; //отмечает второй пункт
Items[1].Checked := False; //снимает выбор со второго пункта, независимо от egoAllowAllUp в Options

TECCheckGroup

Альтернатива TCheckGroup.

teccheckgroup.png

TECCheckGroup может находиться в фокусе, и к ней можно перейти с помощью клавиши Tab (когда TabStop = True, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.

Мышь
  • Щелчок левой кнопкой мыши(ЛКМ) по любому из пунктов (вне кнопки) меняет его свойство Checked на True (или на False, если этот пункт уже был помечен*).
  • Щелчок ЛКМ на TECCheckGroup вне пунктов только переводит фокус на компонент.
Клавиатура
  • 0: снять пометки со всех пунктов*
  • 1-9: пометить (ил снять пометки*) пунктов 1-9
  • Быстрые клавиши (Alt + Key) меняют свойство Checked на True/False* (check group не может иметь фокус).

*) Зависит от того, находится ли egoAllowAllUp в Options.

Программно

Simply by assigning any Checked[] or Items[].Checked property: Это можно сделать, просто присвоив какое-либо значение свойству Checked[] или Items[].Checked:

Checked[1] := True; //пометит второй пункт
Items[1].Checked := False; //снимет пометку со второго пункта, независимого от того, находится ли egoAllowAllUp в Options.

TECTabCtrl

См: TECTabCtrl

TECAccordion

TECAccordion это боковое меню, работает аналогично TPageControl.

tecaccordion.png

TECAccordion может иметь фокус и доступно с помощью клавиши Tab (когда TabStop = True, что не по умолчанию). Может управляться мышью, клавиатурой или кодом.

Мышь

Щелчок левой кнопкой мыши(ЛКМ) по любому из пунктов разворачивает/сворачивает его.

Клавиатура

Быстрые клавиши (Alt + Key) меняют пункт (пункт не может иметь фокус).

Программно

Можно просто менять свойство ItemIndex.

TECTriangle

Баланс трех значений. Это не палитра цветов!

tectriangle.png

TECTriangle не может находиться в фокусе и не может быть найден клавишей Tab. Управляется только мышью.

Мышь
  • Щелчок левой кнопкой мыши(ЛКМ) на области треугольника.
  • Щелчок ЛКМ и удержание метки позволяет перемещать ее.
  • Щелчок ЛКМ по метке устанавливает более точное значение, например [0,333..., 0.333..., 0.333...].
  • Колесико мыши позволяет катать метку вверх и вниз.
Программно

Это можно сделать путем вызова перегруженного метода SetValues. Параметры могут быть 1) координатами X и Y или 2) значениями Top и Bottom (третье значение Side является вычисляемой, поэтому сумма значений всегда равна 1).

TECGrid

См.: TECGrid

TECLightView

См.: TECLightView

TECConfCurve

Компонент для настройки.

tecconfcurve.png

Пользователь может настроить полилинию или кривую Безье с несколькими точками.

Можно выравнивать с помощью вертикальной и/или горизонтальной линейки (TECRuler).

См. ECConfCurve-Demo.

TECScheme

Расширенный компонент для настройки общей схемы.

tecscheme.png

Пользователь может добавить несколько блоков и соединить их.

Этот компонент легко настраивается. См. SchemeDesigner и ECSchemeDesc в комплекте с EC-Controls.

Невизуальные компоненты

TECSpinController

Предназначен для управления свойствами нескольких TECSpinBtns и TECSpinEdit.

tecspincontrollericon.png

TECSpinBtns и TECSpinEdit имеют свойства Controller. Когда этому свойству назначен какой-либо SpinController, этот контроллер может одновременно изменять выбранные свойства всех присвоенных TECSpinEdits и TECSpinBtns. Настраиваемые свойства - например, TimerDelay, TimerRepeat, ширина отдельных кнопок, GlyphsStyle и другие.

В проекте может быть несколько SpinController.

TECTimer

Продвинутый таймер.

tectimericon.png

Основная особенность в том, что первый интервал (свойство Delay) может отличаться от всех последующих интервалов (свойство Repeat).

Другие части EC-Controls

Class TECScale

Масштаб. Это не компонент, но он может рисоваться на любом холсте.

Этот класс используется в TECRuler, TECSlider, TECProgressBar, TECPositionBar и TECSpinPosition.

См. демку ECScale-Demo.

Модуль ECTypes

Базовые типы и классы для элементов управления Eye Candy Controls (EC-C).

Если вы используете EC-Controls в своем проекте, вам может потребоваться добавить этот модуль в раздел uses.

Этот модуль содержит множество объявлений, подпрограмм преобразования цвета и базовых классов, например TBaseScrollControl.

TBaseScrollControl

Является базовым классом для прокручиваемых компонентов (TECScheme является его потомком).

Вы можете получить свой собственный компонент прокрутки из TBaseScrollControl. На этом же классе основаны TECScheme и TECGrid.

Демки

EC-Controls поставляется с несколькими демками. Если некоторые из следующих демоверсий отсутствуют в архиве, это может означать, что изменений не было и демоверсия не была включена. В этом случае используйте демки из предыдущего выпуска.

ECC-Demo

В этой демке показаны все элементы управления EC-Control в различных конфигурациях.

ECScale-Demo

Эта демка показывает, как вы можете использовать TECScale в вашем собственном визуальном компоненте.

ECConfCurve-Demo

Эта демка показывает возможности TECConfCurve.

ECSchemeDesc

В этой демке показано, как создать компонент-потомок из TCustomECScheme.

SchemeDesigner

SchemeDesigner - это больше, чем демо. Он показывает вам, как вы можете создать конфигуратор TECScheme в вашем собственном приложении, но его также можно использовать для создания ваших собственных конфигураций и сохранения их в формате *.xml.