Программное изменение параметров текста

Автор bmiho, 28.04.06, 13:56:21

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

bmiho

Пытаюсь изменить шрифт и высоту букв текстов, входящих в группу 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...