Выделение прямоугольной области (bevel) |
Конструкция bevel визуально выделяет прямоугольную область. Данная конструкция используется только в анкетном редакторе. В анкетном редакторе может быть несколько bevel'ов.
Рис. 7 Расположение элементов bevel на экране
<описание-bevel> = [ bevel <name> {<X1>, <Y1>, <X2>, <Y2>, <style>, <shape>}; ]
<name> - корректный идентификатор (уникальное имя в пределах конструкции screen).
<X1>, <Y1>, <X2>, <Y2> - координаты левого верхнего и правого нижнего угла в текстовых координатах. При этом:
<X1> - верхняя граница bevel по середине знакоместа;
(<X2> - 1) - нижняя граница bevel по середине знакоместа;
<Y1> - левая граница bevel по правой границе знакоместа;
(<Y2> + 1) - правая граница bevel по правой границе знакоместа.
Для получения вертикальной или горизонтальной линии нужно положить X2=X1 или Y2=Y1 соответственно.
<style> - стиль:
bsLowered - утопленный;
bsRaised - выдавленный.
<shape> - фигура:
bsBox - утоплена (выпукла) вся область BEVEL'а;
bsFrame - утоплена (выпукла) только рамка BEVEL'а;
bsHorizontal - горизонтальная линия от края до края скрина;
bsVertical - вертикальная линия от края до края скрина.
Горизонтальная и вертикальная линии пересекают всю область ввода от начала до конца и масштабируют свои координаты при изменении координат области ввода, содержащей их. Положение горизонтальной разделительной линии bsHorizontal задается Y-координатой, а положение вертикальной разделительной линии bsVertical - X-координатой в описании координат элемента Bevel.
Полученное окно представлено на Рис. 7. Обратите внимание, что границы, примыкающие в исходном тексте программы (операторы 2-3 и 5-6) на экране отображаются с зазором. А границы, примыкающие визуально, в исходном тексте перекрываются (операторы 1-2 и 4-5).
interface TestBevel; show at (1,1,40,17) create view var i : longInt; as select * from X$Files; screen scrBev; // вертикальные прямоугольники: bevel b10 {24, 0, 26, 6, bsRaised, bsFrame}; // 1 bevel b11 {25, 1, 27, 6, bsRaised, bsFrame}; // 2 bevel b12 {27, 2, 29, 6, bsRaised, bsFrame}; // 3 // горизонтальные прямоугольники: bevel b20 { 2, 9, 20, 11, bsRaised, bsFrame}; // 4 bevel b21 { 3, 10, 20, 12, bsRaised, bsFrame}; // 5 bevel b22 { 4, 12, 20, 14, bsRaised, bsFrame}; // 6 // рамочка на два последних поля: bevel b10 {1, 4, 24, 8, bsRaised, bsFrame}; fields X$Files.XF$CODE; X$Files.XF$NAME; i; X$Files.XF$CODE; X$Files.XF$NAME; i; << Код .@@@@@@@@@@@@@@@ Наим .@@@@@@@@@@@@@@@ счет .@@@@@@@@@@@@@@@ Код .@@@@@@@@@@@@@@@ Наим .@@@@@@@@@@@@@@@ счет .@@@@@@@@@@@@@@@ 012345678901234567890123 77 88 99 00 11 >> end; end.