Кроме пяти строк с основным текстом формулировки, который отображается на экране при выводе задания, можно указывать дополнительные строки , отображаемые на экране при прокрутке текста задания (связанные с прокруткой кнопки отображаются в окне задачника справа от раздела формулировок, если в формулировке текущего задания имеются дополнительные строки). Все дополнительные строки, как и основные, должны добавляться к формулировке последовательно, причем параметр Y для таких строк надо положить равным 0. Максимальное количество дополнительных строк равно 200.
В строке S можно использовать управляющие последовательности.
Если при выводе строки S часть ее не умещается на экранной строке, то выводится сообщение об ошибке Ошибочное позиционирование по горизонтали". Если ошибка произошла при выводе основной строки, то лишняя часть строки S отображается на следующей строке (или на первой строке, если ошибочной является пятая строка в разделе формулировок).
Определенный с помощью процедур TaskText текст формулировки задания используется также при формировании html-описания группы. В этом случае деление на строки, указанное для экранного вывода, игнорируется, однако учитываются дополнительные управляющие последовательности, позволяющие разбивать текст на абзацы с различным способом выравнивания (на отображение текста в окне задачника эти дополнительные последовательности не влияют).
Если при определении задания не указана его формулировка, то выводится сообщение об ошибке.
Вариант процедуры TaskText с единственным параметром S добавлен в версию 4.11 конструктора. В этом варианте строка S должна содержать весь текст формулировки, причем строки формулировки должны разделяться символами #13, #10 или их комбинациями #13#10. Начальные и конечные пробелы в каждой строке формулировки удаляются; если в результате какая-либо строка окажется пустой, то она не учитывается. Все строки формулировки автоматически центрируются по горизонтали; их вертикальное расположение определяется количеством строк и соответствует правилам, приведенным выше (если формулировка содержит одну строку, то она располагается на экранной строке 3, и т. д.). Если требуется специальное выравнивание какой-либо строки текста, то его можно добиться за счет добавления дополнительных пробелов в начало или конец строки; чтобы эти пробелы не были удалены, первый начальный (или последний конечный) пробел должен быть экранирован символом \" (обратная косая черта).
procedureDataB ( [Cmt: string; ]B: boolean; X, Y: integer);
procedureDataN( [Cmt: string; ]N: integer; X, Y, W: integer);
procedureDataN2( [Cmt: string; ]N1, N2: integer; X, Y, W: integer);
procedureDataN3( [Cmt: string; ]N1, N2, N3: integer; X, Y, W: integer);
procedureDataR( [Cmt: string; ]R: real; X, Y, W: integer);
procedureDataR2( [Cmt: string; ]R1, R2: real; X, Y, W: integer);
procedureDataR3( [Cmt: string; ]R1, R2, R3: real; X, Y, W: integer);
procedureDataC( [Cmt: string; ]C: char; X, Y: integer);
procedureDataS( [Cmt: string; ]S: string; X, Y: integer);
Процедуры группы Data добавляют к заданию элементы исходных данных . Добавленные элементы, вместе с необязательной строкой-комментарием Cmt, отображаются в разделе исходных данных, начиная с позиции X строки Y (позиции и строки нумеруются от 1; ширина экранной строки равна 78 позициям). Если используются значения параметра Y, большие 5, то разделе исходных данных будет доступна прокрутка . Как и для процедуры TaskText, параметр X может принимать три особых значения: 0 (центрирование по горизонтали относительно всей экранной строки), 100 (центрирование по горизонтали относительно левой половины экранной строки), 200 (центрирование по горизонтали относительно правой половины экранной строки). Эти значения можно также задавать с помощью констант xCenter, xLeft и xRight.
Параметр W определяет ширину поля вывода для числовых данных (выравнивание всегда производится по правому краю поля вывода). Если ширины поля вывода недостаточно, то значение параметра W игнорируется, и для вывода элемента используется минимально необходимое число экранных позиций. При определении ширины поля вывода для вещественного числа следует учитывать размер отображаемой дробной части (который определяется процедурой SetPrecision, описываемой далее).
Для нечисловых данных ширина поля вывода полагается равной фактической ширине данных; в частности, для данных символьного типа отводятся 3 позиции, содержащие начальный апостроф, собственно символ и конечный апостроф, а для логического типа отводятся 5 позиций, достаточных для вывода названий обеих логических констант в любом используемом языке программирования. Для строки отводятся L + 2 позиции, где L -- длина строки (начальная и конечная позиции используются для вывода апострофов). В зависимости от текущего языка программирования используются либо одинарные, либо двойные апострофы.
Читать дальше