--- title: "ViewEditAttr - Вывести диалог для просмотра или редактирования атрибута" type: guide api: [api7] tags: [guide, api7, vieweditattr] sources: - vieweditattr.html --- *API экспортных функций > Функции работы с прикладной библиотекой  > Функции работы с атрибутами * ## ViewEditAttr - Вывести диалог для просмотра или редактирования атрибута Пример... Аналог данной функции при использовании Automation - метод ksAttributeObject::ksViewEditAttr. Синтаксис: ``` int ViewEditAttr (reference pAttr, unsigned int type, char * password); Входные параметры: pAttr - указатель на атрибут, type - режим работы: 1 - режим просмотра, 2 - режим редактирования, password - пароль типа атрибута. Возвращаемое значение: 1 - в случае удачного завершения, 0 - в случае неудачи. ``` Примечание: Указатель на атрибут reference pAttr может быть получен следующими способами: – с помощью функций итератора CreateAttrIterator, MoveAttrIterator, – с помощью функций создания атрибутов ksCreateAttr или выбора атрибутов ChoiceAttr. ## ViewEditAttr - Пример использования void ViewEditAttr_Example (void) { // поиск объектов по значению атрибута double x, y; //найдем объект int j; reference pObj; RequestInfo info; memset(&info, 0, sizeof(info)); info.prompt = "Укажите объект"; do { j = Cursor(&info, &x, &y, 0, 0); if (j) { if(ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){ //создадим итератор для движения по атрибутам с ключом 10 reference iter = CreateAttrIterator(pObj, 10, 0,0,0,0); LightObj(pObj, 1); //подсветили объект // позиционировались на первый атрибут reference pAttr = MoveAttrIterator( iter, 'F', 0); if (pAttr) { do { // выдать параметры атрибута ViewEditAttr (pAttr, 1, 0); // на следующий атрибут pAttr = MoveAttrIterator( iter, 'N', 0); } while(pAttr); } LightObj(pObj, 0); //выключим подсветку DeleteIterator(iter); } } }while(j); }; /* ViewEditAttr */