---
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 */
