Sign in Join
Wiki copytemporary

ExCtrls/ru: what changed

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

Title: ExCtrls/ru

OldNewLine
1+## О компоненте
2+
3+*ExCtrls* представляет собой набор элементов управления, которые пытаются преодолеть ограничения, накладываемые набором виджетов. Более того, добавлены некоторые недостающие элементы управления.
4+
5+### Авторство
6+
7+Пакет написан Werner Pamler (Вернером Памлером), но многократно использует большой код компонентов LCL, написанных командой Lazarus.
8+
9+### Лицензия
10+
11+Модифицированная LGPL (с исключением ссылок, как Lazarus LCL)
12+
13+### Загрузка и установка
14+
15+#### Версия для разработчиков
16+
17+Используйте клиент SVN для загрузки текущей версии транка из <svn://svn.code.sf.net/p/lazarus-ccr/svn/components/exctrls>. Или загрузите архив снапшота с <https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/exctrls/> и распакуйте в какую-нибудь папку.
18+
19+#### Release версия
20+
21+Пока релизных версий нет.
22+
23+#### Установка
24+
25+В Lazarus перейдите через меню "Package"(Пакет) \> "Open Package File .lpk" (Открыть файл пакета .lpk). Перейдите в папку с исходниками ExCtrls и выберите exctrlspkg.lkp. Нажмите "Compile"(Компилировать), затем "Use"(Использовать) \> "Install"(Установить). Это запустит пересборку IDE (может занять некоторое время). Когда процесс будет завершен, IDE перезапустится, и вы найдете компоненты в палитрах **ExCtrls** и **LazControls**.
26+
27+## Использование
28+
29+### Простой код
30+
31+Применение каждого компонента демонстрируется проектом в папке *examples* вместе с кодом компонента.
32+
33+### TRadioButtonEx, TCheckBoxEx, TRadioGroupEx и TCheckGroupEx
34+
35+Эти компоненты повторно реализуют стандартные TRadioButton, TCheckBox, TRadioGroup и TCheckGroup, но наследуются от TCustomControl и, таким образом, рисуются не набором виджетов, а ThemeServices. Как следствие, существует меньше ограничений, связанных с набором виджетов, хотя компоненты выглядят и ведут себя как их исходные аналоги LCL.
36+
37+**Новые функции:**
38+
39+- **Переносимые заголовки**: Если для нового свойства `WordWrap` установлено значение `true`, длинные подписи переносятся по словам, чтобы соответствовать ширине элемента управления. Обратите внимание, что когда `AutoSize` активируется до включения `WordWrap`, заголовок изначально не переносится, и весь текст помещается в одну строку. Выключите `AutoSize` и уменьшите ширину элемента управления. После включения функции переноса текста можно снова включить `AutoSize`, чтобы отрегулировать высоту.
40+- **Расположение по вертикали**: `ButtonLayout` и `TextLayout` контролируют вертикальное положение флажка/радиокнопки и заголовка, соответственно. По умолчанию установлено значение `tlCenter`, то есть соответствующий элемент центрируется по вертикали в пределах элемента управления; другие значения: `tlTop` и `tlBottom`. Обычно `ButtonLayout` и `TextLayout` изменяются парами.
41+- **Предоставляемые пользователем изображение флажка**: Флажки и радиокнопки обычно рисуются ThemeServices, но можно предоставить выделенные битовые карты, которые можно использовать вместо них. Растровые изображения должны храниться в `TImageList`, прикрепленном к свойству `Images`. Соответствующий индекс изображения должен быть назначен в обработчике события `OnGetImageIndex`, имеющего соответствующие параметры, чтобы различать состояния при наведении курсора мыши, нажатии, а также включенном/отключенном и отмеченном/не отмеченном состояниях.
42+- **Пользовательские цвета заголовков и настройки шрифта**: Шрифт заголовка можно изменить, если свойство `ThemedCaption` переключено на `false`. В случае `TRadioGroupEx` шрифт отдельных элементов может быть изменен только во время выполнения путем доступа к свойству `RadioGroup1.Buttons[Andex]`, указывающему на `TRadioButtonEx` по указанному индексу в радиогруппе. То же самое возможно и с `TCheckGroupEx`.
43+
44+<figure>
45+<img src="checkcontrolsEx.png" title="checkcontrolsEx.png" />
46+<figcaption>checkcontrolsEx.png</figcaption>
47+</figure>
48+
49+### TCurrSpinEditEx
50+
51+Палитра *LazControls* по умолчанию уже содержит расширенный элемент управления spin edit для целых чисел и чисел с плавающей запятой (`TSpinEditEx` и `TFloatSpinEditEx`, соответственно). Недостающее в стандартной палитре редактирование для значений валюты реализовано в пакете *ExCtrls*. Регистрация компонента помещает `TCurrSpinEditEx` в палитру *LazControls*.
52+
53+**Новые и измененные свойства**
54+
55+- `Value`: Тип данных элемента управления `currency`.
56+- `CurrencyString`: Название валюты, например '\$' или '€', добавляется к числовому значению в поле редактирования. Значение по умолчанию берется из `DefaultFormatSettings`, предоставленного модулем `SysUtils`.
57+- `CurrencyFormat`: Задает порядок (положительного) числового значения и названия валюты в поле редактирования:
58+ - `secfCurrVal`: сначала строка валюты, без пробела (напр., '\$1')
59+ - `secfValCurr`: сначала значение, без пробела (напр., '1\$')
60+ - `secfCurrSpaceVal`: сначала строка валюты, значание через пробел (напр., '\$ 1');
61+ - `secfValSpaceCurr`: сначала значение, валюат через пробел (напр., '1 \$');
62+- `NegCurrencyFormat`: Как и для `CurrencyFormat`, но теперь для отрицательных значений:
63+ - `sencfParCurrValPar`: сначала строка валюты, без пробела, вся строка заключена в круглые скобки (напр., '(\$1)')
64+ - `sencfMinusCurrVal`: сначала строка валюты с начальным знаком '-', без пробела (напр., '-1\$')
65+ - `sencfCurrMinusVal`: сначала строка валюты, без пробела, '-' перед значением (напр., '\$-1')
66+ - `sencfCurrValMinus`: сначала строка валюты, значение с добавленным '-' (напр., '\$1-')
67+ - и т.д.
68+
69+Другие допустимые значения это `sencfParValCurrPar` ('1\$'), `sencfMinusValCurr` ('-1\$'), `sencfValMinusCurr` ('1-\$'), `sencfValCurrMinus` ('1\$-'), `sencfMinusValSpaceCurr` ('-1 \$'), `sencfMinusCurrSpaceVal` ('-\$ 1'), `sencfValSpaceCurrMinus` ('1 \$-'), `sencfCurrSpaceValMinus` ('\$ 1-'), `sencfCurrSpaceMinusVal` ('\$ -1'), `sencfValMinusSpaceCurr` ('1- \$'), `sencfParCurrSpaceValPar` ('(\$ 1)'), `sencfParValSpaceCurrPar` ('(1 \$)')
70+
71+- `DecimalSeparator`: Символ, используемый для отделения десятичных знаков от целочисленной части. По умолчанию используется значение, определенное <tt>DefaultFormatSettings<tt>.
72+- `ThousandSeparator`:Если не пустой (то есть не \#0), целочисленная часть значения форматируется с разделителем тысяч для лучшей читаемости. Обратите внимание, что элемент управления не позволяет DecimalSeparator и ThousandSeparator быть одинаковыми.
73+
74+<figure>
75+<img src="savingscalculator.png" title="savingscalculator.png" />
76+<figcaption>savingscalculator.png</figcaption>
77+</figure>
78+
79+---
80+*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](/wiki-contact).*

Back to history