Копия викизеркало

Это зеркало вики с pascal.chat. Правка, история и вход — там.

Eye-Candy Controls/ru

English · Español · Русский

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.

Загрузка

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.

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

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

Визуальные

TECBevel

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

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

TECLink

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

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

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

TECImageMenu

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

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

Мышь

Клавиатура

TECSpinBtns

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

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

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

Мышь

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

Программно

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

pascal
Value := 10.5;

Если значение выходит за пределы диапазона (меньше 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 может иметь фокус, и к нему можно перейти с помощью клавиши Tab (когда TabStop = True, что по умолчанию). Может управляться мышью, клавиатурой или кодом.

Мышь

См. TECSpinBtns.

Клавиатура

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

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

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

Программно

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

pascal
Value := 10.5;

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

TECSwitch

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

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

Мышь

Клавиатура

Программно

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

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

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

TECSpeedBtn

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

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

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

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

  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.

TECEditBtn

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

TECColorBtn

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

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

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

TECComboBtn

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

TECColorCombo

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

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

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

TECHeader

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

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

TECCheckListBox

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

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

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

TECSlider

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

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

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

Мышь

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

Клавиатура

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

Программно

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

pascal
Position := 10.5;

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

TECProgressBar

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

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

TECPositionBar

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

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

Мышь

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

Программно

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

pascal
Position := 10.5;

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

TECSpinPosition

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

TECRuler

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

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

TECRadioGroup

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

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

Мышь

Клавиатура

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

Клавиатура

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

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

TECCheckGroup

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

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

Мышь

Клавиатура

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

Программно

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

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

TECTabCtrl

См: TECTabCtrl

TECAccordion

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

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

Мышь

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

Клавиатура

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

Программно

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

TECTriangle

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

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

Мышь

Программно

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

TECGrid

См.: TECGrid

TECLightView

См.: TECLightView

TECConfCurve

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

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

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

См. ECConfCurve-Demo.

TECScheme

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

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

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

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

TECSpinController

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

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

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

TECTimer

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

Основная особенность в том, что первый интервал (свойство 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.


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.

Версия 3, последнее изменение: WikiArchive, .