e1337e4016
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
353 lines
15 KiB
Markdown
353 lines
15 KiB
Markdown
---
|
||
title: "Интерфейс IPropertyList"
|
||
type: interface
|
||
api: [api7]
|
||
tags: [interface, api7, ipropertylist]
|
||
sources:
|
||
- ipropertylist.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 7 > Приложение > Работа с Панелью свойств > Интерфейс IPropertyControl > IPropertyControl - свойства *
|
||
|
||
|
||
## Интерфейс IPropertyList
|
||
|
||

|
||
|
||
Интерфейс элемента управления Панели свойств Поле со списком.
|
||
| |
|
||
| --- |
|
||
Элемент панели свойств
|
||
Иерархия:
|
||
IKompasAPIObject
|
||
IPropertyControl
|
||
IPropertyList
|
||
Примечание:
|
||
1. Данный интерфейс можно получить через интерфейс коллекции элементов управления панели свойств IPropertyControls.
|
||
2. При нажатии на кнопку элемента управления вызывается событие ksPropertyManagerNotify::ControlCommand.
|
||
3. При изменении значения элемента управления вызывается событие ksIPropertyManagerNotify::ChangeControlValue.
|
||
|
||
|
||
## Add - Добавить значение в список
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
void Add (const VARIANT& newVal);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT Add ([in]VARIANT newVal);
|
||
Входные параметры:
|
||
newVal - новое значение в раскрывающемся списке.
|
||
```
|
||
Примечание:
|
||
1. Тип данных нового значения определяется типом элемента управления из перечисления ControlTypeEnum:
|
||
•для типа ksControlListInt используется тип long,
|
||
•для типа ksControlListReal используется тип double,
|
||
•для типа ksControlListStr ограничения на значение не накладываются,
|
||
•для типа ksControlListLength используется тип double,
|
||
•для типа ksControlListAngle используется тип double.
|
||
2. В список можно добавить только уникальные значения. Если в списке уже есть значение, которое пытаются добавить повторно, то оно не будет добавлено.
|
||
3. В список можно сразу передать массив значений. Пример...
|
||
4. См. также: IPropertyControl::Value - Значение элемента управления.
|
||
|
||
|
||
## Пример передачи в список массива
|
||
|
||
long varsCount = 100;
|
||
// Массив для наполнения комбобокса
|
||
SAFEARRAYBOUND sabNewArray;
|
||
sabNewArray.cElements = varsCount;
|
||
sabNewArray.lLbound = 0;
|
||
SAFEARRAY * pSafe = ::SafeArrayCreate( VT_R8, 1, &sabNewArray );
|
||
if( pSafe )
|
||
{
|
||
for ( long j = 0; j < varsCount; j++ )
|
||
{
|
||
double val = j * 0.5;
|
||
::SafeArrayPutElement( pSafe, &j, &val);
|
||
}
|
||
_variant_t varArr;
|
||
varArr.vt = VT_ARRAY | VT_R8;
|
||
varArr.parray = pSafe;
|
||
// Передадим массив значений в контрол
|
||
dt->Add( varArr );
|
||
---
|
||
|
||
|
||
## CheckState - Состояние опции
|
||
|
||
Тип данных: состояние опции из перечисления CheckStateEnum.
|
||
Синтаксис Automation:
|
||
```
|
||
CheckState = iObject.CheckState Получить свойство (* )
|
||
iObject.CheckState = CheckState Установить свойство (* )
|
||
CheckState = iObject.GetCheckState() Получить свойство(**)
|
||
iObject.SetCheckState (CheckState) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
iObject->get_CheckState (&CheckState) Получить свойство
|
||
iObject->put_CheckState (CheckState) Установить свойство
|
||
```
|
||
Примечание:
|
||
Это свойство влияет на состояние переключателя, если свойство WithCheck имеет значение TRUE, и на отображение текста в поле элемента управления, подробнее см. CheckStateEnum.
|
||
|
||
|
||
## ClearList - Очистить список значений
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
void ClearList();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT ClearList();
|
||
```
|
||
Примечание:
|
||
Очищает раскрывающийся список и содержимое его поля ввода.
|
||
|
||
|
||
## Count - Количество элементов списка
|
||
|
||
Тип данных: long.
|
||
Синтаксис Automation:
|
||
```
|
||
Count = Object.Count Получить свойство (* )
|
||
Count = Object.GetCount() Получить свойство(**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_Count( &Count ) Получить свойство
|
||
```
|
||
Примечание:
|
||
Свойство доступно только для чтения.
|
||
|
||
|
||
## Find - Найти индекс строки в списке по значению
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
long Find (const VARIANT FAR& val);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT Find([in] VARIANT Val, [out, retval] long * PVal);
|
||
Входные параметры:
|
||
val - значение в раскрывающемся списке.
|
||
Возвращаемое значение:
|
||
Индекс строки со значением val в списке - в случае успеха,
|
||
-1 - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод работает только на несортированном списке, см. IPropertyList::Sort.
|
||
|
||
|
||
## MaxValue - Максимальное значение
|
||
|
||
Тип данных: VARIANT (long или double).
|
||
Синтаксис Automation:
|
||
```
|
||
MaxValue = iObject.MinValue Получить свойство (* )
|
||
MaxValue = iObject.GetMinValue() Получить свойство(**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
iObject->get_MaxValue (&MaxValue) Получить свойство
|
||
```
|
||
Примечание:
|
||
1. Свойство доступно только для чтения.
|
||
2. Тип данных определяется типом элемента управления из перечисления ControlTypeEnum:
|
||
•для типа ksControlListInt используется тип long,
|
||
•для типа ksControlListReal используется тип double,
|
||
•для типа ksControlListStr ограничения на значение не накладываются,
|
||
•для типа ksControlListLength используется тип double,
|
||
•для типа ksControlListAngle используется тип double.
|
||
|
||
|
||
## MinValue - Минимальное значение
|
||
|
||
Тип данных: VARIANT (long или double).
|
||
Синтаксис Automation:
|
||
```
|
||
MinValue = iObject.MinValue Получить свойство (* )
|
||
MinValue = iObject.GetMinValue() Получить свойство(**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
iObject->get_MinValue (&MinValue) Получить свойство
|
||
```
|
||
Примечание:
|
||
1. Свойство доступно только для чтения.
|
||
2. Тип данных определяется типом элемента управления из перечисления ControlTypeEnum:
|
||
•для типа ksControlListInt используется тип long,
|
||
•для типа ksControlListReal используется тип double,
|
||
•для типа ksControlListStr ограничения на значение не накладываются,
|
||
•для типа ksControlListLength используется тип double,
|
||
•для типа ksControlListAngle используется тип double.
|
||
|
||
|
||
## Precision - Точность сравнения
|
||
|
||
Тип данных: double.
|
||
Синтаксис Automation:
|
||
```
|
||
Precision = iObject.Precision Получить свойство (* )
|
||
iObject.Precision = Precision Установить свойство (* )
|
||
Precision = iObject.GetPrecision() Получить свойство(**)
|
||
iObject.SetPrecision(Precision) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
iObject->get_Precision(&Precision) Получить свойство
|
||
iObject->put_Precision(Precision) Установить свойство
|
||
```
|
||
Примечание:
|
||
1. Свойство позволяет установить точность сравнения значений в списке. Сравнение происходит при добавлении значения в список IPropertyList::Add.
|
||
2. Если добавляемое значение в списке есть, то оно не добавляется при установке значения IPropertyControl::Value.
|
||
3. Если устанавливается значение, которое есть в списке, оно селектируется при поиске IPropertyList::Find.
|
||
4. Свойство работает для вещественных типов списка: ksControlListReal, ksControlListLength, ksControlListAngle.
|
||
5. По умолчанию устанавливается точность 0.000001.
|
||
|
||
|
||
## ReadOnly - Запрет редактирования значения
|
||
|
||
Тип данных: BOOL.
|
||
Синтаксис Automation:
|
||
```
|
||
ReadOnly = iObject.ReadOnly Получить свойство (* )
|
||
iObject.ReadOnly = ReadOnly Установить свойство (* )
|
||
ReadOnly = iObject.GetReadOnly() Получить свойство(**)
|
||
iObject.SetReadOnly (ReadOnly) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
iObject->get_ReadOnly (&ReadOnly) Получить свойство
|
||
iObject->put_ReadOnly (ReadOnly) Установить свойство
|
||
Значение свойства:
|
||
TRUE - ввод нового значения с клавиатуры в раскрывающийся список запрещен; элемент управления работает в режиме DropList,
|
||
FALSE - ввод нового значения с клавиатуры в раскрывающийся список разрешен; элемент управления работает в режиме DropDown,
|
||
```
|
||
|
||
|
||
## SetCurrentByIndex - Установить текущую строку по индексу
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetCurrentByIndex( long index );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT SetCurrentByIndex([in] long Index, [out, retval] VARIANT_BOOL * PVal);
|
||
Входные параметры:
|
||
index - номер строки в раскрывающемся списке.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод работает только на несортированном списке, см. IPropertyList::Sort.
|
||
|
||
|
||
## SetValueRange - Установить новые ограничения на значение
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetValueRange (const VARIANT& minVal, const VARIANT& maxVal);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT SetValueRange ([in] VARIANT minVal, [in] VARIANT maxVal, [out, retval] VARIANT_BOOL * pVal);
|
||
Входные параметры:
|
||
minVal - минимальное допустимое значение (тип данных long или double),
|
||
maxVal - максимальное допустимое значение (тип данных long или double).
|
||
```
|
||
Примечание:
|
||
Тип данных максимального и минимального допустимого значения определяется типом элемента управления из перечисления ControlTypeEnum:
|
||
•для типа ksControlListInt используется тип long,
|
||
•для типа ksControlListReal используется тип double,
|
||
•для типа ksControlListStr ограничения на значение не накладываются,
|
||
•для типа ksControlListLength используется тип double,
|
||
•для типа ksControlListAngle используется тип double.
|
||
|
||
|
||
## Sort - Сортировать список
|
||
|
||
Тип данных BOOL.
|
||
Синтаксис Automation:
|
||
```
|
||
Sort = iObject.Sort Получить свойство (* )
|
||
iObject.Sort = Sort Установить свойство (* )
|
||
Sort = iObject.GetSort() Получить свойство(**)
|
||
iObject.SetSort (Sort) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
iObject->get_Sort (&Sort) Получить свойство
|
||
iObject->put_Sort (Sort) Установить свойство
|
||
Значение свойства:
|
||
TRUE - значения в списке будут сортироваться при добавлении новых,
|
||
FALSE - значения в списке будут в той последовательности, в какой они были добавлены.
|
||
```
|
||
|
||
|
||
## Step - Шаг
|
||
|
||
Тип данных: BOOL
|
||
Синтаксис Automation:
|
||
```
|
||
Step = Object.Step Получить свойство (* )
|
||
Object.Step = Step Установить свойство (* )
|
||
Step = Object.GetStep() Получить свойство(**)
|
||
Object.SetStep( Step ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_Step( &Step ) Получить свойство
|
||
Object.put_Step( Step ) Установить свойство
|
||
Шаг изменения значения колесом мыши.
|
||
```
|
||
|
||
|
||
## Width - Шаблон для расчета ширины элемента управления в горизонтальном положении (в символах)
|
||
|
||
Тип данных long.
|
||
Синтаксис Automation:
|
||
```
|
||
Width = iObject.Width Получить свойство (* )
|
||
iObject.Width = Width Установить свойство (* )
|
||
Width = iObject.GetWidth() Получить свойство(**)
|
||
iObject.SetWidth (Width) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
iObject->get_Width (&Width) Получить свойство
|
||
iObject->put_Width (Width) Установить свойство
|
||
Значение свойства:
|
||
Количество видимых символов в поле при горизонтальном положении Панели свойств.
|
||
```
|
||
Примечание:
|
||
Для расчета ширины элемента управления используется символ «0».
|
||
|
||
|
||
## WithCheck - Наличие опции рядом с полем ввода
|
||
|
||
Тип данных: BOOL.
|
||
Синтаксис Automation:
|
||
```
|
||
WithCheck = iObject.WithCheck Получить свойство (* )
|
||
iObject.WithCheck = WithCheck Установить свойство (* )
|
||
WithCheck = iObject.GetWithCheck() Получить свойство(**)
|
||
iObject.SetWithCheck (WithCheck) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
iObject->get_WithCheck (&WithCheck) Получить свойство
|
||
iObject->put_WithCheck (WithCheck) Установить свойство
|
||
Значение свойства:
|
||
TRUE - рядом с элементом управления выводится опция,
|
||
FALSE - рядом с элементом управления не выводится опция.
|
||
```
|
||
Примечание:
|
||
На текущий момент свойство не реализовано, его значение можно установить только равным FALSE.
|