ExCtrls/ru
English · Русский
О компоненте
ExCtrls представляет собой набор элементов управления, которые пытаются преодолеть ограничения, накладываемые набором виджетов. Более того, добавлены некоторые недостающие элементы управления.
Авторство
Пакет написан Werner Pamler (Вернером Памлером), но многократно использует большой код компонентов LCL, написанных командой Lazarus.
Лицензия
Модифицированная LGPL (с исключением ссылок, как Lazarus LCL)
Загрузка и установка
Версия для разработчиков
Используйте клиент SVN для загрузки текущей версии транка из svn://svn.code.sf.net/p/lazarus-ccr/svn/components/exctrls. Или загрузите архив снапшота с https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/exctrls/ и распакуйте в какую-нибудь папку.
Release версия
Пока релизных версий нет.
Установка
В Lazarus перейдите через меню "Package"(Пакет) > "Open Package File .lpk" (Открыть файл пакета .lpk). Перейдите в папку с исходниками ExCtrls и выберите exctrlspkg.lkp. Нажмите "Compile"(Компилировать), затем "Use"(Использовать) > "Install"(Установить). Это запустит пересборку IDE (может занять некоторое время). Когда процесс будет завершен, IDE перезапустится, и вы найдете компоненты в палитрах ExCtrls и LazControls.
Использование
Простой код
Применение каждого компонента демонстрируется проектом в папке examples вместе с кодом компонента.
TRadioButtonEx, TCheckBoxEx, TRadioGroupEx и TCheckGroupEx
Эти компоненты повторно реализуют стандартные TRadioButton, TCheckBox, TRadioGroup и TCheckGroup, но наследуются от TCustomControl и, таким образом, рисуются не набором виджетов, а ThemeServices. Как следствие, существует меньше ограничений, связанных с набором виджетов, хотя компоненты выглядят и ведут себя как их исходные аналоги LCL.
Новые функции:
- Переносимые заголовки: Если для нового свойства
WordWrapустановлено значениеtrue, длинные подписи переносятся по словам, чтобы соответствовать ширине элемента управления. Обратите внимание, что когдаAutoSizeактивируется до включенияWordWrap, заголовок изначально не переносится, и весь текст помещается в одну строку. ВыключитеAutoSizeи уменьшите ширину элемента управления. После включения функции переноса текста можно снова включитьAutoSize, чтобы отрегулировать высоту. - Расположение по вертикали:
ButtonLayoutиTextLayoutконтролируют вертикальное положение флажка/радиокнопки и заголовка, соответственно. По умолчанию установлено значениеtlCenter, то есть соответствующий элемент центрируется по вертикали в пределах элемента управления; другие значения:tlTopиtlBottom. ОбычноButtonLayoutиTextLayoutизменяются парами. - Предоставляемые пользователем изображение флажка: Флажки и радиокнопки обычно рисуются ThemeServices, но можно предоставить выделенные битовые карты, которые можно использовать вместо них. Растровые изображения должны храниться в
TImageList, прикрепленном к свойствуImages. Соответствующий индекс изображения должен быть назначен в обработчике событияOnGetImageIndex, имеющего соответствующие параметры, чтобы различать состояния при наведении курсора мыши, нажатии, а также включенном/отключенном и отмеченном/не отмеченном состояниях. - Пользовательские цвета заголовков и настройки шрифта: Шрифт заголовка можно изменить, если свойство
ThemedCaptionпереключено наfalse. В случаеTRadioGroupExшрифт отдельных элементов может быть изменен только во время выполнения путем доступа к свойствуRadioGroup1.Buttons[Andex], указывающему наTRadioButtonExпо указанному индексу в радиогруппе. То же самое возможно и сTCheckGroupEx.

TCurrSpinEditEx
Палитра LazControls по умолчанию уже содержит расширенный элемент управления spin edit для целых чисел и чисел с плавающей запятой (TSpinEditEx и TFloatSpinEditEx, соответственно). Недостающее в стандартной палитре редактирование для значений валюты реализовано в пакете ExCtrls. Регистрация компонента помещает TCurrSpinEditEx в палитру LazControls.
Новые и измененные свойства
Value: Тип данных элемента управленияcurrency.CurrencyString: Название валюты, например '$' или '€', добавляется к числовому значению в поле редактирования. Значение по умолчанию берется изDefaultFormatSettings, предоставленного модулемSysUtils.CurrencyFormat: Задает порядок (положительного) числового значения и названия валюты в поле редактирования:secfCurrVal: сначала строка валюты, без пробела (напр., '$1')secfValCurr: сначала значение, без пробела (напр., '1$')secfCurrSpaceVal: сначала строка валюты, значание через пробел (напр., '$ 1');secfValSpaceCurr: сначала значение, валюат через пробел (напр., '1 $');
NegCurrencyFormat: Как и дляCurrencyFormat, но теперь для отрицательных значений:sencfParCurrValPar: сначала строка валюты, без пробела, вся строка заключена в круглые скобки (напр., '($1)')sencfMinusCurrVal: сначала строка валюты с начальным знаком '-', без пробела (напр., '-1$')sencfCurrMinusVal: сначала строка валюты, без пробела, '-' перед значением (напр., '$-1')sencfCurrValMinus: сначала строка валюты, значение с добавленным '-' (напр., '$1-')- и т.д.
Другие допустимые значения это sencfParValCurrPar ('1$'), sencfMinusValCurr ('-1$'), sencfValMinusCurr ('1-$'), sencfValCurrMinus ('1$-'), sencfMinusValSpaceCurr ('-1 $'), sencfMinusCurrSpaceVal ('-$ 1'), sencfValSpaceCurrMinus ('1 $-'), sencfCurrSpaceValMinus ('$ 1-'), sencfCurrSpaceMinusVal ('$ -1'), sencfValMinusSpaceCurr ('1- $'), sencfParCurrSpaceValPar ('($ 1)'), sencfParValSpaceCurrPar ('(1 $)')
DecimalSeparator: Символ, используемый для отделения десятичных знаков от целочисленной части. По умолчанию используется значение, определенное DefaultFormatSettings.ThousandSeparator:Если не пустой (то есть не #0), целочисленная часть значения форматируется с разделителем тысяч для лучшей читаемости. Обратите внимание, что элемент управления не позволяет DecimalSeparator и ThousandSeparator быть одинаковыми.

From the Free Pascal wiki, page "ExCtrls/ru", as it stood on 2020-05-23 after a change by Trev, 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.