Пытаюсь изменить шрифт и высоту букв текстов, входящих в группу MyCurrent, делаю так:
double sz=2.5;
char *nfname="GOST type B";
ParentRef=GetGroup( "MyCurrent" );
reference ItObjRef=CreateIterator(TEXT_OBJ,ParentRef);
if (ItObjRef)
{
reference ObjRef=MoveIterator(ItObjRef,'F');
while(ObjRef)
{
TextParam x;
GetObjParam(ObjRef,&x,sizeof(TextParam),ALLPARAM);
for(int i=0; i<GetArrayCount(x.pTextLine); i++)
{
TextLineParam y;
GetArrayItem(x.pTextLine,i,&y,sizeof(TextLineParam));
for(int j=0; j<GetArrayCount(y.pTextItem); j++)
{
TextItemParam z;
GetArrayItem(y.pTextItem,j,&z,sizeof(TextItemParam));
z.font.height=sz;
strcpy(z.font.fontName,nfname);
SetArrayItem(y.pTextItem,j,&z,sizeof(TextItemParam));
}
SetArrayItem(x.pTextLine,i,&y,sizeof(TextLineParam));
}
SetObjParam(ObjRef,&x,sizeof(TextParam),ALLPARAM);
ObjRef = MoveIterator( ItObjRef, 'N' );
}
DeleteIterator( ItObjRef );
}
Если текст однострочный, то все хорошо, если в тексте несколько строк, то меняется только последняя, что я делаю не так?
Kompas 7++ Builder C++ 6.0...