--- title: "Leader - Создать линию-выноску" type: guide api: [api7] tags: [guide, api7, leader] sources: - leader.html --- *API экспортных функций > Функции работы с графическим документом  > Размеры и технологические обозначения  > Функции построения размеров /обозначений * ## Leader - Создать линию-выноску Пример... Аналог данной функции при использовании Automation - метод ksDocument2D::ksLeader. Синтаксис: ``` reference Leader (LeaderParam *leaderPar); Выходной параметр: leaderPar - указатель на структуру параметров линии-выноски LeaderParam. Возвращаемое значение: указатель на линию-выноску - в случае удачного завершения, 0 - в случае неудачи. ``` ## Leader - пример использования void Leader_Example (void) { reference p; TextLineParam tLinePar; memset(&tLinePar, 0, sizeof(TextLineParam)); tLinePar.style=0; //номер стиля строки текста // массив неопределенной длины компонент строки текста tLinePar.pTextItem = CreateArray(TEXT_ITEM_ARR,0); TextItemFont tFont; // параметры шрифта компоненты строки текста tFont.fontName[0]=\0; // имя шрифта tFont.height=0; // высота текста tFont.ksu=0; // сужение текста tFont.color = RGB(0,0,0); // цвет tFont.bitVector=0; // флаг параметров TextItemParam ItemPar; // параметры компоненты строки текста ItemPar.tip = 0; ItemPar.font = tFont; // параметры шрифта для компоненты текста ItemPar.iSNumb = 0; // номер символа LeaderParam leaderPar; memset(&leaderPar, 0, sizeof(LeaderParam)); leaderPar.x=50; leaderPar.y=50; // начало полки leaderPar.arrowType = 1; // тип стрелки leaderPar.dirX=1; // полка вправо leaderPar.signType=0; // тип знака leaderPar.around=0; // знак обработки по контуру выключен leaderPar.cText0=1; // число строк над полкой leaderPar.cText1=1; // число строк под полкой leaderPar.cText2=1; // число строк над ножкой leaderPar.cText3=1; // число строк под ножкой leaderPar.pTextline = CreateArray(TEXT_LINE_ARR,0); strcpy(ItemPar.s,строка над полкой); // массив символов для компоненты текста AddArrayItem(tLinePar.pTextItem, -1, &ItemPar, sizeof(ItemPar)); AddArrayItem(leaderPar.pTextline, -1, &tLinePar, sizeof(tLinePar)); ClearArray(tLinePar.pTextItem); strcpy(ItemPar.s,строка под полкой); // массив символов для компоненты текста AddArrayItem(tLinePar.pTextItem, -1, &ItemPar, sizeof(ItemPar)); AddArrayItem(leaderPar.pTextline, -1, &tLinePar, sizeof(tLinePar)); ClearArray(tLinePar.pTextItem); strcpy(ItemPar.s,2); // массив символов для компоненты текста AddArrayItem(tLinePar.pTextItem, -1, &ItemPar, sizeof(ItemPar)); AddArrayItem(leaderPar.pTextline, -1, &tLinePar, sizeof(tLinePar)); ClearArray(tLinePar.pTextItem); strcpy(ItemPar.s,3); // массив символов для компоненты текста AddArrayItem(tLinePar.pTextItem, -1, &ItemPar, sizeof(ItemPar)); AddArrayItem(leaderPar.pTextline, -1, &tLinePar, sizeof(tLinePar)); leaderPar.pPolyline =CreateArray(POLYLINE_ARR,0); reference pPoly = CreateArray(POINT_ARR , 0); //две ножки по одной точке в каждой MathPointParam mPar; mPar.x = 10; mPar.y = 10; AddArrayItem(pPoly , -1, &mPar, sizeof(mPar)); AddArrayItem(leaderPar.pPolyline , -1, &pPoly, sizeof(pPoly)); mPar.x = 30; mPar.y = 10; ClearArray(pPoly); AddArrayItem(pPoly , -1, &mPar, sizeof(mPar)); AddArrayItem(leaderPar.pPolyline , -1, &pPoly, sizeof(pPoly)); p = Leader(&leaderPar); }; /* Leader_Example */