*API экспортных функций > Редактирование графических объектов > Функции редактирования объектов чертежа *
GetObjParam - Получить параметры объекта
Пример...
Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetObjParam.
Синтаксис:
int GetObjParam (reference ref,
void *param,
int parSize,
int parType);
Входной параметр:
ref - указатель на объект,
parType - тип параметров объекта или индекс строки в массиве для объектов TECHNICALDEMAND_OBJ и TEXT_OBJ или номер страницы (габаритного прямоугольника) технических требований (TECHNICALDEMAND_OBJ),
parSize - размер структуры для записи параметров.
Выходные параметры:
param - указатель на структуру параметров,
Возвращаемое значение:
тип объекта - в случае удачного завершения,
0 - в случае неудачи.
Типы объектов и интерфейсы...
Смотрите также
SetObjParam
Примечание:
Вызов метода с нулевыми значениями параметров param, parSize и parType позволяет получить тип объекта по его reference.
GetObjParam, SetObjParam - пример использования
void GetObjParam_Example(void) {
char buf [128];
reference p;
LineSegParam par;
int t;
Mtr(30, 20, 45, 1);
p = LineSeg(0, 0, 30, 0, 1);
/* взять параметры отрезка /
t = GetObjParam(p, &par, sizeof(par), ALLPARAM);
sprintf(buf, " t=%d, x1=%4.1f y1=%4.1f x2=%4.1f y2=%4.1f tl=%d",t,
par.x1, par.y1, par.x2, par.y2, par.style);
Message(buf);
/ заменить параметры отрезка /
par.x2 = 0; par.y2 = 40; par.style = 2;
if(SetObjParam(p, &par, sizeof(par), ALLPARAM))
Message(" Изменили объект");
else MessageBoxResult();
DeleteMtr();
} / _Example /
/**************************************************************************/
/Второй пример использования GetObjParam и SetObjParam/
// редактирование позиционной линии выноски
reference pObj;
RequestInfo info;
double x, y;
memset(&info, 0, sizeof(info));
info.prompt = "Укажите позиционную линию выноски";
int j = Cursor(&info, &x ,&y, 0);
if (j) {
if(ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){
if (GetObjParam(pObj, 0,0,0) == POSLEADER_OBJ) {
PosLeaderParam leaderPar;
GetObjParam(pObj, //указатель на графический объект
&leaderPar, //указатель на структуру параметров
sizeof(LeaderParam), //размер структуры параметров
ALLPARAM); //тип считывания параметров
leaderPar.x = 10;
leaderPar.y = 10;
int rez = SetObjParam(pObj, //указатель на графический объект
&leaderPar, //указатель на структуру параметров
sizeof(LeaderParam), //размер структуры параметров
ALLPARAM); //тип считывания параметров
if (rez) {
LightObj(pObj,1);
Message ("линия выноски по параметрам");
LightObj(pObj,0);
}
else
MessageBoxResult(); //сообщение об ошибке
}
else
Error("Объект не позиционная линия выноски");
}
}