• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Как изменить высоту текста?

Автор AndreyS, 25.04.05, 20:53:52

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

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

AndreyS

Я уверен, что это простой вопрос для профессионалов.
А я только начинаю осваивать программирование в Компасе.
Суть вопроса такова: можно ли установить высоту текста (в т.ч. и многострочного) как-то попроще, чем в нижеприведенном фрагменте?
То есть. без перебора всех строк текстового объекта.

var
 i,j : integer;
 obj : reference;
 textsize : double;
 tprm : textparam;
 tline : reference;
 tlineprm : textlineparam;
 titemprm : TextItemParam;

GetObjParam (obj, addr(tprm), sizeof(tprm),ALLPARAM);
tline:=tprm.pTextLine;
for i:=0 to getarraycount(tline)-1 do begin
  GetArrayItem (tline, i, @tlineprm, SizeOf(TextLineParam));
  for j:=0 to getarraycount(tlineprm.pTextItem)-1 do begin
    GetArrayItem (tlineprm.pTextItem, j, @titemprm, SizeOf(TextItemParam));
    titemprm.font.height:=textsize;
    SetArrayItem (tlineprm.pTextItem, j, @titemprm, SizeOf(TextItemParam));
  end;
  SetArrayItem (tline, i, @tlineprm, SizeOf(TextLineParam));
end;
SetObjParam (obj, addr(tprm), sizeof(tprm),ALLPARAM);

Причем этот вариант в многострочном тексте делает не все строки нужной высоты. Что же не так у меня?

Godzilla

Вот так я делаю на С++, на Делфи наверное также:

    ksTextItemParam ItemParam = kompas.GetParamStruct(ko_TextItemParam);
    ItemParam.Init();
   ItemParam.SetS("Здесь пишется текст");
   ItemParam.SetType(0);

   ksTextItemFont ItemFont = kompas.GetParamStruct(ko_TextItemFont);
   ItemFont.Init();
   ItemFont.SetHeight(7); // высота
   ItemFont.SetColor(255); // цвет
   ItemFont.SetKsu(1); // сужение
   ItemFont.SetFontName("GOST type B"); // имя шрифта
    ItemFont.SetBitVectorValue(ITALIC_ON,TRUE); // тип начертания
   
   ItemParam.SetItemFont(ItemFont);


doc.ksTextLine(ItemParam);