// Создать текст private void DrawText() { ksParagraphParam par = (ksParagraphParam)kompas.GetParamStruct((short)StructType2DEnum.ko_ParagraphParam); ksTextParam par1 = (ksTextParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextParam); ksTextLineParam par2 = (ksTextLineParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextLineParam); ksTextItemParam par3 = (ksTextItemParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextItemParam); if ((par != null) && (par1 != null) && (par2 != null) && (par3 != null)) { par1.Init(); par2.Init(); par3.Init(); par.Init(); par.x = 30; par.y = 30; par.height = 25; par.width = 20; doc.ksParagraph(par); // 4 пример задания дроби и нижнего и верхнего отклонений ksTextItemParam itemParam = (ksTextItemParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextItemParam); if (itemParam != null) { itemParam.Init(); ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont(); if (itemFont != null) { itemFont.Init(); itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true); itemParam.s = "111"; doc.ksTextLine(itemParam); itemFont.Init(); itemFont.SetBitVectorValue(ldefin2d.NUMERATOR, true); itemFont.SetBitVectorValue(ldefin2d.ITALIC_ON, true); itemParam.s = "55"; doc.ksTextLine(itemParam); itemFont.Init(); itemFont.SetBitVectorValue(ldefin2d.DENOMINATOR, true); itemParam.s = "77"; doc.ksTextLine(itemParam); itemFont.Init(); itemFont.SetBitVectorValue(ldefin2d.END_FRACTION, true); itemFont.SetBitVectorValue(ldefin2d.BOLD_OFF, true); itemFont.SetBitVectorValue(ldefin2d.ITALIC_OFF, true); itemParam.s = "4444"; doc.ksTextLine(itemParam); } } reference p = doc.ksEndObj(); // в параметрах текста задействованы два массива неопределенной длины : ksDynamicArray arr1 = (ksDynamicArray)par1.GetTextLineArr(); // массив по строкам ksDynamicArray arr2 = (ksDynamicArray)par2.GetTextItemArr(); // массив по компонентам строки if ((arr1 != null) && (arr2 != null)) { // возьмем параметры 1 -ой строки ( индекс 0 ) doc.ksGetObjParam(p, par2, 0); PrintPar1(par2, par3, arr2); kompas.ksMessageBoxResult(); if (kompas.ksYesNo("Изменять параметры текста ?") == 1) { // у первой строки отключаем ITALIC и BOLD и меняем цвет arr2.ksGetArrayItem(0, par3); ksTextItemFont font = (ksTextItemFont)par3.GetItemFont(); if (font != null) { font.SetBitVectorValue(ldefin2d.BOLD_OFF, true); font.SetBitVectorValue(ldefin2d.ITALIC_OFF, true); int clr = Color.FromArgb(0, 0, 255, 0).ToArgb(); font.color = clr; arr2.ksSetArrayItem(0, par3); // заменим у текста первую строку doc.ksSetObjParam(p, par2, 0); // возьмем параметры 1 -ой строки ( индекс 0 ) для проверки doc.ksGetObjParam(p, par2, 0); PrintPar1(par2, par3, arr2); } } } } }